diff options
author | hondew <pokehondew@gmail.com> | 2020-08-30 14:14:38 -0400 |
---|---|---|
committer | hondew <pokehondew@gmail.com> | 2020-08-30 14:14:38 -0400 |
commit | e46b35455d1e2af8c8c2d291ce1cc28e682d9095 (patch) | |
tree | 76855f3dedad94ba34a8f8b40811a1005107b5ae | |
parent | 328aecc96e690c437e52663a1445417e8aa78df6 (diff) | |
parent | a9719c92bfa4c6b6dcf57e9516f184721152ad80 (diff) |
Merge branch 'master' into pokeball-doc
1455 files changed, 29793 insertions, 29645 deletions
diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc index 05d70e351..9ab7184c3 100644 --- a/asm/macros/contest_ai_script.inc +++ b/asm/macros/contest_ai_script.inc @@ -1,38 +1,46 @@ +@ A large number of the Contest AI commands go unused, so their corresponding macros in this file are similarly unused + @ Add a positive/negative value to the score of the move being evaluated. - .macro score score + .macro score score:req .byte 0x00 .byte \score .endm -@ turn (AKA "Appeal No.") - - .macro get_turn + .macro get_appeal_num .byte 0x01 .endm - .macro if_turn_less_than param, addr + .macro if_appeal_num_less_than num:req, destination:req .byte 0x02 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_turn_more_than param, addr + .macro if_appeal_num_more_than num:req, destination:req .byte 0x03 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_turn_eq param, addr + .macro if_appeal_num_eq num:req, destination:req .byte 0x04 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_turn_not_eq param, addr + .macro if_appeal_num_not_eq num:req, destination:req .byte 0x05 - .byte \param - .4byte \addr + .byte \num + .4byte \destination + .endm + + .macro if_last_appeal destination:req + if_appeal_num_eq CONTEST_LAST_APPEAL, \destination + .endm + + .macro if_not_last_appeal destination:req + if_appeal_num_not_eq CONTEST_LAST_APPEAL, \destination .endm @ audience excitement @@ -41,58 +49,58 @@ .byte 0x06 .endm - .macro if_excitement_less_than param, addr + .macro if_excitement_less_than num:req, destination:req .byte 0x07 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_more_than param, addr + .macro if_excitement_more_than num:req, destination:req .byte 0x08 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_eq param, addr + .macro if_excitement_eq num:req, destination:req .byte 0x09 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_not_eq param, addr + .macro if_excitement_not_eq num:req, destination:req .byte 0x0A - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm -@ the order that the user goes in the current turn +@ the order that the user goes in the current appeal .macro get_user_order .byte 0x0B .endm - .macro if_user_order_less_than param addr + .macro if_user_order_less_than num:req, destination:req .byte 0x0C - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_more_than param addr + .macro if_user_order_more_than num:req, destination:req .byte 0x0D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_eq param addr + .macro if_user_order_eq num:req, destination:req .byte 0x0E - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_not_eq param addr + .macro if_user_order_not_eq num:req, destination:req .byte 0x0F - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ user condition @@ -101,40 +109,89 @@ .byte 0x10 .endm - .macro if_user_condition_less_than param, addr + .macro if_user_condition_less_than num:req, destination:req .byte 0x11 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_more_than param, addr + .macro if_user_condition_more_than num:req, destination:req .byte 0x12 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_eq param, addr + .macro if_user_condition_eq num:req, destination:req .byte 0x13 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_not_eq param, addr + .macro if_user_condition_not_eq num:req, destination:req .byte 0x14 - .byte \param - .4byte \addr + .byte \num + .4byte \destination + .endm + +@ appeal points + + .macro get_point_total + .byte 0x15 + .endm + + .macro if_points_less_than num:req, destination:req + .byte 0x16 + .byte \num + .4byte \destination + .endm + + .macro if_points_more_than num:req, destination:req + .byte 0x17 + .byte \num + .4byte \destination + .endm + + .macro if_points_eq num:req, destination:req + .byte 0x18 + .byte \num + .4byte \destination + .endm + + .macro if_points_not_eq num:req, destination:req + .byte 0x19 + .byte \num + .4byte \destination + .endm + +@ preliminary (pre-appeal) judging points + + .macro get_preliminary_points + .byte 0x1A + .endm + + .macro if_preliminary_points_less_than num:req, destination:req + .byte 0x1B + .byte \num + .4byte \destination .endm -@ 15 -@ 16 -@ 17 -@ 18 -@ 19 -@ 1A -@ 1B -@ 1C -@ 1D -@ 1E + .macro if_preliminary_points_more_than num:req, destination:req + .byte 0x1C + .byte \num + .4byte \destination + .endm + + .macro if_preliminary_points_eq num:req, destination:req + .byte 0x1D + .byte \num + .4byte \destination + .endm + + .macro if_preliminary_points_not_eq num:req, destination:req + .byte 0x1E + .byte \num + .4byte \destination + .endm @ contest type @@ -142,16 +199,16 @@ .byte 0x1F .endm - .macro if_contest_type_eq param, addr + .macro if_contest_type_eq type:req, destination:req .byte 0x20 - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm - .macro if_contest_type_not_eq param, addr + .macro if_contest_type_not_eq type:req, destination:req .byte 0x21 - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm @ move excitement (change in excitement due to move) @@ -160,28 +217,28 @@ .byte 0x22 .endm - .macro if_move_excitement_less_than param, addr + .macro if_move_excitement_less_than num:req, destination:req .byte 0x23 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_more_than param, addr + .macro if_move_excitement_more_than num:req, destination:req .byte 0x24 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_eq param, addr + .macro if_move_excitement_eq num:req, destination:req .byte 0x25 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_not_eq param, addr + .macro if_move_excitement_not_eq num:req, destination:req .byte 0x26 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ move effect @@ -190,16 +247,16 @@ .byte 0x27 .endm - .macro if_effect_eq param, addr + .macro if_effect_eq effect:req, destination:req .byte 0x28 - .byte \param - .4byte \addr + .byte \effect + .4byte \destination .endm - .macro if_effect_not_eq param, addr + .macro if_effect_not_eq effect:req, destination:req .byte 0x29 - .byte \param - .4byte \addr + .byte \effect + .4byte \destination .endm @ move effect type @@ -208,16 +265,16 @@ .byte 0x2A .endm - .macro if_effect_type_eq param, addr + .macro if_effect_type_eq type:req, destination:req .byte 0x2B - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm - .macro if_effect_type_not_eq param, addr + .macro if_effect_type_not_eq type:req, destination:req .byte 0x2C - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm @ whether the current move is the most appealing in the user's moveset @@ -226,23 +283,81 @@ .byte 0x2D .endm - .macro if_most_appealing_move addr + .macro if_most_appealing_move destination:req .byte 0x2E - .4byte \addr - .endm - -@ 2F -@ 30 -@ 31 -@ 32 -@ 33 -@ 34 -@ 35 -@ 36 -@ 37 -@ 38 -@ 39 -@ 3A + .4byte \destination + .endm + +@ whether the current move is the most jamming in the user's moveset + + .macro check_most_jamming_move + .byte 0x2F + .endm + + .macro if_most_jamming_move destination:req + .byte 0x30 + .4bye \destination + .endm + +@ number of hearts the current move's appeal would provide + + .macro get_num_move_hearts + .byte 0x31 + .endm + + .macro if_num_move_hearts_less_than num:req, destination:req + .byte 0x32 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_more_than num:req, destination:req + .byte 0x33 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_eq num:req, destination:req + .byte 0x34 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_not_eq num:req, destination:req + .byte 0x35 + .byte \num + .4byte \destination + .endm + +@ number of hearts the current move's jam would remove + + .macro get_num_move_jam_hearts + .byte 0x36 + .endm + + .macro if_num_move_jam_hearts_less_than num:req, destination:req + .byte 0x37 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_more_than num:req, destination:req + .byte 0x38 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_eq num:req, destination:req + .byte 0x39 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_not_eq num:req, destination:req + .byte 0x3A + .byte \num + .4byte \destination + .endm @ number of times current move has been used @@ -250,28 +365,28 @@ .byte 0x3B .endm - .macro if_move_used_count_less_than param, addr + .macro if_move_used_count_less_than num:req, destination:req .byte 0x3C - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_more_than param, addr + .macro if_move_used_count_more_than num:req, destination:req .byte 0x3D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_eq param, addr + .macro if_move_used_count_eq num:req, destination:req .byte 0x3E - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_not_eq param, addr + .macro if_move_used_count_not_eq num:req, destination:req .byte 0x3F - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ whether the current move is a combo starter (with another move in the moveset) @@ -280,14 +395,14 @@ .byte 0x40 .endm - .macro if_combo_starter addr + .macro if_combo_starter destination:req .byte 0x41 - .4byte \addr + .4byte \destination .endm - .macro if_not_combo_starter addr + .macro if_not_combo_starter destination:req .byte 0x42 - .4byte \addr + .4byte \destination .endm @ whether the current move is a combo finisher (with another move in the moveset) @@ -296,14 +411,14 @@ .byte 0x43 .endm - .macro if_combo_finisher addr + .macro if_combo_finisher destination:req .byte 0x44 - .4byte \addr + .4byte \destination .endm - .macro if_not_combo_finisher addr + .macro if_not_combo_finisher destination:req .byte 0x45 - .4byte \addr + .4byte \destination .endm @ whether the current move would finish a combo @@ -312,170 +427,411 @@ .byte 0x46 .endm - .macro if_would_finish_combo addr + .macro if_would_finish_combo destination:req .byte 0x47 - .4byte \addr + .4byte \destination .endm - .macro if_would_not_finish_combo addr + .macro if_would_not_finish_combo destination:req .byte 0x48 - .4byte \addr + .4byte \destination .endm @ condition of mon (indexed by order) - .macro get_condition mon + .macro get_condition mon:req .byte 0x49 .byte \mon .endm - .macro if_condition_less_than mon, value, addr + .macro if_condition_less_than mon:req, num:req destination:req .byte 0x4A .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_more_than mon, value, addr + .macro if_condition_more_than mon:req, num:req, destination:req .byte 0x4B .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_eq mon, value, addr + .macro if_condition_eq mon:req, num:req, destination:req .byte 0x4C .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_not_eq mon, value, addr + .macro if_condition_not_eq mon:req, num:req, destination:req .byte 0x4D .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm @ whether the mon used a combo starter move @ Even though this value is always 1 or 0 (i.e. TRUE/FALSE), @ there are less-than and greater-than comparison operations for some reason. - .macro get_used_combo_starter mon + .macro get_used_combo_starter mon:req .byte 0x4E .byte \mon .endm - .macro if_used_combo_starter_less_than mon, value, addr + .macro if_used_combo_starter_less_than mon:req, num:req, destination:req .byte 0x4F .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_more_than mon, value, addr + .macro if_used_combo_starter_more_than mon:req, num:req, destination:req .byte 0x50 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_eq mon, value, addr + .macro if_used_combo_starter_eq mon:req, num:req, destination:req .byte 0x51 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_not_eq mon, value, addr + .macro if_used_combo_starter_not_eq mon:req, num:req, destination:req .byte 0x52 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination + .endm + + .macro if_used_combo_starter mon:req, destination:req + if_used_combo_starter_eq \mon, TRUE, \destination + .endm + + .macro if_not_used_combo_starter mon:req, destination:req + if_used_combo_starter_eq \mon, FALSE, \destination .endm @ whether the mon can make an appeal - .macro check_can_participate mon + .macro check_can_participate mon:req .byte 0x53 .byte \mon .endm - .macro if_can_participate mon, addr + .macro if_can_participate mon:req, destination:req .byte 0x54 .byte \mon - .4byte \addr + .4byte \destination .endm - .macro if_cannot_participate mon, addr + .macro if_cannot_participate mon:req, destination:req .byte 0x55 .byte \mon - .4byte \addr + .4byte \destination .endm -@ 56 -@ 57 +@ whether the mon just completed a combo - .macro contest_58 param addr + .macro get_completed_combo mon:req + .byte 0x56 + .byte \mon + .4byte \destination + .endm + + .macro if_completed_combo mon:req, destination:req + .byte 0x57 + .byte \mon + .4byte \destination + .endm + + .macro if_not_completed_combo mon:req destination:req .byte 0x58 - .byte \param - .4byte \addr - .endm - -@ 59 -@ 5A -@ 5B -@ 5C -@ 5D -@ 5E -@ 5F -@ 60 -@ 61 -@ 62 -@ 63 -@ 64 -@ 65 -@ 66 -@ 67 -@ 68 -@ 69 -@ 6A -@ 6B -@ 6C -@ 6D -@ 6E -@ 6F -@ 70 -@ 71 -@ 72 -@ 73 -@ 74 -@ 75 -@ 76 -@ 77 -@ 78 -@ 79 -@ 7A -@ 7B -@ 7C - - .macro if_random param addr + .byte \mon + .4byte \destination + .endm + +@ comparing appeal points to another mon + + .macro get_points_diff mon:req + .byte 0x59 + .byte \mon + .endm + + .macro if_points_more_than_mon mon:req, destination:req + .byte 0x5A + .byte \mon + .4byte \destination + .endm + + .macro if_points_less_than_mon mon:req, destination:req + .byte 0x5B + .byte \mon + .4byte \destination + .endm + + .macro if_points_eq_mon mon:req, destination:req + .byte 0x5C + .byte \mon + .4byte \destination + .endm + + .macro if_points_not_eq_mon mon:req, destination:req + .byte 0x5D + .byte \mon + .4byte \destination + .endm + +@ comparing preliminary judging points to another mon + + .macro get_preliminary_points_diff mon:req + .byte 0x5E + .byte \mon + .endm + + .macro if_preliminary_points_more_than_mon mon:req, destination:req + .byte 0x5F + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_less_than_mon mon:req, destination:req + .byte 0x60 + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_eq_mon mon:req, destination:req + .byte 0x61 + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_not_eq_mon mon:req, destination:req + .byte 0x62 + .byte \mon + .4byte \destination + .endm + +@ checking move history for move effect + + .macro get_used_moves_effect mon:req, round:req + .byte 0x63 + .byte \mon + .byte \round + .endm + + .macro if_used_moves_effect_less_than mon:req, round:req, effect:req, destination:req + .byte 0x64 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_more_than mon:req, round:req, effect:req, destination:req + .byte 0x65 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_eq mon:req, round:req, effect:req, destination:req + .byte 0x66 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_not_eq mon:req, round:req, effect:req, destination:req + .byte 0x67 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + +@ checking move history for excitement + + .macro get_used_moves_excitement mon:req, round:req + .byte 0x68 + .byte \mon + .byte \round + .endm + + .macro if_used_moves_excitement_less_than mon:req, round:req, num:req, destination:req + .byte 0x69 + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_more_than mon:req, round:req, num:req, destination:req + .byte 0x6A + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_eq mon:req, round:req, num:req, destination:req + .byte 0x6B + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_not_eq mon:req, round:req, num:req, destination:req + .byte 0x6C + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + +@ checking move history for effect type + + .macro get_used_moves_effect_type mon:req, round:req + .byte 0x6D + .byte \mon + .byte \round + .endm + + .macro if_used_moves_effect_type_eq mon:req, round:req, type:req, destination:req + .byte 0x6E + .byte \mon + .byte \round + .byte \type + .4byte \destination + .endm + + .macro if_used_moves_effect_type_not_eq mon:req, round:req, type:req, destination:req + .byte 0x6F + .byte \mon + .byte \round + .byte \type + .4byte \destination + .endm + +@ generic commands + + .macro save_result varId:req + .byte 0x70 + .byte \varId + .endm + + .macro setvar varId:req, num:req + .byte 0x71 + .byte \varId + .2byte \num + .endm + + .macro add varId:req, num:req + .byte 0x72 + .byte \varId + .2byte \num + .endm + + .macro addvar varId1:req, varId2:req + .byte 0x73 + .byte \varId1 + .byte \varId2 + .endm + + @ Duplicate of above + .macro addvar_duplicate varId1:req, varId2:req + .byte 0x74 + .byte \varId1 + .byte \varId2 + .endm + + .macro if_less_than varId:req, num:req, destination:req + .byte 0x75 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_greater_than varId:req, num:req, destination:req + .byte 0x76 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_eq varId:req, num:req, destination:req + .byte 0x77 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_not_eq varId:req, num:req, destination:req + .byte 0x78 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_less_than_var varId1:req, varId2:req, destination:req + .byte 0x79 + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_greater_than_var varId1:req, varId2:req, destination:req + .byte 0x7A + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_eq_var varId1:req, varId2:req, destination:req + .byte 0x7B + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_not_eq_var varId1:req, varId2:req, destination:req + .byte 0x7C + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + @ NOTE: The random commands are broken (see ContestAICmd_if_random_less_than) + .macro if_random_less_than num:req, destination:req .byte 0x7D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm -@ 7E + .macro if_random_greater_than num:req, destination:req + .byte 0x7E + .byte \num + .4byte \destination + .endm - .macro jump addr + .macro goto destination:req .byte 0x7F - .4byte \addr + .4byte \destination .endm - .macro call addr + .macro call destination:req .byte 0x80 - .4byte \addr + .4byte \destination .endm .macro end @@ -486,21 +842,30 @@ .byte 0x82 .endm - .macro if_user_has_exciting_move addr + .macro if_user_has_exciting_move destination:req .byte 0x83 - .4byte \addr + .4byte \destination .endm - .macro if_user_doesnt_have_exciting_move addr + .macro if_user_doesnt_have_exciting_move destination:req .byte 0x84 - .4byte \addr + .4byte \destination .endm -@ 85 -@ 86 + @ This is used incorrectly to check for an effect; see ContestAICmd_check_user_has_move + .macro check_user_has_move move:req + .byte 0x85 + .2byte \move + .endm + + .macro if_user_has_move move:req, destination:req + .byte 0x86 + .2byte \move + .4byte \destination + .endm - .macro if_effect_in_user_moveset param addr + .macro if_user_doesnt_have_move move:req, destination:req .byte 0x87 - .2byte \param - .4byte \addr + .2byte \move + .4byte \destination .endm diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc index d5c84fd02..65c8c6bef 100644 --- a/asm/macros/trainer_hill.inc +++ b/asm/macros/trainer_hill.inc @@ -52,9 +52,9 @@ special CallTrainerHillFunction .endm - @ Unknown, dummied. Only side effect is setting VAR_RESULT to 0. - .macro trainerhill_clearresult - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT + @ Unknown, dummied. E-Reader association is assumed. Only side effect is setting VAR_RESULT to 0. + .macro trainerhill_getusingereader + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_IN_EREADER_MODE special CallTrainerHillFunction .endm diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt index 94eabe8bc..09427dc8d 100644 --- a/berry_fix/charmap.txt +++ b/berry_fix/charmap.txt @@ -454,7 +454,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -462,476 +462,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_RICH = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt index 94eabe8bc..09427dc8d 100644 --- a/berry_fix/payload/charmap.txt +++ b/berry_fix/payload/charmap.txt @@ -454,7 +454,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -462,476 +462,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_RICH = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/charmap.txt b/charmap.txt index 3a34bada5..ca4db0fc7 100644 --- a/charmap.txt +++ b/charmap.txt @@ -405,7 +405,7 @@ B_BUFF3 = FD 34 NAME_END = FC 00 @ special 0xF7 character -SPECIAL_F7 = F7 +DYNAMIC = F7 @ more text functions @@ -415,15 +415,15 @@ SHADOW = FC 03 @ same as fc 01 COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes PALETTE = FC 05 @ used in credits SIZE = FC 06 @ note that anything other than "SMALL" is invalid -UNKNOWN_7 = FC 07 +RESET_SIZE = FC 07 PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them PAUSE_UNTIL_PRESS = FC 09 WAIT_SE = FC 0A PLAY_BGM = FC 0B ESCAPE = FC 0C SHIFT_TEXT = FC 0D -UNKNOWN_E = FC 0E -UNKNOWN_F = FC 0F +SHIFT_DOWN = FC 0E +FILL_WINDOW = FC 0F PLAY_SE = FC 10 CLEAR = FC 11 SKIP = FC 12 @@ -458,7 +458,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -466,476 +466,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_RICH = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/common_syms/link.txt b/common_syms/link.txt index 37c16a557..4118d1eb4 100644 --- a/common_syms/link.txt +++ b/common_syms/link.txt @@ -12,9 +12,9 @@ gRecvCmds gLinkStatus gLinkDummy1 gLinkDummy2 -gUnknown_030030EC -gUnknown_030030F0 -gUnknown_030030F4 +gReadyToExitStandby +gReadyToCloseLink +gReadyCloseLinkType gSuppressLinkErrorMessage gWirelessCommType gSavedLinkPlayerCount diff --git a/constants/constants.inc b/constants/constants.inc index a58bf92a2..e7561f429 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -1,4 +1,2 @@ .include "constants/gba_constants.inc" .include "constants/global.inc" - .include "constants/contest_constants.inc" - .include "constants/contest_move_effects.inc" diff --git a/constants/contest_constants.inc b/constants/contest_constants.inc deleted file mode 100644 index e971764d6..000000000 --- a/constants/contest_constants.inc +++ /dev/null @@ -1,68 +0,0 @@ - .set CONTEST_COOL, 0x00 - .set CONTEST_BEAUTY, 0x01 - .set CONTEST_CUTE, 0x02 - .set CONTEST_SMART, 0x03 - .set CONTEST_TOUGH, 0x04 - - .set COMBO_STARTER_RAIN_DANCE, 0x01 - .set COMBO_STARTER_RAGE, 0x02 - .set COMBO_STARTER_FOCUS_ENERGY, 0x03 - .set COMBO_STARTER_HYPNOSIS, 0x04 - .set COMBO_STARTER_ENDURE, 0x05 - .set COMBO_STARTER_HORN_ATTACK, 0x06 - .set COMBO_STARTER_SWORDS_DANCE, 0x07 - .set COMBO_STARTER_STOCKPILE, 0x08 - .set COMBO_STARTER_SUNNY_DAY, 0x09 - .set COMBO_STARTER_REST, 0x0A - .set COMBO_STARTER_VICE_GRIP, 0x0B - .set COMBO_STARTER_DEFENSE_CURL, 0x0C - .set COMBO_STARTER_CHARGE, 0x0D - .set COMBO_STARTER_ROCK_THROW, 0x0E - .set COMBO_STARTER_YAWN, 0x0F - .set COMBO_STARTER_SCARY_FACE, 0x10 - .set COMBO_STARTER_POWDER_SNOW, 0x11 - .set COMBO_STARTER_LOCK_ON, 0x12 - .set COMBO_STARTER_SOFT_BOILED, 0x13 - .set COMBO_STARTER_MEAN_LOOK, 0x14 - .set COMBO_STARTER_SCRATCH, 0x15 - .set COMBO_STARTER_GROWTH, 0x16 - .set COMBO_STARTER_HAIL, 0x17 - .set COMBO_STARTER_SANDSTORM, 0x18 - .set COMBO_STARTER_BELLY_DRUM, 0x19 - .set COMBO_STARTER_MIND_READER, 0x1A - .set COMBO_STARTER_DRAGON_BREATH, 0x1B - .set COMBO_STARTER_DRAGON_RAGE, 0x1C - .set COMBO_STARTER_DRAGON_DANCE, 0x1D - .set COMBO_STARTER_SURF, 0x1E - .set COMBO_STARTER_DIVE, 0x1F - .set COMBO_STARTER_STRING_SHOT, 0x20 - .set COMBO_STARTER_LEER, 0x21 - .set COMBO_STARTER_TAUNT, 0x22 - .set COMBO_STARTER_CHARM, 0x23 - .set COMBO_STARTER_HARDEN, 0x24 - .set COMBO_STARTER_SING, 0x25 - .set COMBO_STARTER_EARTHQUAKE, 0x26 - .set COMBO_STARTER_DOUBLE_TEAM, 0x27 - .set COMBO_STARTER_CURSE, 0x28 - .set COMBO_STARTER_SWEET_SCENT, 0x29 - .set COMBO_STARTER_SLUDGE, 0x2A - .set COMBO_STARTER_SLUDGE_BOMB, 0x2B - .set COMBO_STARTER_THUNDER_PUNCH, 0x2C - .set COMBO_STARTER_FIRE_PUNCH, 0x2D - .set COMBO_STARTER_ICE_PUNCH, 0x2E - .set COMBO_STARTER_PECK, 0x2F - .set COMBO_STARTER_METAL_SOUND, 0x30 - .set COMBO_STARTER_MUD_SPORT, 0x31 - .set COMBO_STARTER_WATER_SPORT, 0x32 - .set COMBO_STARTER_BONE_CLUB, 0x33 - .set COMBO_STARTER_BONEMERANG, 0x34 - .set COMBO_STARTER_BONE_RUSH, 0x35 - .set COMBO_STARTER_SAND_ATTACK, 0x36 - .set COMBO_STARTER_MUD_SLAP, 0x37 - .set COMBO_STARTER_FAKE_OUT, 0x38 - .set COMBO_STARTER_PSYCHIC, 0x39 - .set COMBO_STARTER_KINESIS, 0x3A - .set COMBO_STARTER_CONFUSION, 0x3B - .set COMBO_STARTER_POUND, 0x3C - .set COMBO_STARTER_SMOG, 0x3D - .set COMBO_STARTER_CALM_MIND, 0x3E diff --git a/constants/contest_move_effects.inc b/constants/contest_move_effects.inc deleted file mode 100644 index b19e05004..000000000 --- a/constants/contest_move_effects.inc +++ /dev/null @@ -1,49 +0,0 @@ - enum_start - enum CONTEST_EFFECT_HIGHLY_APPEALING @ 0 - enum CONTEST_EFFECT_USER_MORE_EASILY_STARTLED @ 1 - enum CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES @ 2 - enum CONTEST_EFFECT_REPETITION_NOT_BORING @ 3 - enum CONTEST_EFFECT_AVOID_STARTLE_ONCE @ 4 - enum CONTEST_EFFECT_AVOID_STARTLE @ 5 - enum CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY @ 6 - enum CONTEST_EFFECT_USER_LESS_EASILY_STARTLED @ 7 - enum CONTEST_EFFECT_STARTLE_FRONT_MON @ 8 - enum CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS @ 9 - enum CONTEST_EFFECT_STARTLE_PREV_MON @ 10 - enum CONTEST_EFFECT_STARTLE_PREV_MONS @ 11 - enum CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON @ 12 - enum CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS @ 13 - enum CONTEST_EFFECT_STARTLE_PREV_MON_2 @ 14 - enum CONTEST_EFFECT_STARTLE_PREV_MONS_2 @ 15 - enum CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION @ 16 - enum CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION @ 17 - enum CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN @ 18 - enum CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL @ 19 - enum CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL @ 20 - enum CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL @ 21 - enum CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL @ 22 - enum CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL @ 23 - enum CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL @ 24 - enum CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS @ 25 - enum CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS @ 26 - enum CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS @ 27 - enum CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION @ 28 - enum CONTEST_EFFECT_BETTER_IF_FIRST @ 29 - enum CONTEST_EFFECT_BETTER_IF_LAST @ 30 - enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES @ 31 - enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE @ 32 - enum CONTEST_EFFECT_BETTER_WHEN_LATER @ 33 - enum CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING @ 34 - enum CONTEST_EFFECT_BETTER_IF_SAME_TYPE @ 35 - enum CONTEST_EFFECT_BETTER_IF_DIFF_TYPE @ 36 - enum CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL @ 37 - enum CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS @ 38 - enum CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION @ 39 - enum CONTEST_EFFECT_NEXT_APPEAL_EARLIER @ 40 - enum CONTEST_EFFECT_NEXT_APPEAL_LATER @ 41 - enum CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER @ 42 - enum CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER @ 43 - enum CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST @ 44 - enum CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS @ 45 - enum CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED @ 46 - enum CONTEST_EFFECT_DONT_EXCITE_AUDIENCE @ 47 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index e33ba431d..1c7bff51c 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -249,64 +249,64 @@ AI_CBM_BellyDrum: @ 82DC341 if_hp_less_than AI_USER, 51, Score_Minus10 AI_CBM_AttackUp: @ 82DC348 - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_DefenseUp: @ 82DC351 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpeedUp: @ 82DC35A - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpAtkUp: @ 82DC363 - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpDefUp: @ 82DC36C - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AccUp: @ 82DC375 - if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ACC, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_EvasionUp: @ 82DC37E - if_stat_level_equal AI_USER, STAT_EVASION, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_EVASION, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AttackDown: @ 82DC387 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_HYPER_CUTTER, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_DefenseDown: @ 82DC39C - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpeedDown: @ 82DC3A9 - if_stat_level_equal AI_TARGET, STAT_SPEED, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPEED, MIN_STAT_STAGE, Score_Minus10 if_ability AI_TARGET, ABILITY_SPEED_BOOST, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpAtkDown: @ 82DC3BF - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpDefDown: @ 82DC3CC - if_stat_level_equal AI_TARGET, STAT_SPDEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPDEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_AccDown: @ 82DC3D9 - if_stat_level_equal AI_TARGET, STAT_ACC, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ACC, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_KEEN_EYE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_EvasionDown: @ 82DC3EE - if_stat_level_equal AI_TARGET, STAT_EVASION, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_EVASION, MIN_STAT_STAGE, Score_Minus10 CheckIfAbilityBlocksStatChange: @ 82DC3F6 get_ability AI_TARGET @@ -315,20 +315,20 @@ CheckIfAbilityBlocksStatChange: @ 82DC3F6 end AI_CBM_Haze: @ 82DC405 - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_EVASION, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_EVASION, 6, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End goto Score_Minus10 AI_CBM_Haze_End: @ 82DC47A @@ -436,8 +436,8 @@ AI_CBM_CantEscape: @ 82DC5B0 end AI_CBM_Curse: @ 82DC5BB - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_Spikes: @ 82DC5CC @@ -484,8 +484,8 @@ AI_CBM_Safeguard: @ 82DC635 end AI_CBM_Memento: @ 82DC640 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus8 AI_CBM_BatonPass: @ 82DC650 count_usable_party_mons AI_USER @@ -574,18 +574,18 @@ AI_CBM_MudSport: @ 82DC71E end AI_CBM_Tickle: @ 82DC729 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus8 end AI_CBM_CosmicPower: @ 82DC73A - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_BulkUp: @ 82DC74B - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_WaterSport: @ 82DC75C @@ -593,13 +593,13 @@ AI_CBM_WaterSport: @ 82DC75C end AI_CBM_CalmMind: @ 82DC767 - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_DragonDance: @ 82DC778 - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus8 end Score_Minus1: @@ -1101,7 +1101,7 @@ AI_CV_EvasionUp7: AI_CV_EvasionUp8: if_hp_more_than AI_USER, 70, AI_CV_EvasionUp_End - if_stat_level_equal AI_USER, STAT_EVASION, 6, AI_CV_EvasionUp_End + if_stat_level_equal AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CV_EvasionUp_End if_hp_less_than AI_USER, 40, AI_CV_EvasionUp_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_EvasionUp_ScoreDown2 if_random_less_than 70, AI_CV_EvasionUp_End @@ -1130,7 +1130,7 @@ AI_CV_AlwaysHit_End: end AI_CV_AttackDown: @ 82DCDF8 - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_AttackDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_AttackDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_AttackDown2 score -1 @@ -1198,7 +1198,7 @@ AI_CV_SpeedDown_End: @ 82DCE96 end AI_CV_SpAtkDown: - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_SpAtkDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_SpAtkDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_SpAtkDown2 score -1 @@ -1284,7 +1284,7 @@ AI_CV_AccuracyDown7: AI_CV_AccuracyDown8: if_hp_more_than AI_USER, 70, AI_CV_AccuracyDown_End - if_stat_level_equal AI_TARGET, STAT_ACC, 6, AI_CV_AccuracyDown_End + if_stat_level_equal AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CV_AccuracyDown_End if_hp_less_than AI_USER, 40, AI_CV_AccuracyDown_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 if_random_less_than 70, AI_CV_AccuracyDown_End @@ -1997,7 +1997,7 @@ AI_CV_Curse2: score +1 AI_CV_Curse3: - if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_Curse_End + if_stat_level_more_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE, AI_CV_Curse_End if_random_less_than 128, AI_CV_Curse_End score +1 goto AI_CV_Curse_End @@ -2518,7 +2518,7 @@ AI_CV_ChangeSelfAbility_AbilitiesToEncourage: AI_CV_Superpower: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Superpower_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Superpower_ScoreDown1 - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CV_Superpower_ScoreDown1 + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_Superpower_ScoreDown1 if_target_faster AI_CV_Superpower2 if_hp_more_than AI_USER, 40, AI_CV_Superpower_ScoreDown1 goto AI_CV_Superpower_End @@ -2933,12 +2933,12 @@ sMovesTable_ProtectMoves: AI_PreferBatonPass_EncourageIfHighStats: get_turn_count if_equal 0, Score_Minus2 - if_stat_level_more_than AI_USER, STAT_ATK, 8, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_ATK, 7, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_ATK, 6, Score_Plus1 - if_stat_level_more_than AI_USER, STAT_SPATK, 8, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_SPATK, 7, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_SPATK, 6, Score_Plus1 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, Score_Plus1 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, Score_Plus1 end AI_PreferBatonPassEnd: diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index a1d059a94..f7aac71e8 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -426,7 +426,7 @@ Move_POUND: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -441,7 +441,7 @@ Move_DOUBLE_SLAP: choosetwoturnanim DoubleSlapLeft, DoubleSlapRight DoubleSlapContinue: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -456,7 +456,7 @@ DoubleSlapRight: Move_POISON_POWDER: loadspritegfx ANIM_TAG_POISON_POWDER loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -480,7 +480,7 @@ Move_POISON_POWDER: Move_STUN_SPORE: loadspritegfx ANIM_TAG_STUN_SPORE - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -504,7 +504,7 @@ Move_STUN_SPORE: Move_SLEEP_POWDER: loadspritegfx ANIM_TAG_SLEEP_POWDER - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -531,21 +531,21 @@ Move_SWIFT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 5, 22, -18, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, -10, 22, 15, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 18, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish @@ -557,20 +557,20 @@ Move_STRENGTH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_ATTACKER, 2, 0, 96, 30 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 4 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 18, 6, 2, 4 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, ANIM_TARGET, 1 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -587,7 +587,7 @@ Move_TACKLE: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -597,14 +597,14 @@ Move_BODY_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER waitforvisualfinish delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 - loopsewithpan SE_W025B, SOUND_PAN_TARGET, 10, 2 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 10, 2 delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 waitforvisualfinish @@ -636,7 +636,7 @@ Move_SUPERSONIC: blendoff end SupersonicRing: - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gSupersonicRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -651,7 +651,7 @@ Move_SCREECH: waitforvisualfinish end ScreechRing: - playsewithpan SE_W103, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCREECH, SOUND_PAN_ATTACKER createsprite gScreechRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -661,31 +661,31 @@ Move_FLAME_WHEEL: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 0 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 4 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 8 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 12 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 16 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 20 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 24 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 8, 1 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET call FireSpreadEffect delay 7 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 @@ -704,22 +704,22 @@ Move_PIN_MISSILE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish @@ -733,22 +733,22 @@ Move_ICICLE_SPEAR: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W196, SOUND_PAN_ATTACKER + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish @@ -764,7 +764,7 @@ Move_TAKE_DOWN: delay 35 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 0, 0, 4 waitforvisualfinish @@ -781,19 +781,19 @@ Move_TAKE_DOWN: Move_DOUBLE_EDGE: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, 0, 0 waitforvisualfinish delay 10 - playsewithpan SE_W207, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W207, SOUND_PAN_ATTACKER, 8 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 16, 16, RGB_WHITE createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish @@ -819,12 +819,12 @@ Move_POISON_STING: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish call PoisonBubblesEffect waitforvisualfinish @@ -838,13 +838,13 @@ Move_TWINEEDLE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 6, 2 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 6, 2 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 10, -4, 0, -4, 20 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 12, 10, 12, 20 delay 20 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 1, 3 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 5, 2 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 2 delay 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 10, 12, 1, 3 waitforvisualfinish @@ -854,7 +854,7 @@ Move_TWINEEDLE: Move_FIRE_BLAST: loadspritegfx ANIM_TAG_SMALL_EMBER - createsoundtask sub_8158B30, SE_W172, SE_W172B + createsoundtask sub_8158B30, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing @@ -902,29 +902,29 @@ FireBlastCross: Move_LEECH_SEED: loadspritegfx ANIM_TAG_SEED - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 0, 24, 35, -32 delay 8 - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, -16, 24, 35, -40 delay 8 - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 16, 24, 35, -37 delay 12 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 10, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 10, 8 waitforvisualfinish end Move_EMBER: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_W052, SOUND_PAN_ATTACKER, 5, 2 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 5, 2 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, -16, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 16, 24, 20, 1 delay 16 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call EmberFireHit call EmberFireHit call EmberFireHit @@ -942,7 +942,7 @@ Move_MEGA_PUNCH: delay 2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 50 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 50 @@ -951,7 +951,7 @@ Move_MEGA_PUNCH: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -985,11 +985,11 @@ Move_MEGA_KICK: delay 2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 50 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 50 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET call SetImpactBackground createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 @@ -1011,7 +1011,7 @@ Move_COMET_PUNCH: choosetwoturnanim CometPunchLeft, CometPunchRight CometPunchContinue: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1041,7 +1041,7 @@ Move_SONIC_BOOM: blendoff end SonicBoomProjectile: - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gSonicBoomSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 15 delay 4 return @@ -1057,7 +1057,7 @@ Move_THUNDER_SHOCK: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -44, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 0, 13, RGB_BLACK waitforvisualfinish @@ -1079,13 +1079,13 @@ Move_THUNDERBOLT: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 24, -52, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, -24, -52, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, 0, -60, 1 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 0, 13, RGB_BLACK waitforvisualfinish @@ -1101,7 +1101,7 @@ Move_THUNDERBOLT: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 0 createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 2, 2, RGB_BLACK delay 6 @@ -1112,7 +1112,7 @@ Move_THUNDERBOLT: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 6, 6, RGB_BLACK waitforvisualfinish delay 20 - waitplaysewithpan SE_W085B, SOUND_PAN_TARGET, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish delay 20 @@ -1128,9 +1128,9 @@ Move_THUNDER_WAVE: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -48, 0 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 20 - loopsewithpan SE_W085B, SOUND_PAN_TARGET, 10, 4 + loopsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 10, 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 0 @@ -1156,23 +1156,23 @@ BeatUpLeft: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -20, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 8, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue BeatUpRight: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 12, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -12, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue Move_STOMP: @@ -1180,19 +1180,19 @@ Move_STOMP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gStompFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -32, 15 delay 19 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 4, 9, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff end Move_TAIL_WHIP: - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 3 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 3 waitforvisualfinish end @@ -1201,7 +1201,7 @@ Move_CUT: loadspritegfx ANIM_TAG_CUT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 @@ -1213,14 +1213,14 @@ Move_CUT: Move_HIDDEN_POWER: loadspritegfx ANIM_TAG_RED_ORB - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 31, 19), 12, 5, 1 delay 4 createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 - playsewithpan SE_W179, SOUND_PAN_ATTACKER + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1229,7 +1229,7 @@ Move_HIDDEN_POWER: createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 delay 52 setarg 7, 0xFFFF - playsewithpan SE_W115, SOUND_PAN_ATTACKER + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 32 @@ -1245,13 +1245,13 @@ Move_REVERSAL: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE delay 10 - playsewithpan SE_W179, SOUND_PAN_ATTACKER + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1262,7 +1262,7 @@ Move_REVERSAL: delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 @@ -1286,12 +1286,12 @@ PursuitContinue: waitbgfadein end PursuitNormal: - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue PursuitOnSwitchout: - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue @@ -1304,7 +1304,7 @@ Move_SPIKE_CANNON: setalpha 12, 8 createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -4, 0, 4, 6, 8, 4 waitforvisualfinish - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 5, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 5, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 10, -8, -8, -8, 20 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 0, 0, 20 @@ -1314,7 +1314,7 @@ Move_SPIKE_CANNON: createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 5, 3 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 3 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1324,7 +1324,7 @@ Move_SWORDS_DANCE: loadspritegfx ANIM_TAG_SWORD monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W014, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWORDS_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 16, 6, 1, 4 createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 22 @@ -1340,12 +1340,12 @@ Move_PSYCH_UP: monbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, RGB_BLACK setalpha 12, 8 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 5, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 5, 10 createsprite gPsychUpSpiralSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, ANIM_ATTACKER delay 127 delay 4 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 createvisualtask AnimTask_BlendBattleAnimPal, 9, 2, 2, 10, 0, RGB_YELLOW delay 30 @@ -1363,7 +1363,7 @@ Move_DIZZY_PUNCH: call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, 16, 8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, ANIM_TARGET, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 128, -16 @@ -1374,7 +1374,7 @@ Move_DIZZY_PUNCH: call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, -16, -8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 128, -16 @@ -1393,7 +1393,7 @@ DizzyPunchLunge: Move_FIRE_SPIN: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 call FireSpinEffect call FireSpinEffect @@ -1420,7 +1420,7 @@ Move_FURY_CUTTER: loadspritegfx ANIM_TAG_CUT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_IsFuryCutterHitRight, 2 jumpretfalse FuryCutterLeft goto FuryCutterRight @@ -1468,19 +1468,19 @@ Move_SELF_DESTRUCT: createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 9, 0, RGB_RED end SelfDestructExplode: - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return @@ -1490,12 +1490,12 @@ Move_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W004, SOUND_PAN_ATTACKER + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 3, 0, 4 delay 1 createsprite gSlamHitSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 3 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 @@ -1511,10 +1511,10 @@ Move_SLAM: Move_VINE_WHIP: loadspritegfx ANIM_TAG_WHIP_HIT - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 6 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 0, 0 delay 6 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 1 @@ -1524,12 +1524,12 @@ Move_DRILL_PECK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_WHIRLWIND_LINES createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 2 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 4, 8 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 4, 8 createvisualtask AnimTask_DrillPeckHitSplats, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 waitforvisualfinish @@ -1547,28 +1547,28 @@ Move_WATERFALL: setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 delay 5 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, ANIM_ATTACKER waitforvisualfinish delay 10 @@ -1581,7 +1581,7 @@ Move_WATERFALL: end RisingWaterHitEffect: - playsewithpan SE_W127, SOUND_PAN_TARGET + playsewithpan SE_M_WATERFALL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 17, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 @@ -1636,26 +1636,26 @@ Move_EXPLOSION: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 16, 0, RGB_WHITE end Explosion1: - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB - loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 18, 3 + loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish @@ -1669,7 +1669,7 @@ Move_PROTECT: loadspritegfx ANIM_TAG_PROTECT monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 16 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 16 createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -1681,7 +1681,7 @@ Move_DETECT: waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 9, RGB_WHITE delay 18 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20 waitforvisualfinish delay 10 @@ -1706,15 +1706,15 @@ Frustration_Continue: blendoff end Frustration_Strongest: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 10 @@ -1722,65 +1722,65 @@ Frustration_Strongest: delay 5 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 30, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 goto Frustration_Continue Frustration_Strong: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5 delay 7 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 goto Frustration_Continue Frustration_Medium: - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 goto Frustration_Continue @@ -1790,7 +1790,7 @@ Frustration_Weak: delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 10, 2 delay 12 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 goto Frustration_Continue @@ -1799,14 +1799,14 @@ Move_SAFEGUARD: loadspritegfx ANIM_TAG_GUARD_RING monbg ANIM_ATK_PARTNER setalpha 8, 8 - playsewithpan SE_W208, SOUND_PAN_ATTACKER + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -1818,21 +1818,21 @@ Move_PAIN_SPLIT: createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 0 waitforvisualfinish createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 1 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 1 waitforvisualfinish createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 2 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 2 end @@ -1842,7 +1842,7 @@ Move_VICE_GRIP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 9 @@ -1860,7 +1860,7 @@ Move_GUILLOTINE: setalpha 12, 8 fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS waitbgfadein - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 16, RGB_BLACK @@ -1870,7 +1870,7 @@ Move_GUILLOTINE: createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 8, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -1884,10 +1884,10 @@ Move_PAY_DAY: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gCoinThrowSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 1152 waitforvisualfinish - playsewithpan SE_W006, SOUND_PAN_TARGET + playsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 @@ -1898,7 +1898,7 @@ Move_PAY_DAY: Move_OUTRAGE: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_W082, SOUND_PAN_ATTACKER, 8, 3 + loopsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER, 8, 3 createvisualtask AnimTask_BlendColorCycle, 2, 7, 2, 5, 3, 8, RGB(14, 13, 0) createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 5, 4 delay 0 @@ -1946,7 +1946,7 @@ Move_SPARK: loadspritegfx ANIM_TAG_SPARK_2 delay 0 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, ANIM_ATTACKER, 1, 0 delay 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, ANIM_ATTACKER, 1, 0 @@ -1955,7 +1955,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) delay 10 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, ANIM_ATTACKER, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, ANIM_ATTACKER, 1, 1 delay 0 @@ -1964,7 +1964,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) delay 20 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 7, 7, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 @@ -1978,7 +1978,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -1989,12 +1989,12 @@ Move_SPARK: Move_ATTRACT: loadspritegfx ANIM_TAG_RED_HEART - loopsewithpan SE_W204, SOUND_PAN_ATTACKER, 12, 3 + loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3 createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER delay 15 createsprite gRedHeartProjectileSpriteTemplate, ANIM_TARGET, 3, 20, -8 waitforvisualfinish - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16 @@ -2002,7 +2002,7 @@ Move_ATTRACT: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -128, -22 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 waitforvisualfinish - waitplaysewithpan SE_W213B, 0, 15 + waitplaysewithpan SE_M_ATTRACT2, 0, 15 createvisualtask AnimTask_HeartsBackground, 5 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 16, 256, 0 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 224, 240, 15 @@ -2024,7 +2024,7 @@ Move_GROWTH: end GrowthEffect: createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_ATTACKER, 0 return @@ -2037,12 +2037,12 @@ Move_WHIRLWIND: createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, ANIM_TARGET, 60, 4 createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, ANIM_TARGET, 60, 0 delay 5 - loopsewithpan SE_W104, SOUND_PAN_TARGET, 10, 4 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET, 10, 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 15, 1 delay 29 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 12, 6, 1, 5 delay 7 - playsewithpan SE_W081, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 8 waitforvisualfinish end @@ -2057,7 +2057,7 @@ Move_CONFUSE_RAY: createsprite gConfuseRayBallBounceSpriteTemplate, ANIM_TARGET, 2, 28, 0, 288 waitforvisualfinish setalpha 8, 8 - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gConfuseRayBallSpiralSpriteTemplate, ANIM_TARGET, 2, 0, -16 waitforvisualfinish delay 0 @@ -2082,10 +2082,10 @@ Move_LOCK_ON: Move_MEAN_LOOK: loadspritegfx ANIM_TAG_EYE monbg ANIM_DEF_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, RGB_BLACK - loopsewithpan SE_W109, SOUND_PAN_TARGET, 15, 4 - waitplaysewithpan SE_W043, SOUND_PAN_TARGET, 85 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET, 15, 4 + waitplaysewithpan SE_M_LEER, SOUND_PAN_TARGET, 85 createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_BLACK @@ -2098,20 +2098,20 @@ Move_ROCK_THROW: loadspritegfx ANIM_TAG_ROCKS createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 20, 1 delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -15, 1, -10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 23, 2, 10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish end @@ -2120,16 +2120,16 @@ Move_ROCK_SLIDE: monbg ANIM_DEF_PARTNER createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 delay 2 @@ -2141,28 +2141,28 @@ Move_ROCK_SLIDE: RockSlideRocks: createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 28, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -10, 1, -5, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 10, 0, 6, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 24, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -32, 2, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 30, 2, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 return @@ -2175,7 +2175,7 @@ Move_THIEF: setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 8, 1 waitforvisualfinish @@ -2205,22 +2205,22 @@ Move_BUBBLE_BEAM: end BulbblebeamCreateBubbles: createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 return @@ -2231,14 +2231,14 @@ Move_ICY_WIND: createvisualtask AnimTask_BlendBattleAnimPal, 10, 11, 4, 0, 4, RGB_BLACK fadetobg BG_ICE waitbgfadeout - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 waitbgfadein waitforvisualfinish - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call IcyWindSwirlingSnowballs delay 5 call IcyWindSwirlingSnowballs - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET delay 55 call IceSpikesEffectLong waitforvisualfinish @@ -2263,12 +2263,12 @@ IcyWindSwirlingSnowballs: Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 @@ -2290,7 +2290,7 @@ Move_CONVERSION: monbgprio_28 ANIM_ATTACKER setalpha 16, 0 delay 0 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -24 @@ -2299,7 +2299,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -24 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -8 @@ -2308,7 +2308,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 8 @@ -2317,7 +2317,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 8 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 24 @@ -2326,7 +2326,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 24 delay 20 - playsewithpan SE_W112, SOUND_PAN_ATTACKER + playsewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_CONVERSION, 1, 1, RGB(31, 31, 13), 12, 0, 0 delay 6 createvisualtask AnimTask_ConversionAlphaBlend, 5 @@ -2342,7 +2342,7 @@ Move_CONVERSION_2: monbgprio_2A ANIM_TARGET setalpha 0, 16 delay 0 - playsewithpan SE_W112, SOUND_PAN_TARGET + playsewithpan SE_M_BARRIER, SOUND_PAN_TARGET createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -24, -24, 60 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, -24, 65 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, -24, 70 @@ -2361,21 +2361,21 @@ Move_CONVERSION_2: createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 24, 24, 135 createvisualtask AnimTask_Conversion2AlphaBlend, 5 delay 60 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -2387,14 +2387,14 @@ Move_ROLLING_KICK: monbg ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 6 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 delay 5 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish @@ -2406,7 +2406,7 @@ Move_ROLLING_KICK: Move_HEADBUTT: loadspritegfx ANIM_TAG_IMPACT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 @@ -2415,7 +2415,7 @@ Move_HEADBUTT: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish end @@ -2423,7 +2423,7 @@ Move_HORN_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 @@ -2433,7 +2433,7 @@ Move_HORN_ATTACK: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish end @@ -2451,14 +2451,14 @@ FuryAttackRight: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 8, 8, 10 waitforvisualfinish createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue FuryAttackLeft: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, -8, -8, 10 waitforvisualfinish createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue Move_HORN_DRILL: @@ -2472,47 +2472,47 @@ HornDrillContinue: waitbgfadein setalpha 12, 8 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 12 waitforvisualfinish - playse SE_BAN + playse SE_BANG createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish @@ -2535,15 +2535,15 @@ Move_THRASH: createvisualtask AnimTask_ThrashMoveMonVertical, 2 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 3 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 8, 0, 16, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET end Move_SING: @@ -2551,7 +2551,7 @@ Move_SING: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_W047, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SING, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 0, 12 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 12 @@ -2590,7 +2590,7 @@ Move_LOW_KICK: delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end @@ -2598,7 +2598,7 @@ Move_LOW_KICK: Move_EARTHQUAKE: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 - playsewithpan SE_W089, 0 + playsewithpan SE_M_EARTHQUAKE, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 delay 16 @@ -2609,7 +2609,7 @@ Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 - playsewithpan SE_W089, SOUND_PAN_TARGET + playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 call FissureDirtPlumeFar delay 15 @@ -2637,7 +2637,7 @@ FissureDirtPlumeFar: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return FissureDirtPlumeClose: @@ -2645,7 +2645,7 @@ FissureDirtPlumeClose: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return Move_DIG: @@ -2684,7 +2684,7 @@ DigUnleash: delay 16 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 - playsewithpan SE_W025B, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER clearmonbg ANIM_ATTACKER goto DigEnd DigThrowDirt: @@ -2692,16 +2692,16 @@ DigThrowDirt: createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 return Move_MEDITATE: call SetPsychicBackground createvisualtask AnimTask_MeditateStretchAttacker, 2 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish call UnsetPsychicBackground end @@ -2711,15 +2711,15 @@ Move_AGILITY: setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 4, 4 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 10 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -2733,11 +2733,11 @@ Move_QUICK_ATTACK: setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -2751,16 +2751,16 @@ Move_RAGE: setalpha 12, 8 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_ATTACKER, RGB_RED, 10, 0, 2 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, TRUE, 1, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET end @@ -2768,7 +2768,7 @@ Move_RAGE: Move_TELEPORT: call SetPsychicBackground createvisualtask AnimTask_Teleport, 2 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 15 call UnsetPsychicBackground waitforvisualfinish @@ -2778,23 +2778,23 @@ Move_DOUBLE_TEAM: createvisualtask AnimTask_DoubleTeam, 2 setalpha 12, 8 monbg ANIM_ATK_PARTNER - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 32 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 24 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -2804,7 +2804,7 @@ Move_DOUBLE_TEAM: Move_MINIMIZE: setalpha 10, 8 createvisualtask AnimTask_Minimize, 2 - loopsewithpan SE_W107, SOUND_PAN_ATTACKER, 34, 3 + loopsewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 34, 3 waitforvisualfinish blendoff end @@ -2813,11 +2813,11 @@ Move_METRONOME: loadspritegfx ANIM_TAG_FINGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 100 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gMetronomeFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 24 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 waitforvisualfinish end @@ -2832,7 +2832,7 @@ SkullBashSetUp: goto SkullBashEnd SkullBashSetUpHeadDown: createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 waitforvisualfinish @@ -2842,14 +2842,14 @@ SkullBashSetUpHeadDown: SkullBashAttack: loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SkullBashPosition, 2, 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - playse SE_BAN + playse SE_BANG createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 - loopsewithpan SE_W025B, SOUND_PAN_TARGET, 8, 3 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 8, 3 waitforvisualfinish createvisualtask AnimTask_SkullBashPosition, 2, 1 goto SkullBashEnd @@ -2859,9 +2859,9 @@ Move_AMNESIA: call SetPsychicBackground delay 8 createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 54 - loopsewithpan SE_W118, SOUND_PAN_ATTACKER, 16, 3 + loopsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, 16, 3 waitforvisualfinish call UnsetPsychicBackground end @@ -2869,18 +2869,18 @@ Move_AMNESIA: Move_KINESIS: loadspritegfx ANIM_TAG_ALERT loadspritegfx ANIM_TAG_BENT_SPOON - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createsprite gBentSpoonSpriteTemplate, ANIM_ATTACKER, 20 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1 - loopsewithpan SE_W109, SOUND_PAN_ATTACKER, 21, 2 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER, 21, 2 delay 60 - playsewithpan SE_W146, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER delay 30 - loopsewithpan SE_W146, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER, 20, 2 delay 70 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish call UnsetPsychicBackground end @@ -2889,14 +2889,14 @@ Move_GLARE: loadspritegfx ANIM_TAG_SMALL_RED_EYE loadspritegfx ANIM_TAG_EYE_SPARKLE createvisualtask AnimTask_GlareEyeDots, 5, 0 - playsewithpan SE_W060B, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 5, 1, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 createvisualtask AnimTask_ScaryFace, 5 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER delay 2 createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE waitforvisualfinish @@ -2906,12 +2906,12 @@ Move_GLARE: Move_BARRAGE: loadspritegfx ANIM_TAG_RED_BALL createvisualtask AnimTask_BarrageBall, 3 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 2 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 end Move_SKY_ATTACK: @@ -2930,7 +2930,7 @@ SkyAttackSetUpAgainstOpponent: delay 12 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 8, 0, RGB_BLACK createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 - loopsewithpan SE_W287, SOUND_PAN_ATTACKER, 4, 8 + loopsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER, 4, 8 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 15, RGB_WHITE delay 20 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 15, 0, RGB_WHITE @@ -2946,7 +2946,7 @@ SkyAttackSetUpAgainstPartner: delay 12 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 8, 0, RGB_BLACK createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 15, RGB_WHITE delay 20 @@ -2966,11 +2966,11 @@ SkyAttackUnleash: delay 4 createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 waitforvisualfinish - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W327, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 delay 14 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 delay 2 @@ -2981,7 +2981,7 @@ SkyAttackUnleash: goto SkyAttackEnd Move_FLASH: - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_Flash, 2 waitforvisualfinish end @@ -2989,7 +2989,7 @@ Move_FLASH: Move_SPLASH: createvisualtask AnimTask_Splash, 2, 0, 3 delay 8 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 3 waitforvisualfinish end @@ -2997,7 +2997,7 @@ Move_ACID_ARMOR: monbg ANIM_ATTACKER setalpha 15, 0 createvisualtask AnimTask_AcidArmor, 2, ANIM_ATTACKER - playsewithpan SE_W151, SOUND_PAN_ATTACKER + playsewithpan SE_M_ACID_ARMOR, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -3013,7 +3013,7 @@ Move_SHARPEN: Move_SUPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 1, 0, 20, 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 48, 1 createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB(31, 6, 1), 12, 4, 1 @@ -3022,7 +3022,7 @@ Move_SUPER_FANG: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 8 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB(31, 2, 2), 14, 0x7FFF, 14 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 7, 12, 1 @@ -3033,11 +3033,11 @@ Move_SUPER_FANG: Move_SLASH: loadspritegfx ANIM_TAG_SLASH createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 4 createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish end @@ -3049,11 +3049,11 @@ Move_STRUGGLE: createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 2 - loopsewithpan SE_W029, SOUND_PAN_ATTACKER, 12, 4 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 12, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -3067,7 +3067,7 @@ Move_SKETCH: waitforvisualfinish clearmonbg ANIM_TARGET createvisualtask AnimTask_Splash, 2, 0, 2 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 2 end Move_NIGHTMARE: @@ -3077,7 +3077,7 @@ Move_NIGHTMARE: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_NightmareClone, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 40, 1 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg @@ -3086,7 +3086,7 @@ Move_NIGHTMARE: NightmareInContest: createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB_WHITE, 10, 2, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 32, 1 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3097,11 +3097,11 @@ Move_FLAIL: monbg ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FlailMovement, 2, ANIM_ATTACKER - loopsewithpan SE_W029, SOUND_PAN_ATTACKER, 8, 2 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 8, 2 waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -3109,12 +3109,12 @@ Move_FLAIL: Move_SPITE: fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein monbg ANIM_DEF_PARTNER createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 6, 0, 8, RGB_WHITE createvisualtask AnimTask_SpiteTargetShadow, 2 - loopsewithpan SE_W060, SOUND_PAN_TARGET, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish restorebg waitbgfadein @@ -3135,11 +3135,11 @@ MachPunchContinue: delay 0 setalpha 9, 8 createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB(8, 9, 28), 10 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -3160,13 +3160,13 @@ Move_FORESIGHT: setalpha 16, 0 createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET delay 17 - loopsewithpan SE_W166, SOUND_PAN_TARGET, 16, 4 + loopsewithpan SE_M_SKETCH, SOUND_PAN_TARGET, 16, 4 delay 48 delay 24 - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET delay 10 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 2, 1 - playsewithpan SE_W197, SOUND_PAN_TARGET + playsewithpan SE_M_DETECT, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER @@ -3175,16 +3175,16 @@ Move_FORESIGHT: Move_DESTINY_BOND: loadspritegfx ANIM_TAG_WHITE_SHADOW fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 48 - playsewithpan SE_W109, SOUND_PAN_ATTACKER + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) delay 24 createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3194,7 +3194,7 @@ Move_DESTINY_BOND: Move_ENDURE: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED @@ -3221,13 +3221,13 @@ Move_CHARM: loadspritegfx ANIM_TAG_MAGENTA_HEART createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish end @@ -3242,7 +3242,7 @@ Move_ROLLOUT: waitforvisualfinish createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -3252,44 +3252,44 @@ Move_FALSE_SWIPE: loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_IMPACT createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 16 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 48 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 64 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 80 delay 2 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end Move_SWAGGER: loadspritegfx ANIM_TAG_BREATH loadspritegfx ANIM_TAG_ANGER createvisualtask AnimTask_GrowAndShrink, 2 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish delay 24 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish end @@ -3300,14 +3300,14 @@ Move_MILK_DRINK: monbg ANIM_TARGET createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2 delay 40 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_W208, SOUND_PAN_ATTACKER + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_TARGET call HealingEffect2 @@ -3324,12 +3324,12 @@ MagnitudeEnd: MagnitudeRegular: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 10 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd MagnitudeIntense: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 10 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 delay 16 @@ -3342,15 +3342,15 @@ Move_RAPID_SPIN: monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -3364,7 +3364,7 @@ Move_MOONLIGHT: waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 - playsewithpan SE_W236, 0 + playsewithpan SE_M_MOONLIGHT, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, -12, 0 delay 30 @@ -3393,7 +3393,7 @@ ExtremeSpeedContinue: createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein createvisualtask AnimTask_AttackerStretchAndDisappear, 2 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 3 waitforvisualfinish delay 1 createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 @@ -3402,19 +3402,19 @@ ExtremeSpeedContinue: delay 18 createvisualtask AnimTask_ExtremeSpeedImpact, 2 delay 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, -12, 3 delay 10 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 12, 3 delay 10 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 3 waitforvisualfinish createvisualtask AnimTask_SpeedDust, 2 delay 10 createvisualtask AnimTask_ExtremeSpeedMonReappear, 2 - loopsewithpan SE_W104, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish restorebg waitbgfadeout @@ -3436,19 +3436,19 @@ Move_UPROAR: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 29, -12, 0 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -12, -29, 1 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 12, -29, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -29, -12, 0 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, -24, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, -24, 0 waitforvisualfinish @@ -3460,7 +3460,7 @@ Move_HEAT_WAVE: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FLYING_DIRT, 0, 6, 6, RGB_RED createvisualtask AnimTask_LoadSandstormBackground, 5, TRUE createvisualtask AnimTask_BlendBackground, 6, 6, RGB_RED - panse_1B SE_W257, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HEAT_WAVE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 4 createvisualtask AnimTask_MoveHeatWaveTargets, 5 delay 12 @@ -3486,7 +3486,7 @@ Move_HAIL: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 0, 6, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_Hail, 5 - loopsewithpan SE_W258, 0, 8, 10 + loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 6, 0, RGB_BLACK end @@ -3498,10 +3498,10 @@ Move_TORMENT: waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end Move_MEMENTO: @@ -3510,9 +3510,9 @@ Move_MEMENTO: createvisualtask AnimTask_InitMementoShadow, 2 delay 1 createvisualtask AnimTask_MoveAttackerMementoShadow, 5 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER delay 48 - playsewithpan SE_W060B, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask sub_8114470, 2 delay 12 @@ -3520,7 +3520,7 @@ Move_MEMENTO: delay 1 monbg_22 ANIM_TARGET createvisualtask AnimTask_MoveTargetMementoShadow, 5 - playsewithpan SE_W060, SOUND_PAN_TARGET + playsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET waitforvisualfinish clearmonbg_23 ANIM_TARGET delay 1 @@ -3532,7 +3532,7 @@ Move_FACADE: loadspritegfx ANIM_TAG_SWEAT_DROP createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 3 createvisualtask AnimTask_FacadeColorBlend, 2, ANIM_ATTACKER, 72 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 24, 3 end Move_SMELLING_SALT: @@ -3542,22 +3542,22 @@ Move_SMELLING_SALT: createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 1, 2 delay 32 createvisualtask AnimTask_SmellingSaltsSquish, 3, ANIM_TARGET, 2 - loopsewithpan SE_W003, SOUND_PAN_TARGET, 12, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 12, 2 waitforvisualfinish delay 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 2 createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 8, 3 - loopsewithpan SE_W207B, SOUND_PAN_TARGET, 16, 3 + loopsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET, 16, 3 end Move_FOLLOW_ME: loadspritegfx ANIM_TAG_FINGER createsprite gFollowMeFingerSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 18 - playsewithpan SE_W213, SOUND_PAN_ATTACKER + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER delay 71 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 end Move_CHARGE: @@ -3569,26 +3569,26 @@ Move_CHARGE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 60, 2, 12 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER createsprite gGrowingChargeOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 25 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 15 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 10 delay 6 - loopsewithpan SE_W268, SOUND_PAN_ATTACKER, 6, 5 + loopsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER, 6, 5 waitforvisualfinish createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER @@ -3600,19 +3600,19 @@ Move_TAUNT: loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_ANGER createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 45 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gTauntFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 4 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 16, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 16, 2 waitforvisualfinish delay 8 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end Move_HELPING_HAND: @@ -3621,13 +3621,13 @@ Move_HELPING_HAND: createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 1 delay 19 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 14 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 20 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 3, 0, 10, 1 createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATK_PARTNER, RGB_YELLOW, 12, 1, 1 end @@ -3637,16 +3637,16 @@ Move_ASSIST: createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 112, -16, 140, 128, 36 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 208, 128, -16, 48, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, -16, 112, 256, -16, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 108, 128, 84, -16, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, -16, 56, 256, 56, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 end Move_SUPERPOWER: @@ -3657,10 +3657,10 @@ Move_SUPERPOWER: monbgprio_28 ANIM_ATTACKER setalpha 12, 8 createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W089, 0 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 delay 40 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 delay 8 @@ -3673,10 +3673,10 @@ Move_SUPERPOWER: createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, ANIM_ATTACKER - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 16 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 16, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -3689,10 +3689,10 @@ Move_RECYCLE: setalpha 0, 16 delay 1 createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 24, 3 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 2, 1 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -3712,19 +3712,19 @@ BrickBreakNormal: delay 4 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, RGB_BLACK delay 37 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish @@ -3738,25 +3738,25 @@ BrickBreakShatteredWall: createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, RGB_BLACK delay 37 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_W280, SOUND_PAN_TARGET + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish @@ -3766,33 +3766,33 @@ BrickBreakShatteredWall: Move_YAWN: loadspritegfx ANIM_TAG_PINK_CLOUD createvisualtask AnimTask_DeepInhale, 2, ANIM_ATTACKER - playsewithpan SE_W281, SOUND_PAN_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 2 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 1 delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 0 waitforvisualfinish createvisualtask AnimTask_DeepInhale, 2, ANIM_TARGET - playsewithpan SE_W281, SOUND_PAN_TARGET + playsewithpan SE_M_YAWN, SOUND_PAN_TARGET end Move_ENDEAVOR: loadspritegfx ANIM_TAG_SWEAT_DROP loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 2 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 24, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 2 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 21, 0), 12, 1, 2 delay 6 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 24 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, ANIM_TARGET, 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end Move_ERUPTION: @@ -3800,10 +3800,10 @@ Move_ERUPTION: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 2, 0, 4, RGB_RED waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_W153, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_W153, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish delay 30 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 @@ -3815,7 +3815,7 @@ Move_ERUPTION: delay 22 createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 - loopsewithpan SE_W088, SOUND_PAN_TARGET, 16, 12 + loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, RGB_RED end @@ -3825,7 +3825,7 @@ Move_SKILL_SWAP: call SetPsychicBackground createvisualtask AnimTask_SkillSwap, 3, ANIM_TARGET createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 3, 1 - loopsewithpan SE_W179, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER, 24, 3 delay 16 createvisualtask AnimTask_SkillSwap, 3, ANIM_ATTACKER createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 3, 1 @@ -3840,12 +3840,12 @@ Move_IMPRISON: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_ImprisonOrbs, 5 delay 8 - loopsewithpan SE_W030, SOUND_PAN_ATTACKER, 8, 5 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER, 8, 5 waitforvisualfinish delay 4 createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 - playsewithpan SE_W063, SOUND_PAN_ATTACKER + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBackground end @@ -3855,13 +3855,13 @@ Move_GRUDGE: monbg ANIM_ATTACKER monbgprio_29 fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_GrudgeFlames, 3 - loopsewithpan SE_W052, SOUND_PAN_ATTACKER, 16, 4 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 16, 4 delay 10 delay 80 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3875,7 +3875,7 @@ Move_CAMOUFLAGE: createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 3, 0, 14 delay 16 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 - playsewithpan SE_W185, SOUND_PAN_ATTACKER + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER waitforvisualfinish delay 8 createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 0, 0, 0 @@ -3894,7 +3894,7 @@ Move_TAIL_GLOW: waitforvisualfinish createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, ANIM_ATTACKER delay 18 - loopsewithpan SE_W234, SOUND_PAN_ATTACKER, 16, 6 + loopsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER, 16, 6 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER @@ -3911,7 +3911,7 @@ Move_LUSTER_PURGE: waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W076, SOUND_PAN_ATTACKER + playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA @@ -3920,22 +3920,22 @@ Move_LUSTER_PURGE: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, RGB_WHITEALPHA createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 5, 14 @@ -3949,14 +3949,14 @@ Move_MIST_BALL: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WHITE_FEATHER delay 0 - playsewithpan SE_W081, SOUND_PAN_ATTACKER + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER createsprite gMistBallSpriteTemplate, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 waitforvisualfinish - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 10, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, RGB(23, 16, 31), 16, 0x7FFF, 16 delay 0 - playsewithpan SE_W114, 0 + playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_LoadMistTiles, 5 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 3, 0, 16, RGB_WHITE delay 8 @@ -3969,7 +3969,7 @@ Move_FEATHER_DANCE: loadspritegfx ANIM_TAG_WHITE_FEATHER monbg ANIM_DEF_PARTNER monbgprio_29 - playsewithpan SE_W080, SOUND_PAN_TARGET + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_TARGET delay 0 createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 delay 6 @@ -3992,19 +3992,19 @@ Move_TEETER_DANCE: loadspritegfx ANIM_TAG_DUCK createvisualtask AnimTask_TeeterDanceMovement, 5 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, -8, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 2, 8, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER end Move_MUD_SPORT: @@ -4013,52 +4013,52 @@ Move_MUD_SPORT: delay 24 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -4, -16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 4, -12 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -3, -12 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 5, -14 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -5, -18 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 3, -14 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 220, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 60, 100 - waitplaysewithpan SE_W145B, 0, 25 + waitplaysewithpan SE_M_BUBBLE2, 0, 25 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 140, 55 - waitplaysewithpan SE_W145B, 0, 14 + waitplaysewithpan SE_M_BUBBLE2, 0, 14 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 180, 50 - waitplaysewithpan SE_W145B, 0, 10 + waitplaysewithpan SE_M_BUBBLE2, 0, 10 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 20, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 90, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 160, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 30, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 120, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 200, 40 - waitplaysewithpan SE_W145B, 0, 10 + waitplaysewithpan SE_M_BUBBLE2, 0, 10 end Move_NEEDLE_ARM: loadspritegfx ANIM_TAG_GREEN_SPIKE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - loopsewithpan SE_W030, SOUND_PAN_TARGET, 2, 16 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 2, 16 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, -32, 16 delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 22, -22, 16 @@ -4086,7 +4086,7 @@ Move_NEEDLE_ARM: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 0, -24, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 17, -17, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 24, 0, 10 @@ -4100,7 +4100,7 @@ Move_NEEDLE_ARM: Move_SLACK_OFF: loadspritegfx ANIM_TAG_BLUE_STAR createvisualtask AnimTask_SlackOffSquish, 2, ANIM_ATTACKER - playsewithpan SE_W281, SOUND_PAN_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish call HealingEffect waitforvisualfinish @@ -4117,18 +4117,18 @@ Move_CRUSH_CLAW: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 12 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_TARGET end Move_AROMATHERAPY: - playsewithpan SE_W080, 0 + playsewithpan SE_M_PETAL_DANCE, 0 loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 @@ -4152,15 +4152,15 @@ Move_AROMATHERAPY: delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 7, 0, RGB(13, 31, 12) delay 1 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 1 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 43, 3, 10, 0, RGB(13, 31, 12) createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 waitforvisualfinish @@ -4173,7 +4173,7 @@ Move_FAKE_TEARS: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0, 4, 4, RGB(12, 11, 31) waitforvisualfinish createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 12, 4 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4 delay 8 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 @@ -4199,7 +4199,7 @@ Move_AIR_CUTTER: delay 0 createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 6 * 256, 2, 128 @ 6 * 256 == Q_8_8(6) waitforvisualfinish - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gAirCutterSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0, 2 delay 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -4215,15 +4215,15 @@ Move_ODOR_SLEUTH: createvisualtask AnimTask_OdorSleuthMovement, 5 delay 24 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_TARGET delay 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_WHITEALPHA, 16, -1, 0 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER end Move_GRASS_WHISTLE: @@ -4232,7 +4232,7 @@ Move_GRASS_WHISTLE: waitforvisualfinish createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_W320, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GRASSWHISTLE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 1, 0 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 0 @@ -4269,7 +4269,7 @@ Move_TICKLE: waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 16, 0, RGB_BLACK waitforvisualfinish @@ -4277,7 +4277,7 @@ Move_TICKLE: createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, ANIM_ATTACKER delay 12 createvisualtask AnimTask_RockMonBackAndForth, 3, ANIM_TARGET, 6, 2 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 8, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 8, 8 waitforvisualfinish end @@ -4287,13 +4287,13 @@ Move_WATER_SPOUT: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_WaterSpoutLaunch, 5 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W291, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER waitforvisualfinish delay 16 createvisualtask AnimTask_WaterSpoutRain, 5 - playsewithpan SE_W057, SOUND_PAN_TARGET + playsewithpan SE_M_SURF, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER blendoff end @@ -4306,11 +4306,11 @@ Move_SHADOW_PUNCH: monbg ANIM_ATK_PARTNER setalpha 9, 8 createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB_BLACK, 13 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -4325,15 +4325,15 @@ Move_EXTRASENSORY: setalpha 12, 8 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 0 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 1 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_TransparentCloneGrowAndShrink, 5, ANIM_ATTACKER createvisualtask AnimTask_ExtrasensoryDistortion, 5, 2 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER @@ -4347,18 +4347,18 @@ Move_AERIAL_ACE: createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff end Move_IRON_DEFENSE: - loopsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, RGB_WHITEALPHA, 14, -1, 0 waitforvisualfinish @@ -4367,7 +4367,7 @@ Move_IRON_DEFENSE: Move_BLOCK: loadspritegfx ANIM_TAG_X_SIGN createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET end Move_HOWL: @@ -4383,10 +4383,10 @@ Move_HOWL: Move_BULK_UP: loadspritegfx ANIM_TAG_BREATH createvisualtask AnimTask_GrowAndShrink, 2 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish end @@ -4395,16 +4395,16 @@ Move_COVET: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - loopsewithpan SE_W146, SOUND_PAN_TARGET, 4, 3 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 4, 3 end Move_VOLT_TACKLE: @@ -4416,28 +4416,28 @@ Move_VOLT_TACKLE: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 0, 8, RGB_BLACK waitforvisualfinish createsprite gVoltTackleOrbSlideSpriteTemplate, ANIM_ATTACKER, 1 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 8 createvisualtask AnimTask_VoltTackleBolt, 5, 0 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 1 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 2 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 3 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 4 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, -16 @@ -4445,7 +4445,7 @@ Move_VOLT_TACKLE: createvisualtask AnimTask_VoltTackleAttackerReappear, 5 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 9, 1 - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 @@ -4458,13 +4458,13 @@ Move_WATER_SPORT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB createvisualtask AnimTask_WaterSport, 5 delay 8 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 end Move_CALM_MIND: @@ -4475,13 +4475,13 @@ Move_CALM_MIND: createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, TRUE waitforvisualfinish createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, FALSE waitforvisualfinish @@ -4496,20 +4496,20 @@ Move_LEAF_BLADE: createvisualtask AnimTask_LeafBlade, 5 delay 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET waitforvisualfinish monbg ANIM_TARGET setalpha 12, 8 delay 12 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 18, 1 createsprite gCrossImpactSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 36 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -4521,7 +4521,7 @@ Move_DRAGON_DANCE: monbgprio_28 ANIM_ATTACKER delay 1 createvisualtask AnimTask_DragonDanceWaver, 5 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 @@ -4531,9 +4531,9 @@ Move_DRAGON_DANCE: createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 170 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 213 delay 30 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 @@ -4549,7 +4549,7 @@ Move_SHOCK_WAVE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 20, 0, 2 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 12 createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 30 @@ -4557,7 +4557,7 @@ Move_SHOCK_WAVE: delay 12 waitforvisualfinish createvisualtask AnimTask_ShockWaveLightning, 5 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1 createvisualtask AnimTask_BlendBattleAnimPal, 5, 1, 3, 16, 0, RGB_WHITE @@ -4570,7 +4570,7 @@ Move_SHOCK_WAVE: end Move_HARDEN: - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish end @@ -4582,27 +4582,27 @@ Move_BELLY_DRUM: waitforvisualfinish call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 1, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 3, 3, 128 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 128 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 1, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish @@ -4623,11 +4623,11 @@ Move_MIND_READER: loadspritegfx ANIM_TAG_OPENING_EYE loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg ANIM_DEF_PARTNER - playsewithpan SE_W109, SOUND_PAN_TARGET + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET createvisualtask AnimTask_BlendColorCycle, 2, 1, 1, 2, 0, 10, RGB_BLACK call MindReaderEyeSpikeEffect waitforvisualfinish @@ -4667,7 +4667,7 @@ Move_ICE_PUNCH: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, RGB_BLACK createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 9, RGB(12, 26, 31) delay 20 - playsewithpan SE_W081, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 0 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 64 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 128 @@ -4680,7 +4680,7 @@ Move_ICE_PUNCH: delay 17 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, -10, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 3, 1 waitforvisualfinish @@ -4696,7 +4696,7 @@ Move_ICE_PUNCH: end Move_REST: - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER loadspritegfx ANIM_TAG_LETTER_Z createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 20 @@ -4713,7 +4713,7 @@ Move_CONFUSION: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish - playsewithpan SE_W048, SOUND_PAN_TARGET + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -4730,7 +4730,7 @@ Move_PSYCHIC: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB(31, 23, 0) waitforvisualfinish - loopsewithpan SE_W048, SOUND_PAN_TARGET, 10, 3 + loopsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 10, 3 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -4749,10 +4749,10 @@ FutureSightContinue: end FutureSight: monbg ANIM_ATK_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish @@ -4769,7 +4769,7 @@ Move_THUNDER: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK delay 16 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -36 delay 1 @@ -4778,12 +4778,12 @@ Move_THUNDER: createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, 12 delay 20 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 5 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4798,7 +4798,7 @@ Move_THUNDER: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -32 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 @@ -4826,7 +4826,7 @@ Move_THUNDER_PUNCH: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK waitforvisualfinish - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 delay 1 @@ -4838,7 +4838,7 @@ Move_THUNDER_PUNCH: delay 1 createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, 16 delay 1 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 @@ -4854,7 +4854,7 @@ Move_THUNDER_PUNCH: Move_SACRED_FIRE: loadspritegfx ANIM_TAG_FIRE loadspritegfx ANIM_TAG_FIRE_PLUME - loopsewithpan SE_W221, SOUND_PAN_ATTACKER, 7, 5 + loopsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER, 7, 5 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 delay 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 @@ -4875,13 +4875,13 @@ Move_SACRED_FIRE: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 @@ -4889,7 +4889,7 @@ Move_SACRED_FIRE: waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 @@ -4912,7 +4912,7 @@ Move_SCRATCH: loadspritegfx ANIM_TAG_SCRATCH monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -4925,7 +4925,7 @@ Move_DRAGON_BREATH: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 7, 7 + loopsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER, 7, 7 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 @@ -5007,7 +5007,7 @@ Move_SNORE: blendoff end SnoreEffect: - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 @@ -5020,7 +5020,7 @@ Move_LIGHT_SCREEN: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_GREEN_LIGHT_WALL delay 10 call SpecialScreenSparkle @@ -5049,7 +5049,7 @@ Move_MIRROR_COAT: setalpha 0, 16 createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_RED_LIGHT_WALL delay 10 - playsewithpan SE_W115, SOUND_PAN_ATTACKER + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER call SpecialScreenSparkle waitforvisualfinish delay 1 @@ -5060,7 +5060,7 @@ Move_REFLECT: loadspritegfx ANIM_TAG_SPARKLE_4 loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_BLUE_LIGHT_WALL delay 20 createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, ANIM_ATTACKER, 1 @@ -5076,7 +5076,7 @@ Move_REFLECT: Move_BARRIER: loadspritegfx ANIM_TAG_GRAY_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W112, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_GRAY_LIGHT_WALL waitforvisualfinish delay 1 @@ -5090,28 +5090,28 @@ Move_BUBBLE: setalpha 12, 8 delay 1 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 waitforvisualfinish call WaterBubblesEffectLong waitforvisualfinish @@ -5124,7 +5124,7 @@ Move_SMOG: monbg ANIM_DEF_PARTNER monbgprio_29 setalpha 12, 8 - loopsewithpan SE_W054, SOUND_PAN_TARGET, 17, 10 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 17, 10 call SmogCloud call SmogCloud call SmogCloud @@ -5133,7 +5133,7 @@ Move_SMOG: call SmogCloud call SmogCloud delay 120 - loopsewithpan SE_W092, SOUND_PAN_TARGET, 18, 2 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 18, 2 createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(26, 0, 26) delay 10 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 15, 1 @@ -5152,7 +5152,7 @@ Move_FAINT_ATTACK: fadetobg BG_DARK waitbgfadein delay 0 - playsewithpan SE_W185, SOUND_PAN_ATTACKER + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 waitforvisualfinish @@ -5163,7 +5163,7 @@ Move_FAINT_ATTACK: setalpha 12, 8 monbg ANIM_TARGET delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 9, 1 waitforvisualfinish @@ -5187,7 +5187,7 @@ Move_SAND_ATTACK: monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W028, SOUND_PAN_ATTACKER + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5212,7 +5212,7 @@ SandAttackDirt: Move_MUD_SLAP: loadspritegfx ANIM_TAG_MUD_SAND - playsewithpan SE_W028, SOUND_PAN_ATTACKER + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5236,14 +5236,14 @@ MudSlapMud: Move_DRAGON_RAGE: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_FIRE_PLUME - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 15, 0, 0, 4 waitforvisualfinish createsprite gDragonRageFireSpitSpriteTemplate, ANIM_TARGET, 2, 30, 15, 0, 10, 10 waitforvisualfinish - loopsewithpan SE_W172B, SOUND_PAN_TARGET, 11, 3 + loopsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET, 11, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 @@ -5267,7 +5267,7 @@ Move_DRAGON_RAGE: Move_RAIN_DANCE: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_W240, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 @@ -5284,7 +5284,7 @@ Move_BITE: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 delay 10 @@ -5303,14 +5303,14 @@ Move_CRUNCH: fadetobg BG_DARK waitbgfadein setalpha 12, 8 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 waitforvisualfinish - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 @@ -5329,7 +5329,7 @@ Move_CLAMP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 @@ -5348,7 +5348,7 @@ Move_ICE_BEAM: loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, RGB_BLACK waitforvisualfinish - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W062B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 delay 1 @@ -5386,7 +5386,7 @@ IceBeamCreateCrystals: return Move_WITHDRAW: - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createvisualtask AnimTask_Withdraw, 5 waitforvisualfinish end @@ -5395,7 +5395,7 @@ Move_AURORA_BEAM: loadspritegfx ANIM_TAG_RAINBOW_RINGS fadetobg BG_AURORA waitbgfadein - playsewithpan SE_W062, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER setarg 7, 0 createvisualtask AnimTask_RotateAuroraRingColors, 10, 130 call AuroraBeamCreateRings @@ -5404,7 +5404,7 @@ Move_AURORA_BEAM: call AuroraBeamCreateRings call AuroraBeamCreateRings setarg 7, 0xFFFF - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W062B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 40, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings @@ -5437,7 +5437,7 @@ SolarBeamSetUp: monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 1, 4, 0, 11, RGB(31, 31, 11) - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call SolarBeamAbsorbEffect waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -5475,7 +5475,7 @@ SolarBeamAbsorbEffect: return SolarBeamUnleash: call SetSolarbeamBg - panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_CreateSmallSolarbeamOrbs, 5 createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 @@ -5527,10 +5527,10 @@ BlizzardContinue: createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein waitforvisualfinish - panse_1B SE_W059, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_BLIZZARD, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call BlizzardIceCrystals call BlizzardIceCrystals - playsewithpan SE_W059B, SOUND_PAN_TARGET + playsewithpan SE_M_BLIZZARD2, SOUND_PAN_TARGET waitforvisualfinish call IceCrystalEffectLong waitforvisualfinish @@ -5573,10 +5573,10 @@ Move_POWDER_SNOW: monbg ANIM_DEF_PARTNER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 0, 3, RGB_BLACK waitforvisualfinish - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call PowderSnowSnowballs call PowderSnowSnowballs - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish waitsound call IceCrystalEffectLong @@ -5610,7 +5610,7 @@ Move_HYDRO_PUMP: setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 - panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call HydroPumpBeams call HydroPumpBeams @@ -5655,7 +5655,7 @@ Move_SIGNAL_BEAM: loadspritegfx ANIM_TAG_DUCK createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 25, 1 delay 6 - panse_1B SE_W062, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_1B SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call SignalBeamOrbs call SignalBeamOrbs @@ -5699,7 +5699,7 @@ Move_ABSORB: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5717,28 +5717,28 @@ Move_ABSORB: end AbsorbEffect: - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return @@ -5752,7 +5752,7 @@ Move_MEGA_DRAIN: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 8, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5770,35 +5770,35 @@ Move_MEGA_DRAIN: end MegaDrainAbsorbEffect: - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 @@ -5813,7 +5813,7 @@ Move_GIGA_DRAIN: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5831,42 +5831,42 @@ Move_GIGA_DRAIN: end GigaDrainAbsorbEffect: - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 @@ -5886,7 +5886,7 @@ Move_LEECH_LIFE: createsprite gLeechLifeNeedleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 12 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish @@ -5906,7 +5906,7 @@ Move_LEECH_LIFE: Move_SYNTHESIS: loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 16, RGB(27, 31, 18) - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 @@ -5928,22 +5928,22 @@ Move_TOXIC: end ToxicBubbles: createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -24, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 8, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -8, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 24, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 return Move_SLUDGE: loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 @@ -5970,19 +5970,19 @@ Move_SLUDGE_BOMB: createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 0, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -43, -12, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 16, -46, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -16, 44, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 0 waitsound waitforvisualfinish @@ -5990,7 +5990,7 @@ Move_SLUDGE_BOMB: waitforvisualfinish end SludgeBombProjectile: - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 delay 3 return @@ -5999,31 +5999,31 @@ Move_ACID: loadspritegfx ANIM_TAG_POISON_BUBBLE monbg ANIM_DEF_PARTNER createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 15 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_DEF_PARTNER, 2, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 20, 2, 2, 0, 12, RGB(30, 0, 31) createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -26, -24, 0, 15, 55 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 15, -27, 0, 15, 50 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -15, -17, 0, 10, 45 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 27, -22, 0, 15, 50 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -6034,14 +6034,14 @@ Move_BONEMERANG: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_ATTACKER + playsewithpan SE_M_BONEMERANG, SOUND_PAN_ATTACKER createsprite gBonemerangSpriteTemplate, ANIM_ATTACKER, 2 delay 20 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 5, 1 delay 17 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, -4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6054,13 +6054,13 @@ Move_BONE_CLUB: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_TARGET + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_BLACK, 10, 0, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6071,12 +6071,12 @@ Move_BONE_RUSH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_TARGET + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 5, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6085,15 +6085,15 @@ Move_BONE_RUSH: Move_SPIKES: loadspritegfx ANIM_TAG_SPIKES monbg ANIM_DEF_PARTNER - playsewithpan SE_W026, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 - playsewithpan SE_W026, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6103,7 +6103,7 @@ Move_MEGAHORN: loadspritegfx ANIM_TAG_HORN_HIT_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER jumpifcontest MegahornInContest fadetobg BG_DRILL waitbgfadeout @@ -6118,7 +6118,7 @@ MegahornContinue: delay 3 createsprite gMegahornHornSpriteTemplate, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 delay 4 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 4, 1, 4 waitforvisualfinish @@ -6148,13 +6148,13 @@ Move_GUST: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W016, SOUND_PAN_TARGET + playsewithpan SE_M_GUST, SOUND_PAN_TARGET createsprite gEllipticalGustSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 7, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6166,7 +6166,7 @@ Move_WING_ATTACK: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -6176,7 +6176,7 @@ Move_WING_ATTACK: delay 17 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 - loopsewithpan SE_W003, SOUND_PAN_TARGET, 5, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 5, 2 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -6186,7 +6186,7 @@ Move_WING_ATTACK: Move_PECK: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, ANIM_TARGET, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, ANIM_TARGET, 3 waitforvisualfinish @@ -6207,7 +6207,7 @@ Move_AEROBLAST: call AeroblastBeam waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6215,19 +6215,19 @@ Move_AEROBLAST: call UnsetSkyBg end AeroblastBeam: - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 delay 3 @@ -6240,18 +6240,18 @@ Move_WATER_GUN: monbgprio_28 ANIM_TARGET setalpha 12, 8 createsprite gWaterGunProjectileSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 8, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6263,7 +6263,7 @@ Move_CRABHAMMER: monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(13, 21, 31), 10, 0, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 @@ -6272,7 +6272,7 @@ Move_CRABHAMMER: waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 4 waitforvisualfinish - loopsewithpan SE_W152, SOUND_PAN_TARGET, 20, 3 + loopsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET, 20, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 8, 1 createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, ANIM_TARGET delay 4 @@ -6297,7 +6297,7 @@ Move_CRABHAMMER: Move_SURF: createvisualtask AnimTask_CreateSurfWave, 2, FALSE delay 24 - panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish end @@ -6309,7 +6309,7 @@ Move_FLAMETHROWER: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_W053, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_FLAMETHROWER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames @@ -6337,7 +6337,7 @@ FlamethrowerCreateFlames: @ Also used by Sandstorm weather Move_SANDSTORM: loadspritegfx ANIM_TAG_FLYING_DIRT - playsewithpan SE_W201, 0 + playsewithpan SE_M_SANDSTORM, 0 createvisualtask AnimTask_LoadSandstormBackground, 5, FALSE delay 16 createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 0 @@ -6362,7 +6362,7 @@ Move_WHIRLPOOL: setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(0, 13, 23) - playsewithpan SE_W250, SOUND_PAN_TARGET + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 50, 1 call WhirlpoolEffect call WhirlpoolEffect @@ -6397,19 +6397,19 @@ FlyEnd: end FlySetUp: - playsewithpan SE_W019, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 goto FlyEnd FlyUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20 delay 20 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6423,17 +6423,17 @@ BounceEnd: end BounceSetUp: - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER createsprite gBounceBallShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 goto BounceEnd BounceUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 delay 7 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 11, 1 waitforvisualfinish @@ -6447,10 +6447,10 @@ Move_KARATE_CHOP: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish @@ -6463,11 +6463,11 @@ Move_CROSS_CHOP: loadspritegfx ANIM_TAG_CROSS_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 @@ -6484,11 +6484,11 @@ Move_JUMP_KICK: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 3 createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 - playsewithpan SE_W026, SOUND_PAN_TARGET + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6505,10 +6505,10 @@ Move_HI_JUMP_KICK: createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 3 delay 2 createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 - playsewithpan SE_W026, SOUND_PAN_TARGET + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 delay 3 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 11, 1 @@ -6527,7 +6527,7 @@ Move_DOUBLE_KICK: setalpha 12, 8 createsprite gFistFootRandomPosSpriteTemplate, ANIM_ATTACKER, 3, 1, 20, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6538,7 +6538,7 @@ Move_TRIPLE_KICK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET jumpifmoveturn 0, TripleKickLeft jumpifmoveturn 1, TripleKickRight goto TripleKickCenter @@ -6574,26 +6574,26 @@ Move_DYNAMIC_PUNCH: delay 1 monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 delay 1 waitsound - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 5, 0, 28, 1 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6606,23 +6606,23 @@ Move_COUNTER: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 25, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -15, 18, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 15, 9, 8, 1, 0 delay 5 @@ -6636,13 +6636,13 @@ Move_VITAL_THROW: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 1, 2 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish @@ -6664,10 +6664,10 @@ Move_ROCK_SMASH: delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 8, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 @@ -6686,16 +6686,16 @@ Move_SUBMISSION: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 10 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 20 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 30 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 40 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 50 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 60 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 70 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 80 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 90 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 10 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 20 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 30 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 40 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 50 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 70 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 80 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 90 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, -18, 6, 6, 4 createvisualtask AnimTask_TranslateMonElliptical, 2, 1, 18, 6, 6, 4 call SubmissionHit @@ -6722,7 +6722,7 @@ Move_SUNNY_DAY: setalpha 13, 3 createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 1, 0, 6, RGB_WHITE waitforvisualfinish - panse_26 SE_W080, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_26 SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay @@ -6743,7 +6743,7 @@ Move_COTTON_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - loopsewithpan SE_W077, SOUND_PAN_TARGET, 18, 10 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 18, 10 call CreateCottonSpores call CreateCottonSpores call CreateCottonSpores @@ -6765,7 +6765,7 @@ Move_SPORE: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_SporeDoubleBattle, 2 - loopsewithpan SE_W077, SOUND_PAN_TARGET, 16, 11 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 16, 11 call CreateSpore call CreateSpore call CreateSpore @@ -6789,7 +6789,7 @@ Move_PETAL_DANCE: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W080, SOUND_PAN_ATTACKER + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 6, 3 createsprite gPetalDanceBigFlowerSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 8, 140 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, 16, -24, 8, 100 @@ -6811,7 +6811,7 @@ Move_PETAL_DANCE: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 5 delay 3 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish @@ -6829,7 +6829,7 @@ Move_RAZOR_LEAF: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_W077, SOUND_PAN_ATTACKER, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -1, -1, 15 @@ -6850,11 +6850,11 @@ Move_RAZOR_LEAF: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 20 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish @@ -6878,7 +6878,7 @@ Move_ANCIENT_POWER: createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 30, 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER delay 10 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 @@ -6888,7 +6888,7 @@ Move_ANCIENT_POWER: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 0, 0, 4 delay 3 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -6901,10 +6901,10 @@ Move_ANCIENT_POWER: Move_OCTAZOOKA: loadspritegfx ANIM_TAG_GRAY_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_W025B, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER createsprite gOctazookaBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 20, 0 waitforvisualfinish - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 @@ -6919,7 +6919,7 @@ Move_MIST: loadspritegfx ANIM_TAG_MIST_CLOUD monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_W054, SOUND_PAN_ATTACKER, 20, 15 + loopsewithpan SE_M_MIST, SOUND_PAN_ATTACKER, 20, 15 call MistCloud call MistCloud call MistCloud @@ -6941,7 +6941,7 @@ MistCloud: Move_HAZE: waitforvisualfinish - playsewithpan SE_W114, 0 + playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_HazeScrollingFog, 5 delay 30 createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x780, 2, 0, 16, RGB_BLACK @@ -6960,14 +6960,14 @@ Move_FIRE_PUNCH: createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 64 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 128 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 196 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 call FireSpreadEffect delay 4 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 9, 0, RGB_RED waitforvisualfinish @@ -6990,7 +6990,7 @@ Move_LEER: monbg ANIM_ATTACKER monbgprio_28 ANIM_ATTACKER setalpha 8, 8 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish @@ -7009,10 +7009,10 @@ Move_DREAM_EATER: loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W107, SOUND_PAN_TARGET + playsewithpan SE_M_MINIMIZE, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -7029,42 +7029,42 @@ Move_DREAM_EATER: call UnsetPsychicBackground end DreamEaterAbsorb: - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 @@ -7079,25 +7079,25 @@ Move_POISON_GAS: monbgprio_29 setalpha 12, 8 delay 0 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 - loopsewithpan SE_W054, SOUND_PAN_TARGET, 28, 6 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 28, 6 createvisualtask AnimTask_BlendColorCycle, 2, 4, 6, 2, 0, 12, RGB(26, 0, 26) waitforvisualfinish blendoff @@ -7110,7 +7110,7 @@ Move_BIND: goto BindWrap BindWrap: - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET call BindWrapSqueezeTarget call BindWrapSqueezeTarget waitforvisualfinish @@ -7126,9 +7126,9 @@ Move_WRAP: Move_PSYBEAM: loadspritegfx ANIM_TAG_GOLD_RING - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W060B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 call PsybeamRings call PsybeamRings createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, ANIM_TARGET @@ -7163,7 +7163,7 @@ Move_HYPNOSIS: call UnsetPsychicBackground end HypnosisRings: - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 delay 6 @@ -7171,10 +7171,10 @@ HypnosisRings: Move_PSYWAVE: loadspritegfx ANIM_TAG_BLUE_RING - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W100, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 call PsywaveRings call PsywaveRings createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 4, 0, 12, RGB(31, 18, 31) @@ -7196,7 +7196,7 @@ PsywaveRings: Move_ZAP_CANNON: loadspritegfx ANIM_TAG_BLACK_BALL_2 loadspritegfx ANIM_TAG_SPARK_2 - playsewithpan SE_W086, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_ATTACKER createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 @@ -7209,7 +7209,7 @@ Move_ZAP_CANNON: waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 delay 15 - waitplaysewithpan SE_W085B, SOUND_PAN_TARGET, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish end @@ -7217,13 +7217,13 @@ Move_ZAP_CANNON: Move_STEEL_WING: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -7233,7 +7233,7 @@ Move_STEEL_WING: delay 17 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -7243,7 +7243,7 @@ Move_STEEL_WING: Move_IRON_TAIL: loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 waitforvisualfinish monbg ANIM_TARGET @@ -7252,7 +7252,7 @@ Move_IRON_TAIL: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET @@ -7263,7 +7263,7 @@ Move_IRON_TAIL: Move_POISON_TAIL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 1, RGB(24, 6, 23) waitforvisualfinish monbg ANIM_TARGET @@ -7272,7 +7272,7 @@ Move_POISON_TAIL: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET @@ -7283,19 +7283,19 @@ Move_POISON_TAIL: Move_METAL_CLAW: loadspritegfx ANIM_TAG_CLAW_SLASH - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -7305,11 +7305,11 @@ Move_METAL_CLAW: Move_NIGHT_SHADE: monbg ANIM_ATTACKER monbgprio_28 ANIM_ATTACKER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER fadetobg BG_GHOST waitbgfadein delay 10 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 12, 1 @@ -7324,24 +7324,24 @@ Move_NIGHT_SHADE: Move_EGG_BOMB: loadspritegfx ANIM_TAG_EXPLOSION loadspritegfx ANIM_TAG_LARGE_FRESH_EGG - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gEggThrowSpriteTemplate, ANIM_TARGET, 2, 10, 0, 0, 0, 25, -32 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 16, 1 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 6, 5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -16, -15, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 16, -5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -12, 18, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 0, 5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 waitforvisualfinish end @@ -7351,10 +7351,10 @@ Move_SHADOW_BALL: fadetobg BG_GHOST waitbgfadein delay 15 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W054, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 createsprite gShadowBallSpriteTemplate, ANIM_TARGET, 2, 16, 16, 8 waitforvisualfinish - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 8, 1 waitforvisualfinish restorebg @@ -7364,7 +7364,7 @@ Move_SHADOW_BALL: Move_LICK: loadspritegfx ANIM_TAG_LICK delay 15 - playsewithpan SE_W122, SOUND_PAN_TARGET + playsewithpan SE_M_LICK, SOUND_PAN_TARGET createsprite gLickSpriteTemplate, ANIM_TARGET, 2, 0, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 16, 1 waitforvisualfinish @@ -7372,7 +7372,7 @@ Move_LICK: Move_FOCUS_ENERGY: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_WHITE @@ -7387,7 +7387,7 @@ Move_BIDE: choosetwoturnanim BideSetUp, BideUnleash end BideSetUp: - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 9, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish @@ -7397,7 +7397,7 @@ BideUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 9, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 2, 0, 11, RGB_RED createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish @@ -7405,13 +7405,13 @@ BideUnleash: waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 12, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 16, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, ANIM_TARGET, 1 waitforvisualfinish delay 5 @@ -7430,7 +7430,7 @@ Move_STRING_SHOT: delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, RGB_BLACK waitforvisualfinish - loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call StringShotThread call StringShotThread call StringShotThread @@ -7450,7 +7450,7 @@ Move_STRING_SHOT: call StringShotThread call StringShotThread waitforvisualfinish - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 10 delay 4 createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, -2 @@ -7476,7 +7476,7 @@ Move_SPIDER_WEB: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, RGB_BLACK waitforvisualfinish monbgprio_28 ANIM_TARGET - loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call SpiderWebThread call SpiderWebThread call SpiderWebThread @@ -7492,7 +7492,7 @@ Move_SPIDER_WEB: call SpiderWebThread call SpiderWebThread waitforvisualfinish - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -7513,12 +7513,12 @@ RazorWindEnd: RazorWindSetUp: loadspritegfx ANIM_TAG_GUST - playsewithpan SE_W016, SOUND_PAN_ATTACKER + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish - playsewithpan SE_W016B, SOUND_PAN_ATTACKER + playsewithpan SE_M_GUST2, SOUND_PAN_ATTACKER goto RazorWindEnd RazorWindUnleash: @@ -7526,16 +7526,16 @@ RazorWindUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 delay 2 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 delay 2 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 10, 1 waitforvisualfinish @@ -7548,11 +7548,11 @@ Move_DISABLE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 8, 8 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish createvisualtask AnimTask_GrowAndGreyscale, 5 - loopsewithpan SE_W020, SOUND_PAN_TARGET, 15, 4 + loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 waitforvisualfinish delay 1 clearmonbg ANIM_TARGET @@ -7564,7 +7564,7 @@ Move_RECOVER: loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 13, 3 + loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11) call RecoverAbsorbEffect call RecoverAbsorbEffect @@ -7599,14 +7599,14 @@ Move_MIMIC: setalpha 11, 5 monbg_22 ANIM_DEF_PARTNER monbgprio_29 - panse_1B SE_W107, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + panse_1B SE_M_MINIMIZE, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createvisualtask AnimTask_ShrinkTargetCopy, 5, 128, 24 delay 15 createsprite gMimicOrbSpriteTemplate, ANIM_TARGET, 2, -12, 24 delay 10 setarg 7, 0xFFFF waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 11, RGB_WHITE waitforvisualfinish clearmonbg_23 ANIM_DEF_PARTNER @@ -7615,7 +7615,7 @@ Move_MIMIC: Move_CONSTRICT: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_W010, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 4 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 2 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 2 @@ -7625,7 +7625,7 @@ Move_CONSTRICT: delay 8 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 delay 20 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET setarg 7, 0xFFFF waitforvisualfinish end @@ -7650,7 +7650,7 @@ CurseGhost: clearmonbg ANIM_ATK_PARTNER delay 1 monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -7660,7 +7660,7 @@ CurseGhost: end CurseGhostShakeFromNail: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 4, 0, 10, 0 - playsewithpan SE_W020, SOUND_PAN_ATTACKER + playsewithpan SE_M_BIND, SOUND_PAN_ATTACKER return CurseStats: createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, ANIM_ATTACKER @@ -7670,7 +7670,7 @@ CurseStats: waitforvisualfinish end CurseStats1: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5 createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, RGB_RED return @@ -7680,13 +7680,13 @@ Move_SOFT_BOILED: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 2, 6, 1 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 0 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 1 delay 120 delay 7 - playsewithpan SE_W030, SOUND_PAN_ATTACKER + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 8 @@ -7731,14 +7731,14 @@ Move_HEAL_BELL: unloadspritegfx ANIM_TAG_MUSIC_NOTES_2 unloadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 @@ -7747,14 +7747,14 @@ HealBellRing: createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 - playsewithpan SE_W215, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER return Move_FAKE_OUT: - playsewithpan SE_W260, 0 + playsewithpan SE_M_FLATTER, 0 createvisualtask AnimTask_FakeOut, 5 waitforvisualfinish - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish @@ -7764,17 +7764,17 @@ Move_FAKE_OUT: Move_SCARY_FACE: loadspritegfx ANIM_TAG_EYE_SPARKLE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 0, 16, RGB_BLACK - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitforvisualfinish delay 10 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaryFace, 5 delay 13 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 waitforvisualfinish createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 16, 0, RGB_BLACK waitforvisualfinish end @@ -7783,14 +7783,14 @@ Move_SWEET_KISS: loadspritegfx ANIM_TAG_RED_HEART loadspritegfx ANIM_TAG_ANGEL createsprite gAngelSpriteTemplate, ANIM_TARGET, 2, 16, -48 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET waitforvisualfinish createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -30 - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7802,9 +7802,9 @@ Move_LOVELY_KISS: loadspritegfx ANIM_TAG_PINK_HEART loadspritegfx ANIM_TAG_DEVIL createsprite gDevilSpriteTemplate, ANIM_TARGET, 2, 0, -24 - playsewithpan SE_W060B, SOUND_PAN_TARGET + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7815,13 +7815,13 @@ Move_FURY_SWIPES: loadspritegfx ANIM_TAG_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 5 delay 4 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, 16, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 5, 1 delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_TARGET, 2, 5, 5 delay 4 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, -16, 0, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 end @@ -7830,28 +7830,28 @@ Move_INGRAIN: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_ORBS createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 16, 26, -1, 2, 150 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -32, 20, 1, 1, 140 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 32, 22, 1, 0, 130 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -16, 25, -1, 3, 120 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 40 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 32, 26, -1, 3, 30 delay 5 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, -48, 20, 1, 2, 30 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 48, 26, -2, 3, 18 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 10 waitforvisualfinish end @@ -7860,13 +7860,13 @@ Move_PRESENT: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_IsHealingMove, 2 createsprite gPresentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 10, 2, -1 - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_W145B, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE2, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_W145B, 0 + playsewithpan SE_M_BUBBLE2, 0 delay 20 - playsewithpan SE_W145B, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET waitforvisualfinish jumpretfalse PresentDamage jumprettrue PresentHeal @@ -7874,26 +7874,26 @@ Move_PRESENT: PresentDamage: loadspritegfx ANIM_TAG_EXPLOSION - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 16, 16, 1, 1 end PresentHeal: loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_W234, SOUND_PAN_TARGET + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_TARGET createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, -16, 32, -3, 1 delay 3 createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, 16, 32, -3, -1 @@ -7918,7 +7918,7 @@ PresentHeal: Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL - playsewithpan SE_W226, SOUND_PAN_ATTACKER + playsewithpan SE_M_BATON_PASS, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 31, 1, 2, 0, 11, RGB(31, 22, 30) createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end @@ -7943,7 +7943,7 @@ Move_PERISH_SONG: createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 240 createsprite gPerishSongMusicNote2SpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 0 delay 20 - panse_1B SE_W195, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 @@ -7964,21 +7964,21 @@ Move_SLEEP_TALK: createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 @@ -7988,7 +7988,7 @@ Move_SLEEP_TALK: Move_HYPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 1 delay 2 createvisualtask AnimTask_IsContest, 2 @@ -8001,7 +8001,7 @@ HyperFangContinue: createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET delay 20 restorebg waitbgfadein @@ -8020,17 +8020,17 @@ HyperFangInContest: Move_TRI_ATTACK: loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 - playsewithpan SE_W161, SOUND_PAN_ATTACKER + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W161, SOUND_PAN_ATTACKER + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W161, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK delay 16 loadspritegfx ANIM_TAG_FIRE createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 @@ -8049,7 +8049,7 @@ Move_TRI_ATTACK: waitforvisualfinish loadspritegfx ANIM_TAG_LIGHTNING createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 @@ -8071,8 +8071,8 @@ Move_WILL_O_WISP: loadspritegfx ANIM_TAG_WISP_ORB monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET - playsewithpan SE_W052, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W052, SOUND_PAN_ATTACKER, 10 + playsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 10 createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_ATTACKER, 1, 0 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 delay 3 @@ -8085,7 +8085,7 @@ Move_WILL_O_WISP: createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 waitforvisualfinish monbgprio_29 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 13, 1 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 42 @@ -8109,7 +8109,7 @@ Move_ENCORE: createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W227B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 @@ -8123,23 +8123,23 @@ Move_TRICK: createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 80 createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 - playsewithpan SE_W166, 0 + playsewithpan SE_M_SKETCH, 0 createvisualtask AnimTask_StretchTargetUp, 3 createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 24 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W213, 0 + playsewithpan SE_M_ATTRACT, 0 createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 waitforvisualfinish @@ -8150,11 +8150,11 @@ Move_WISH: loadspritegfx ANIM_TAG_SPARKLE_2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish - panse_27 SE_W115, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + panse_27 SE_M_REFLECT, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 - loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 16, 3 + loopsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER, 16, 3 call GrantingStarsEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, RGB_BLACK @@ -8163,7 +8163,7 @@ Move_WISH: Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 8, 1, 0, 12, RGB_WHITE createvisualtask AnimTask_StockpileDeformMon, 5 call StockpileAbsorb @@ -8193,11 +8193,11 @@ StockpileAbsorb: Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_SpitUpDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 3 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 32, 12 @@ -8213,10 +8213,10 @@ Move_SPIT_UP: SpitUpContinue: delay 5 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, ANIM_TARGET, 1 waitforvisualfinish end @@ -8240,11 +8240,11 @@ SpitUpStrongest: Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_SwallowDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 12, 1 call SwallowEffect jumpifmoveturn 2, SwallowGood @@ -8275,8 +8275,8 @@ SwallowBest: Move_TRANSFORM: monbg ANIM_ATTACKER - playsewithpan SE_W100, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -8316,7 +8316,7 @@ MorningSunStar: Move_SWEET_SCENT: loadspritegfx ANIM_TAG_PINK_PETAL - playsewithpan SE_W230, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_ATTACKER createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 100, 0, 100 delay 25 setpan 0 @@ -8357,11 +8357,11 @@ Move_HYPER_BEAM: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 0, 16, RGB_BLACK waitforvisualfinish delay 10 - playsewithpan SE_W063, SOUND_PAN_ATTACKER + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 4, 1 waitforvisualfinish delay 30 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W063B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB(31, 0, 0), 16, 0, 0 call HyperBeamOrbs @@ -8405,7 +8405,7 @@ HyperBeamOrbs: Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W227B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish @@ -8415,7 +8415,7 @@ Move_FLATTER: delay 10 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W260, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_ATTACKER call CreateFlatterConfetti call CreateFlatterConfetti call CreateFlatterConfetti @@ -8436,7 +8436,7 @@ Move_FLATTER: call CreateFlatterConfetti call CreateFlatterConfetti delay 5 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W260, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish @@ -8452,8 +8452,8 @@ Move_ROLE_PLAY: createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 16, RGB_WHITE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_W161, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W197, SOUND_PAN_ATTACKER, 30 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_DETECT, SOUND_PAN_ATTACKER, 30 createvisualtask AnimTask_RolePlaySilhouette, 2 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -8465,13 +8465,13 @@ Move_ROLE_PLAY: Move_REFRESH: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 0 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 end @@ -8482,11 +8482,11 @@ Move_BLAZE_KICK: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 30 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 30 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 14, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE @@ -8521,7 +8521,7 @@ Move_SAND_TOMB: loadspritegfx ANIM_TAG_MUD_SAND createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 43, 1 - playsewithpan SE_W328, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt call SandTombSwirlingDirt @@ -8548,14 +8548,14 @@ SandTombSwirlingDirt: Move_SHEER_COLD: fadetobg BG_ICE waitbgfadeout - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 waitbgfadein loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FrozenIceCube, 2 - waitplaysewithpan SE_W258, SOUND_PAN_TARGET, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -8572,11 +8572,11 @@ Move_ARM_THRUST: delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET choosetwoturnanim ArmThrustRight, ArmThrustLeft ArmThrustContinue: createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 @@ -8591,7 +8591,7 @@ ArmThrustLeft: goto ArmThrustContinue Move_MUDDY_WATER: - panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_CreateSurfWave, 2, TRUE waitforvisualfinish end @@ -8624,7 +8624,7 @@ Move_BULLET_SEED: Move_DRAGON_CLAW: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_CLAW_SLASH - playsewithpan SE_W221B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 4, 0, 8, RGB(31, 19, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 15, 1 call DragonClawFireSpiral @@ -8632,7 +8632,7 @@ Move_DRAGON_CLAW: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W013, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -8645,7 +8645,7 @@ Move_DRAGON_CLAW: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W013, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -8689,7 +8689,7 @@ Move_MUD_SHOT: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_1B SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call MudShotOrbs call MudShotOrbs call MudShotOrbs @@ -8717,7 +8717,7 @@ Move_METEOR_MASH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - panse_1B SE_W112, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 + panse_1B SE_M_BARRIER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 fadetobg BG_COSMIC waitbgfadein waitforvisualfinish @@ -8728,7 +8728,7 @@ Move_METEOR_MASH: createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 30 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -80, -64, 40, 32, 30 delay 20 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 5, 0, 20, 1 waitforvisualfinish @@ -8742,7 +8742,7 @@ Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SCRATCH monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, RGB_RED @@ -8751,17 +8751,17 @@ Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gRevengeBigScratchSpriteTemplate, ANIM_TARGET, 2, 10, -10 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SWIPE loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 10, 1 createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, ANIM_TARGET, 1, 8 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -8770,7 +8770,7 @@ Move_REVENGE: Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 @@ -8781,7 +8781,7 @@ Move_POISON_FANG: end Move_SUBSTITUTE: - playsewithpan SE_W213, SOUND_PAN_ATTACKER + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MonToSubstitute, 2 end @@ -8794,50 +8794,50 @@ Move_FRENZY_PLANT: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 0, 5, RGB_BLACK waitforvisualfinish createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 2, 0, 0, 100 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -2, 0, 1, 95 - playsewithpan SE_W010, -43 + playsewithpan SE_M_SCRATCH, -43 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 30, 8, -4, 0, 0, 90 - playsewithpan SE_W010, -22 + playsewithpan SE_M_SCRATCH, -22 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 40, -8, 4, 0, 1, 85 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 50, 8, 0, 0, 0, 85 - playsewithpan SE_W010, +21 + playsewithpan SE_M_SCRATCH, +21 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 60, -8, -2, 0, 1, 85 - playsewithpan SE_W010, +42 + playsewithpan SE_M_SCRATCH, +42 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 75, 8, 0, 0, 0, 85 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, 16, 6, 0, 3, 80 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, -16, -6, 0, 2, 75 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, ANIM_TARGET, 3 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 8, 0, 20, 1 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, ANIM_TARGET, 3 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, ANIM_TARGET, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, ANIM_TARGET, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 5, 0, RGB_BLACK waitforvisualfinish @@ -8860,7 +8860,7 @@ Move_METAL_SOUND: waitforvisualfinish end MetalSoundRings: - panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SCREECH, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gMetalSoundSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -8883,20 +8883,20 @@ FocusPunchContinue: waitbgfadein monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gFocusPunchFistSpriteTemplate, ANIM_TARGET, 2 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -8930,94 +8930,94 @@ ReturnContinue: end ReturnWeak: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W004, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, SOUND_PAN_TARGET goto ReturnContinue ReturnMedium: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish delay 11 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET goto ReturnContinue ReturnStrong: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto ReturnContinue ReturnStrongest: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 6, RGB_BLACK waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 4 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 2 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish @@ -9026,25 +9026,25 @@ ReturnStrongest: call ReturnStrongestHit call ReturnStrongestHit createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6, 0, RGB_BLACK goto ReturnContinue ReturnStrongestHit: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish @@ -9052,8 +9052,8 @@ ReturnStrongestHit: Move_COSMIC_POWER: loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W322, 0 - playsewithpan SE_W322, 0 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_COSMIC_POWER, 0 + playsewithpan SE_M_COSMIC_POWER, 0 createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, RGB_BLACK waitforvisualfinish fadetobg BG_COSMIC @@ -9061,7 +9061,7 @@ Move_COSMIC_POWER: createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein delay 70 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W234, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 @@ -9080,7 +9080,7 @@ Move_BLAST_BURN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W221, SOUND_PAN_ATTACKER + playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 @@ -9090,7 +9090,7 @@ Move_BLAST_BURN: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 delay 25 - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 @@ -9102,7 +9102,7 @@ Move_BLAST_BURN: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 25 - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 @@ -9128,24 +9128,24 @@ Move_ROCK_TOMB: createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 @@ -9154,8 +9154,8 @@ Move_ROCK_TOMB: Move_SILVER_WIND: loadspritegfx ANIM_TAG_SPARKLE_6 - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - playsewithpan SE_W234, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + playsewithpan SE_M_MORNING_SUN, 0 delay 0 monbg ANIM_DEF_PARTNER monbgprio_29 @@ -9194,7 +9194,7 @@ SilverWindContinue: createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -4, 16, 0, 6, 1, 2, 1 createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER delay 0 restorebg @@ -9210,7 +9210,7 @@ SilverWindOnPlayer: goto SilverWindContinue Move_SNATCH: - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -12, 4, 10, 10, 12, 6 end @@ -9220,10 +9220,10 @@ Move_DIVE: choosetwoturnanim DiveSetUp, DiveAttack DiveSetUp: loadspritegfx ANIM_TAG_ROUND_SHADOW - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish - playsewithpan SE_W291, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER createsprite gDiveWaterSplashSpriteTemplate, ANIM_ATTACKER, 3, 0 call DiveSetUpWaterDroplets call DiveSetUpWaterDroplets @@ -9240,7 +9240,7 @@ DiveAttack: loadspritegfx ANIM_TAG_SMALL_BUBBLES monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W153, SOUND_PAN_TARGET + playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 call DiveAttackWaterDroplets call DiveAttackWaterDroplets @@ -9264,11 +9264,11 @@ Move_ROCK_BLAST: loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 @@ -9290,13 +9290,13 @@ Move_OVERHEAT: delay 1 createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 0 delay 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 1, 0 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 1, 0, 13, RGB(28, 0, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 @@ -9326,17 +9326,17 @@ Move_OVERHEAT: delay 5 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 10, 0, 25, 1 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, -1, 0, 13, RGB(18, 18, 18) @@ -9363,12 +9363,12 @@ Move_HYDRO_CANNON: loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 - panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call HydroCannonBeam createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 10, 0, 40, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 @@ -9402,11 +9402,11 @@ HydroCannonBeam: Move_ASTONISH: loadspritegfx ANIM_TAG_SWEAT_BEAD - playsewithpan SE_W227, SOUND_PAN_ATTACKER + playsewithpan SE_M_ENCORE, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 25 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 @@ -9425,7 +9425,7 @@ Move_SEISMIC_TOSS: fadetobg BG_IN_AIR waitbgfadeout createvisualtask AnimTask_MoveSeismicTossBg, 3 - playsewithpan SE_W327, 0 + playsewithpan SE_M_SKY_UPPERCUT, 0 waitbgfadein waitforvisualfinish createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 @@ -9463,7 +9463,7 @@ SeismicTossStrong: goto SeismicTossContinue SeismicTossRockScatter1: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 @@ -9472,7 +9472,7 @@ SeismicTossRockScatter1: return SeismicTossRockScatter2: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, ANIM_TARGET, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 @@ -9483,7 +9483,7 @@ SeismicTossRockScatter2: Move_MAGIC_COAT: loadspritegfx ANIM_TAG_ORANGE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W112, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_ORANGE_LIGHT_WALL waitforvisualfinish delay 1 @@ -9495,7 +9495,7 @@ Move_WATER_PULSE: loadspritegfx ANIM_TAG_BLUE_RING_2 monbg ANIM_TARGET monbgprio_28 ANIM_TARGET - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 7, RGB(0, 25, 28) delay 10 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 @@ -9503,15 +9503,15 @@ Move_WATER_PULSE: createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 13 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 8, 18, 1 @@ -9535,13 +9535,13 @@ Move_PSYCHO_BOOST: setalpha 8, 8 delay 10 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 240, 0 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 14, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 14, 10 createsprite gPsychoBoostOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 110 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 7, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 7, 10 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, -8, 1, 24, 1 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -9553,12 +9553,12 @@ Move_KNOCK_OFF: loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gKnockOffStrikeSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 8 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -9577,7 +9577,7 @@ Move_DOOM_DESIRE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK waitforvisualfinish setalpha 8, 8 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish delay 20 @@ -9594,7 +9594,7 @@ Move_SKY_UPPERCUT: monbgprio_28 ANIM_TARGET fadetobg BG_IN_AIR waitbgfadeout - playsewithpan SE_W327, SOUND_PAN_ATTACKER + playsewithpan SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MoveSkyUppercutBg, 5, 55 waitbgfadein setalpha 12, 8 @@ -9602,20 +9602,20 @@ Move_SKY_UPPERCUT: createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 0, 0, 5 delay 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -26, 16, 1, 4 delay 4 @@ -9651,7 +9651,7 @@ Move_TWISTER: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - playsewithpan SE_W239, SOUND_PAN_TARGET + playsewithpan SE_M_TWISTER, SOUND_PAN_TARGET createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 @@ -9674,18 +9674,18 @@ Move_TWISTER: createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9698,7 +9698,7 @@ Move_MAGICAL_LEAF: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_W077, SOUND_PAN_ATTACKER, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createvisualtask AnimTask_CycleMagicalLeafPal, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 @@ -9720,11 +9720,11 @@ Move_MAGICAL_LEAF: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, 20, 0 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, -20, 0 delay 30 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, ANIM_TARGET, 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -9741,10 +9741,10 @@ Move_ICE_BALL: createvisualtask AnimTask_GetIceBallCounter, 5, 0 jumpargeq 0, 4, IceBallSetIceBg IceBallContinue: - playsewithpan SE_W196, SOUND_PAN_ATTACKER + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIceBallChunkSpriteTemplate, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 delay 28 - playsewithpan SE_W280, SOUND_PAN_TARGET + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET createvisualtask AnimTask_GetIceBallCounter, 5, 0 jumpargeq 0, 0, IceBallWeakest jumpargeq 0, 1, IceBallWeak @@ -9829,11 +9829,11 @@ Move_WEATHER_BALL: loadspritegfx ANIM_TAG_WEATHER_BALL createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER delay 8 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gWeatherBallUpSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish delay 15 - playsewithpan SE_W197, 0 + playsewithpan SE_M_DETECT, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 waitforvisualfinish createvisualtask AnimTask_GetWeather, 2 @@ -9847,7 +9847,7 @@ WeatherBallNormal: loadspritegfx ANIM_TAG_IMPACT createsprite gWeatherBallNormalDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 waitforvisualfinish - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish @@ -9855,45 +9855,45 @@ WeatherBallNormal: WeatherBallFire: loadspritegfx ANIM_TAG_SMALL_EMBER createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end WeatherBallWater: loadspritegfx ANIM_TAG_SMALL_BUBBLES createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 8 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 13 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET waitforvisualfinish end WeatherBallSandstorm: loadspritegfx ANIM_TAG_ROCKS createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 5 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 14 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 @@ -9905,16 +9905,16 @@ WeatherBallIce: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET call IceCrystalEffectShort waitforvisualfinish end @@ -9923,7 +9923,7 @@ Move_COUNT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -9933,64 +9933,64 @@ Move_COUNT: IceCrystalEffectShort: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return IceCrystalEffectLong: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return IceSpikesEffectShort: @ Unused - loopsewithpan SE_W196, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 0 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 0 @@ -10007,7 +10007,7 @@ IceSpikesEffectShort: @ Unused return IceSpikesEffectLong: - loopsewithpan SE_W196, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 1 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 1 @@ -10037,7 +10037,7 @@ GrantingStarsEffect: return HealingEffect: - playsewithpan SE_W071B, SOUND_PAN_ATTACKER + playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 0, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, -15, 10, 0, 0 @@ -10049,7 +10049,7 @@ HealingEffect: return HealingEffect2: - playsewithpan SE_W071B, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB_2, SOUND_PAN_TARGET createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 @@ -10062,72 +10062,72 @@ HealingEffect2: PoisonBubblesEffect: createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 10, 10, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, -20, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, 15, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, -20, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET return WaterBubblesEffectShort: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return WaterBubblesEffectLong: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -28, -10, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 27, 8, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return ElectricityEffect: - playsewithpan SE_W085B, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1 @@ -10146,7 +10146,7 @@ ElectricityEffect: return ConfusionEffect: - loopsewithpan SE_W146, SOUND_PAN_TARGET, 13, 6 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 13, 6 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 0, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 51, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 102, 3, 90 @@ -10214,7 +10214,7 @@ UnsetSolarbeamBg: return Status_Poison: - loopsewithpan SE_W092, SOUND_PAN_TARGET, 13, 6 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 18, 2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 12, RGB(30, 0, 31) end @@ -10226,7 +10226,7 @@ Status_Confusion: Status_Burn: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call BurnFlame call BurnFlame call BurnFlame @@ -10239,19 +10239,19 @@ BurnFlame: Status_Infatuation: loadspritegfx ANIM_TAG_MAGENTA_HEART - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 delay 15 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 delay 15 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 end Status_Sleep: loadspritegfx ANIM_TAG_LETTER_Z - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 30 createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 @@ -10264,11 +10264,11 @@ Status_Paralysis: end Status_Freeze: - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - waitplaysewithpan SE_W258, SOUND_PAN_TARGET, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 createvisualtask AnimTask_FrozenIceCube, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10277,7 +10277,7 @@ Status_Freeze: Status_Curse: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -10287,7 +10287,7 @@ Status_Curse: Status_Nightmare: loadspritegfx ANIM_TAG_DEVIL monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gNightmareDevilSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -10300,8 +10300,8 @@ General_CastformChange: goto CastformChangeContinue CastformChangeContinue: monbg ANIM_ATTACKER - playsewithpan SE_W100, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -10336,10 +10336,10 @@ General_PokeblockThrow: createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 0 createvisualtask AnimTask_LoadPokeblockGfx, 2 delay 0 - waitplaysewithpan SE_W026, SOUND_PAN_ATTACKER, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gPokeblockSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 delay 50 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 19, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 19, 2 createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET waitforvisualfinish createvisualtask AnimTask_FreePokeblockGfx, 2 @@ -10359,7 +10359,7 @@ General_TurnTrap: goto Status_BindWrap Status_BindWrap: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_W010, SOUND_PAN_TARGET, 6, 2 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 2 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 1 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 1, 1 @@ -10367,13 +10367,13 @@ Status_BindWrap: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 setarg 7, 0xFFFF - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish end Status_FireSpin: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call FireSpinEffect call FireSpinEffect @@ -10388,7 +10388,7 @@ Status_Whirlpool: setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(0, 13, 23) - playsewithpan SE_W250, SOUND_PAN_TARGET + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call WhirlpoolEffect call WhirlpoolEffect @@ -10404,7 +10404,7 @@ Status_Clamp: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 @@ -10420,7 +10420,7 @@ Status_SandTomb: loadspritegfx ANIM_TAG_MUD_SAND createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 - playsewithpan SE_W328, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 @@ -10433,19 +10433,19 @@ General_HeldItemEffect: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 delay 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 3, 7, 0, RGB(17, 31, 25) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 waitforvisualfinish @@ -10456,23 +10456,23 @@ General_SmokeballEscape: monbg ANIM_ATTACKER setalpha 12, 4 delay 0 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_TARGET, 0, 0, 32, 28, 30 delay 4 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 127, 2, 12, 20, 30 delay 12 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 126, 2, -28, 4, 30 delay 12 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 delay 4 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 delay 14 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 46 delay 0 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, -14, 46 @@ -10491,7 +10491,7 @@ General_SmokeballEscape: General_FocusBand: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, RGB_RED - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 4, 9, 0, RGB_RED @@ -10502,7 +10502,7 @@ General_FocusBand: General_Rain: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_W240, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 @@ -10531,7 +10531,7 @@ General_MonHit: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -10562,22 +10562,22 @@ SnatchMoveContinue: call SnatchMoveTrySwapToSubstitute end SnatchOpposingMonMove: - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_SnatchOpposingMonMove, 2 goto SnatchMoveContinue SnatchPartnerMonMove: - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_SnatchPartnerMove, 2 goto SnatchMoveContinue General_FutureSightHit: createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 monbg ANIM_DEF_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W048, SOUND_PAN_TARGET - waitplaysewithpan SE_W048, SOUND_PAN_TARGET, 8 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -10598,26 +10598,26 @@ General_DoomDesireHit: delay 10 createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 - playsewithpan SE_W109, SOUND_PAN_ATTACKER + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 9 - playsewithpan SE_W109, 0 + playsewithpan SE_M_CONFUSE_RAY, 0 delay 9 - playsewithpan SE_W109, SOUND_PAN_TARGET + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 25 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE @@ -10626,7 +10626,7 @@ General_DoomDesireHit: General_FocusPunchSetUp: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED @@ -10660,7 +10660,7 @@ General_WishHeal: loadspritegfx ANIM_TAG_SPARKLE_2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 @@ -10694,7 +10694,7 @@ SnatchMoveSwapMonForSubstitute: @ Healthbox blue flash effect on level up Special_LevelUp: - playsewithpan SE_EXPMAX, 0 + playsewithpan SE_EXP_MAX, 0 createvisualtask AnimTask_LoadHealthboxPalsForLevelUp, 2 delay 0 createvisualtask AnimTask_FlashHealthboxOnLevelUp, 5, 0, 0 @@ -10717,7 +10717,7 @@ Special_SwitchOutOpponentMon: Special_BallThrow: createvisualtask AnimTask_LoadBallGfx, 2 delay 0 - playsewithpan SE_NAGERU, 0 + playsewithpan SE_BALL_THROW, 0 createvisualtask AnimTask_ThrowBall, 2 createvisualtask AnimTask_IsBallBlockedByTrainer, 2 jumpreteq -1, BallThrowTrainerBlock @@ -10731,7 +10731,7 @@ BallThrowTrainerBlock: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 3db9f28ff..873425c63 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -798,7 +798,7 @@ BattleScript_KOFail:: BattleScript_EffectRazorWind:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x0 + setbyte sTWOTURN_STRINGID, 0 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1084,7 +1084,7 @@ BattleScript_EffectAccuracyDownHit:: BattleScript_EffectSkyAttack:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x3 + setbyte sTWOTURN_STRINGID, 3 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1504,9 +1504,9 @@ BattleScript_EffectCurse:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0x0, BattleScript_CurseTrySpeed - jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 0xC, BattleScript_CurseTrySpeed - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_ButItFailed + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CurseTrySpeed + jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CurseTrySpeed + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: copybyte gBattlerTarget, gBattlerAttacker setbyte sB_ANIM_TURN, 0x1 @@ -1831,7 +1831,7 @@ BattleScript_EffectMirrorCoat:: BattleScript_EffectSkullBash:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x2 + setbyte sTWOTURN_STRINGID, 2 call BattleScriptFirstChargingTurn setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd @@ -1927,7 +1927,7 @@ BattleScript_EffectSolarbeam:: BattleScript_SolarbeamDecideTurn:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x1 + setbyte sTWOTURN_STRINGID, 1 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd BattleScript_SolarbeamOnFirstTurn:: @@ -1996,19 +1996,19 @@ BattleScript_EffectSemiInvulnerable:: jumpifmove MOVE_FLY, BattleScript_FirstTurnFly jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce - setbyte sTWOTURN_STRINGID, 0x5 + setbyte sTWOTURN_STRINGID, 5 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnBounce:: - setbyte sTWOTURN_STRINGID, 0x7 + setbyte sTWOTURN_STRINGID, 7 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnDive:: - setbyte sTWOTURN_STRINGID, 0x6 + setbyte sTWOTURN_STRINGID, 6 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnFly:: - setbyte sTWOTURN_STRINGID, 0x4 + setbyte sTWOTURN_STRINGID, 4 BattleScript_FirstTurnSemiInvulnerable:: call BattleScriptFirstChargingTurn setsemiinvulnerablebit @@ -2670,8 +2670,8 @@ BattleScript_EffectTickle:: attackcanceler attackstring ppreduce - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_TickleDoMoveAnim - jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0x0, BattleScript_CantLowerMultipleStats + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_TickleDoMoveAnim + jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_TickleDoMoveAnim:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation @@ -2705,8 +2705,8 @@ BattleScript_EffectCosmicPower:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CosmicPowerDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_CosmicPowerDoMoveAnim:: attackanimation waitanimation @@ -2734,8 +2734,8 @@ BattleScript_EffectBulkUp:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_BulkUpDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_BulkUpDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_BulkUpDoMoveAnim:: attackanimation waitanimation @@ -2759,8 +2759,8 @@ BattleScript_EffectCalmMind:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_CalmMindDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CalmMindDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_CalmMindDoMoveAnim:: attackanimation waitanimation @@ -2791,8 +2791,8 @@ BattleScript_EffectDragonDance:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_DragonDanceDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_DragonDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_DragonDanceDoMoveAnim:: attackanimation waitanimation @@ -3047,13 +3047,13 @@ BattleScript_FrontierTrainerBattleWon_LoseTexts: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT - jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein BS_FAINTED waitstate printstring STRINGID_TRAINER2LOSETEXT -BattleScript_82DAACB: +BattleScript_TryPickUpItems: jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_FrontierTrainerBattleWon_End pickup BattleScript_FrontierTrainerBattleWon_End: @@ -3165,7 +3165,7 @@ BattleScript_Pausex20:: return BattleScript_LevelUp:: - fanfare MUS_FANFA1 + fanfare MUS_LEVEL_UP printstring STRINGID_PKMNGREWTOLV setbyte sLVLBOX_STATE, 0x0 drawlvlupbox @@ -3193,7 +3193,7 @@ BattleScript_ForgotAndLearnedNewMove:: printstring STRINGID_ANDELLIPSIS BattleScript_LearnedNewMove:: buffermovetolearn - fanfare MUS_FANFA1 + fanfare MUS_LEVEL_UP printstring STRINGID_PKMNLEARNEDMOVE waitmessage 0x40 updatechoicemoveonlvlup BS_ATTACKER @@ -3252,7 +3252,7 @@ BattleScript_SunlightFaded:: end2 BattleScript_OverworldWeatherStarts:: - printfromtable gWeatherContinuesStringIds + printfromtable gWeatherStartsStringIds waitmessage 0x40 playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL end3 @@ -3462,11 +3462,11 @@ BattleScript_PerishSongCountGoesDown:: end2 BattleScript_AllStatsUp:: - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_AllStatsUpRet + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_AllStatsUpRet BattleScript_AllStatsUpAtk:: setbyte sSTAT_ANIM_PLAYED, FALSE playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0 @@ -3638,18 +3638,18 @@ BattleScript_AtkDefDown:: playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB144 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_TryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDown_TryDef printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DB144:: +BattleScript_AtkDefDown_TryDef:: playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_DEF, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB167 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_End + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDown_End printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DB167:: +BattleScript_AtkDefDown_End:: return BattleScript_KnockedOff:: @@ -4017,10 +4017,10 @@ BattleScript_WeatherFormChangesLoop:: return BattleScript_CastformChange:: - call BattleScript_82DB4AF + call BattleScript_DoCastformChange end3 -BattleScript_82DB4AF:: +BattleScript_DoCastformChange:: docastformchangeanimation waitstate printstring STRINGID_PKMNTRANSFORMED @@ -4459,9 +4459,9 @@ BattleScript_PalaceEndFlavorText:: BattleScript_ArenaTurnBeginning:: waitcry BS_ATTACKER volumedown - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x8 - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 various14 BS_ATTACKER arenajudmengtstring 8 arenawaitmessage 8 @@ -4471,7 +4471,7 @@ BattleScript_ArenaTurnBeginning:: end2 BattleScript_82DB8E0:: @ Unused battlescript - playse SE_PINPON + playse SE_DING_DONG various14 BS_ATTACKER arenajudmengtstring BS_TARGET arenawaitmessage BS_TARGET @@ -4485,9 +4485,9 @@ BattleScript_ArenaDoJudgment:: makevisible BS_OPPONENT1 waitstate volumedown - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x8 - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x40 various14 BS_ATTACKER arenajudmengtstring 1 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index b74f557a7..caa6cddac 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -13,28 +13,28 @@ .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_SafariBallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow @ ITEM_NONE + .4byte BattleScript_BallThrow @ ITEM_MASTER_BALL + .4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL + .4byte BattleScript_BallThrow @ ITEM_GREAT_BALL + .4byte BattleScript_BallThrow @ ITEM_POKE_BALL + .4byte BattleScript_SafariBallThrow @ ITEM_SAFARI_BALL + .4byte BattleScript_BallThrow @ ITEM_NET_BALL + .4byte BattleScript_BallThrow @ ITEM_DIVE_BALL + .4byte BattleScript_BallThrow @ ITEM_NEST_BALL + .4byte BattleScript_BallThrow @ ITEM_REPEAT_BALL + .4byte BattleScript_BallThrow @ ITEM_TIMER_BALL + .4byte BattleScript_BallThrow @ ITEM_LUXURY_BALL + .4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL .align 2 gBattlescriptsForUsingItem:: @ 82DBD3C .4byte BattleScript_PlayerUsesItem - .4byte BattleScript_OpponentUsesHealItem - .4byte BattleScript_OpponentUsesHealItem - .4byte BattleScript_OpponentUsesStatusCureItem - .4byte BattleScript_OpponentUsesXItem - .4byte BattleScript_OpponentUsesGuardSpecs + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_FULL_RESTORE + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP + .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION + .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT + .4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 @@ -118,7 +118,7 @@ BattleScript_PlayerUsesItem:: BattleScript_OpponentUsesHealItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -135,7 +135,7 @@ BattleScript_OpponentUsesHealItem:: BattleScript_OpponentUsesStatusCureItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -149,7 +149,7 @@ BattleScript_OpponentUsesStatusCureItem:: BattleScript_OpponentUsesXItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -162,7 +162,7 @@ BattleScript_OpponentUsesXItem:: BattleScript_OpponentUsesGuardSpecs:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -173,7 +173,7 @@ BattleScript_OpponentUsesGuardSpecs:: finishaction BattleScript_RunByUsingItem:: - playse SE_NIGERU + playse SE_FLEE setbyte gBattleOutcome, B_OUTCOME_RAN finishturn diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 7346876d7..e47ccb4c8 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -1,3 +1,5 @@ +#include "constants/global.h" +#include "constants/contest.h" .include "asm/macros.inc" .include "asm/macros/contest_ai_script.inc" .include "constants/constants.inc" @@ -11,847 +13,889 @@ enum MON_4 .align 2 -gContestAIChecks:: @ 82DE350 - .4byte AI_CheckForBadMove // 0x00000001 - .4byte AI_CheckForCombo // 0x00000002 - .4byte AI_CheckBoring // 0x00000004 - .4byte AI_CheckExcitement // 0x00000008 - .4byte AI_CheckOrder // 0x00000010 - .4byte AI_CheckForGoodMove // 0x00000020 - .4byte AI_Erratic // 0x00000040 - .4byte AI_Nothing // 0x00000080 - .4byte AI_Nothing // 0x00000100 - .4byte AI_Nothing // 0x00000200 - .4byte AI_Nothing // 0x00000400 - .4byte AI_Nothing // 0x00000800 - .4byte AI_Nothing // 0x00001000 - .4byte AI_Nothing // 0x00002000 - .4byte AI_Nothing // 0x00004000 - .4byte AI_Nothing // 0x00008000 - .4byte AI_Nothing // 0x00010000 - .4byte AI_Nothing // 0x00020000 - .4byte AI_Nothing // 0x00040000 - .4byte AI_Nothing // 0x00080000 - .4byte AI_Nothing // 0x00100000 - .4byte AI_Nothing // 0x00200000 - .4byte AI_Nothing // 0x00400000 - .4byte AI_Nothing // 0x00800000 - .4byte AI_Nothing // 0x01000000 - .4byte AI_Nothing // 0x02000000 - .4byte AI_Nothing // 0x04000000 - .4byte AI_Nothing // 0x08000000 - .4byte AI_Nothing // 0x10000000 - .4byte AI_Nothing // 0x20000000 - .4byte AI_Nothing // 0x40000000 - .4byte AI_Nothing // 0x80000000 - - -@ Unreferenced AI routine to encourage moves that improve condition on the first -@ turn. Additionally, it checks the appeal order of the user and the effect -@ type, but the code is buggy and doesn't affect the score. - if_turn_not_eq 0, ContestUnreferenced_80 - if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80 +gContestAI_ScriptsTable:: @ 82DE350 + .4byte AI_CheckBadMove @ CONTEST_AI_CHECK_BAD_MOVE + .4byte AI_CheckCombo @ CONTEST_AI_CHECK_COMBO + .4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING + .4byte AI_CheckExcitement @ CONTEST_AI_CHECK_EXCITEMENT + .4byte AI_CheckOrder @ CONTEST_AI_CHECK_ORDER + .4byte AI_CheckGoodMove @ CONTEST_AI_CHECK_GOOD_MOVE + .4byte AI_Erratic @ CONTEST_AI_ERRATIC + .4byte AI_Nothing @ CONTEST_AI_DUMMY_1 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_2 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_3 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_4 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_5 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_6 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_7 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_8 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_9 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_10 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_11 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_12 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_13 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_14 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_15 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_16 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_17 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_18 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_19 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_20 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_21 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_22 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_23 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_24 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_25 + + +@ Unused. Encourages improving condition on the 1st appeal, or startling mons if the users turn is later +AI_CheckTiming: + if_appeal_num_not_eq 0, AI_CheckTiming_SkipCondition + if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CheckTiming_SkipCondition score +10 -ContestUnreferenced_80: - call ContestUnreferenced_0D - end -ContestUnreferenced_0D: - if_user_order_more_than MON_2, ContestUnreferenced_end - if_effect_type_not_eq 2, ContestUnreferenced_end - if_effect_type_not_eq 3, ContestUnreferenced_end - score +10 @ unreachable -ContestUnreferenced_end: - end - -@ Unreferenced AI routine that doesn't make much sense. - if_turn_eq 0, ContestUnreferenced_0F_1 - if_turn_eq 1, ContestUnreferenced_0F_2 - if_turn_eq 2, ContestUnreferenced_0F_3 - if_turn_eq 3, ContestUnreferenced_0F_4 - if_turn_eq 4, ContestUnreferenced_0F_5 - end -ContestUnreferenced_0F_1: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_2 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 - end -ContestUnreferenced_2B_1: - if_effect_type_eq 1, ContestUnreferenced_score - end -ContestUnreferenced_2B_2: - if_effect_type_eq 1, ContestUnreferenced_score - end - if_effect_type_eq 1, ContestUnreferenced_score - end -ContestUnreferenced_0F_2: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 - end -ContestUnreferenced_0F_3: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 - end -ContestUnreferenced_0F_4: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 - end -ContestUnreferenced_0F_5: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 - end -ContestUnreferenced_score: +AI_CheckTiming_SkipCondition: + call AI_CheckTiming_TryStartle + end +AI_CheckTiming_TryStartle: + if_user_order_more_than MON_2, AI_CheckTiming_End + if_effect_type_not_eq CONTEST_EFFECT_TYPE_STARTLE_MON, AI_CheckTiming_End + if_effect_type_not_eq CONTEST_EFFECT_TYPE_STARTLE_MONS, AI_CheckTiming_End + score +10 +AI_CheckTiming_End: + end + +@ Unused, doesnt make much sense +@ Encourages using an avoid being startled move +@ The various appeal and turn checks are pointless, it will always encourage these moves +AI_AvoidStartle: + if_appeal_num_eq 0, AI_AvoidStartle_1stAppeal + if_appeal_num_eq 1, AI_AvoidStartle_2ndAppeal + if_appeal_num_eq 2, AI_AvoidStartle_3rdAppeal + if_appeal_num_eq 3, AI_AvoidStartle_4thAppeal + if_last_appeal AI_AvoidStartle_LastAppeal + end +AI_AvoidStartle_1stAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove2 + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove + end +AI_AvoidStartle_EncourageIfAvoidMove: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage + end +AI_AvoidStartle_EncourageIfAvoidMove2: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage + end +AI_AvoidStartle_EncourageIfAvoidMove3: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage + end +AI_AvoidStartle_2ndAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove + end +AI_AvoidStartle_3rdAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove + end +AI_AvoidStartle_4thAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove + end +AI_AvoidStartle_LastAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove + end +AI_AvoidStartle_Encourage: score +10 end - +AI_AvoidStartle_End: end -@ Unreferenced AI routine to encourage the most appealing move. - if_most_appealing_move ContestUnreferenced_score2 +@ Unused +AI_PreferMostAppealingMove: + if_most_appealing_move AI_PreferMostAppealingMove_Encourage end -ContestUnreferenced_score2: +AI_PreferMostAppealingMove_Encourage: score +10 end +@ Discourages using the same move multiple times if it would get boring AI_CheckBoring: - if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_end_081DC27F - if_move_used_count_eq 1, AI_score1_081DC27F - if_move_used_count_eq 2, AI_score2_081DC27F - if_move_used_count_eq 3, AI_score3_081DC27F - if_move_used_count_eq 4, AI_score4_081DC27F - end -AI_score1_081DC27F: + if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CheckBoring_NotBoring + if_move_used_count_eq 1, AI_CheckBoring_1stRepeat + if_move_used_count_eq 2, AI_CheckBoring_2ndRepeat + if_move_used_count_eq 3, AI_CheckBoring_3rdRepeat + if_move_used_count_eq 4, AI_CheckBoring_4thRepeat + @ No repeats + end +AI_CheckBoring_1stRepeat: score -5 end -AI_score2_081DC27F: +AI_CheckBoring_2ndRepeat: score -15 end -AI_score3_081DC27F: +AI_CheckBoring_3rdRepeat: score -20 end -AI_score4_081DC27F: +AI_CheckBoring_4thRepeat: score -25 end -AI_end_081DC27F: +AI_CheckBoring_NotBoring: end +@ Strongly encourages using an exciting move if user is in a position to receive the max excitement bonus +@ Encourages using exciting moves in general +@ If the user doesnt have a good exciting move to use, then encourage lowering excitement to prevent +@ opponents from benefitting from the excitement AI_CheckExcitement: - if_move_excitement_less_than 0, AI_contest09_081DC2AB - if_move_excitement_eq 0, AI_contest7D_4_081DC2AB - if_move_excitement_eq 1, AI_contest3D_081DC2AB - end -AI_contest09_081DC2AB: - if_excitement_eq 4, AI_contest0F_1_081DC2AB - if_excitement_eq 3, AI_contest0F_2_081DC2AB - if_user_has_exciting_move AI_end_081DC2AB + if_move_excitement_less_than 0, AI_CheckExcitement_Negative + if_move_excitement_eq 0, AI_CheckExcitement_Neutral + if_move_excitement_eq 1, AI_CheckExcitement_Positive + end +AI_CheckExcitement_Negative: + if_excitement_eq 4, AI_CheckExcitement_Negative_1AwayFromMax + if_excitement_eq 3, AI_CheckExcitement_Negative_2AwayFromMax + if_user_has_exciting_move AI_CheckExcitement_End score +15 end -AI_contest0F_1_081DC2AB: - if_user_order_not_eq MON_1, AI_contest7D_1_081DC2AB - if_random 51, AI_end_081DC2AB +AI_CheckExcitement_Negative_1AwayFromMax: + if_user_order_not_eq MON_1, AI_CheckExcitement_Negative_1AwayFromMax_Not1stUp + if_random_less_than 51, AI_CheckExcitement_End score +20 end -AI_contest7D_1_081DC2AB: - if_random 127, AI_end_081DC2AB +AI_CheckExcitement_Negative_1AwayFromMax_Not1stUp: + if_random_less_than 127, AI_CheckExcitement_End score -10 end -AI_contest0F_2_081DC2AB: - if_user_order_not_eq MON_1, AI_contest7D_3_081DC2AB - if_turn_eq 4, AI_score_081DC2AB -AI_contest7D_2_081DC2AB: - if_random 51, AI_end_081DC2AB +AI_CheckExcitement_Negative_2AwayFromMax: + if_user_order_not_eq MON_1, AI_CheckExcitement_Negative_2AwayFromMax_Not1stUp + if_last_appeal AI_CheckExcitement_Negative_2AwayFromMax_LastAppeal + if_random_less_than 51, AI_CheckExcitement_End score +10 end -AI_score_081DC2AB: +AI_CheckExcitement_Negative_2AwayFromMax_LastAppeal: score +15 end -AI_contest7D_3_081DC2AB: - if_random 127, AI_end_081DC2AB +AI_CheckExcitement_Negative_2AwayFromMax_Not1stUp: + if_random_less_than 127, AI_CheckExcitement_End score +10 end -AI_contest7D_4_081DC2AB: - if_random 127, AI_end_081DC2AB +AI_CheckExcitement_Neutral: + if_random_less_than 127, AI_CheckExcitement_End score +10 end -AI_contest3D_081DC2AB: - if_move_used_count_more_than 0, AI_contest29_081DC2AB - if_user_order_not_eq MON_1, AI_contest7D_5_081DC2AB - if_excitement_not_eq 4, AI_contest7D_5_081DC2AB +AI_CheckExcitement_Positive: + if_move_used_count_more_than 0, AI_CheckExcitement_Positive_Repeat + if_user_order_not_eq MON_1, AI_CheckExcitement_Positive_Not1stUpForMax + if_excitement_not_eq 4, AI_CheckExcitement_Positive_Not1stUpForMax score +30 end -AI_contest7D_5_081DC2AB: - if_random 100, AI_end_081DC2AB +AI_CheckExcitement_Positive_Not1stUpForMax: + if_random_less_than 100, AI_CheckExcitement_End score +10 end -AI_contest29_081DC2AB: - if_effect_not_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_end_081DC2AB - if_user_order_not_eq MON_1, AI_contest7D_5_081DC2AB - if_excitement_not_eq 4, AI_contest7D_5_081DC2AB +AI_CheckExcitement_Positive_Repeat: + if_effect_not_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CheckExcitement_End + if_user_order_not_eq MON_1, AI_CheckExcitement_Positive_Not1stUpForMax + if_excitement_not_eq 4, AI_CheckExcitement_Positive_Not1stUpForMax score +30 end -AI_end_081DC2AB: +AI_CheckExcitement_End: end -AI_CheckForCombo: - if_would_finish_combo AI_score_081DC348 - call AI_contest3F_081DC348 - call AI_contest45_081DC348 +@ Strongly encourages using a move if it would finish a combo +@ Encourages using a move if it would start a combo, esp if the user goes earlier +@ Discourages starting a combo in the last round +@ Discourages using a combo finisher when its combo starter hasnt been used yet +AI_CheckCombo: + if_would_finish_combo AI_CheckCombo_WouldFinish + call AI_CheckCombo_CheckStarter + call AI_CheckCombo_CheckFinisherWithoutStarter end -AI_contest3F_081DC348: - if_move_used_count_not_eq 0, AI_end_081DC348 - if_not_combo_starter AI_end_081DC348 - if_user_order_eq MON_1, AI_contest04_1_081DC348 - if_user_order_eq MON_2, AI_contest04_2_081DC348 - if_user_order_eq MON_3, AI_contest04_3_081DC348 - if_user_order_eq MON_4, AI_contest04_4_081DC348 +AI_CheckCombo_CheckStarter: + if_move_used_count_not_eq 0, AI_CheckCombo_End + if_not_combo_starter AI_CheckCombo_End + if_user_order_eq MON_1, AI_CheckCombo_Starter1stUp + if_user_order_eq MON_2, AI_CheckCombo_Starter2ndUp + if_user_order_eq MON_3, AI_CheckCombo_Starter3rdUp + if_user_order_eq MON_4, AI_CheckCombo_StarterLast end -AI_contest45_081DC348: - if_not_combo_finisher AI_end_081DC348 +AI_CheckCombo_CheckFinisherWithoutStarter: + if_not_combo_finisher AI_CheckCombo_End score -10 end -AI_score_081DC348: +AI_CheckCombo_WouldFinish: score +25 end -AI_contest04_1_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 - if_random 150, AI_end_081DC348 +AI_CheckCombo_Starter1stUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 150, AI_CheckCombo_End score +10 end -AI_contest04_2_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 - if_random 125, AI_end_081DC348 +AI_CheckCombo_Starter2ndUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 125, AI_CheckCombo_End score +10 end -AI_contest04_3_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 - if_random 50, AI_end_081DC348 +AI_CheckCombo_Starter3rdUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 50, AI_CheckCombo_End score +10 end -AI_contest04_4_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 +AI_CheckCombo_StarterLast: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal score +10 end -AI_contest7D_081DC348: - if_random 125, AI_end_081DC348 +AI_CheckCombo_StarterOnLastAppeal: + if_random_less_than 125, AI_CheckCombo_End score -15 end -AI_end_081DC348: - end - -AI_CheckForGoodMove: - if_effect_eq CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, ContestEffect39 - if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_EARLIER, ContestEffect40 - if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_LATER, ContestEffect41 - if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, ContestEffect3 - if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestEffect38 - if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, ContestEffect47 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, ContestEffect31 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, ContestEffect32 - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, ContestEffect46 - if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, ContestEffect27 - if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, ContestEffect16or17 - if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, ContestEffect16or17 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, ContestEffect_FollowingMonsNervous - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, ContestEffect18 - end - -ContestEffect39: - if_user_condition_eq 3, ContestEffect39_score1 - if_user_condition_eq 2, ContestEffect39_score2 - if_user_condition_eq 1, ContestEffect39_score3 - if_user_condition_eq 0, ContestEffect39_score4 - end -ContestEffect39_score1: +AI_CheckCombo_End: + end + +@ Checks if move should be encouraged based on its effect +AI_CheckGoodMove: + if_effect_eq CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, AI_CGM_BetterWithGoodCondition + if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_EARLIER, AI_CGM_NextAppealEarlier + if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_LATER, AI_CGM_NextAppealLater + if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CGM_RepetitionNotBoring + if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CGM_ImproveCondition + if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, AI_CGM_DontExciteAudience + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CGM_AppealAsGoodAsPrevOnes + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, AI_CGM_AppealAsGoodAsPrevOne + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, AI_CGM_BetterWhenAudienceExcited + if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, AI_CGM_WorsenConditionOfPrevMons + if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, AI_CGM_TargetMonWithJudgesAttention + if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, AI_CGM_TargetMonWithJudgesAttention + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, AI_CGM_MakeFollowingMonsNervous + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CGM_JamsOthersButMissOneTurn + end + +AI_CGM_BetterWithGoodCondition: + if_user_condition_eq 3, AI_CGM_BetterWithGoodCondition_3 + if_user_condition_eq 2, AI_CGM_BetterWithGoodCondition_2 + if_user_condition_eq 1, AI_CGM_BetterWithGoodCondition_1 + if_user_condition_eq 0, AI_CGM_BetterWithGoodCondition_0 + end +AI_CGM_BetterWithGoodCondition_3: score +20 end -ContestEffect39_score2: - if_random 125, ContestEffectEnd +AI_CGM_BetterWithGoodCondition_2: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect39_score3: - if_random 125, ContestEffectEnd +AI_CGM_BetterWithGoodCondition_1: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect39_score4: +AI_CGM_BetterWithGoodCondition_0: score -20 end -ContestEffect40: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_FIRST, ContestEffectEnd - if_random 50, ContestEffectEnd +AI_CGM_NextAppealEarlier: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_IF_FIRST, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +20 end -ContestEffect41: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_LAST, ContestEffectEnd - if_random 50, ContestEffectEnd +AI_CGM_NextAppealLater: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_IF_LAST, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +20 end -ContestEffect3: - if_user_order_not_eq MON_4, ContestEffectEnd - if_random 50, ContestEffectEnd +AI_CGM_RepetitionNotBoring: + if_user_order_not_eq MON_4, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +15 end - if_turn_eq 4, ContestEffect3_7D - if_random 220, ContestEffect3_score + +AI_CGM_Unused: + if_last_appeal AI_CGM_Unused_LastAppeal + if_random_less_than 220, AI_CGM_Unused_Discourage score +10 end -ContestEffect3_7D: - if_random 20, ContestEffectEnd +AI_CGM_Unused_LastAppeal: + if_random_less_than 20, AI_CGM_End score +15 end -ContestEffect3_score: +AI_CGM_Unused_Discourage: score -20 end -ContestEffect38: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, ContestEffect38_contest04 - if_user_condition_eq 3, ContestEffect38_score1 - if_random 50, ContestEffectEnd +@ Enourages improving condition, esp if user has moves better with good condition or on 1st appeal +@ Discourages improving condition if at max condition, or if last appeal +AI_CGM_ImproveCondition: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, AI_CGM_ImproveCondition_CheckAppealNum + if_user_condition_eq 3, AI_CGM_ImproveCondition_AtMax + if_random_less_than 50, AI_CGM_End score +15 end -ContestEffect38_score1: +AI_CGM_ImproveCondition_AtMax: score -10 end -ContestEffect38_contest04: - if_turn_eq 4, ContestEffect38_score2 - if_turn_eq 0, ContestEffect38_random - if_move_used_count_eq 1, ContestEffectEnd - if_random 125, ContestEffectEnd +AI_CGM_ImproveCondition_CheckAppealNum: + if_last_appeal AI_CGM_ImproveCondition_LastAppeal + if_appeal_num_eq 0, AI_CGM_ImproveCondition_FirstAppeal + if_move_used_count_eq 1, AI_CGM_End + if_random_less_than 125, AI_CGM_End score +10 end -ContestEffect38_random: - if_random 100, ContestEffectEnd +AI_CGM_ImproveCondition_FirstAppeal: + if_random_less_than 100, AI_CGM_End score +10 end -ContestEffect38_score2: +AI_CGM_ImproveCondition_LastAppeal: score -10 end -ContestEffect47: - if_move_used_count_eq 1, ContestEffectEnd - if_user_order_eq MON_1, ContestEffect47_random - if_user_order_eq MON_2, ContestEffect47_random - if_turn_not_eq 4, ContestEffectEnd - if_user_has_exciting_move ContestEffectEnd - if_excitement_less_than 1, ContestEffectEnd +@ Encourage stopping audience excitement early in the appeal, or last appeal if no better options +AI_CGM_DontExciteAudience: + if_move_used_count_eq 1, AI_CGM_End + if_user_order_eq MON_1, AI_CGM_DontExciteAudience_EarlyTurn + if_user_order_eq MON_2, AI_CGM_DontExciteAudience_EarlyTurn + if_not_last_appeal AI_CGM_End + if_user_has_exciting_move AI_CGM_End + if_excitement_less_than 1, AI_CGM_End score +10 end -ContestEffect47_random: - if_random 127, ContestEffectEnd +AI_CGM_DontExciteAudience_EarlyTurn: + if_random_less_than 127, AI_CGM_End score +10 end -ContestEffect31: - if_user_order_eq MON_2, ContestEffect31_score1 - if_user_order_eq MON_3, ContestEffect31_score2 - if_user_order_eq MON_4, ContestEffect31_score3 +@ Encourages move the later the user goes +AI_CGM_AppealAsGoodAsPrevOnes: + if_user_order_eq MON_2, AI_CGM_AppealAsGoodAsPrevOnes_2ndUp + if_user_order_eq MON_3, AI_CGM_AppealAsGoodAsPrevOnes_3rdUp + if_user_order_eq MON_4, AI_CGM_AppealAsGoodAsPrevOnes_Last end -ContestEffect31_score1: +AI_CGM_AppealAsGoodAsPrevOnes_2ndUp: score +5 end -ContestEffect31_score2: +AI_CGM_AppealAsGoodAsPrevOnes_3rdUp: score +15 end -ContestEffect31_score3: +AI_CGM_AppealAsGoodAsPrevOnes_Last: score +20 end -ContestEffect32: - if_user_order_eq MON_1, ContestEffect32_score1 - if_user_order_eq MON_2, ContestEffect32_score2 - if_user_order_eq MON_3, ContestEffect32_score3 - if_user_order_eq MON_4, ContestEffect32_score5 +@ Encourages move more for each opponent who will have a turn before the user +AI_CGM_AppealAsGoodAsPrevOne: + if_user_order_eq MON_1, AI_CGM_AppealAsGoodAsPrevOne_1stUp + if_user_order_eq MON_2, AI_CGM_AppealAsGoodAsPrevOne_2ndUp + if_user_order_eq MON_3, AI_CGM_AppealAsGoodAsPrevOne_3rdUp + if_user_order_eq MON_4, AI_CGM_AppealAsGoodAsPrevOne_Last end -ContestEffect32_score1: +AI_CGM_AppealAsGoodAsPrevOne_1stUp: score -10 end -ContestEffect32_score2: - if_cannot_participate MON_1, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_2ndUp: + if_cannot_participate MON_1, AI_CGM_End score +5 end -ContestEffect32_score3: - if_cannot_participate MON_1, ContestEffect32_score4 +AI_CGM_AppealAsGoodAsPrevOne_3rdUp: + if_cannot_participate MON_1, AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2 score +5 - jump ContestEffect32_score4 + goto AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2 end -ContestEffect32_score4: - if_cannot_participate MON_2, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2: + if_cannot_participate MON_2, AI_CGM_End score +5 end -ContestEffect32_score5: - if_cannot_participate MON_1, ContestEffect32_score6 +AI_CGM_AppealAsGoodAsPrevOne_Last: + if_cannot_participate MON_1, AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2 score +5 - jump ContestEffect32_score6 + goto AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2 end -ContestEffect32_score6: - if_cannot_participate MON_2, ContestEffect32_score7 +AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2: + if_cannot_participate MON_2, AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3 score +5 - jump ContestEffect32_score7 + goto AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3 end -ContestEffect32_score7: - if_cannot_participate MON_3, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3: + if_cannot_participate MON_3, AI_CGM_End score +5 end -ContestEffect46: - if_user_order_eq MON_1, ContestEffect46_05 - if_user_order_more_than MON_1, ContestEffect46_score4 +@ Encourage move if audience is close to full exictement and user goes first +@ See bug note, only does this on 1st appeal (when it will never happen) +AI_CGM_BetterWhenAudienceExcited: + if_user_order_eq MON_1, AI_CGM_BetterWhenAudienceExcited_1stUp + if_user_order_more_than MON_1, AI_CGM_BetterWhenAudienceExcited_Not1stUp end -ContestEffect46_05: - if_turn_not_eq 0, ContestEffect46_score1 - if_excitement_eq 4, ContestEffect46_score2 - if_excitement_eq 3, ContestEffect46_score3 +AI_CGM_BetterWhenAudienceExcited_1stUp: + @ BUG: Should be if_appeal_num_eq 0 + @ 1st up on 1st appeal excitement will always be 0 + if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal + if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax + if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax end -ContestEffect46_score1: - if_random 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_Not1stAppeal: + if_random_less_than 125, AI_CGM_End score -15 end -ContestEffect46_score2: - if_random 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_1AwayFromMax: + if_random_less_than 125, AI_CGM_End score +20 end -ContestEffect46_score3: - if_random 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_2AwayFromMax: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect46_score4: - if_random 178, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_Not1stUp: + if_random_less_than 178, AI_CGM_End score +10 end -ContestEffect27: - if_user_order_eq MON_1, ContestEffectEnd - jump ContestEffect27_55_1 +@ Encourage move more for each condition star the prev mons have +AI_CGM_WorsenConditionOfPrevMons: + if_user_order_eq MON_1, AI_CGM_End + goto AI_CGM_WorsenConditionOfPrevMons_CheckMon1 end -ContestEffect27_55_1: - if_cannot_participate MON_1, ContestEffect27_noscore - if_condition_eq MON_1, 0, ContestEffect27_noscore - if_condition_eq MON_1, 1, ContestEffect27_score1 - if_condition_eq MON_1, 2, ContestEffect27_score2 - if_condition_eq MON_1, 3, ContestEffect27_score3 +AI_CGM_WorsenConditionOfPrevMons_CheckMon1: + if_cannot_participate MON_1, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2 + if_condition_eq MON_1, 0, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2 + if_condition_eq MON_1, 1, AI_CGM_WorsenConditionOfPrevMons_Mon1Has1Star + if_condition_eq MON_1, 2, AI_CGM_WorsenConditionOfPrevMons_Mon1Has2Stars + if_condition_eq MON_1, 3, AI_CGM_WorsenConditionOfPrevMons_Mon1Has3Stars end -ContestEffect27_score1: - if_random 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has1Star: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +5 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_score2: - if_random 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has2Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +10 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_score3: - if_random 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has3Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +15 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_noscore: - if_user_order_more_than MON_2, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2: + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_55_2: - if_cannot_participate MON_2, ContestEffect27_noscore2 - if_condition_eq MON_2, 0, ContestEffect27_noscore2 - if_condition_eq MON_2, 1, ContestEffect27_score4 - if_condition_eq MON_2, 2, ContestEffect27_score5 - if_condition_eq MON_2, 3, ContestEffect27_score6 +AI_CGM_WorsenConditionOfPrevMons_CheckMon2: + if_cannot_participate MON_2, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3 + if_condition_eq MON_2, 0, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3 + if_condition_eq MON_2, 1, AI_CGM_WorsenConditionOfPrevMons_Mon2Has1Star + if_condition_eq MON_2, 2, AI_CGM_WorsenConditionOfPrevMons_Mon2Has2Stars + if_condition_eq MON_2, 3, AI_CGM_WorsenConditionOfPrevMons_Mon2Has3Stars end -ContestEffect27_score4: - if_random 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has1Star: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +5 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_score5: - if_random 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has2Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +10 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_score6: - if_random 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has3Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +15 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_noscore2: - if_user_order_more_than MON_3, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3: + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_55_3: - if_cannot_participate MON_3, ContestEffect27_end - if_condition_eq MON_3, 0, ContestEffect27_end - if_condition_eq MON_3, 1, ContestEffect27_score7 - if_condition_eq MON_3, 2, ContestEffect27_score8 - if_condition_eq MON_3, 3, ContestEffect27_score9 +AI_CGM_WorsenConditionOfPrevMons_CheckMon3: + if_cannot_participate MON_3, AI_CGM_WorsenConditionOfPrevMons_end + if_condition_eq MON_3, 0, AI_CGM_WorsenConditionOfPrevMons_end + if_condition_eq MON_3, 1, AI_CGM_WorsenConditionOfPrevMons_Mon3Has1Star + if_condition_eq MON_3, 2, AI_CGM_WorsenConditionOfPrevMons_Mon3Has2Stars + if_condition_eq MON_3, 3, AI_CGM_WorsenConditionOfPrevMons_Mon3Has3Stars end -ContestEffect27_score7: - if_random 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has1Star: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect27_score8: - if_random 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has2Stars: + if_random_less_than 125, AI_CGM_End score +10 end -ContestEffect27_score9: - if_random 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has3Stars: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect27_end: +AI_CGM_WorsenConditionOfPrevMons_end: end -ContestEffect16or17: - if_user_order_eq MON_1, ContestEffectEnd - jump ContestEffect16or17_55 +@ Encourage if a prev mon has started a combo, esp if they havent completed it yet +@ BUG: Incorrectly uses if_used_combo_starter below, instead of if_not_used_combo_starter +@ As a result it encourages move if a prev mon has not begun a combo +AI_CGM_TargetMonWithJudgesAttention: + if_user_order_eq MON_1, AI_CGM_End + goto AI_CGM_TargetMonWithJudgesAttention_CheckMon1 end -ContestEffect16or17_55: - if_cannot_participate MON_1, ContestEffect16or17_0E_1 - if_used_combo_starter_eq MON_1, TRUE, ContestEffect16or17_0E_1 - if_random 125, ContestEffect16or17_0E_1 +AI_CGM_TargetMonWithJudgesAttention_CheckMon1: + if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 + if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +2 - contest_58 MON_1, ContestEffect16or17_0E_1 + if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +8 end -ContestEffect16or17_0E_1: - if_user_order_eq MON_2, ContestEffectEnd - if_cannot_participate MON_2, ContestEffect16or17_0E_2 - if_used_combo_starter_eq MON_2, TRUE, ContestEffect16or17_0E_2 - if_random 125, ContestEffect16or17_0E_2 +AI_CGM_TargetMonWithJudgesAttention_CheckMon2: + if_user_order_eq MON_2, AI_CGM_End + if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 + if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +2 - contest_58 MON_2, ContestEffect16or17_0E_2 + if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +8 end -ContestEffect16or17_0E_2: - if_user_order_eq MON_3, ContestEffectEnd - if_cannot_participate MON_3, ContestEffectEnd - if_used_combo_starter_eq MON_3, TRUE, ContestEffectEnd - if_random 125, ContestEffectEnd +AI_CGM_TargetMonWithJudgesAttention_CheckMon3: + if_user_order_eq MON_3, AI_CGM_End + if_cannot_participate MON_3, AI_CGM_End + if_used_combo_starter MON_3, AI_CGM_End + if_random_less_than 125, AI_CGM_End score +2 - contest_58 MON_3, ContestEffectEnd + if_not_completed_combo MON_3, AI_CGM_End score +8 end -ContestEffect_FollowingMonsNervous: - if_user_order_eq MON_4, ContestEffectEnd - jump ContestEffect_FollowingMonsNervous_CheckMon4 +@ Encourage making mons nervous that have started a combo and can appeal after the user +AI_CGM_MakeFollowingMonsNervous: + if_user_order_eq MON_4, AI_CGM_End + goto AI_CGM_MakeFollowingMonsNervous_CheckMon4 end -ContestEffect_FollowingMonsNervous_CheckMon4: - if_cannot_participate MON_4, ContestEffect_FollowingMonsNervous_CheckMon3 - if_used_combo_starter_eq MON_4, FALSE, ContestEffect_FollowingMonsNervous_CheckMon3 +AI_CGM_MakeFollowingMonsNervous_CheckMon4: + if_cannot_participate MON_4, AI_CGM_MakeFollowingMonsNervous_CheckMon3 + if_not_used_combo_starter MON_4, AI_CGM_MakeFollowingMonsNervous_CheckMon3 score +5 - if_random 125, ContestEffect16or17_0E_1 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +5 end -ContestEffect_FollowingMonsNervous_CheckMon3: - if_user_order_eq MON_3, ContestEffectEnd - if_cannot_participate MON_3, ContestEffect_FollowingMonsNervous_CheckMon2 - if_used_combo_starter_eq MON_3, FALSE, ContestEffect_FollowingMonsNervous_CheckMon2 +AI_CGM_MakeFollowingMonsNervous_CheckMon3: + if_user_order_eq MON_3, AI_CGM_End + if_cannot_participate MON_3, AI_CGM_MakeFollowingMonsNervous_CheckMon2 + if_not_used_combo_starter MON_3, AI_CGM_MakeFollowingMonsNervous_CheckMon2 score +5 - if_random 125, ContestEffect16or17_0E_2 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +5 end -ContestEffect_FollowingMonsNervous_CheckMon2: - if_user_order_eq MON_2, ContestEffectEnd - if_cannot_participate MON_2, ContestEffectEnd - if_used_combo_starter_eq MON_2, FALSE, ContestEffectEnd +AI_CGM_MakeFollowingMonsNervous_CheckMon2: + if_user_order_eq MON_2, AI_CGM_End + if_cannot_participate MON_2, AI_CGM_End + if_not_used_combo_starter MON_2, AI_CGM_End score +5 - if_random 125, ContestEffectEnd + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect18: - if_turn_eq 4, ContestEffect18_score1 - jump ContestEffect18_0E +@ Encourages move if users turn is later, or if its the last appeal +AI_CGM_JamsOthersButMissOneTurn: + if_last_appeal AI_CGM_JamsOthersButMissOneTurn_LastAppeal + goto AI_CGM_JamsOthersButMissOneTurn_TurnOrder end -ContestEffect18_score1: +AI_CGM_JamsOthersButMissOneTurn_LastAppeal: score +5 - jump ContestEffect18_0E + goto AI_CGM_JamsOthersButMissOneTurn_TurnOrder end -ContestEffect18_0E: - if_user_order_eq MON_1, ContestEffect18_score2 - if_user_order_eq MON_2, ContestEffect18_random1 - if_user_order_eq MON_3, ContestEffect18_random2 - if_user_order_eq MON_4, ContestEffect18_random3 +AI_CGM_JamsOthersButMissOneTurn_TurnOrder: + if_user_order_eq MON_1, AI_CGM_JamsOthersButMissOneTurn_1stUp + if_user_order_eq MON_2, AI_CGM_JamsOthersButMissOneTurn_2ndUp + if_user_order_eq MON_3, AI_CGM_JamsOthersButMissOneTurn_3rdUp + if_user_order_eq MON_4, AI_CGM_JamsOthersButMissOneTurn_Last end -ContestEffect18_score2: +AI_CGM_JamsOthersButMissOneTurn_1stUp: score -15 end -ContestEffect18_random1: - if_random 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_2ndUp: + if_random_less_than 125, AI_CGM_End score -10 end -ContestEffect18_random2: - if_random 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_3rdUp: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect18_random3: - if_random 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_Last: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffectEnd: +AI_CGM_End: end @ Randomly encourage moves in Cute, Smart, and Tough contests. AI_Erratic: - if_contest_type_eq CONTEST_CUTE, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_SMART, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_TOUGH, Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_CUTE, AI_Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_SMART, AI_Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_TOUGH, AI_Erratic_CuteSmartTough end -Erratic_CuteSmartTough: - if_random 125, Erratic_NoScoreIncrease +AI_Erratic_CuteSmartTough: + if_random_less_than 125, AI_Erratic_End score +10 end -Erratic_NoScoreIncrease: - end - -AI_CheckForBadMove: - if_effect_eq CONTEST_EFFECT_STARTLE_FRONT_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON_2, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BETTER_IF_SAME_TYPE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS_2, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, ContestEffect2_25 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, ContestEffect2_26 - if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, ContestEffect2_26 - if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestEffect2_38 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_ONCE, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, ContestEffect2_2 - end - -ContestEffect2_8: - if_user_order_eq MON_1, ContestEffect2_8_score1 - if_user_order_eq MON_2, ContestEffect2_8_score2 - if_user_order_eq MON_3, ContestEffect2_8_score3 - if_user_order_eq MON_4, ContestEffect2_8_score4 - end -ContestEffect2_8_score1: +AI_Erratic_End: + end + +@ Checks if move should be discouraged based on its effect +AI_CheckBadMove: + if_effect_eq CONTEST_EFFECT_STARTLE_FRONT_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON_2, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BETTER_IF_SAME_TYPE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS_2, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, AI_CBM_DependsOnNextMon + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, AI_CBM_DependsOnNextMons + if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, AI_CBM_DependsOnNextMons + if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CBM_ImproveCondition + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_ONCE, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, AI_CBM_NoMoreMoves + end + +@ If previous mon is skipping turn (or user is first), discourage move +AI_CBM_DependsOnPrevMon: + if_user_order_eq MON_1, AI_CBM_DependsOnPrevMon_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnPrevMon_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnPrevMon_3rdUp + if_user_order_eq MON_4, AI_CBM_DependsOnPrevMon_Last + end +AI_CBM_DependsOnPrevMon_1stUp: score -10 end -ContestEffect2_8_score2: - if_can_participate MON_1, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_2ndUp: + if_can_participate MON_1, AI_CBM_End score -10 end -ContestEffect2_8_score3: - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_3rdUp: + if_can_participate MON_2, AI_CBM_End score -10 end -ContestEffect2_8_score4: - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_Last: + if_can_participate MON_3, AI_CBM_End score -10 end -ContestEffect2_9: - if_user_order_eq MON_1, ContestEffect2_9_score1 - if_user_order_eq MON_2, ContestEffect2_9_score2 - if_user_order_eq MON_3, ContestEffect2_9_score3 - if_user_order_eq MON_4, ContestEffect2_9_score4 +@ If previous mons are all skipping turns (or user is first), discourage move +AI_CBM_DependsOnPrevMons: + if_user_order_eq MON_1, AI_CBM_DependsOnPrevMons_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnPrevMons_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnPrevMons_3rdUp + if_user_order_eq MON_4, AI_CBM_DependsOnPrevMons_Last end -ContestEffect2_9_score1: +AI_CBM_DependsOnPrevMons_1stUp: score -20 end -ContestEffect2_9_score2: - if_can_participate MON_1, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_2ndUp: + if_can_participate MON_1, AI_CBM_End score -15 end -ContestEffect2_9_score3: - if_can_participate MON_1, ContestEffectEnd2 - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_3rdUp: + if_can_participate MON_1, AI_CBM_End + if_can_participate MON_2, AI_CBM_End score -15 end -ContestEffect2_9_score4: - if_can_participate MON_1, ContestEffectEnd2 - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_Last: + if_can_participate MON_1, AI_CBM_End + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End score -15 end -ContestEffect2_25: - if_user_order_eq MON_1, ContestEffect2_25_score1 - if_user_order_eq MON_2, ContestEffect2_25_score2 - if_user_order_eq MON_3, ContestEffect2_25_score3 +@ If next mon is skipping turn (or user is last), discourage move +AI_CBM_DependsOnNextMon: + if_user_order_eq MON_1, AI_CBM_DependsOnNextMon_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnNextMon_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnNextMon_3rdUp score -10 end -ContestEffect2_25_score1: - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_1stUp: + if_can_participate MON_2, AI_CBM_End score -10 end -ContestEffect2_25_score2: - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_2ndUp: + if_can_participate MON_3, AI_CBM_End score -10 end -ContestEffect2_25_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26: - if_user_order_eq MON_1, ContestEffect2_26_score1 - if_user_order_eq MON_2, ContestEffect2_26_score2 - if_user_order_eq MON_3, ContestEffect2_26_score3 +@ If next mons are all skipping turns (or user is last), discourage move +AI_CBM_DependsOnNextMons: + if_user_order_eq MON_1, AI_CBM_DependsOnNextMons_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnNextMons_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnNextMons_3rdUp score -10 end -ContestEffect2_26_score1: - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_1stUp: + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26_score2: - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_2ndUp: + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_38: - if_user_condition_less_than 3, ContestEffectEnd2 +@ If at max condition, discourage move +AI_CBM_ImproveCondition: + if_user_condition_less_than 3, AI_CBM_End score -20 end -ContestEffect2_4: - if_user_order_eq MON_1, ContestEffect2_4_score1 - if_user_order_eq MON_2, ContestEffect2_4_score2 - if_user_order_eq MON_3, ContestEffect2_4_score3 +@ If there are no upcoming mons who can make an appeal (or if user is last), discourage move +@ Identical to AI_CBM_DependsOnNextMons +AI_CBM_AvoidStartle: + if_user_order_eq MON_1, AI_CBM_AvoidStartle_1stUp + if_user_order_eq MON_2, AI_CBM_AvoidStartle_2ndUp + if_user_order_eq MON_3, AI_CBM_AvoidStartle_3rdUp score -10 end -ContestEffect2_4_score1: - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_1stUp: + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_4_score2: - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_2ndUp: + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_4_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_2: - if_turn_eq 0, ContestEffect2_2_score1 - if_turn_eq 1, ContestEffect2_2_score2 - if_turn_eq 2, ContestEffect2_2_score3 - if_turn_eq 3, ContestEffect2_2_score4 - if_turn_eq 4, ContestEffect2_2_score5 +@ Very good if its the last appeal, otherwise discourage move +AI_CBM_NoMoreMoves: + if_appeal_num_eq 0, AI_CBM_NoMoreMoves_1stAppeal + if_appeal_num_eq 1, AI_CBM_NoMoreMoves_2ndAppeal + if_appeal_num_eq 2, AI_CBM_NoMoreMoves_3rdAppeal + if_appeal_num_eq 3, AI_CBM_NoMoreMoves_4thAppeal + if_last_appeal AI_CBM_NoMoreMoves_LastAppeal end -ContestEffect2_2_score1: - if_random 20, ContestEffectEnd2 +AI_CBM_NoMoreMoves_1stAppeal: + if_random_less_than 20, AI_CBM_End score -15 end -ContestEffect2_2_score2: - if_random 40, ContestEffectEnd2 +AI_CBM_NoMoreMoves_2ndAppeal: + if_random_less_than 40, AI_CBM_End score -15 end -ContestEffect2_2_score3: - if_random 60, ContestEffectEnd2 +AI_CBM_NoMoreMoves_3rdAppeal: + if_random_less_than 60, AI_CBM_End score -15 end -ContestEffect2_2_score4: - if_random 80, ContestEffectEnd2 +AI_CBM_NoMoreMoves_4thAppeal: + if_random_less_than 80, AI_CBM_End score -15 end -ContestEffect2_2_score5: - if_random 20, ContestEffectEnd2 +AI_CBM_NoMoreMoves_LastAppeal: + if_random_less_than 20, AI_CBM_End score +20 end -ContestEffectEnd2: +AI_CBM_End: end +@ Encourages/discourages move affected by the move order +@ e.g. use BETTER_IF_FIRST moves if user is first, dont use AVOID_STARTLE moves if last AI_CheckOrder: - if_user_order_eq MON_1, AI_effectcheck1_081DCA4C - if_user_order_eq MON_2, AI_effectcheck2_081DCA4C - if_user_order_eq MON_3, AI_effectcheck3_081DCA4C - if_user_order_eq MON_4, AI_effectcheck4_081DCA4C + if_user_order_eq MON_1, AI_CheckOrder_1stUp + if_user_order_eq MON_2, AI_CheckOrder_2ndUp + if_user_order_eq MON_3, AI_CheckOrder_3rdUp + if_user_order_eq MON_4, AI_CheckOrder_Last end -AI_effectcheck1_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_IF_FIRST, AI_score1_081DCA4C - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score2_081DCA4C - if_effect_type_eq 1, AI_random1_081DCA4C +AI_CheckOrder_1stUp: + if_effect_eq CONTEST_EFFECT_BETTER_IF_FIRST, AI_CheckOrder_1stUp_Encourage + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_1stUp_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_1stUp_RandomEncourage end -AI_score1_081DCA4C: +AI_CheckOrder_1stUp_Encourage: score +15 end -AI_score2_081DCA4C: +AI_CheckOrder_1stUp_Discourage: score -15 end -AI_random1_081DCA4C: - if_random 100, ContestEffectEnd2 +AI_CheckOrder_1stUp_RandomEncourage: + if_random_less_than 100, AI_CBM_End score +10 end -AI_effectcheck2_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score3_081DCA4C - if_effect_type_eq 1, AI_random2_081DCA4C +AI_CheckOrder_2ndUp: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_2ndUp_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_2ndUp_RandomEncourage end -AI_score3_081DCA4C: +AI_CheckOrder_2ndUp_Discourage: score -5 end -AI_random2_081DCA4C: - if_random 125, ContestEffectEnd2 +AI_CheckOrder_2ndUp_RandomEncourage: + if_random_less_than 125, AI_CBM_End score +10 end -AI_effectcheck3_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score4_081DCA4C - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_score4_081DCA4C - if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_score4_081DCA4C +AI_CheckOrder_3rdUp: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_3rdUp_Encourage + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CheckOrder_3rdUp_Encourage + if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_CheckOrder_3rdUp_Encourage end -AI_score4_081DCA4C: +AI_CheckOrder_3rdUp_Encourage: score +5 end -AI_effectcheck4_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_BETTER_IF_LAST, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_score7_081DCA4C - if_effect_type_eq 1, AI_score6_081DCA4C - if_effect_type_eq 3, AI_random3_081DCA4C +AI_CheckOrder_Last: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_BETTER_IF_LAST, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CheckOrder_Last_Encourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_Last_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_STARTLE_MONS, AI_CheckOrder_Last_RandomEncourage end -AI_score5_081DCA4C: +AI_CheckOrder_Last_StronglyEncourage: score +15 end -AI_score6_081DCA4C: +AI_CheckOrder_Last_Discourage: score -10 end -AI_random3_081DCA4C: - if_random 125, ContestEffectEnd2 +AI_CheckOrder_Last_RandomEncourage: + if_random_less_than 125, AI_CBM_End score +10 end -AI_score7_081DCA4C: +AI_CheckOrder_Last_Encourage: score +5 end diff --git a/data/event_scripts.s b/data/event_scripts.s index 7cc5960d4..f8348d0b0 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -40,6 +40,7 @@ #include "constants/moves.h" #include "constants/party_menu.h" #include "constants/pokemon.h" +#include "constants/roulette.h" #include "constants/script_menu.h" #include "constants/secret_bases.h" #include "constants/songs.h" @@ -712,13 +713,13 @@ Common_EventScript_SetAbnormalWeather:: @ 827207A return Common_EventScript_PlayGymBadgeFanfare:: @ 827207E - playfanfare MUS_ME_BACHI + playfanfare MUS_OBTAIN_BADGE waitfanfare return Common_EventScript_OutOfCenterPartyHeal:: @ 8272083 fadescreen FADE_TO_BLACK - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty fadescreen FADE_FROM_BLACK @@ -735,7 +736,7 @@ EventScript_RegionMap:: @ 827208F Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0 setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_M_BOAT, 0 + playbgm MUS_SAILING, 0 return Common_EventScript_StopBrineysBoatMusic:: @ 82720A8 @@ -819,7 +820,7 @@ Common_EventScript_NameReceivedPartyMon:: @ 82723DD Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4 bufferitemname 0, VAR_0x8004 - playfanfare MUS_ME_WAZA + playfanfare MUS_OBTAIN_TMHM message gText_PlayerHandedOverTheItem waitmessage waitfanfare diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 4aef859d8..c57f19a04 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -5,73 +5,73 @@ .align 2 gFieldEffectScriptPointers:: @ 82DB9D4 - .4byte gFieldEffectScript_ExclamationMarkIcon1 - .4byte gFieldEffectScript_UseCutOnTallGrass - .4byte gFieldEffectScript_UseCutOnTree - .4byte gFieldEffectScript_Shadow - .4byte gFieldEffectScript_TallGrass - .4byte gFieldEffectScript_Ripple - .4byte gFieldEffectScript_FieldMoveShowMon - .4byte gFieldEffectScript_Ash - .4byte gFieldEffectScript_SurfBlob - .4byte gFieldEffectScript_UseSurf - .4byte gFieldEffectScript_GroundImpactDust - .4byte gFieldEffectScript_UseSecretPowerCave - .4byte gFieldEffectScript_BikeHopTallGrass - .4byte gFieldEffectScript_SandFootprints - .4byte gFieldEffectScript_BikeHopBigSplash - .4byte gFieldEffectScript_Splash - .4byte gFieldEffectScript_BikeHopSmallSplash - .4byte gFieldEffectScript_LongGrass - .4byte gFieldEffectScript_JumpLongGrass - .4byte gFieldEffectScript_Unknown19 - .4byte gFieldEffectScript_Unknown20 - .4byte gFieldEffectScript_Unknown21 - .4byte gFieldEffectScript_Unknown22 - .4byte gFieldEffectScript_BerryTreeGrowthSparkle - .4byte gFieldEffectScript_DeepSandFootprints - .4byte gFieldEffectScript_PokeCenterHeal - .4byte gFieldEffectScript_UseSecretPowerTree - .4byte gFieldEffectScript_UseSecretPowerShrub - .4byte gFieldEffectScript_TreeDisguise - .4byte gFieldEffectScript_MountainDisguise - .4byte gFieldEffectScript_NPCUseFly - .4byte gFieldEffectScript_UseFly - .4byte gFieldEffectScript_FlyIn - .4byte gFieldEffectScript_QuestionMarkIcon - .4byte gFieldEffectScript_FeetInFlowingWater - .4byte gFieldEffectScript_BikeTireTracks - .4byte gFieldEffectScript_SandDisguisePlaceholder - .4byte gFieldEffectScript_UseRockSmash - .4byte gFieldEffectScript_UseDig - .4byte gFieldEffectScript_SandPile - .4byte gFieldEffectScript_UseStrength - .4byte gFieldEffectScript_ShortGrass - .4byte gFieldEffectScript_HotSpringsWater - .4byte gFieldEffectScript_UseWaterfall - .4byte gFieldEffectScript_UseDive - .4byte gFieldEffectScript_Pokeball - .4byte gFieldEffectScript_HeartIcon - .4byte gFieldEffectScript_Unknown47 - .4byte gFieldEffectScript_Unknown48 - .4byte gFieldEffectScript_JumpOutOfAsh - .4byte gFieldEffectScript_LavaridgeGymWarp - .4byte gFieldEffectScript_SweetScent - .4byte gFieldEffectScript_SandPillar - .4byte gFieldEffectScript_Bubbles - .4byte gFieldEffectScript_Sparkle - .4byte gFieldEffectScript_ShowSecretPowerCave - .4byte gFieldEffectScript_ShowSecretPowerTree - .4byte gFieldEffectScript_ShowSecretPowerShrub - .4byte gFieldEffectScript_ShowCutGrass - .4byte gFieldEffectScript_FieldMoveShowMonInit - .4byte gFieldEffectScript_UsePuzzleEffect - .4byte gFieldEffectScript_SecretBaseBootPC - .4byte gFieldEffectScript_HallOfFameRecord - .4byte gFieldEffectScript_UseTeleport - .4byte gFieldEffectScript_Rayquaza - .4byte gFieldEffectScript_Unknown65 - .4byte gFieldEffectScript_MoveDeoxysRock + .4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON + .4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS + .4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE + .4byte gFieldEffectScript_Shadow @ FLDEFF_SHADOW + .4byte gFieldEffectScript_TallGrass @ FLDEFF_TALL_GRASS + .4byte gFieldEffectScript_Ripple @ FLDEFF_RIPPLE + .4byte gFieldEffectScript_FieldMoveShowMon @ FLDEFF_FIELD_MOVE_SHOW_MON + .4byte gFieldEffectScript_Ash @ FLDEFF_ASH + .4byte gFieldEffectScript_SurfBlob @ FLDEFF_SURF_BLOB + .4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF + .4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST + .4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE + .4byte gFieldEffectScript_JumpTallGrass @ FLDEFF_JUMP_TALL_GRASS + .4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS + .4byte gFieldEffectScript_JumpBigSplash @ FLDEFF_JUMP_BIG_SPLASH + .4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH + .4byte gFieldEffectScript_JumpSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH + .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS + .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS + .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS + .4byte gFieldEffectScript_UnusedGrass2 @ FLDEFF_UNUSED_GRASS_2 + .4byte gFieldEffectScript_UnusedSand @ FLDEFF_UNUSED_SAND + .4byte gFieldEffectScript_WaterSurfacing @ FLDEFF_WATER_SURFACING + .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE + .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS + .4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL + .4byte gFieldEffectScript_UseSecretPowerTree @ FLDEFF_USE_SECRET_POWER_TREE + .4byte gFieldEffectScript_UseSecretPowerShrub @ FLDEFF_USE_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_TreeDisguise @ FLDEFF_TREE_DISGUISE + .4byte gFieldEffectScript_MountainDisguise @ FLDEFF_MOUNTAIN_DISGUISE + .4byte gFieldEffectScript_NPCUseFly @ FLDEFF_NPCFLY_OUT + .4byte gFieldEffectScript_UseFly @ FLDEFF_USE_FLY + .4byte gFieldEffectScript_FlyIn @ FLDEFF_FLY_IN + .4byte gFieldEffectScript_QuestionMarkIcon @ FLDEFF_QUESTION_MARK_ICON + .4byte gFieldEffectScript_FeetInFlowingWater @ FLDEFF_FEET_IN_FLOWING_WATER + .4byte gFieldEffectScript_BikeTireTracks @ FLDEFF_BIKE_TIRE_TRACKS + .4byte gFieldEffectScript_SandDisguisePlaceholder @ FLDEFF_SAND_DISGUISE + .4byte gFieldEffectScript_UseRockSmash @ FLDEFF_USE_ROCK_SMASH + .4byte gFieldEffectScript_UseDig @ FLDEFF_USE_DIG + .4byte gFieldEffectScript_SandPile @ FLDEFF_SAND_PILE + .4byte gFieldEffectScript_UseStrength @ FLDEFF_USE_STRENGTH + .4byte gFieldEffectScript_ShortGrass @ FLDEFF_SHORT_GRASS + .4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER + .4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL + .4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE + .4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL + .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON + .4byte gFieldEffectScript_Nop47 @ FLDEFF_NOP_47 + .4byte gFieldEffectScript_Nop48 @ FLDEFF_NOP_48 + .4byte gFieldEffectScript_AshPuff @ FLDEFF_ASH_PUFF + .4byte gFieldEffectScript_AshLaunch @ FLDEFF_ASH_LAUNCH + .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT + .4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR + .4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES + .4byte gFieldEffectScript_Sparkle @ FLDEFF_SPARKLE + .4byte gFieldEffectScript_ShowSecretPowerCave @ FLDEFF_SECRET_POWER_CAVE + .4byte gFieldEffectScript_ShowSecretPowerTree @ FLDEFF_SECRET_POWER_TREE + .4byte gFieldEffectScript_ShowSecretPowerShrub @ FLDEFF_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_ShowCutGrass @ FLDEFF_CUT_GRASS + .4byte gFieldEffectScript_FieldMoveShowMonInit @ FLDEFF_FIELD_MOVE_SHOW_MON_INIT + .4byte gFieldEffectScript_UsePuzzleEffect @ FLDEFF_USE_TOMB_PUZZLE_EFFECT + .4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON + .4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD + .4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT + .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT + .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK + .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0 field_eff_callnative FldEff_ExclamationMarkIcon @@ -90,11 +90,11 @@ gFieldEffectScript_Shadow:: @ 82DBAF2 field_eff_end gFieldEffectScript_TallGrass:: @ 82DBAF8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_TallGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass field_eff_end gFieldEffectScript_Ripple:: @ 82DBB02 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ripple + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple field_eff_end gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C @@ -102,7 +102,7 @@ gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C field_eff_end gFieldEffectScript_Ash:: @ 82DBB12 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash field_eff_end gFieldEffectScript_SurfBlob:: @ 82DBB1C @@ -114,55 +114,55 @@ gFieldEffectScript_UseSurf:: @ 82DBB22 field_eff_end gFieldEffectScript_GroundImpactDust:: @ 82DBB28 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Dust + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust field_eff_end gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 field_eff_callnative FldEff_UseSecretPowerCave field_eff_end -gFieldEffectScript_BikeHopTallGrass:: @ 82DBB38 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass +gFieldEffectScript_JumpTallGrass:: @ 82DBB38 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass field_eff_end gFieldEffectScript_SandFootprints:: @ 82DBB42 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints field_eff_end -gFieldEffectScript_BikeHopBigSplash:: @ 82DBB4C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash +gFieldEffectScript_JumpBigSplash:: @ 82DBB4C + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash field_eff_end gFieldEffectScript_Splash:: @ 82DBB56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash field_eff_end -gFieldEffectScript_BikeHopSmallSplash:: @ 82DBB60 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash +gFieldEffectScript_JumpSmallSplash:: @ 82DBB60 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash field_eff_end gFieldEffectScript_LongGrass:: @ 82DBB6A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_LongGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass field_eff_end gFieldEffectScript_JumpLongGrass:: @ 82DBB74 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpLongGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass field_eff_end -gFieldEffectScript_Unknown19:: @ 82DBB7E - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19 +gFieldEffectScript_UnusedGrass:: @ 82DBB7E + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass field_eff_end -gFieldEffectScript_Unknown20:: @ 82DBB88 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown20 +gFieldEffectScript_UnusedGrass2:: @ 82DBB88 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 field_eff_end -gFieldEffectScript_Unknown21:: @ 82DBB92 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21 +gFieldEffectScript_UnusedSand:: @ 82DBB92 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand field_eff_end -gFieldEffectScript_Unknown22:: @ 82DBB9C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown22 +gFieldEffectScript_WaterSurfacing:: @ 82DBB9C + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing field_eff_end gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 @@ -170,12 +170,12 @@ gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 field_eff_end gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_DeepSandFootprints + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints field_eff_end gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6 - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_PokecenterHeal + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal field_eff_end gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5 @@ -211,11 +211,11 @@ gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF field_eff_end gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_FeetInFlowingWater + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater field_eff_end gFieldEffectScript_BikeTireTracks:: @ 82DBBFF - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_BikeTireTracks + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks field_eff_end gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09 @@ -227,7 +227,7 @@ gFieldEffectScript_UseRockSmash:: @ 82DBC0F field_eff_end gFieldEffectScript_UseStrength:: @ 82DBC15 - field_eff_callnative sub_8145E2C + field_eff_callnative FldEff_UseStrength field_eff_end gFieldEffectScript_UseDig:: @ 82DBC1B @@ -235,15 +235,15 @@ gFieldEffectScript_UseDig:: @ 82DBC1B field_eff_end gFieldEffectScript_SandPile:: @ 82DBC21 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandPile + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile field_eff_end gFieldEffectScript_ShortGrass:: @ 82DBC2B - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_ShortGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass field_eff_end gFieldEffectScript_HotSpringsWater:: @ 82DBC35 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_HotSpringsWater + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater field_eff_end gFieldEffectScript_UseWaterfall:: @ 82DBC3F @@ -255,28 +255,28 @@ gFieldEffectScript_UseDive:: @ 82DBC45 field_eff_end gFieldEffectScript_Pokeball:: @ 82DBC4B - field_eff_loadpal gFieldEffectObjectPaletteInfo10 + field_eff_loadpal gSpritePalette_Pokeball field_eff_callnative FldEff_Pokeball field_eff_end gFieldEffectScript_HeartIcon:: @ 82DBC56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_HeartIcon + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon field_eff_end -gFieldEffectScript_Unknown47:: @ 82DBC60 - field_eff_callnative FldEff_NopA6FC +gFieldEffectScript_Nop47:: @ 82DBC60 + field_eff_callnative FldEff_Nop47 field_eff_end -gFieldEffectScript_Unknown48:: @ 82DBC66 - field_eff_callnative FldEff_NopA700 +gFieldEffectScript_Nop48:: @ 82DBC66 + field_eff_callnative FldEff_Nop48 field_eff_end -gFieldEffectScript_JumpOutOfAsh:: @ 82DBC6C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_PopOutOfAsh +gFieldEffectScript_AshPuff:: @ 82DBC6C + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff field_eff_end -gFieldEffectScript_LavaridgeGymWarp:: @ 82DBC76 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_LavaridgeGymWarp +gFieldEffectScript_AshLaunch:: @ 82DBC76 + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch field_eff_end gFieldEffectScript_SweetScent:: @ 82DBC80 @@ -284,31 +284,31 @@ gFieldEffectScript_SweetScent:: @ 82DBC80 field_eff_end gFieldEffectScript_SandPillar:: @ 82DBC86 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo9, FldEff_SandPillar + field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar field_eff_end gFieldEffectScript_Bubbles:: @ 82DBC90 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Bubbles + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles field_eff_end gFieldEffectScript_Sparkle:: @ 82DBC9A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, FldEff_Sparkle + field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle field_eff_end gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo7, FldEff_SecretPowerCave + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave field_eff_end gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerTree + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree field_eff_end gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerShrub + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub field_eff_end gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo6, FldEff_CutGrass + field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass field_eff_end gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC @@ -324,22 +324,22 @@ gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8 field_eff_end gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, FldEff_HallOfFameRecord + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord field_eff_end gFieldEffectScript_UseTeleport:: @ 82DBCED field_eff_callnative FldEff_UseTeleport field_eff_end -gFieldEffectScript_Rayquaza:: @ 82DBCF3 - field_eff_callnative sub_80B8F98 +gFieldEffectScript_RayquazaSpotlight:: @ 82DBCF3 + field_eff_callnative FldEff_RayquazaSpotlight field_eff_end -gFieldEffectScript_Unknown65:: @ 82DBCF9 - field_eff_callnative sub_80B9ADC +gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9 + field_eff_callnative FldEff_DestroyDeoxysRock field_eff_end gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF - field_eff_callnative Fldeff_MoveDeoxysRock + field_eff_callnative FldEff_MoveDeoxysRock field_eff_end diff --git a/data/io_reg.s b/data/io_reg.s deleted file mode 100644 index 0941b4345..000000000 --- a/data/io_reg.s +++ /dev/null @@ -1,37 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - - -.align 2 -gUnref_82EC784:: @ 82EC784 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x04000008 - .4byte 0x0400000A - .4byte 0x0400000C - .4byte 0x0400000E - .4byte 0x04000010 - .4byte 0x04000014 - .4byte 0x04000018 - .4byte 0x0400001C - .4byte 0x04000012 - .4byte 0x04000016 - .4byte 0x0400001A - .4byte 0x0400001E - .4byte 0x02000100 - .4byte 0x08000400 - -gOverworldBackgroundLayerFlags:: @ 82EC7C4 - .2byte BLDCNT_TGT2_BG0 - .2byte BLDCNT_TGT2_BG1 - .2byte BLDCNT_TGT2_BG2 - .2byte BLDCNT_TGT2_BG3 - -gOrbEffectBackgroundLayerFlags:: @ 82EC7CC - .2byte BLDCNT_TGT1_BG0 - .2byte BLDCNT_TGT1_BG1 - .2byte BLDCNT_TGT1_BG2 - .2byte BLDCNT_TGT1_BG3 diff --git a/data/maps/AbandonedShip_CaptainsOffice/map.json b/data/maps/AbandonedShip_CaptainsOffice/map.json index 320bbb0d1..e4522dfca 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/map.json +++ b/data/maps/AbandonedShip_CaptainsOffice/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CAPTAINS_OFFICE", "name": "AbandonedShip_CaptainsOffice", "layout": "LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Corridors_1F/map.json b/data/maps/AbandonedShip_Corridors_1F/map.json index 13ccd41cd..94f42d654 100644 --- a/data/maps/AbandonedShip_Corridors_1F/map.json +++ b/data/maps/AbandonedShip_Corridors_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CORRIDORS_1F", "name": "AbandonedShip_Corridors_1F", "layout": "LAYOUT_ABANDONED_SHIP_CORRIDORS_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Corridors_B1F/map.json b/data/maps/AbandonedShip_Corridors_B1F/map.json index d024bb953..c65e58ca5 100644 --- a/data/maps/AbandonedShip_Corridors_B1F/map.json +++ b/data/maps/AbandonedShip_Corridors_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CORRIDORS_B1F", "name": "AbandonedShip_Corridors_B1F", "layout": "LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Deck/map.json b/data/maps/AbandonedShip_Deck/map.json index 781dfa193..d50e015f3 100644 --- a/data/maps/AbandonedShip_Deck/map.json +++ b/data/maps/AbandonedShip_Deck/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_DECK", "name": "AbandonedShip_Deck", "layout": "LAYOUT_ABANDONED_SHIP_DECK", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AbandonedShip_HiddenFloorCorridors/map.json b/data/maps/AbandonedShip_HiddenFloorCorridors/map.json index 22c63c092..e0cba2d6a 100644 --- a/data/maps/AbandonedShip_HiddenFloorCorridors/map.json +++ b/data/maps/AbandonedShip_HiddenFloorCorridors/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", "name": "AbandonedShip_HiddenFloorCorridors", "layout": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/map.json b/data/maps/AbandonedShip_HiddenFloorRooms/map.json index c41f9a7c7..b81c33c84 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/map.json +++ b/data/maps/AbandonedShip_HiddenFloorRooms/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", "name": "AbandonedShip_HiddenFloorRooms", "layout": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Room_B1F/map.json b/data/maps/AbandonedShip_Room_B1F/map.json index aa0800faa..f5d14ac59 100644 --- a/data/maps/AbandonedShip_Room_B1F/map.json +++ b/data/maps/AbandonedShip_Room_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOM_B1F", "name": "AbandonedShip_Room_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOM_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms2_1F/map.json b/data/maps/AbandonedShip_Rooms2_1F/map.json index b4f923500..b85422096 100644 --- a/data/maps/AbandonedShip_Rooms2_1F/map.json +++ b/data/maps/AbandonedShip_Rooms2_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS2_1F", "name": "AbandonedShip_Rooms2_1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS2_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms2_B1F/map.json b/data/maps/AbandonedShip_Rooms2_B1F/map.json index 16abfbdc2..5768a9a95 100644 --- a/data/maps/AbandonedShip_Rooms2_B1F/map.json +++ b/data/maps/AbandonedShip_Rooms2_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS2_B1F", "name": "AbandonedShip_Rooms2_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS2_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms_1F/map.json b/data/maps/AbandonedShip_Rooms_1F/map.json index 9655f75ce..3fae6f96e 100644 --- a/data/maps/AbandonedShip_Rooms_1F/map.json +++ b/data/maps/AbandonedShip_Rooms_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS_1F", "name": "AbandonedShip_Rooms_1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms_B1F/map.json b/data/maps/AbandonedShip_Rooms_B1F/map.json index eacd70a10..d69b43157 100644 --- a/data/maps/AbandonedShip_Rooms_B1F/map.json +++ b/data/maps/AbandonedShip_Rooms_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS_B1F", "name": "AbandonedShip_Rooms_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Underwater1/map.json b/data/maps/AbandonedShip_Underwater1/map.json index 5b2273528..7a2f9cd15 100644 --- a/data/maps/AbandonedShip_Underwater1/map.json +++ b/data/maps/AbandonedShip_Underwater1/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_UNDERWATER1", "name": "AbandonedShip_Underwater1", "layout": "LAYOUT_ABANDONED_SHIP_UNDERWATER1", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/AbandonedShip_Underwater2/map.json b/data/maps/AbandonedShip_Underwater2/map.json index 5032eb4fc..072ec34f4 100644 --- a/data/maps/AbandonedShip_Underwater2/map.json +++ b/data/maps/AbandonedShip_Underwater2/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_UNDERWATER2", "name": "AbandonedShip_Underwater2", "layout": "LAYOUT_ABANDONED_SHIP_UNDERWATER2", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/AlteringCave/map.json b/data/maps/AlteringCave/map.json index df36f588d..f6b0acc10 100644 --- a/data/maps/AlteringCave/map.json +++ b/data/maps/AlteringCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_ALTERING_CAVE", "name": "AlteringCave", "layout": "LAYOUT_ALTERING_CAVE", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_ALTERING_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AncientTomb/map.json b/data/maps/AncientTomb/map.json index da955f23a..06254e1f9 100644 --- a/data/maps/AncientTomb/map.json +++ b/data/maps/AncientTomb/map.json @@ -2,7 +2,7 @@ "id": "MAP_ANCIENT_TOMB", "name": "AncientTomb", "layout": "LAYOUT_ANCIENT_TOMB", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_ANCIENT_TOMB", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_1F/map.json b/data/maps/AquaHideout_1F/map.json index 2f440bec6..6b9145add 100644 --- a/data/maps/AquaHideout_1F/map.json +++ b/data/maps/AquaHideout_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_1F", "name": "AquaHideout_1F", "layout": "LAYOUT_AQUA_HIDEOUT_1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_B1F/map.json b/data/maps/AquaHideout_B1F/map.json index 80b5c1d27..0b4cb8317 100644 --- a/data/maps/AquaHideout_B1F/map.json +++ b/data/maps/AquaHideout_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_B1F", "name": "AquaHideout_B1F", "layout": "LAYOUT_AQUA_HIDEOUT_B1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_B2F/map.json b/data/maps/AquaHideout_B2F/map.json index e33af3c9a..d5697bfcd 100644 --- a/data/maps/AquaHideout_B2F/map.json +++ b/data/maps/AquaHideout_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_B2F", "name": "AquaHideout_B2F", "layout": "LAYOUT_AQUA_HIDEOUT_B2F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap1/map.json b/data/maps/AquaHideout_UnusedRubyMap1/map.json index b641e80d1..a2aefc63b 100644 --- a/data/maps/AquaHideout_UnusedRubyMap1/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap1/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", "name": "AquaHideout_UnusedRubyMap1", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap2/map.json b/data/maps/AquaHideout_UnusedRubyMap2/map.json index 6690e5259..50175b5d5 100644 --- a/data/maps/AquaHideout_UnusedRubyMap2/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap2/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", "name": "AquaHideout_UnusedRubyMap2", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap3/map.json b/data/maps/AquaHideout_UnusedRubyMap3/map.json index d1a9d6843..b26c4c1ae 100644 --- a/data/maps/AquaHideout_UnusedRubyMap3/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap3/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", "name": "AquaHideout_UnusedRubyMap3", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ArtisanCave_1F/map.json b/data/maps/ArtisanCave_1F/map.json index f9bd9bc65..0d315b8ee 100644 --- a/data/maps/ArtisanCave_1F/map.json +++ b/data/maps/ArtisanCave_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ARTISAN_CAVE_1F", "name": "ArtisanCave_1F", "layout": "LAYOUT_ARTISAN_CAVE_1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_ARTISAN_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ArtisanCave_B1F/map.json b/data/maps/ArtisanCave_B1F/map.json index debe5b307..07a897bb9 100644 --- a/data/maps/ArtisanCave_B1F/map.json +++ b/data/maps/ArtisanCave_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ARTISAN_CAVE_B1F", "name": "ArtisanCave_B1F", "layout": "LAYOUT_ARTISAN_CAVE_B1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_ARTISAN_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleColosseum_2P/map.json b/data/maps/BattleColosseum_2P/map.json index c0d8036a7..3c9887a65 100644 --- a/data/maps/BattleColosseum_2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_COLOSSEUM_2P", "name": "BattleColosseum_2P", "layout": "LAYOUT_BATTLE_COLOSSEUM_2P", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleColosseum_4P/map.json b/data/maps/BattleColosseum_4P/map.json index 4a7e250be..a6eddc9a8 100644 --- a/data/maps/BattleColosseum_4P/map.json +++ b/data/maps/BattleColosseum_4P/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_COLOSSEUM_4P", "name": "BattleColosseum_4P", "layout": "LAYOUT_BATTLE_COLOSSEUM_4P", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index c3b4154ba..5badc62d0 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -66,7 +66,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentEnter waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward, MSGBOX_DEFAULT @@ -74,7 +74,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForward waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 arena_gettrainername @@ -83,7 +83,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForward waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT @@ -103,7 +103,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: @ 82575 applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_3, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp applymovement LOCALID_BLACK_BELT_4, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp - playse SE_W173 + playse SE_M_SNORE waitse waitmovement 0 arena_gettrainername @@ -131,7 +131,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: @ 8257630 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0 @@ -286,7 +286,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward, MSGBOX_DEFAULT @@ -294,7 +294,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForwardLong waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_MakeWayForGreta, MSGBOX_DEFAULT @@ -336,7 +336,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: @ 8257A5C applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureToughAfterAll, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleArenaBattleRoom_Text_ReceivedGutsSymbol waitmessage waitfanfare @@ -373,7 +373,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: @ 8257B15 applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaBlownAway, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleArenaBattleRoom_Text_GutsSymbolTookGoldenShine waitmessage waitfanfare @@ -406,7 +406,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner:: @ 8257BA9 applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_3, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp applymovement LOCALID_BLACK_BELT_4, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp - playse SE_BAN + playse SE_BANG waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 78665edc1..b01d5314b 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -67,7 +67,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: @ 824BD4E BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: @ 824BD5A applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD61 - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 compare VAR_TEMP_F, DOME_FINAL @@ -95,7 +95,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait, MSGBOX_DEFAULT closemessage - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 applymovement LOCALID_REFEREE, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeEnter @@ -120,7 +120,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw compare VAR_TEMP_2, DRAW_TUCKER call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: @ 824BE8D @@ -153,7 +153,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon compare VAR_TEMP_2, DRAW_TRAINER call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 dome_getroundtext @@ -180,7 +180,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: @ 824BF96 msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp, MSGBOX_DEFAULT BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E special DoDomeConfetti - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON @@ -361,25 +361,25 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 applymovement LOCALID_AUDIENCE_TWIN, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse waitmovement 0 message BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant waitmessage - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse switch VAR_TEMP_E @@ -407,7 +407,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 msgbox BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol waitmessage waitfanfare @@ -437,7 +437,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 msgbox BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine waitmessage waitfanfare @@ -456,7 +456,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420 msgbox BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker, MSGBOX_DEFAULT - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse goto BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/map.json b/data/maps/BattleFrontier_BattleDomeCorridor/map.json index 5b661ce6a..89fc022c5 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/map.json +++ b/data/maps/BattleFrontier_BattleDomeCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", "name": "BattleFrontier_BattleDomeCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", - "music": "MUS_B_DOME1", + "music": "MUS_B_DOME_LOBBY", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleDomeLobby/map.json b/data/maps/BattleFrontier_BattleDomeLobby/map.json index 35caadbc0..e550bbaf5 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/map.json +++ b/data/maps/BattleFrontier_BattleDomeLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", "name": "BattleFrontier_BattleDomeLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", - "music": "MUS_B_DOME1", + "music": "MUS_B_DOME_LOBBY", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 0d67792b9..977a0bcae 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -224,7 +224,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty call BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index ee7a724d1..f15f6542e 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -150,7 +150,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: @ 825B closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland waitmovement 0 - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleFactoryBattleRoom_Text_ReceivedKnowledgeSymbol waitmessage waitfanfare @@ -179,7 +179,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: @ 825B09 waitmessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland waitmovement 0 - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleFactoryBattleRoom_Text_KnowledgeSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 0491c925a..48d2bcc3a 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -62,13 +62,13 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: @ factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty frontier_getbrainstatus compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent - playse SE_TOREEYE + playse SE_POKENAV_CALL waitse msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_WaitFewMoments, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index f1ea064d6..43db81321 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -89,7 +89,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: @ 824F911 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98A @@ -245,7 +245,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: @ 824F applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown msgbox BattleFrontier_BattlePalaceBattleRoom_Text_LetsSeeFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePalaceBattleRoom_Text_ReceivedSpiritsSymbol waitmessage waitfanfare @@ -280,7 +280,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: @ 824FD8 applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown msgbox BattleFrontier_BattlePalaceBattleRoom_Text_HurryWithFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePalaceBattleRoom_Text_SpiritsSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/map.json b/data/maps/BattleFrontier_BattlePikeCorridor/map.json index 8780bb0d3..1a5faadea 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/map.json +++ b/data/maps/BattleFrontier_BattlePikeCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", "name": "BattleFrontier_BattlePikeCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeLobby/map.json b/data/maps/BattleFrontier_BattlePikeLobby/map.json index 3ce985ebc..2ca2ce485 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/map.json +++ b/data/maps/BattleFrontier_BattlePikeLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", "name": "BattleFrontier_BattlePikeLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index c1d3fc974..3e6111f42 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -265,7 +265,7 @@ BattleFrontier_BattlePikeLobby_EventScript_ExitRules:: @ 825BB47 end BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 - playse SE_CURTAIN + playse SE_PIKE_CURTAIN_CLOSE special CloseBattlePikeCurtain waitstate waitse diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json index 5d8067edc..5a53ad19c 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", "name": "BattleFrontier_BattlePikeRoomFinal", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json index fcaac560e..82414ac6a 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", "name": "BattleFrontier_BattlePikeRoomNormal", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 327b6463c..4238dd3f3 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -83,7 +83,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle:: @ 825D285 lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_RestoreToFullHealth, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty msgbox BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge2, MSGBOX_DEFAULT @@ -111,7 +111,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanUp applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExitForLucy waitmovement 0 - playse SE_CURTAIN + playse SE_PIKE_CURTAIN_CLOSE call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed delay 4 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed @@ -120,7 +120,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB delay 4 waitse delay 60 - playse SE_CURTAIN1 + playse SE_PIKE_CURTAIN_OPEN delay 65 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed showobjectat LOCALID_OBJ_0, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL @@ -154,7 +154,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: @ 825D3DA goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyShowMeFrontierPass, MSGBOX_DEFAULT waitmessage - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePikeRoomNormal_Text_ReceivedLuckSymbol waitmessage waitfanfare @@ -182,7 +182,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: @ 825D460 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyFrontierPass, MSGBOX_DEFAULT waitmessage - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePikeRoomNormal_Text_LuckSymbolTookGoldenShine waitmessage waitfanfare @@ -211,14 +211,14 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenNoHeal:: @ 825D4DC BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealOneMon:: @ 825D4EA msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealOne, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealTwoMons:: @ 825D4FC msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealTwo, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end @@ -230,7 +230,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterFullHealRoom:: @ 825D50E waitmovement 0 message BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreToFullHealth waitmessage - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty msgbox BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge, MSGBOX_DEFAULT @@ -573,7 +573,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: @ 825D83E call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare msgbox BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json index 433bff630..f74d54887 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", "name": "BattleFrontier_BattlePikeRoomWildMons", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json index 005e285d4..536e02a89 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", "name": "BattleFrontier_BattlePikeThreePathRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc index f590ff890..4f378c4e5 100644 --- a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc @@ -33,7 +33,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: @ 8252A8F end BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98 - playbgm MUS_PYRAMID, 0 + playbgm MUS_B_PYRAMID, 0 setvar VAR_TEMP_E, 1 end diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/map.json b/data/maps/BattleFrontier_BattlePyramidLobby/map.json index 98b62f580..56736628f 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/map.json +++ b/data/maps/BattleFrontier_BattlePyramidLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", "name": "BattleFrontier_BattlePyramidLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", - "music": "MUS_PYRAMID", + "music": "MUS_B_PYRAMID", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 6c17ca02a..fc33a8c91 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -32,7 +32,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: @ 8250768 lockall message BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse closemessage pyramid_set PYRAMID_DATA_WIN_STREAK, 0 @@ -63,7 +63,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: @ 82507DA special HealPlayerParty message BattleFrontier_BattlePyramidLobby_Text_UsedBattleBagWillBeKept waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_GiveYouTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints @@ -88,7 +88,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge:: @ 8250852 lockall message BattleFrontier_BattlePyramidLobby_Text_DisappointingHereIsBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse message BattleFrontier_BattlePyramidLobby_Text_RecordResultsWait waitmessage @@ -388,7 +388,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag:: @ 8250D94 BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag:: @ 8250D9C message BattleFrontier_BattlePyramidLobby_Text_ExchangedBagForBattleBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_StepOnFloorPanel, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 7aee4512d..076fae158 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -53,7 +53,7 @@ BattleFrontier_BattlePyramidTop_OnFrame: @ 825516E .2byte 0 BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180 - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 setvar VAR_TEMP_E, 1 end @@ -88,7 +88,7 @@ BattleFrontier_BattlePyramidTop_EventScript_Attendant:: @ 82551D0 waitmovement 0 message BattleFrontier_BattlePyramidTop_Text_PlayerConqueredPyramid waitmessage - playfanfare MUS_ME_POINTGET + playfanfare MUS_OBTAIN_B_POINTS waitfanfare closemessage BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon:: @ 825521A @@ -136,7 +136,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: @ 82552D0 BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @@ -146,7 +146,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: @ 82552FB compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonFrontierPassPlease, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_ReceivedBraveSymbol waitmessage waitfanfare @@ -176,7 +176,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: @ 8255388 BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392 msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @@ -186,7 +186,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: @ 82553B3 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_BraveSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json b/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json index 157c9c83f..7cb154d8d 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", "name": "BattleFrontier_BattleTowerBattleRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index bc12c14f4..493588b4d 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -69,7 +69,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: @ 8241C2F applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant waitmovement 0 msgbox BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F @@ -272,7 +272,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: @ 824204 compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelTalentShallBeRecognized, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_ReceivedAbilitySymbol waitmessage waitfanfare @@ -299,7 +299,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: @ 82420CF compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelCongratsYourPassPlease, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_AbilitySymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleTowerCorridor/map.json b/data/maps/BattleFrontier_BattleTowerCorridor/map.json index fad132034..10d5ca7f7 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor/map.json +++ b/data/maps/BattleFrontier_BattleTowerCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", "name": "BattleFrontier_BattleTowerCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerElevator/map.json b/data/maps/BattleFrontier_BattleTowerElevator/map.json index 3538a0469..f74dce233 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/map.json +++ b/data/maps/BattleFrontier_BattleTowerElevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR", "name": "BattleFrontier_BattleTowerElevator", "layout": "LAYOUT_BATTLE_ELEVATOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerLobby/map.json b/data/maps/BattleFrontier_BattleTowerLobby/map.json index 516a90038..3135c48fe 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/map.json +++ b/data/maps/BattleFrontier_BattleTowerLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", "name": "BattleFrontier_BattleTowerLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 4b1f196e3..c1174cf06 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -81,7 +81,7 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: @ 823E780 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints message BattleFrontier_BattleTowerLobby_Text_HereAreSomeRibbons waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox BattleFrontier_BattleTowerLobby_Text_PutRibbonOnMons, MSGBOX_DEFAULT BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: @ 823E7A5 diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json index 0faeed92c..e48bcefd1 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM", "name": "BattleFrontier_BattleTowerMultiBattleRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index d764419fd..f4de37232 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -144,7 +144,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: @ 8249121 frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_249514 - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8249143 diff --git a/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json b/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json index 3bb2a04b4..36b4ecd46 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", "name": "BattleFrontier_BattleTowerMultiCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json index 610c99713..c48458344 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", "name": "BattleFrontier_BattleTowerMultiPartnerRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/map.json b/data/maps/BattleFrontier_ExchangeServiceCorner/map.json index 77742a116..50c6a90a9 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/map.json +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", "name": "BattleFrontier_ExchangeServiceCorner", "layout": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index f0fb42bb4..b7dfe19fa 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -42,7 +42,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: @ 825F0E5 special TakeFrontierBattlePoints adddecoration VAR_0x8009 special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC, MSGBOX_DEFAULT compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -63,7 +63,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: @ 825F12A special TakeFrontierBattlePoints additem VAR_0x8009 special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize, MSGBOX_DEFAULT compare VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin diff --git a/data/maps/BattleFrontier_Lounge1/map.json b/data/maps/BattleFrontier_Lounge1/map.json index 2086ce78e..a650e3ce7 100644 --- a/data/maps/BattleFrontier_Lounge1/map.json +++ b/data/maps/BattleFrontier_Lounge1/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE1", "name": "BattleFrontier_Lounge1", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge2/map.json b/data/maps/BattleFrontier_Lounge2/map.json index 11a5498af..856e2d395 100644 --- a/data/maps/BattleFrontier_Lounge2/map.json +++ b/data/maps/BattleFrontier_Lounge2/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE2", "name": "BattleFrontier_Lounge2", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge3/map.json b/data/maps/BattleFrontier_Lounge3/map.json index 68d60c70e..58aee4d41 100644 --- a/data/maps/BattleFrontier_Lounge3/map.json +++ b/data/maps/BattleFrontier_Lounge3/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE3", "name": "BattleFrontier_Lounge3", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge3/scripts.inc b/data/maps/BattleFrontier_Lounge3/scripts.inc index e892ad3ea..bc85d92d0 100644 --- a/data/maps/BattleFrontier_Lounge3/scripts.inc +++ b/data/maps/BattleFrontier_Lounge3/scripts.inc @@ -74,7 +74,7 @@ BattleFrontier_Lounge3_EventScript_PlaceBet:: @ 8261E75 special TakeFrontierBattlePoints setvar VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_Lounge3_Text_ThanksOffYouGo, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FinishBet end diff --git a/data/maps/BattleFrontier_Lounge4/map.json b/data/maps/BattleFrontier_Lounge4/map.json index 9ac2466be..c82c51dce 100644 --- a/data/maps/BattleFrontier_Lounge4/map.json +++ b/data/maps/BattleFrontier_Lounge4/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE4", "name": "BattleFrontier_Lounge4", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge5/map.json b/data/maps/BattleFrontier_Lounge5/map.json index e0c2ff747..a8650cfd6 100644 --- a/data/maps/BattleFrontier_Lounge5/map.json +++ b/data/maps/BattleFrontier_Lounge5/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE5", "name": "BattleFrontier_Lounge5", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge6/map.json b/data/maps/BattleFrontier_Lounge6/map.json index 85b9bd615..36027a47e 100644 --- a/data/maps/BattleFrontier_Lounge6/map.json +++ b/data/maps/BattleFrontier_Lounge6/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE6", "name": "BattleFrontier_Lounge6", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge7/map.json b/data/maps/BattleFrontier_Lounge7/map.json index a2e795ae8..36cf3a882 100644 --- a/data/maps/BattleFrontier_Lounge7/map.json +++ b/data/maps/BattleFrontier_Lounge7/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE7", "name": "BattleFrontier_Lounge7", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge8/map.json b/data/maps/BattleFrontier_Lounge8/map.json index 794a83014..0736d3b5c 100644 --- a/data/maps/BattleFrontier_Lounge8/map.json +++ b/data/maps/BattleFrontier_Lounge8/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE8", "name": "BattleFrontier_Lounge8", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge9/map.json b/data/maps/BattleFrontier_Lounge9/map.json index 0be08a1d5..d73ad0e92 100644 --- a/data/maps/BattleFrontier_Lounge9/map.json +++ b/data/maps/BattleFrontier_Lounge9/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE9", "name": "BattleFrontier_Lounge9", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Mart/map.json b/data/maps/BattleFrontier_Mart/map.json index 01f3352d6..10dc2cb1b 100644 --- a/data/maps/BattleFrontier_Mart/map.json +++ b/data/maps/BattleFrontier_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_MART", "name": "BattleFrontier_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index 6995e405e..8e891dd32 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -108,7 +108,7 @@ BattleFrontier_OutsideEast_EventScript_Sudowoodo:: @ 8242CEA lock faceplayer waitse - playse SE_USSOKI + playse SE_SUDOWOODO_SHAKE applymovement LOCALID_SUDOWOODO, BattleFrontier_OutsideEast_Movement_SudowoodoShake waitmovement 0 release @@ -120,7 +120,7 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: @ 8242CFC special DoWateringBerryTreeAnim waitstate waitse - playse SE_USSOKI + playse SE_SUDOWOODO_SHAKE applymovement LOCALID_SUDOWOODO, BattleFrontier_OutsideEast_Movement_SudowoodoShake waitmovement 0 msgbox gText_Sudowoodo_Attacked, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/map.json b/data/maps/BattleFrontier_PokemonCenter_1F/map.json index 28a50f8af..b4b16ba94 100644 --- a/data/maps/BattleFrontier_PokemonCenter_1F/map.json +++ b/data/maps/BattleFrontier_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F", "name": "BattleFrontier_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_PokemonCenter_2F/map.json b/data/maps/BattleFrontier_PokemonCenter_2F/map.json index 98aa2be35..cb3191649 100644 --- a/data/maps/BattleFrontier_PokemonCenter_2F/map.json +++ b/data/maps/BattleFrontier_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F", "name": "BattleFrontier_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_RankingHall/map.json b/data/maps/BattleFrontier_RankingHall/map.json index 8e179efda..5ac9f6699 100644 --- a/data/maps/BattleFrontier_RankingHall/map.json +++ b/data/maps/BattleFrontier_RankingHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_RANKING_HALL", "name": "BattleFrontier_RankingHall", "layout": "LAYOUT_BATTLE_FRONTIER_RANKING_HALL", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ReceptionGate/map.json b/data/maps/BattleFrontier_ReceptionGate/map.json index 59f7862dc..44c71ccd1 100644 --- a/data/maps/BattleFrontier_ReceptionGate/map.json +++ b/data/maps/BattleFrontier_ReceptionGate/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_RECEPTION_GATE", "name": "BattleFrontier_ReceptionGate", "layout": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ReceptionGate/scripts.inc b/data/maps/BattleFrontier_ReceptionGate/scripts.inc index 495ad165f..28f53de08 100644 --- a/data/maps/BattleFrontier_ReceptionGate/scripts.inc +++ b/data/maps/BattleFrontier_ReceptionGate/scripts.inc @@ -33,7 +33,7 @@ BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering:: @ 82661F3 BattleFrontier_ReceptionGate_EventScript_ScottScene:: @ 8266229 msgbox BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT msgbox BattleFrontier_ReceptionGate_Text_IssueFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message BattleFrontier_ReceptionGate_Text_ObtainedFrontierPass waitfanfare waitmessage diff --git a/data/maps/BattleFrontier_ScottsHouse/map.json b/data/maps/BattleFrontier_ScottsHouse/map.json index a22711749..74393db0b 100644 --- a/data/maps/BattleFrontier_ScottsHouse/map.json +++ b/data/maps/BattleFrontier_ScottsHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_SCOTTS_HOUSE", "name": "BattleFrontier_ScottsHouse", "layout": "LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 6bc902426..16a1c7488 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -71,9 +71,9 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 setfieldeffectargument 0, LOCALID_DEOXYS_ROCK setfieldeffectargument 1, 58 setfieldeffectargument 2, 26 - dofieldeffect FLDEFF_65 - playbgm MUS_RG_DEOEYE, 0 - waitfieldeffect FLDEFF_65 + dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK + playbgm MUS_RG_ENCOUNTER_DEOXYS, 0 + waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK addobject LOCALID_DEOXYS applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach waitmovement 0 diff --git a/data/maps/CaveOfOrigin_1F/map.json b/data/maps/CaveOfOrigin_1F/map.json index 36af5ca31..17da43907 100644 --- a/data/maps/CaveOfOrigin_1F/map.json +++ b/data/maps/CaveOfOrigin_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_1F", "name": "CaveOfOrigin_1F", "layout": "LAYOUT_CAVE_OF_ORIGIN_1F", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index ea8d6cec8..db267aaaa 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -51,7 +51,7 @@ CaveOfOrigin_B1F_EventScript_DontRemember:: @ 8235842 CaveOfOrigin_B1F_EventScript_AtSkyPillar:: @ 823584D msgbox CaveOfOrigin_B1F_Text_WellHeadToSkyPillar, MSGBOX_DEFAULT closemessage - playse SE_KAIDAN + playse SE_EXIT fadescreenspeed FADE_TO_BLACK, 4 setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR setvar VAR_SOOTOPOLIS_CITY_STATE, 3 diff --git a/data/maps/CaveOfOrigin_Entrance/map.json b/data/maps/CaveOfOrigin_Entrance/map.json index 78a8e58e0..f45f47f99 100644 --- a/data/maps/CaveOfOrigin_Entrance/map.json +++ b/data/maps/CaveOfOrigin_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_ENTRANCE", "name": "CaveOfOrigin_Entrance", "layout": "LAYOUT_CAVE_OF_ORIGIN_ENTRANCE", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json index f27b15b85..8b05ac536 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", "name": "CaveOfOrigin_UnusedRubySapphireMap1", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json index 5a377947c..9a3d09810 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", "name": "CaveOfOrigin_UnusedRubySapphireMap2", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json index 85f82b886..9456f4012 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", "name": "CaveOfOrigin_UnusedRubySapphireMap3", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/ContestHall/map.json b/data/maps/ContestHall/map.json index 4f8254662..842c57968 100644 --- a/data/maps/ContestHall/map.json +++ b/data/maps/ContestHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL", "name": "ContestHall", "layout": "LAYOUT_CONTEST_HALL", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHall/scripts.inc b/data/maps/ContestHall/scripts.inc index 33e074e8a..abde00cc2 100644 --- a/data/maps/ContestHall/scripts.inc +++ b/data/maps/ContestHall/scripts.inc @@ -18,7 +18,7 @@ ContestHall_OnTransition: @ 823B79F ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF call ContestHall_EventScript_TryWaitForLink - special ScriptGetMultiplayerId + special GetContestMultiplayerId compare VAR_RESULT, 0 call_if_eq ContestHall_EventScript_SaveContestMusicPlayer1 compare VAR_RESULT, 1 @@ -32,23 +32,23 @@ ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF return ContestHall_EventScript_SaveContestMusicPlayer1:: @ 823B7EF - savebgm MUS_TEST1 + savebgm MUS_LINK_CONTEST_P1 return ContestHall_EventScript_SaveContestMusicPlayer2:: @ 823B7F3 - savebgm MUS_TEST2 + savebgm MUS_LINK_CONTEST_P2 return ContestHall_EventScript_SaveContestMusicPlayer3:: @ 823B7F7 - savebgm MUS_TEST3 + savebgm MUS_LINK_CONTEST_P3 return ContestHall_EventScript_SaveContestMusicPlayer4:: @ 823B7FB - savebgm MUS_TEST4 + savebgm MUS_LINK_CONTEST_P4 return ContestHall_EventScript_SaveContestMusic:: @ 823B7FF - savebgm MUS_CONTEST0 + savebgm MUS_CONTEST return ContestHall_OnResume: @ 823B803 @@ -136,7 +136,7 @@ ContestHall_EventScript_SetRandomAudience7:: @ 823B8ED ContestHall_EventScript_GetRandomAudienceGfxId:: @ 823B8F8 setvar VAR_RESULT, 32 - special ScriptRandom + special GenerateContestRand addvar VAR_RESULT, 1 switch VAR_RESULT case 1, ContestHall_EventScript_RandomAudienceNinjaBoy diff --git a/data/maps/ContestHallBeauty/map.json b/data/maps/ContestHallBeauty/map.json index f0cb9168f..c0ba03bd3 100644 --- a/data/maps/ContestHallBeauty/map.json +++ b/data/maps/ContestHallBeauty/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_BEAUTY", "name": "ContestHallBeauty", "layout": "LAYOUT_CONTEST_HALL_BEAUTY", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallCool/map.json b/data/maps/ContestHallCool/map.json index 4d1aa639e..0cd6e1e2a 100644 --- a/data/maps/ContestHallCool/map.json +++ b/data/maps/ContestHallCool/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_COOL", "name": "ContestHallCool", "layout": "LAYOUT_CONTEST_HALL_COOL", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallCute/map.json b/data/maps/ContestHallCute/map.json index 4b81a3192..e52539070 100644 --- a/data/maps/ContestHallCute/map.json +++ b/data/maps/ContestHallCute/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_CUTE", "name": "ContestHallCute", "layout": "LAYOUT_CONTEST_HALL_CUTE", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallSmart/map.json b/data/maps/ContestHallSmart/map.json index 42d16f911..2cbc841bd 100644 --- a/data/maps/ContestHallSmart/map.json +++ b/data/maps/ContestHallSmart/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_SMART", "name": "ContestHallSmart", "layout": "LAYOUT_CONTEST_HALL_SMART", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallTough/map.json b/data/maps/ContestHallTough/map.json index 4e460cd98..15dbb27b2 100644 --- a/data/maps/ContestHallTough/map.json +++ b/data/maps/ContestHallTough/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_TOUGH", "name": "ContestHallTough", "layout": "LAYOUT_CONTEST_HALL_TOUGH", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DesertRuins/map.json b/data/maps/DesertRuins/map.json index 7e59053b7..c87df0dee 100644 --- a/data/maps/DesertRuins/map.json +++ b/data/maps/DesertRuins/map.json @@ -2,7 +2,7 @@ "id": "MAP_DESERT_RUINS", "name": "DesertRuins", "layout": "LAYOUT_DESERT_RUINS", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_DESERT_RUINS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DesertUnderpass/map.json b/data/maps/DesertUnderpass/map.json index 56d293411..20db73381 100644 --- a/data/maps/DesertUnderpass/map.json +++ b/data/maps/DesertUnderpass/map.json @@ -2,7 +2,7 @@ "id": "MAP_DESERT_UNDERPASS", "name": "DesertUnderpass", "layout": "LAYOUT_DESERT_UNDERPASS", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_DESERT_UNDERPASS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown/map.json b/data/maps/DewfordTown/map.json index 501e68523..8beb5add7 100644 --- a/data/maps/DewfordTown/map.json +++ b/data/maps/DewfordTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN", "name": "DewfordTown", "layout": "LAYOUT_DEWFORD_TOWN", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/DewfordTown_Gym/map.json b/data/maps/DewfordTown_Gym/map.json index 41e7112a0..f28550f6e 100644 --- a/data/maps/DewfordTown_Gym/map.json +++ b/data/maps/DewfordTown_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_GYM", "name": "DewfordTown_Gym", "layout": "LAYOUT_DEWFORD_TOWN_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index 98acc97dc..f67184045 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -80,43 +80,43 @@ DewfordTown_Gym_EventScript_NoLightChange:: @ 81FC71A @ NOTE: A little confusingly, a larger animateflash param value is a smaller flash radius DewfordTown_Gym_EventScript_AnimateFlash1Trainer:: @ 81FC71B - playse SE_MU_PACHI + playse SE_SWITCH animateflash 6 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash2Trainers:: @ 81FC726 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 5 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash3Trainers:: @ 81FC731 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 4 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash4Trainers:: @ 81FC73C - playse SE_MU_PACHI + playse SE_SWITCH animateflash 3 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash5Trainers:: @ 81FC747 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 2 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash6Trainers:: @ 81FC752 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 1 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: @ 81FC75D - playse SE_MU_PACHI + playse SE_SWITCH animateflash 0 call DewfordTown_Gym_EventScript_SetFlashRadius return @@ -169,7 +169,7 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: @ 81FC7F7 call DewfordTown_Gym_EventScript_GiveBulkUp closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox DewfordTown_Gym_Text_RegisteredBrawly, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/DewfordTown_Hall/map.json b/data/maps/DewfordTown_Hall/map.json index 6612db14b..24cde4ea1 100644 --- a/data/maps/DewfordTown_Hall/map.json +++ b/data/maps/DewfordTown_Hall/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HALL", "name": "DewfordTown_Hall", "layout": "LAYOUT_DEWFORD_TOWN_HALL", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_House1/map.json b/data/maps/DewfordTown_House1/map.json index 7877a984f..fd53469b9 100644 --- a/data/maps/DewfordTown_House1/map.json +++ b/data/maps/DewfordTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HOUSE1", "name": "DewfordTown_House1", "layout": "LAYOUT_HOUSE3", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_House2/map.json b/data/maps/DewfordTown_House2/map.json index 319bbed72..4384f3767 100644 --- a/data/maps/DewfordTown_House2/map.json +++ b/data/maps/DewfordTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HOUSE2", "name": "DewfordTown_House2", "layout": "LAYOUT_HOUSE4", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_PokemonCenter_1F/map.json b/data/maps/DewfordTown_PokemonCenter_1F/map.json index 480bc5556..131c93092 100644 --- a/data/maps/DewfordTown_PokemonCenter_1F/map.json +++ b/data/maps/DewfordTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_POKEMON_CENTER_1F", "name": "DewfordTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_PokemonCenter_2F/map.json b/data/maps/DewfordTown_PokemonCenter_2F/map.json index 8de59b2a3..56add5053 100644 --- a/data/maps/DewfordTown_PokemonCenter_2F/map.json +++ b/data/maps/DewfordTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_POKEMON_CENTER_2F", "name": "DewfordTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity/map.json b/data/maps/EverGrandeCity/map.json index 5f67720e6..9db9c8feb 100644 --- a/data/maps/EverGrandeCity/map.json +++ b/data/maps/EverGrandeCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY", "name": "EverGrandeCity", "layout": "LAYOUT_EVER_GRANDE_CITY", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/EverGrandeCity_ChampionsRoom/map.json b/data/maps/EverGrandeCity_ChampionsRoom/map.json index ded3a305f..34fb96e46 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/map.json +++ b/data/maps/EverGrandeCity_ChampionsRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM", "name": "EverGrandeCity_ChampionsRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc index 5ef3a946e..d41c10d0a 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc +++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: @ 8228A42 step_end EverGrandeCity_ChampionsRoom_EventScript_Wallace:: @ 8228A45 - playbgm MUS_DAIGO, 0 + playbgm MUS_ENCOUNTER_CHAMPION, 0 msgbox EverGrandeCity_ChampionsRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_WALLACE, EverGrandeCity_ChampionsRoom_Text_Defeat goto EverGrandeCity_ChampionsRoom_EventScript_Defeated @@ -71,11 +71,11 @@ EverGrandeCity_ChampionsRoom_EventScript_Defeated:: @ 8228A61 end EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: @ 8228ABC - playbgm MUS_GIRL_SUP, 0 + playbgm MUS_ENCOUNTER_MAY, 0 return EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic:: @ 8228AC1 - playbgm MUS_BOY_SUP, 0 + playbgm MUS_ENCOUNTER_BRENDAN, 0 return EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: @ 8228AC6 diff --git a/data/maps/EverGrandeCity_DrakesRoom/map.json b/data/maps/EverGrandeCity_DrakesRoom/map.json index 9b54a5e5b..b7bcd4966 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/map.json +++ b/data/maps/EverGrandeCity_DrakesRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_DRAKES_ROOM", "name": "EverGrandeCity_DrakesRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc index b9debf676..feb65d149 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_DrakesRoom_EventScript_Drake:: @ 82286F3 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_DrakesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_DRAKE, EverGrandeCity_DrakesRoom_Text_Defeat goto EverGrandeCity_DrakesRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_GlaciasRoom/map.json b/data/maps/EverGrandeCity_GlaciasRoom/map.json index 21c50192b..86a840d13 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/map.json +++ b/data/maps/EverGrandeCity_GlaciasRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_GLACIAS_ROOM", "name": "EverGrandeCity_GlaciasRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc index 6e6254faa..ff04a752a 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc +++ b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc @@ -41,7 +41,7 @@ EverGrandeCity_GlaciasRoom_EventScript_Glacia:: @ 8228469 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_GlaciasRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GLACIA, EverGrandeCity_GlaciasRoom_Text_Defeat goto EverGrandeCity_GlaciasRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_Hall1/map.json b/data/maps/EverGrandeCity_Hall1/map.json index 692e7ff7c..426b9f6e4 100644 --- a/data/maps/EverGrandeCity_Hall1/map.json +++ b/data/maps/EverGrandeCity_Hall1/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL1", "name": "EverGrandeCity_Hall1", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall2/map.json b/data/maps/EverGrandeCity_Hall2/map.json index ea1203725..3535734e9 100644 --- a/data/maps/EverGrandeCity_Hall2/map.json +++ b/data/maps/EverGrandeCity_Hall2/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL2", "name": "EverGrandeCity_Hall2", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall3/map.json b/data/maps/EverGrandeCity_Hall3/map.json index 327b28399..b7fe8f4ec 100644 --- a/data/maps/EverGrandeCity_Hall3/map.json +++ b/data/maps/EverGrandeCity_Hall3/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL3", "name": "EverGrandeCity_Hall3", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall4/map.json b/data/maps/EverGrandeCity_Hall4/map.json index ff91999e0..b0501cd38 100644 --- a/data/maps/EverGrandeCity_Hall4/map.json +++ b/data/maps/EverGrandeCity_Hall4/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL4", "name": "EverGrandeCity_Hall4", "layout": "LAYOUT_EVER_GRANDE_CITY_HALL4", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall5/map.json b/data/maps/EverGrandeCity_Hall5/map.json index 562e11565..1f6705f3a 100644 --- a/data/maps/EverGrandeCity_Hall5/map.json +++ b/data/maps/EverGrandeCity_Hall5/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL5", "name": "EverGrandeCity_Hall5", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_HallOfFame/map.json b/data/maps/EverGrandeCity_HallOfFame/map.json index 04b68237d..e09190eb9 100644 --- a/data/maps/EverGrandeCity_HallOfFame/map.json +++ b/data/maps/EverGrandeCity_HallOfFame/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL_OF_FAME", "name": "EverGrandeCity_HallOfFame", "layout": "LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME", - "music": "MUS_EIKOU_R", + "music": "MUS_HALL_OF_FAME_ROOM", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PhoebesRoom/map.json b/data/maps/EverGrandeCity_PhoebesRoom/map.json index 5716b3ef1..09c6dd40e 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/map.json +++ b/data/maps/EverGrandeCity_PhoebesRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_PHOEBES_ROOM", "name": "EverGrandeCity_PhoebesRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc index 891b3c56e..e98bf4eb3 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc @@ -41,7 +41,7 @@ EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: @ 82281CB lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_PhoebesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_PHOEBE, EverGrandeCity_PhoebesRoom_Text_Defeat goto EverGrandeCity_PhoebesRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/map.json b/data/maps/EverGrandeCity_PokemonCenter_1F/map.json index 85a2c677b..196ebd0f2 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/map.json +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F", "name": "EverGrandeCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index 3b6d94249..a6cf1b74e 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -45,7 +45,7 @@ EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: @ 8229A79 call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_EVERGRANDE - playse SE_KAIDAN + playse SE_EXIT waitse removeobject LOCALID_SCOTT release diff --git a/data/maps/EverGrandeCity_PokemonCenter_2F/map.json b/data/maps/EverGrandeCity_PokemonCenter_2F/map.json index 7dfa712a6..b734f9ad5 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_2F/map.json +++ b/data/maps/EverGrandeCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F", "name": "EverGrandeCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/map.json b/data/maps/EverGrandeCity_PokemonLeague_1F/map.json index 6b0c0be80..f76febc01 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/map.json +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", "name": "EverGrandeCity_PokemonLeague_1F", "layout": "LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index cf824b8e8..5eed4faa6 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -68,7 +68,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: @ 8229636 applymovement LOCALID_GUARD_2, EverGrandeCity_PokemonLeague_1F_Movement_RightGuardOutOfWay waitmovement 0 delay 10 - playfanfare MUS_ME_BACHI + playfanfare MUS_OBTAIN_BADGE message EverGrandeCity_PokemonLeague_1F_Text_GoForth waitmessage waitfanfare @@ -90,7 +90,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft:: @ 82296A return EverGrandeCity_PokemonLeague_1F_EventScript_NotAllBadges:: @ 82296AE - playse SE_HAZURE + playse SE_FAILURE msgbox EverGrandeCity_PokemonLeague_1F_Text_HaventObtainedAllBadges, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/EverGrandeCity_PokemonLeague_2F/map.json b/data/maps/EverGrandeCity_PokemonLeague_2F/map.json index 8289458b0..a4b5cb1f2 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_2F/map.json +++ b/data/maps/EverGrandeCity_PokemonLeague_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F", "name": "EverGrandeCity_PokemonLeague_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_SidneysRoom/map.json b/data/maps/EverGrandeCity_SidneysRoom/map.json index 39cdea6ce..dc84d36d6 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/map.json +++ b/data/maps/EverGrandeCity_SidneysRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM", "name": "EverGrandeCity_SidneysRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc index 9bc975789..717651b26 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc +++ b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc @@ -47,7 +47,7 @@ EverGrandeCity_SidneysRoom_EventScript_Sidney:: @ 8227F64 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_SidneysRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_SIDNEY, EverGrandeCity_SidneysRoom_Text_Defeat goto EverGrandeCity_SidneysRoom_EventScript_Defeated diff --git a/data/maps/FallarborTown/map.json b/data/maps/FallarborTown/map.json index 54809f977..74355a870 100644 --- a/data/maps/FallarborTown/map.json +++ b/data/maps/FallarborTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN", "name": "FallarborTown", "layout": "LAYOUT_FALLARBOR_TOWN", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/map.json b/data/maps/FallarborTown_BattleTentBattleRoom/map.json index adf6dfd94..7b702dc0e 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/map.json +++ b/data/maps/FallarborTown_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM", "name": "FallarborTown_BattleTentBattleRoom", "layout": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index feb8f49e1..fd1f27860 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -52,7 +52,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F applymovement LOCALID_OPPONENT, FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter waitmovement 0 applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT @@ -63,7 +63,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F switch VAR_RESULT case 1, FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_W173 + playse SE_M_SNORE waitse waitmovement 0 fallarbortent_getopponentname @@ -76,7 +76,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 820097E FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 820099C applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_BAN + playse SE_BANG waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT @@ -98,7 +98,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: @ 82009B3 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 8200A2A diff --git a/data/maps/FallarborTown_BattleTentCorridor/map.json b/data/maps/FallarborTown_BattleTentCorridor/map.json index 3bda44484..c086a3288 100644 --- a/data/maps/FallarborTown_BattleTentCorridor/map.json +++ b/data/maps/FallarborTown_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR", "name": "FallarborTown_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentLobby/map.json b/data/maps/FallarborTown_BattleTentLobby/map.json index 58a1463e9..a796a3f10 100644 --- a/data/maps/FallarborTown_BattleTentLobby/map.json +++ b/data/maps/FallarborTown_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY", "name": "FallarborTown_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 54248e402..0a6a4f16c 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -55,7 +55,7 @@ FallarborTown_BattleTentLobby_EventScript_GivePrize:: @ 81FFF27 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message FallarborTown_BattleTentLobby_Text_ReceivedPrize waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT closemessage diff --git a/data/maps/FallarborTown_CozmosHouse/map.json b/data/maps/FallarborTown_CozmosHouse/map.json index a1ed47885..a7ae1f90d 100644 --- a/data/maps/FallarborTown_CozmosHouse/map.json +++ b/data/maps/FallarborTown_CozmosHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_COZMOS_HOUSE", "name": "FallarborTown_CozmosHouse", "layout": "LAYOUT_HOUSE1", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_Mart/map.json b/data/maps/FallarborTown_Mart/map.json index 29040bcd7..77c5df976 100644 --- a/data/maps/FallarborTown_Mart/map.json +++ b/data/maps/FallarborTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_MART", "name": "FallarborTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/map.json b/data/maps/FallarborTown_MoveRelearnersHouse/map.json index 220b6cb8e..ce3f3a3dd 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/map.json +++ b/data/maps/FallarborTown_MoveRelearnersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE", "name": "FallarborTown_MoveRelearnersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_PokemonCenter_1F/map.json b/data/maps/FallarborTown_PokemonCenter_1F/map.json index 5f85478dc..cb0690829 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/map.json +++ b/data/maps/FallarborTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F", "name": "FallarborTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc index c65cf5d4e..e7967046d 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc @@ -50,7 +50,7 @@ FallarborTown_PokemonCenter_1F_EventScript_LanetteExitWest:: @ 8200C38 end FallarborTown_PokemonCenter_1F_EventScript_LanetteExited:: @ 8200C48 - playse SE_JIDO_DOA + playse SE_SLIDING_DOOR removeobject LOCALID_LANETTE clearflag FLAG_HIDE_LANETTES_HOUSE_LANETTE release diff --git a/data/maps/FallarborTown_PokemonCenter_2F/map.json b/data/maps/FallarborTown_PokemonCenter_2F/map.json index 202485ea0..ada498a42 100644 --- a/data/maps/FallarborTown_PokemonCenter_2F/map.json +++ b/data/maps/FallarborTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F", "name": "FallarborTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FarawayIsland_Entrance/map.json b/data/maps/FarawayIsland_Entrance/map.json index 6898f5b24..d3c6056a0 100644 --- a/data/maps/FarawayIsland_Entrance/map.json +++ b/data/maps/FarawayIsland_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_FARAWAY_ISLAND_ENTRANCE", "name": "FarawayIsland_Entrance", "layout": "LAYOUT_FARAWAY_ISLAND_ENTRANCE", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_FARAWAY_ISLAND", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FarawayIsland_Interior/map.json b/data/maps/FarawayIsland_Interior/map.json index 4f427e8a4..1ec092fbe 100644 --- a/data/maps/FarawayIsland_Interior/map.json +++ b/data/maps/FarawayIsland_Interior/map.json @@ -2,7 +2,7 @@ "id": "MAP_FARAWAY_ISLAND_INTERIOR", "name": "FarawayIsland_Interior", "layout": "LAYOUT_FARAWAY_ISLAND_INTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_FARAWAY_ISLAND", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/FieryPath/map.json b/data/maps/FieryPath/map.json index 424596c0c..ef11990d8 100644 --- a/data/maps/FieryPath/map.json +++ b/data/maps/FieryPath/map.json @@ -2,7 +2,7 @@ "id": "MAP_FIERY_PATH", "name": "FieryPath", "layout": "LAYOUT_FIERY_PATH", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_FIERY_PATH", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity/map.json b/data/maps/FortreeCity/map.json index 062d0808a..86d43693a 100644 --- a/data/maps/FortreeCity/map.json +++ b/data/maps/FortreeCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY", "name": "FortreeCity", "layout": "LAYOUT_FORTREE_CITY", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/FortreeCity_DecorationShop/map.json b/data/maps/FortreeCity_DecorationShop/map.json index f5af152af..59b707a95 100644 --- a/data/maps/FortreeCity_DecorationShop/map.json +++ b/data/maps/FortreeCity_DecorationShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_DECORATION_SHOP", "name": "FortreeCity_DecorationShop", "layout": "LAYOUT_FORTREE_CITY_DECORATION_SHOP", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Gym/map.json b/data/maps/FortreeCity_Gym/map.json index fcaf1a036..0db326d07 100644 --- a/data/maps/FortreeCity_Gym/map.json +++ b/data/maps/FortreeCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_GYM", "name": "FortreeCity_Gym", "layout": "LAYOUT_FORTREE_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index f209ceefa..688c11645 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -37,7 +37,7 @@ FortreeCity_Gym_EventScript_WinonaDefeated:: @ 82165FD call FortreeCity_Gym_EventScript_GiveAerialAce closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox FortreeCity_Gym_Text_RegisteredWinona, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/FortreeCity_House1/map.json b/data/maps/FortreeCity_House1/map.json index ae35cf601..cef203093 100644 --- a/data/maps/FortreeCity_House1/map.json +++ b/data/maps/FortreeCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE1", "name": "FortreeCity_House1", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House2/map.json b/data/maps/FortreeCity_House2/map.json index dcd8f30cd..fed6a9f65 100644 --- a/data/maps/FortreeCity_House2/map.json +++ b/data/maps/FortreeCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE2", "name": "FortreeCity_House2", "layout": "LAYOUT_FORTREE_CITY_HOUSE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House3/map.json b/data/maps/FortreeCity_House3/map.json index e96be4174..f7c47ede1 100644 --- a/data/maps/FortreeCity_House3/map.json +++ b/data/maps/FortreeCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE3", "name": "FortreeCity_House3", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House4/map.json b/data/maps/FortreeCity_House4/map.json index 699660056..a01772eea 100644 --- a/data/maps/FortreeCity_House4/map.json +++ b/data/maps/FortreeCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE4", "name": "FortreeCity_House4", "layout": "LAYOUT_FORTREE_CITY_HOUSE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House5/map.json b/data/maps/FortreeCity_House5/map.json index 32fcefe2b..b1577e648 100644 --- a/data/maps/FortreeCity_House5/map.json +++ b/data/maps/FortreeCity_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE5", "name": "FortreeCity_House5", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Mart/map.json b/data/maps/FortreeCity_Mart/map.json index a52ece8b2..61ab4cefd 100644 --- a/data/maps/FortreeCity_Mart/map.json +++ b/data/maps/FortreeCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_MART", "name": "FortreeCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_PokemonCenter_1F/map.json b/data/maps/FortreeCity_PokemonCenter_1F/map.json index 16c5fe8b6..d59349033 100644 --- a/data/maps/FortreeCity_PokemonCenter_1F/map.json +++ b/data/maps/FortreeCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_POKEMON_CENTER_1F", "name": "FortreeCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_PokemonCenter_2F/map.json b/data/maps/FortreeCity_PokemonCenter_2F/map.json index fdd9ee79d..1859bf131 100644 --- a/data/maps/FortreeCity_PokemonCenter_2F/map.json +++ b/data/maps/FortreeCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_POKEMON_CENTER_2F", "name": "FortreeCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_1F/map.json b/data/maps/GraniteCave_1F/map.json index a4c2bf0ff..ff60d726b 100644 --- a/data/maps/GraniteCave_1F/map.json +++ b/data/maps/GraniteCave_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_1F", "name": "GraniteCave_1F", "layout": "LAYOUT_GRANITE_CAVE_1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_B1F/map.json b/data/maps/GraniteCave_B1F/map.json index 103220612..be2f5ae01 100644 --- a/data/maps/GraniteCave_B1F/map.json +++ b/data/maps/GraniteCave_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_B1F", "name": "GraniteCave_B1F", "layout": "LAYOUT_GRANITE_CAVE_B1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_B2F/map.json b/data/maps/GraniteCave_B2F/map.json index c3f6fbf9a..bf58a40e3 100644 --- a/data/maps/GraniteCave_B2F/map.json +++ b/data/maps/GraniteCave_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_B2F", "name": "GraniteCave_B2F", "layout": "LAYOUT_GRANITE_CAVE_B2F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_StevensRoom/map.json b/data/maps/GraniteCave_StevensRoom/map.json index 934a8320e..070530378 100644 --- a/data/maps/GraniteCave_StevensRoom/map.json +++ b/data/maps/GraniteCave_StevensRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_STEVENS_ROOM", "name": "GraniteCave_StevensRoom", "layout": "LAYOUT_GRANITE_CAVE_STEVENS_ROOM", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc index 7d0b275a5..650177b95 100644 --- a/data/maps/GraniteCave_StevensRoom/scripts.inc +++ b/data/maps/GraniteCave_StevensRoom/scripts.inc @@ -17,7 +17,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox GraniteCave_StevensRoom_Text_RegisteredSteven, MSGBOX_DEFAULT waitfanfare closemessage @@ -33,7 +33,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast compare VAR_FACING, DIR_EAST call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_STEVEN release end diff --git a/data/maps/IslandCave/map.json b/data/maps/IslandCave/map.json index 0cb71092d..7c540411f 100644 --- a/data/maps/IslandCave/map.json +++ b/data/maps/IslandCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_ISLAND_CAVE", "name": "IslandCave", "layout": "LAYOUT_ISLAND_CAVE", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_ISLAND_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index 8587e62c2..56643a504 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -46,7 +46,7 @@ IslandCave_EventScript_OpenRegiEntrance:: @ 8238EAF setmetatile 8, 20, METATILE_Cave_SealedChamberEntrance_BottomMid, 0 setmetatile 9, 20, METATILE_Cave_SealedChamberEntrance_BottomRight, 1 special DrawWholeMapView - playse SE_BAN + playse SE_BANG setflag FLAG_SYS_BRAILLE_REGICE_COMPLETED end diff --git a/data/maps/JaggedPass/map.json b/data/maps/JaggedPass/map.json index eeac79e15..d7e7d5e2e 100644 --- a/data/maps/JaggedPass/map.json +++ b/data/maps/JaggedPass/map.json @@ -2,7 +2,7 @@ "id": "MAP_JAGGED_PASS", "name": "JaggedPass", "layout": "LAYOUT_JAGGED_PASS", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_JAGGED_PASS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/JaggedPass/scripts.inc b/data/maps/JaggedPass/scripts.inc index eacc7835e..c7fc95676 100644 --- a/data/maps/JaggedPass/scripts.inc +++ b/data/maps/JaggedPass/scripts.inc @@ -58,7 +58,7 @@ JaggedPass_EventScript_OpenMagmaHideout:: @ 82306BB setvar VAR_0x8007, 3 @ shake delay special ShakeCamera waitstate - playse SE_KOUKA_M + playse SE_EFFECTIVE setmetatile 16, 17, METATILE_Lavaridge_CaveEntrance_Top, 1 setmetatile 16, 18, METATILE_Lavaridge_CaveEntrance_Bottom, 0 special DrawWholeMapView diff --git a/data/maps/LavaridgeTown/map.json b/data/maps/LavaridgeTown/map.json index 1ab9f60cf..54bda6ca3 100644 --- a/data/maps/LavaridgeTown/map.json +++ b/data/maps/LavaridgeTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN", "name": "LavaridgeTown", "layout": "LAYOUT_LAVARIDGE_TOWN", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index 47c5482a6..1f9fe421d 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -105,11 +105,11 @@ LavaridgeTown_EventScript_RivalExit:: @ 81EA5FF end LavaridgeTown_EventScript_PlayMayMusic:: @ 81EA630 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return LavaridgeTown_EventScript_PlayBrendanMusic:: @ 81EA635 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return LavaridgeTown_EventScript_RivalNoticePlayer:: @ 81EA63A @@ -258,7 +258,7 @@ LavaridgeTown_EventScript_EggWoman:: @ 81EA744 goto_if_eq LavaridgeTown_EventScript_NoRoomForEgg msgbox LavaridgeTown_Text_HopeYoullWalkPlentyWithEgg, MSGBOX_DEFAULT setflag FLAG_RECEIVED_LAVARIDGE_EGG - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LavaridgeTown_Text_ReceivedTheEgg waitfanfare giveegg SPECIES_WYNAUT diff --git a/data/maps/LavaridgeTown_Gym_1F/map.json b/data/maps/LavaridgeTown_Gym_1F/map.json index 49b4ef2fd..2f624a2f9 100644 --- a/data/maps/LavaridgeTown_Gym_1F/map.json +++ b/data/maps/LavaridgeTown_Gym_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_GYM_1F", "name": "LavaridgeTown_Gym_1F", "layout": "LAYOUT_LAVARIDGE_TOWN_GYM_1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index 3747d854d..df95a0b4b 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -76,7 +76,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: @ 81FE7C1 call LavaridgeTown_Gym_1F_EventScript_GiveOverheat closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox LavaridgeTown_Gym_1F_Text_RegisteredFlannery, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/LavaridgeTown_Gym_B1F/map.json b/data/maps/LavaridgeTown_Gym_B1F/map.json index 0b1e81445..bbcdbcbe1 100644 --- a/data/maps/LavaridgeTown_Gym_B1F/map.json +++ b/data/maps/LavaridgeTown_Gym_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_GYM_B1F", "name": "LavaridgeTown_Gym_B1F", "layout": "LAYOUT_LAVARIDGE_TOWN_GYM_B1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/LavaridgeTown_HerbShop/map.json b/data/maps/LavaridgeTown_HerbShop/map.json index e76a98f64..6be35b729 100644 --- a/data/maps/LavaridgeTown_HerbShop/map.json +++ b/data/maps/LavaridgeTown_HerbShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_HERB_SHOP", "name": "LavaridgeTown_HerbShop", "layout": "LAYOUT_LAVARIDGE_TOWN_HERB_SHOP", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_House/map.json b/data/maps/LavaridgeTown_House/map.json index 5827399bd..2a8d5362c 100644 --- a/data/maps/LavaridgeTown_House/map.json +++ b/data/maps/LavaridgeTown_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_HOUSE", "name": "LavaridgeTown_House", "layout": "LAYOUT_HOUSE3", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_Mart/map.json b/data/maps/LavaridgeTown_Mart/map.json index 8099a5463..5c871785d 100644 --- a/data/maps/LavaridgeTown_Mart/map.json +++ b/data/maps/LavaridgeTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_MART", "name": "LavaridgeTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/map.json b/data/maps/LavaridgeTown_PokemonCenter_1F/map.json index 1542b7b50..42cf11aed 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_1F/map.json +++ b/data/maps/LavaridgeTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F", "name": "LavaridgeTown_PokemonCenter_1F", "layout": "LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_PokemonCenter_2F/map.json b/data/maps/LavaridgeTown_PokemonCenter_2F/map.json index eb68b0bb5..72a5f688b 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_2F/map.json +++ b/data/maps/LavaridgeTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F", "name": "LavaridgeTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity/map.json b/data/maps/LilycoveCity/map.json index 8d35fc0c6..a13904ca9 100644 --- a/data/maps/LilycoveCity/map.json +++ b/data/maps/LilycoveCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY", "name": "LilycoveCity", "layout": "LAYOUT_LILYCOVE_CITY", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index b8f0cd566..0c94bce62 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -241,7 +241,7 @@ LilycoveCity_EventScript_Rival:: @ 81E2DDE end LilycoveCity_EventScript_May:: @ 81E2DF8 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattle compare VAR_RESULT, NO @@ -270,7 +270,7 @@ LilycoveCity_EventScript_DeclineMayBattle:: @ 81E2E5A end LilycoveCity_EventScript_Brendan:: @ 81E2E6B - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattle compare VAR_RESULT, NO diff --git a/data/maps/LilycoveCity_ContestHall/map.json b/data/maps/LilycoveCity_ContestHall/map.json index bddb6d7c1..e8151c832 100644 --- a/data/maps/LilycoveCity_ContestHall/map.json +++ b/data/maps/LilycoveCity_ContestHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_CONTEST_HALL", "name": "LilycoveCity_ContestHall", "layout": "LAYOUT_LILYCOVE_CITY_CONTEST_HALL", - "music": "MUS_CONLOBBY", + "music": "MUS_CONTEST_LOBBY", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_ContestLobby/map.json b/data/maps/LilycoveCity_ContestLobby/map.json index eb7ebf907..ac5346dc4 100644 --- a/data/maps/LilycoveCity_ContestLobby/map.json +++ b/data/maps/LilycoveCity_ContestLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_CONTEST_LOBBY", "name": "LilycoveCity_ContestLobby", "layout": "LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY", - "music": "MUS_CONLOBBY", + "music": "MUS_CONTEST_LOBBY", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index 6b71c5125..51c38e3f4 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -99,7 +99,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: @ 821A314 applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistReturnToPlayer waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_TakeMementoOfPainting, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox LilycoveCity_ContestLobby_Text_ReceivedARibbon, MSGBOX_DEFAULT waitfanfare msgbox LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon, MSGBOX_DEFAULT @@ -272,7 +272,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon:: @ 821A4E4 applymovement LOCALID_ARTIST_LINK, LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_TakeMementoOfPainting, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox LilycoveCity_ContestLobby_Text_ReceivedARibbon, MSGBOX_DEFAULT waitfanfare msgbox LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon, MSGBOX_DEFAULT @@ -417,13 +417,13 @@ LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: @ 821A670 lockall applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 12, 2, METATILE_Contest_WallShadow, 1 setmetatile 12, 3, METATILE_Contest_FloorShadow, 1 special DrawWholeMapView applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistExitCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 12, 2, METATILE_Contest_CounterFlap_Top, 1 setmetatile 12, 3, METATILE_Contest_CounterFlap_Bottom, 1 special DrawWholeMapView @@ -938,13 +938,13 @@ LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: @ 821AC49 closemessage applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistApproachCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 17, 2, METATILE_Contest_WallShadow, 1 setmetatile 17, 3, METATILE_Contest_FloorShadow, 1 special DrawWholeMapView applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistExitCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 17, 2, METATILE_Contest_CounterFlap_Top, 1 setmetatile 17, 3, METATILE_Contest_CounterFlap_Bottom, 1 special DrawWholeMapView diff --git a/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json index ba6563877..4b18e22c1 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", "name": "LilycoveCity_CoveLilyMotel_1F", "layout": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json index ff84a3bf7..f55770b88 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", "name": "LilycoveCity_CoveLilyMotel_2F", "layout": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc index 7878e791a..9d3520be5 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc @@ -18,7 +18,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex:: @ 82186F9 LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare:: @ 8218702 setflag FLAG_TEMP_2 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare goto LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma end diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/map.json b/data/maps/LilycoveCity_DepartmentStoreElevator/map.json index 989cf65ef..9a3c43308 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/map.json +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", "name": "LilycoveCity_DepartmentStoreElevator", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json b/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json index 856c06bd4..deb7ad044 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", "name": "LilycoveCity_DepartmentStoreRooftop", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 12cb4727c..8d7459b3c 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -145,7 +145,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade updatemoneybox 0, 0 bufferitemname 0, VAR_TEMP_0 - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 @@ -157,7 +157,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F checkitemspace VAR_TEMP_0, 1 compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 @@ -169,7 +169,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F checkitemspace VAR_TEMP_0, 1 compare VAR_RESULT, 0 goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/map.json b/data/maps/LilycoveCity_DepartmentStore_1F/map.json index 9efcdb13a..758e063f6 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F", "name": "LilycoveCity_DepartmentStore_1F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_2F/map.json b/data/maps/LilycoveCity_DepartmentStore_2F/map.json index 7a1e8bf04..ebef46ae5 100644 --- a/data/maps/LilycoveCity_DepartmentStore_2F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F", "name": "LilycoveCity_DepartmentStore_2F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_3F/map.json b/data/maps/LilycoveCity_DepartmentStore_3F/map.json index e95c8173f..c911b9d26 100644 --- a/data/maps/LilycoveCity_DepartmentStore_3F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F", "name": "LilycoveCity_DepartmentStore_3F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_4F/map.json b/data/maps/LilycoveCity_DepartmentStore_4F/map.json index d57963ac7..c6291ec2c 100644 --- a/data/maps/LilycoveCity_DepartmentStore_4F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F", "name": "LilycoveCity_DepartmentStore_4F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/map.json b/data/maps/LilycoveCity_DepartmentStore_5F/map.json index d92404b98..6123c1c78 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F", "name": "LilycoveCity_DepartmentStore_5F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_Harbor/map.json b/data/maps/LilycoveCity_Harbor/map.json index b5238ac20..491d42624 100644 --- a/data/maps/LilycoveCity_Harbor/map.json +++ b/data/maps/LilycoveCity_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HARBOR", "name": "LilycoveCity_Harbor", "layout": "LAYOUT_HARBOR", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House1/map.json b/data/maps/LilycoveCity_House1/map.json index 85ea994c5..bd6850f5a 100644 --- a/data/maps/LilycoveCity_House1/map.json +++ b/data/maps/LilycoveCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE1", "name": "LilycoveCity_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House2/map.json b/data/maps/LilycoveCity_House2/map.json index 719a63067..5c208c852 100644 --- a/data/maps/LilycoveCity_House2/map.json +++ b/data/maps/LilycoveCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE2", "name": "LilycoveCity_House2", "layout": "LAYOUT_LILYCOVE_CITY_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House3/map.json b/data/maps/LilycoveCity_House3/map.json index 3b4212c1a..0331372c9 100644 --- a/data/maps/LilycoveCity_House3/map.json +++ b/data/maps/LilycoveCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE3", "name": "LilycoveCity_House3", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House4/map.json b/data/maps/LilycoveCity_House4/map.json index e086b2d45..7a1571abf 100644 --- a/data/maps/LilycoveCity_House4/map.json +++ b/data/maps/LilycoveCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE4", "name": "LilycoveCity_House4", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json b/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json index 8e5605821..09875fddc 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json +++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", "name": "LilycoveCity_LilycoveMuseum_1F", "layout": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json b/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json index 7c3c144c8..76d30eb68 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", "name": "LilycoveCity_LilycoveMuseum_2F", "layout": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/map.json b/data/maps/LilycoveCity_MoveDeletersHouse/map.json index caed79705..814719a9c 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/map.json +++ b/data/maps/LilycoveCity_MoveDeletersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE", "name": "LilycoveCity_MoveDeletersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index 6e7f9c580..1a27e3b8f 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -45,7 +45,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: @ 821EAB0 compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf special MoveDeleterForgetMove - playfanfare MUS_ME_WASURE + playfanfare MUS_MOVE_DELETED waitfanfare msgbox LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove, MSGBOX_DEFAULT releaseall diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/map.json b/data/maps/LilycoveCity_PokemonCenter_1F/map.json index 625904e41..daaec1191 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/map.json +++ b/data/maps/LilycoveCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_CENTER_1F", "name": "LilycoveCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_PokemonCenter_2F/map.json b/data/maps/LilycoveCity_PokemonCenter_2F/map.json index a82cc515a..b9c8e1302 100644 --- a/data/maps/LilycoveCity_PokemonCenter_2F/map.json +++ b/data/maps/LilycoveCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_CENTER_2F", "name": "LilycoveCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json b/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json index 820bf34c4..7d5c42034 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", "name": "LilycoveCity_PokemonTrainerFanClub", "layout": "LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_UnusedMart/map.json b/data/maps/LilycoveCity_UnusedMart/map.json index 65c9b2295..696674bf1 100644 --- a/data/maps/LilycoveCity_UnusedMart/map.json +++ b/data/maps/LilycoveCity_UnusedMart/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_UNUSED_MART", "name": "LilycoveCity_UnusedMart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown/map.json b/data/maps/LittlerootTown/map.json index f0c5694d8..5335dd66e 100644 --- a/data/maps/LittlerootTown/map.json +++ b/data/maps/LittlerootTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN", "name": "LittlerootTown", "layout": "LAYOUT_LITTLEROOT_TOWN", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index 347a805e8..ba5832309 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -147,7 +147,7 @@ LittlerootTown_EventScript_StepOffTruckFemale:: @ 81E7EF9 LittlerootTown_EventScript_GoInsideWithMom:: @ 81E7F17 delay 15 - playse SE_DANSA + playse SE_LEDGE applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_Movement_PlayerStepOffTruck waitmovement 0 opendoor VAR_0x8004, VAR_0x8005 @@ -950,7 +950,7 @@ LittlerootTown_EventScript_SetReceivedRunningShoes:: @ 81E8686 LittlerootTown_EventScript_GiveRunningShoes:: @ 81E8693 msgbox LittlerootTown_Text_WearTheseRunningShoes, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_Text_SwitchShoesWithRunningShoes waitfanfare setflag FLAG_RECEIVED_RUNNING_SHOES diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/map.json b/data/maps/LittlerootTown_BrendansHouse_1F/map.json index 9911e293a..3929b2e0c 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", "name": "LittlerootTown_BrendansHouse_1F", "layout": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc index 65ff3ab98..ee677fbff 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc @@ -147,7 +147,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival2:: @ 81F78D6 end LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_RIVAL delay 30 @@ -158,7 +158,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 compare VAR_0x8008, 0 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0 compare VAR_0x8008, 1 @@ -173,7 +173,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1 compare VAR_0x8008, 2 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/map.json b/data/maps/LittlerootTown_BrendansHouse_2F/map.json index 9cfdec8fe..03e2dcd82 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", "name": "LittlerootTown_BrendansHouse_2F", "layout": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index 7af4580c3..ab6f55af5 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -74,7 +74,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497 applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth compare VAR_FACING, DIR_SOUTH diff --git a/data/maps/LittlerootTown_MaysHouse_1F/map.json b/data/maps/LittlerootTown_MaysHouse_1F/map.json index 5e3a5aecd..739665181 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F", "name": "LittlerootTown_MaysHouse_1F", "layout": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc index 958951dc9..1e1bb0e11 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc @@ -181,7 +181,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival2:: @ 81F8A7F end LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_RIVAL delay 30 @@ -192,7 +192,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 compare VAR_0x8008, 0 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0 compare VAR_0x8008, 1 @@ -207,7 +207,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1 compare VAR_0x8008, 2 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL diff --git a/data/maps/LittlerootTown_MaysHouse_2F/map.json b/data/maps/LittlerootTown_MaysHouse_2F/map.json index 54b4e7c7e..1fa2ff01d 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F", "name": "LittlerootTown_MaysHouse_2F", "layout": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index 7c943e0e2..dd22ed670 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -74,7 +74,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth compare VAR_FACING, DIR_SOUTH diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json index 629516c25..deee3e264 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", "name": "LittlerootTown_ProfessorBirchsLab", "layout": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", - "music": "MUS_ODAMAKI", + "music": "MUS_BIRCH_LAB", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 7886bda18..bc03be7b2 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -120,7 +120,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: @ 81F9DDB bufferleadmonspeciesname 0 message LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox LittlerootTown_ProfessorBirchsLab_Text_WhyNotGiveNicknameToMon, MSGBOX_YESNO compare VAR_RESULT, YES @@ -183,13 +183,13 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 applymovement LOCALID_BIRCH, LittlerootTown_ProfessorBirchsLab_Movement_BirchRetrievePokedexes waitmovement 0 delay 20 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 20 applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestRight applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -208,7 +208,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox LittlerootTown_ProfessorBirchsLab_Text_OkayAllDone, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_PokedexUpgradedToNational waitmessage waitfanfare @@ -492,7 +492,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita:: @ 81FA23F end LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter:: @ 81FA24F - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedJohtoStarter waitmessage waitfanfare @@ -536,7 +536,7 @@ EventScript_RegisterProfBirch:: @ 81FA2D2 msgbox MatchCall_Text_BirchRegisterCall, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MatchCall_Text_RegisteredBirch, MSGBOX_DEFAULT waitfanfare closemessage @@ -587,7 +587,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: @ 81FA37F return LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex waitfanfare setflag FLAG_SYS_POKEDEX_GET diff --git a/data/maps/MagmaHideout_1F/map.json b/data/maps/MagmaHideout_1F/map.json index 8865cff2f..fe5513e3f 100644 --- a/data/maps/MagmaHideout_1F/map.json +++ b/data/maps/MagmaHideout_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_1F", "name": "MagmaHideout_1F", "layout": "LAYOUT_MAGMA_HIDEOUT_1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_1R/map.json b/data/maps/MagmaHideout_2F_1R/map.json index 1d7d2958d..a5c52683c 100644 --- a/data/maps/MagmaHideout_2F_1R/map.json +++ b/data/maps/MagmaHideout_2F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_1R", "name": "MagmaHideout_2F_1R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_1R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_2R/map.json b/data/maps/MagmaHideout_2F_2R/map.json index 38f492421..4aa6896f6 100644 --- a/data/maps/MagmaHideout_2F_2R/map.json +++ b/data/maps/MagmaHideout_2F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_2R", "name": "MagmaHideout_2F_2R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_2R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_3R/map.json b/data/maps/MagmaHideout_2F_3R/map.json index fbed23781..51a4daf26 100644 --- a/data/maps/MagmaHideout_2F_3R/map.json +++ b/data/maps/MagmaHideout_2F_3R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_3R", "name": "MagmaHideout_2F_3R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_3R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_1R/map.json b/data/maps/MagmaHideout_3F_1R/map.json index 082b1d4c6..edf4cfa21 100644 --- a/data/maps/MagmaHideout_3F_1R/map.json +++ b/data/maps/MagmaHideout_3F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_1R", "name": "MagmaHideout_3F_1R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_1R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_2R/map.json b/data/maps/MagmaHideout_3F_2R/map.json index 3bf22b2e0..70c6bfb97 100644 --- a/data/maps/MagmaHideout_3F_2R/map.json +++ b/data/maps/MagmaHideout_3F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_2R", "name": "MagmaHideout_3F_2R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_2R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_3R/map.json b/data/maps/MagmaHideout_3F_3R/map.json index 38a5342c3..824f5cb74 100644 --- a/data/maps/MagmaHideout_3F_3R/map.json +++ b/data/maps/MagmaHideout_3F_3R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_3R", "name": "MagmaHideout_3F_3R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_3R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_4F/map.json b/data/maps/MagmaHideout_4F/map.json index 0dec87a13..d38e85fdf 100644 --- a/data/maps/MagmaHideout_4F/map.json +++ b/data/maps/MagmaHideout_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_4F", "name": "MagmaHideout_4F", "layout": "LAYOUT_MAGMA_HIDEOUT_4F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index ffca9c75f..50382f44e 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -11,17 +11,17 @@ MagmaHideout_4F_MapScripts:: @ 823A55F MagmaHideout_4F_EventScript_Maxie:: @ 823A560 lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 msgbox MagmaHideout_4F_Text_MaxieAwakenGroudon, MSGBOX_DEFAULT closemessage delay 20 setvar VAR_RESULT, 1 - playse SE_W197 + playse SE_M_DETECT dofieldeffectsparkle 18, 42, 0 waitfieldeffect FLDEFF_SPARKLE setvar VAR_RESULT, 1 - playfanfare MUS_ME_TAMA - playse SE_TAMA + playfanfare MUS_AWAKEN_LEGEND + playse SE_ORB special DoOrbEffect applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 diff --git a/data/maps/MarineCave_End/map.json b/data/maps/MarineCave_End/map.json index 7f382b088..d2e506a14 100644 --- a/data/maps/MarineCave_End/map.json +++ b/data/maps/MarineCave_End/map.json @@ -2,7 +2,7 @@ "id": "MAP_MARINE_CAVE_END", "name": "MarineCave_End", "layout": "LAYOUT_MARINE_CAVE_END", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/MarineCave_Entrance/map.json b/data/maps/MarineCave_Entrance/map.json index 541ccddc6..f815ca069 100644 --- a/data/maps/MarineCave_Entrance/map.json +++ b/data/maps/MarineCave_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_MARINE_CAVE_ENTRANCE", "name": "MarineCave_Entrance", "layout": "LAYOUT_MARINE_CAVE_ENTRANCE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity/map.json b/data/maps/MauvilleCity/map.json index 096edafe3..cf3d5f8a1 100644 --- a/data/maps/MauvilleCity/map.json +++ b/data/maps/MauvilleCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY", "name": "MauvilleCity", "layout": "LAYOUT_MAUVILLE_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 701c36159..7107f4754 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -460,7 +460,7 @@ MauvilleCity_EventScript_RegisterWallyCall:: @ 81DF7BA pokenavcall MauvilleCity_Text_WallyPokenavCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MauvilleCity_Text_RegisteredWally, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/MauvilleCity_BikeShop/map.json b/data/maps/MauvilleCity_BikeShop/map.json index 44d09d883..217d3be26 100644 --- a/data/maps/MauvilleCity_BikeShop/map.json +++ b/data/maps/MauvilleCity_BikeShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_BIKE_SHOP", "name": "MauvilleCity_BikeShop", "layout": "LAYOUT_MAUVILLE_CITY_BIKE_SHOP", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_GameCorner/map.json b/data/maps/MauvilleCity_GameCorner/map.json index 1493cda23..2564596ba 100644 --- a/data/maps/MauvilleCity_GameCorner/map.json +++ b/data/maps/MauvilleCity_GameCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_GAME_CORNER", "name": "MauvilleCity_GameCorner", "layout": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", - "music": "MUS_CASINO", + "music": "MUS_GAME_CORNER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 46c61a017..ad3f7a407 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -53,7 +53,7 @@ MauvilleCity_GameCorner_EventScript_Buy50Coins:: @ 820FC33 removemoney COINS_PRICE_50, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 @@ -71,7 +71,7 @@ MauvilleCity_GameCorner_EventScript_Buy500Coins:: @ 820FC75 removemoney COINS_PRICE_500, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 @@ -172,7 +172,7 @@ MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: @ 820FDCB removecoins DOLL_COINS adddecoration DECOR_TREECKO_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -188,7 +188,7 @@ MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: @ 820FE05 removecoins DOLL_COINS adddecoration DECOR_TORCHIC_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -204,7 +204,7 @@ MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: @ 820FE3F removecoins DOLL_COINS adddecoration DECOR_MUDKIP_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -312,7 +312,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM32:: @ 820FFDD removecoins TM32_COINS additem ITEM_TM32 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -327,7 +327,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM29:: @ 8210017 removecoins TM29_COINS additem ITEM_TM29 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -342,7 +342,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM35:: @ 8210051 removecoins TM35_COINS additem ITEM_TM35 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -357,7 +357,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM24:: @ 821008B removecoins TM24_COINS additem ITEM_TM24 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -372,7 +372,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM13:: @ 82100C5 removecoins TM13_COINS additem ITEM_TM13 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -481,7 +481,7 @@ MauvilleCity_GameCorner_EventScript_TryGive20Coins:: @ 821023D setflag FLAG_RECEIVED_20_COINS addcoins 20 msgbox MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins, MSGBOX_DEFAULT - playse SE_REGI + playse SE_SHOP goto MauvilleCity_GameCorner_EventScript_PokefanMNormal end diff --git a/data/maps/MauvilleCity_Gym/map.json b/data/maps/MauvilleCity_Gym/map.json index 50122e216..2451c6cd6 100644 --- a/data/maps/MauvilleCity_Gym/map.json +++ b/data/maps/MauvilleCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_GYM", "name": "MauvilleCity_Gym", "layout": "LAYOUT_MAUVILLE_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index edf0a3129..3fa7dc8c9 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -101,11 +101,11 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: @ 820DF2B call Common_EventScript_SetGymTrainers special MauvilleGymDeactivatePuzzle special DrawWholeMapView - playse SE_KI_GASYAN + playse SE_UNLOCK call MauvilleCity_Gym_EventScript_GiveShockWave closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MauvilleCity_Gym_Text_RegisteredWattson, MSGBOX_DEFAULT waitfanfare closemessage @@ -185,7 +185,7 @@ MauvilleCity_Gym_EventScript_PressFloorSwitch:: @ 820E08D special MauvilleGymSetDefaultBarriers special MauvilleGymPressSwitch special DrawWholeMapView - playse SE_KI_GASYAN + playse SE_UNLOCK goto_if_set FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_ClearBarriersAltState goto_if_unset FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_SetBarriersAltState releaseall diff --git a/data/maps/MauvilleCity_House1/map.json b/data/maps/MauvilleCity_House1/map.json index 4f203bce6..019ae6f09 100644 --- a/data/maps/MauvilleCity_House1/map.json +++ b/data/maps/MauvilleCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_HOUSE1", "name": "MauvilleCity_House1", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_House2/map.json b/data/maps/MauvilleCity_House2/map.json index 5c092f1c7..009befbab 100644 --- a/data/maps/MauvilleCity_House2/map.json +++ b/data/maps/MauvilleCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_HOUSE2", "name": "MauvilleCity_House2", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_Mart/map.json b/data/maps/MauvilleCity_Mart/map.json index 2dcdd906e..ee4091ee1 100644 --- a/data/maps/MauvilleCity_Mart/map.json +++ b/data/maps/MauvilleCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_MART", "name": "MauvilleCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/map.json b/data/maps/MauvilleCity_PokemonCenter_1F/map.json index 50e5d3c9f..9feb04be9 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/map.json +++ b/data/maps/MauvilleCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_POKEMON_CENTER_1F", "name": "MauvilleCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_PokemonCenter_2F/map.json b/data/maps/MauvilleCity_PokemonCenter_2F/map.json index da8f19255..3f616938b 100644 --- a/data/maps/MauvilleCity_PokemonCenter_2F/map.json +++ b/data/maps/MauvilleCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_POKEMON_CENTER_2F", "name": "MauvilleCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_1F_1R/map.json b/data/maps/MeteorFalls_1F_1R/map.json index 45cf5803e..f177410e2 100644 --- a/data/maps/MeteorFalls_1F_1R/map.json +++ b/data/maps/MeteorFalls_1F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_1F_1R", "name": "MeteorFalls_1F_1R", "layout": "LAYOUT_METEOR_FALLS_1F_1R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc index 56deaa353..c942e230e 100644 --- a/data/maps/MeteorFalls_1F_1R/scripts.inc +++ b/data/maps/MeteorFalls_1F_1R/scripts.inc @@ -21,7 +21,7 @@ MeteorFalls_1F_1R_EventScript_OpenStevensCave:: @ 822BD3A MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceDown waitmovement 0 delay 30 @@ -50,7 +50,7 @@ MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F addobject LOCALID_ARCHIE addobject LOCALID_AQUA_GRUNT_1 addobject LOCALID_AQUA_GRUNT_2 - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_ARCHIE, MeteorFalls_1F_1R_Movement_ArchieArrive applymovement LOCALID_AQUA_GRUNT_1, MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive applymovement LOCALID_AQUA_GRUNT_2, MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive diff --git a/data/maps/MeteorFalls_1F_2R/map.json b/data/maps/MeteorFalls_1F_2R/map.json index ea585829f..49e001c88 100644 --- a/data/maps/MeteorFalls_1F_2R/map.json +++ b/data/maps/MeteorFalls_1F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_1F_2R", "name": "MeteorFalls_1F_2R", "layout": "LAYOUT_METEOR_FALLS_1F_2R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_B1F_1R/map.json b/data/maps/MeteorFalls_B1F_1R/map.json index 2db212dfa..6cba2ec48 100644 --- a/data/maps/MeteorFalls_B1F_1R/map.json +++ b/data/maps/MeteorFalls_B1F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_B1F_1R", "name": "MeteorFalls_B1F_1R", "layout": "LAYOUT_METEOR_FALLS_B1F_1R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_B1F_2R/map.json b/data/maps/MeteorFalls_B1F_2R/map.json index e318acfbc..57276d86d 100644 --- a/data/maps/MeteorFalls_B1F_2R/map.json +++ b/data/maps/MeteorFalls_B1F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_B1F_2R", "name": "MeteorFalls_B1F_2R", "layout": "LAYOUT_METEOR_FALLS_B1F_2R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_StevensCave/map.json b/data/maps/MeteorFalls_StevensCave/map.json index 7b1f7439e..01b05d308 100644 --- a/data/maps/MeteorFalls_StevensCave/map.json +++ b/data/maps/MeteorFalls_StevensCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_STEVENS_CAVE", "name": "MeteorFalls_StevensCave", "layout": "LAYOUT_METEOR_FALLS_STEVENS_CAVE", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_1F/map.json b/data/maps/MirageTower_1F/map.json index 91e15cc39..bb7930006 100644 --- a/data/maps/MirageTower_1F/map.json +++ b/data/maps/MirageTower_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_1F", "name": "MirageTower_1F", "layout": "LAYOUT_MIRAGE_TOWER_1F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_2F/map.json b/data/maps/MirageTower_2F/map.json index 5e9769db6..bf4561675 100644 --- a/data/maps/MirageTower_2F/map.json +++ b/data/maps/MirageTower_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_2F", "name": "MirageTower_2F", "layout": "LAYOUT_MIRAGE_TOWER_2F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_3F/map.json b/data/maps/MirageTower_3F/map.json index 2692de62a..6ccbf4678 100644 --- a/data/maps/MirageTower_3F/map.json +++ b/data/maps/MirageTower_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_3F", "name": "MirageTower_3F", "layout": "LAYOUT_MIRAGE_TOWER_3F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_4F/map.json b/data/maps/MirageTower_4F/map.json index 03ecc0647..a153fbb2a 100644 --- a/data/maps/MirageTower_4F/map.json +++ b/data/maps/MirageTower_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_4F", "name": "MirageTower_4F", "layout": "LAYOUT_MIRAGE_TOWER_4F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index d360959a1..ff8ae1b61 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY", "name": "MossdeepCity", "layout": "LAYOUT_MOSSDEEP_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/MossdeepCity_GameCorner_1F/map.json b/data/maps/MossdeepCity_GameCorner_1F/map.json index 6188b4f37..14b89fe42 100644 --- a/data/maps/MossdeepCity_GameCorner_1F/map.json +++ b/data/maps/MossdeepCity_GameCorner_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GAME_CORNER_1F", "name": "MossdeepCity_GameCorner_1F", "layout": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_GameCorner_B1F/map.json b/data/maps/MossdeepCity_GameCorner_B1F/map.json index 7ea92448c..180bd703a 100644 --- a/data/maps/MossdeepCity_GameCorner_B1F/map.json +++ b/data/maps/MossdeepCity_GameCorner_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GAME_CORNER_B1F", "name": "MossdeepCity_GameCorner_B1F", "layout": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Gym/map.json b/data/maps/MossdeepCity_Gym/map.json index fa4099565..9b63a0c08 100644 --- a/data/maps/MossdeepCity_Gym/map.json +++ b/data/maps/MossdeepCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GYM", "name": "MossdeepCity_Gym", "layout": "LAYOUT_MOSSDEEP_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index d8bff6dd1..0e6487e16 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -81,7 +81,7 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: @ 82208D1 call MossdeepCity_Gym_EventScript_GiveCalmMind closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MossdeepCity_Gym_Text_RegisteredTateAndLiza, MSGBOX_DEFAULT waitfanfare closemessage @@ -126,7 +126,7 @@ MossdeepCity_Gym_EventScript_Switch1:: @ 8220999 MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed:: @ 82209C8 special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK releaseall end @@ -308,9 +308,9 @@ MossdeepCity_Gym_EventScript_GymStatue:: @ 8220C5D end MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 0 waitmovement 0 @@ -320,9 +320,9 @@ MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 end MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 1 waitmovement 0 @@ -332,9 +332,9 @@ MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D end MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 2 waitmovement 0 @@ -344,9 +344,9 @@ MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 end MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 3 waitmovement 0 @@ -356,9 +356,9 @@ MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 end MossdeepCity_Gym_EventScript_RedFloorSwitch:: @ 8220CBF - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 4 waitmovement 0 diff --git a/data/maps/MossdeepCity_House1/map.json b/data/maps/MossdeepCity_House1/map.json index f57f4df18..f4338078e 100644 --- a/data/maps/MossdeepCity_House1/map.json +++ b/data/maps/MossdeepCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE1", "name": "MossdeepCity_House1", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House2/map.json b/data/maps/MossdeepCity_House2/map.json index 9a9a08173..e7990bad9 100644 --- a/data/maps/MossdeepCity_House2/map.json +++ b/data/maps/MossdeepCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE2", "name": "MossdeepCity_House2", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House3/map.json b/data/maps/MossdeepCity_House3/map.json index c6cfaf097..a0587ca0a 100644 --- a/data/maps/MossdeepCity_House3/map.json +++ b/data/maps/MossdeepCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE3", "name": "MossdeepCity_House3", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House4/map.json b/data/maps/MossdeepCity_House4/map.json index b4b77372d..0c7e0a112 100644 --- a/data/maps/MossdeepCity_House4/map.json +++ b/data/maps/MossdeepCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE4", "name": "MossdeepCity_House4", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Mart/map.json b/data/maps/MossdeepCity_Mart/map.json index 83218e7e1..37885b752 100644 --- a/data/maps/MossdeepCity_Mart/map.json +++ b/data/maps/MossdeepCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_MART", "name": "MossdeepCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/map.json b/data/maps/MossdeepCity_PokemonCenter_1F/map.json index 751632462..ac3b51e8f 100644 --- a/data/maps/MossdeepCity_PokemonCenter_1F/map.json +++ b/data/maps/MossdeepCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F", "name": "MossdeepCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_PokemonCenter_2F/map.json b/data/maps/MossdeepCity_PokemonCenter_2F/map.json index 9206cf844..7fa656697 100644 --- a/data/maps/MossdeepCity_PokemonCenter_2F/map.json +++ b/data/maps/MossdeepCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F", "name": "MossdeepCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/map.json b/data/maps/MossdeepCity_SpaceCenter_1F/map.json index 32b5ff489..0f5069665 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/map.json +++ b/data/maps/MossdeepCity_SpaceCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_SPACE_CENTER_1F", "name": "MossdeepCity_SpaceCenter_1F", "layout": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/map.json b/data/maps/MossdeepCity_SpaceCenter_2F/map.json index 7e01d7f1a..8990aa075 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/map.json +++ b/data/maps/MossdeepCity_SpaceCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_SPACE_CENTER_2F", "name": "MossdeepCity_SpaceCenter_2F", "layout": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 6c9d4a905..62550d7c6 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -204,7 +204,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_Steven:: @ 8223F7A msgbox MossdeepCity_SpaceCenter_2F_Text_MaxieUseFuelToEruptVolcano, MSGBOX_DEFAULT closemessage delay 30 - playse SE_KOUKA_L + playse SE_NOT_EFFECTIVE switch VAR_FACING case DIR_SOUTH, MossdeepCity_SpaceCenter_2F_EventScript_StevenFightMovementSouth applymovement LOCALID_STEVEN, MossdeepCity_SpaceCenter_2F_Movement_StevenFight diff --git a/data/maps/MossdeepCity_StevensHouse/map.json b/data/maps/MossdeepCity_StevensHouse/map.json index 81eefbd94..cad7609d3 100644 --- a/data/maps/MossdeepCity_StevensHouse/map.json +++ b/data/maps/MossdeepCity_StevensHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_STEVENS_HOUSE", "name": "MossdeepCity_StevensHouse", "layout": "LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc index 0017f553d..1d384efe1 100644 --- a/data/maps/MossdeepCity_StevensHouse/scripts.inc +++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc @@ -123,7 +123,7 @@ MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC:: @ 82228E0 MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: @ 82228EB bufferspeciesname 1, SPECIES_BELDUM removeobject LOCALID_BELDUM_BALL - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message MossdeepCity_StevensHouse_Text_ObtainedBeldum waitmessage waitfanfare diff --git a/data/maps/MtChimney/map.json b/data/maps/MtChimney/map.json index 7e95b291c..7083ff7de 100644 --- a/data/maps/MtChimney/map.json +++ b/data/maps/MtChimney/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_CHIMNEY", "name": "MtChimney", "layout": "LAYOUT_MT_CHIMNEY", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MT_CHIMNEY", "requires_flash": false, "weather": "WEATHER_VOLCANIC_ASH", diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index 42ebce0f9..c633d9313 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -40,7 +40,7 @@ MtChimney_EventScript_ArchieBusyFighting:: @ 822EE02 MtChimney_EventScript_Maxie:: @ 822EE0B lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 msgbox MtChimney_Text_MeteoriteWillActivateVolcano, MSGBOX_DEFAULT applymovement LOCALID_MAXIE, Common_Movement_FacePlayer waitmovement 0 diff --git a/data/maps/MtChimney_CableCarStation/map.json b/data/maps/MtChimney_CableCarStation/map.json index 3926f2444..410bc0c2e 100644 --- a/data/maps/MtChimney_CableCarStation/map.json +++ b/data/maps/MtChimney_CableCarStation/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_CHIMNEY_CABLE_CAR_STATION", "name": "MtChimney_CableCarStation", "layout": "LAYOUT_CABLE_CAR_STATION", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_MT_CHIMNEY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_1F/map.json b/data/maps/MtPyre_1F/map.json index 153a14a92..248bd6530 100644 --- a/data/maps/MtPyre_1F/map.json +++ b/data/maps/MtPyre_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_1F", "name": "MtPyre_1F", "layout": "LAYOUT_MT_PYRE_1F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_2F/map.json b/data/maps/MtPyre_2F/map.json index 69e7b1e18..0668bcf78 100644 --- a/data/maps/MtPyre_2F/map.json +++ b/data/maps/MtPyre_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_2F", "name": "MtPyre_2F", "layout": "LAYOUT_MT_PYRE_2F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_3F/map.json b/data/maps/MtPyre_3F/map.json index 08c594514..35c6c1b04 100644 --- a/data/maps/MtPyre_3F/map.json +++ b/data/maps/MtPyre_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_3F", "name": "MtPyre_3F", "layout": "LAYOUT_MT_PYRE_3F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_4F/map.json b/data/maps/MtPyre_4F/map.json index f9658c6cf..d326bff72 100644 --- a/data/maps/MtPyre_4F/map.json +++ b/data/maps/MtPyre_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_4F", "name": "MtPyre_4F", "layout": "LAYOUT_MT_PYRE_4F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_5F/map.json b/data/maps/MtPyre_5F/map.json index 93cc0013e..fb7c3f2f8 100644 --- a/data/maps/MtPyre_5F/map.json +++ b/data/maps/MtPyre_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_5F", "name": "MtPyre_5F", "layout": "LAYOUT_MT_PYRE_5F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_6F/map.json b/data/maps/MtPyre_6F/map.json index 1291d6356..dc2e7f9b0 100644 --- a/data/maps/MtPyre_6F/map.json +++ b/data/maps/MtPyre_6F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_6F", "name": "MtPyre_6F", "layout": "LAYOUT_MT_PYRE_6F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_Exterior/map.json b/data/maps/MtPyre_Exterior/map.json index 67a0dac6e..58c865305 100644 --- a/data/maps/MtPyre_Exterior/map.json +++ b/data/maps/MtPyre_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_EXTERIOR", "name": "MtPyre_Exterior", "layout": "LAYOUT_MT_PYRE_EXTERIOR", - "music": "MUS_MACHUPI", + "music": "MUS_MT_PYRE_EXTERIOR", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_Summit/map.json b/data/maps/MtPyre_Summit/map.json index 87a1ad977..aa3341f8a 100644 --- a/data/maps/MtPyre_Summit/map.json +++ b/data/maps/MtPyre_Summit/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_SUMMIT", "name": "MtPyre_Summit", "layout": "LAYOUT_MT_PYRE_SUMMIT", - "music": "MUS_MACHUPI", + "music": "MUS_MT_PYRE_EXTERIOR", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index 9daf02f5b..c2692ff20 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -39,7 +39,7 @@ MtPyre_Summit_EventScript_TeamAquaTrigger2:: @ 8232030 end MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFastestDown diff --git a/data/maps/NavelRock_B1F/map.json b/data/maps/NavelRock_B1F/map.json index f7d969e21..8e366fc16 100644 --- a/data/maps/NavelRock_B1F/map.json +++ b/data/maps/NavelRock_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_B1F", "name": "NavelRock_B1F", "layout": "LAYOUT_NAVEL_ROCK_B1F", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Bottom/map.json b/data/maps/NavelRock_Bottom/map.json index 1db5649bc..13d676200 100644 --- a/data/maps/NavelRock_Bottom/map.json +++ b/data/maps/NavelRock_Bottom/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_BOTTOM", "name": "NavelRock_Bottom", "layout": "LAYOUT_NAVEL_ROCK_BOTTOM", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index f0c73b1f8..9c438fc5c 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -35,14 +35,14 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 faceplayer waitse delay 20 - playse SE_T_AME_E + playse SE_THUNDERSTORM_STOP setvar VAR_0x8004, 0 @ vertical pan setvar VAR_0x8005, 3 @ horizontal pan setvar VAR_0x8006, 4 @ num shakes setvar VAR_0x8007, 2 @ shake delay special ShakeCamera delay 30 - playse SE_T_AME_E + playse SE_THUNDERSTORM_STOP setvar VAR_0x8004, 0 @ vertical pan setvar VAR_0x8005, 3 @ horizontal pan setvar VAR_0x8006, 4 @ num shakes diff --git a/data/maps/NavelRock_Down01/map.json b/data/maps/NavelRock_Down01/map.json index 1c47e450e..674996920 100644 --- a/data/maps/NavelRock_Down01/map.json +++ b/data/maps/NavelRock_Down01/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN01", "name": "NavelRock_Down01", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down02/map.json b/data/maps/NavelRock_Down02/map.json index aaae333c3..7c75a1b03 100644 --- a/data/maps/NavelRock_Down02/map.json +++ b/data/maps/NavelRock_Down02/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN02", "name": "NavelRock_Down02", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down03/map.json b/data/maps/NavelRock_Down03/map.json index 60acdc668..936ebab77 100644 --- a/data/maps/NavelRock_Down03/map.json +++ b/data/maps/NavelRock_Down03/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN03", "name": "NavelRock_Down03", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down04/map.json b/data/maps/NavelRock_Down04/map.json index edfc400e7..585ee7538 100644 --- a/data/maps/NavelRock_Down04/map.json +++ b/data/maps/NavelRock_Down04/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN04", "name": "NavelRock_Down04", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down05/map.json b/data/maps/NavelRock_Down05/map.json index f4d31fdff..1099d9caa 100644 --- a/data/maps/NavelRock_Down05/map.json +++ b/data/maps/NavelRock_Down05/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN05", "name": "NavelRock_Down05", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down06/map.json b/data/maps/NavelRock_Down06/map.json index ef20800f3..7fb26f293 100644 --- a/data/maps/NavelRock_Down06/map.json +++ b/data/maps/NavelRock_Down06/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN06", "name": "NavelRock_Down06", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down07/map.json b/data/maps/NavelRock_Down07/map.json index 0019d726f..36896f306 100644 --- a/data/maps/NavelRock_Down07/map.json +++ b/data/maps/NavelRock_Down07/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN07", "name": "NavelRock_Down07", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down08/map.json b/data/maps/NavelRock_Down08/map.json index 17d50c0ed..f9945f49f 100644 --- a/data/maps/NavelRock_Down08/map.json +++ b/data/maps/NavelRock_Down08/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN08", "name": "NavelRock_Down08", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down09/map.json b/data/maps/NavelRock_Down09/map.json index 49713ffc3..38b2fdae8 100644 --- a/data/maps/NavelRock_Down09/map.json +++ b/data/maps/NavelRock_Down09/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN09", "name": "NavelRock_Down09", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down10/map.json b/data/maps/NavelRock_Down10/map.json index d736db5d9..7ea3bfa3b 100644 --- a/data/maps/NavelRock_Down10/map.json +++ b/data/maps/NavelRock_Down10/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN10", "name": "NavelRock_Down10", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down11/map.json b/data/maps/NavelRock_Down11/map.json index ac45da8a2..da05c7e6b 100644 --- a/data/maps/NavelRock_Down11/map.json +++ b/data/maps/NavelRock_Down11/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN11", "name": "NavelRock_Down11", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Entrance/map.json b/data/maps/NavelRock_Entrance/map.json index 66d462f5f..ab14b2da1 100644 --- a/data/maps/NavelRock_Entrance/map.json +++ b/data/maps/NavelRock_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_ENTRANCE", "name": "NavelRock_Entrance", "layout": "LAYOUT_NAVEL_ROCK_ENTRANCE", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Exterior/map.json b/data/maps/NavelRock_Exterior/map.json index 8527705c1..13927b6b6 100644 --- a/data/maps/NavelRock_Exterior/map.json +++ b/data/maps/NavelRock_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_EXTERIOR", "name": "NavelRock_Exterior", "layout": "LAYOUT_NAVEL_ROCK_EXTERIOR", - "music": "MUS_RG_NANASHIMA", + "music": "MUS_RG_SEVII_ROUTE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Fork/map.json b/data/maps/NavelRock_Fork/map.json index a5301bd6b..a8929208f 100644 --- a/data/maps/NavelRock_Fork/map.json +++ b/data/maps/NavelRock_Fork/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_FORK", "name": "NavelRock_Fork", "layout": "LAYOUT_NAVEL_ROCK_FORK", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json index 62308d149..34e139108 100644 --- a/data/maps/NavelRock_Harbor/map.json +++ b/data/maps/NavelRock_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_HARBOR", "name": "NavelRock_Harbor", "layout": "LAYOUT_ISLAND_HARBOR", - "music": "MUS_RG_NANASHIMA", + "music": "MUS_RG_SEVII_ROUTE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Top/map.json b/data/maps/NavelRock_Top/map.json index 8669e746f..c06202726 100644 --- a/data/maps/NavelRock_Top/map.json +++ b/data/maps/NavelRock_Top/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_TOP", "name": "NavelRock_Top", "layout": "LAYOUT_NAVEL_ROCK_TOP", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/NavelRock_Up1/map.json b/data/maps/NavelRock_Up1/map.json index 01dfcaffa..ee744ff4b 100644 --- a/data/maps/NavelRock_Up1/map.json +++ b/data/maps/NavelRock_Up1/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP1", "name": "NavelRock_Up1", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up2/map.json b/data/maps/NavelRock_Up2/map.json index 0233edb78..aa2470329 100644 --- a/data/maps/NavelRock_Up2/map.json +++ b/data/maps/NavelRock_Up2/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP2", "name": "NavelRock_Up2", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up3/map.json b/data/maps/NavelRock_Up3/map.json index c12438fc9..2629eafb1 100644 --- a/data/maps/NavelRock_Up3/map.json +++ b/data/maps/NavelRock_Up3/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP3", "name": "NavelRock_Up3", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up4/map.json b/data/maps/NavelRock_Up4/map.json index 4cdcba842..4060a52a7 100644 --- a/data/maps/NavelRock_Up4/map.json +++ b/data/maps/NavelRock_Up4/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP4", "name": "NavelRock_Up4", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NewMauville_Entrance/map.json b/data/maps/NewMauville_Entrance/map.json index 71650200b..d66c5b13b 100644 --- a/data/maps/NewMauville_Entrance/map.json +++ b/data/maps/NewMauville_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_NEW_MAUVILLE_ENTRANCE", "name": "NewMauville_Entrance", "layout": "LAYOUT_NEW_MAUVILLE_ENTRANCE", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_NEW_MAUVILLE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NewMauville_Entrance/scripts.inc b/data/maps/NewMauville_Entrance/scripts.inc index 6d7d731de..d398a03ea 100644 --- a/data/maps/NewMauville_Entrance/scripts.inc +++ b/data/maps/NewMauville_Entrance/scripts.inc @@ -40,7 +40,7 @@ NewMauville_Entrance_EventScript_Door:: @ 82372FF setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile4, 0 setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile5, 1 special DrawWholeMapView - playse SE_BAN + playse SE_BANG setvar VAR_NEW_MAUVILLE_STATE, 1 releaseall end diff --git a/data/maps/NewMauville_Inside/map.json b/data/maps/NewMauville_Inside/map.json index 16127d699..eea119068 100644 --- a/data/maps/NewMauville_Inside/map.json +++ b/data/maps/NewMauville_Inside/map.json @@ -2,7 +2,7 @@ "id": "MAP_NEW_MAUVILLE_INSIDE", "name": "NewMauville_Inside", "layout": "LAYOUT_NEW_MAUVILLE_INSIDE", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_NEW_MAUVILLE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown/map.json b/data/maps/OldaleTown/map.json index b16fb4044..ee6101ff6 100644 --- a/data/maps/OldaleTown/map.json +++ b/data/maps/OldaleTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN", "name": "OldaleTown", "layout": "LAYOUT_OLDALE_TOWN", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index aeb0c3dbd..f99c65d2c 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -43,7 +43,7 @@ OldaleTown_EventScript_MartEmployee:: @ 81E8EFC goto_if_set FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_ExplainPotion goto_if_set FLAG_TEMP_1, OldaleTown_EventScript_ExplainPotion setflag FLAG_TEMP_1 - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 msgbox OldaleTown_Text_IWorkAtPokemonMart, MSGBOX_DEFAULT closemessage switch VAR_FACING diff --git a/data/maps/OldaleTown_House1/map.json b/data/maps/OldaleTown_House1/map.json index 970294926..cd64357dc 100644 --- a/data/maps/OldaleTown_House1/map.json +++ b/data/maps/OldaleTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_HOUSE1", "name": "OldaleTown_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_House2/map.json b/data/maps/OldaleTown_House2/map.json index 52c775f15..2347fc29a 100644 --- a/data/maps/OldaleTown_House2/map.json +++ b/data/maps/OldaleTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_HOUSE2", "name": "OldaleTown_House2", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_Mart/map.json b/data/maps/OldaleTown_Mart/map.json index cba6b012c..692223541 100644 --- a/data/maps/OldaleTown_Mart/map.json +++ b/data/maps/OldaleTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_MART", "name": "OldaleTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_PokemonCenter_1F/map.json b/data/maps/OldaleTown_PokemonCenter_1F/map.json index 1c979098e..46ee3f9bd 100644 --- a/data/maps/OldaleTown_PokemonCenter_1F/map.json +++ b/data/maps/OldaleTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_POKEMON_CENTER_1F", "name": "OldaleTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_PokemonCenter_2F/map.json b/data/maps/OldaleTown_PokemonCenter_2F/map.json index de1b0a771..fdeb28c06 100644 --- a/data/maps/OldaleTown_PokemonCenter_2F/map.json +++ b/data/maps/OldaleTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_POKEMON_CENTER_2F", "name": "OldaleTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown/map.json b/data/maps/PacifidlogTown/map.json index fdf43d1ac..51fc772a9 100644 --- a/data/maps/PacifidlogTown/map.json +++ b/data/maps/PacifidlogTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN", "name": "PacifidlogTown", "layout": "LAYOUT_PACIFIDLOG_TOWN", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/PacifidlogTown_House1/map.json b/data/maps/PacifidlogTown_House1/map.json index b6db1c923..a494819a5 100644 --- a/data/maps/PacifidlogTown_House1/map.json +++ b/data/maps/PacifidlogTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE1", "name": "PacifidlogTown_House1", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House2/map.json b/data/maps/PacifidlogTown_House2/map.json index ceeadd9a6..027442b4b 100644 --- a/data/maps/PacifidlogTown_House2/map.json +++ b/data/maps/PacifidlogTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE2", "name": "PacifidlogTown_House2", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House3/map.json b/data/maps/PacifidlogTown_House3/map.json index 34d9ddad2..17f99cea1 100644 --- a/data/maps/PacifidlogTown_House3/map.json +++ b/data/maps/PacifidlogTown_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE3", "name": "PacifidlogTown_House3", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House4/map.json b/data/maps/PacifidlogTown_House4/map.json index cd8dfc52f..4c4cdb15b 100644 --- a/data/maps/PacifidlogTown_House4/map.json +++ b/data/maps/PacifidlogTown_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE4", "name": "PacifidlogTown_House4", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House5/map.json b/data/maps/PacifidlogTown_House5/map.json index e1d6f4289..ac9384502 100644 --- a/data/maps/PacifidlogTown_House5/map.json +++ b/data/maps/PacifidlogTown_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE5", "name": "PacifidlogTown_House5", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/map.json b/data/maps/PacifidlogTown_PokemonCenter_1F/map.json index 20d00fecb..50baa2b7c 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_1F/map.json +++ b/data/maps/PacifidlogTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F", "name": "PacifidlogTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_PokemonCenter_2F/map.json b/data/maps/PacifidlogTown_PokemonCenter_2F/map.json index 97b48ef2e..1837ab55c 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_2F/map.json +++ b/data/maps/PacifidlogTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F", "name": "PacifidlogTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index 03c0950ca..d9587cdbb 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY", "name": "PetalburgCity", "layout": "LAYOUT_PETALBURG_CITY", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", @@ -35,8 +35,8 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_EventScript_WallyAunt", - "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT" + "script": "PetalburgCity_EventScript_WallysMom", + "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM" }, { "graphics_id": "OBJ_EVENT_GFX_WALLY", @@ -88,7 +88,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE" + "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index b7df04857..ab77e18e0 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -1,6 +1,6 @@ .set LOCALID_WALLY, 2 .set LOCALID_BOY, 3 -.set LOCALID_WALLYS_UNCLE, 5 +.set LOCALID_WALLYS_DAD, 5 .set LOCALID_GYM_BOY, 8 .set LOCALID_SCOTT, 9 @@ -27,7 +27,7 @@ PetalburgCity_EventScript_MoveGymBoyToWestEntrance:: @ 81DC307 PetalburgCity_EventScript_DisableMapNameAndMusic:: @ 81DC30F setflag FLAG_HIDE_MAP_NAME_POPUP - savebgm MUS_TSURETEK + savebgm MUS_FOLLOW_ME return PetalburgCity_EventScript_SetGymDoorsUnlocked:: @ 81DC316 @@ -68,17 +68,17 @@ PetalburgCity_EventScript_WallyTutorial:: @ 81DC32E PetalburgCity_EventScript_WalkToWallyHouse:: @ 81DC390 lockall setflag FLAG_HIDE_MAP_NAME_POPUP - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Movement_WalkToWallyHouseUncle + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Movement_WalkToWallyHouseWallysDad applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_WalkToWallyHousePlayer waitmovement 0 setvar VAR_0x8004, 7 setvar VAR_0x8005, 5 opendoor VAR_0x8004, VAR_0x8005 waitdooranim - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Movement_WalkInsideHouseUncle + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Movement_WalkInsideHouseWallysDad applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_WalkInsideHousePlayer waitmovement 0 - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD hideobjectat OBJ_EVENT_ID_PLAYER, MAP_PETALBURG_CITY closedoor VAR_0x8004, VAR_0x8005 waitdooranim @@ -100,7 +100,7 @@ PetalburgCity_EventScript_Boy:: @ 81DC3E6 release end -PetalburgCity_EventScript_WallyAunt:: @ 81DC3FD +PetalburgCity_EventScript_WallysMom:: @ 81DC3FD msgbox PetalburgCity_Text_WhereIsWally, MSGBOX_NPC end @@ -129,7 +129,7 @@ PetalburgCity_Movement_WalkInsideHousePlayer: @ 81DC418 walk_up step_end -PetalburgCity_Movement_WalkToWallyHouseUncle: @ 81DC41B +PetalburgCity_Movement_WalkToWallyHouseWallysDad: @ 81DC41B delay_8 walk_down walk_down @@ -149,7 +149,7 @@ PetalburgCity_Movement_WalkToWallyHouseUncle: @ 81DC41B walk_up step_end -PetalburgCity_Movement_WalkInsideHouseUncle: @ 81DC42D +PetalburgCity_Movement_WalkInsideHouseWallysDad: @ 81DC42D walk_up set_invisible step_end @@ -271,7 +271,7 @@ PetalburgCity_EventScript_ShowGymToPlayer3:: @ 81DC4BE PetalburgCity_EventScript_ShowGymToPlayer:: @ 81DC4CA applymovement LOCALID_GYM_BOY, Common_Movement_FacePlayer waitmovement 0 - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 playse SE_PIN applymovement LOCALID_GYM_BOY, Common_Movement_ExclamationMark waitmovement 0 diff --git a/data/maps/PetalburgCity_Gym/map.json b/data/maps/PetalburgCity_Gym/map.json index ca074547f..307708fc1 100644 --- a/data/maps/PetalburgCity_Gym/map.json +++ b/data/maps/PetalburgCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_GYM", "name": "PetalburgCity_Gym", "layout": "LAYOUT_PETALBURG_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", @@ -155,7 +155,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE" + "flag": "FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD" } ], "warp_events": [ diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 5df31917f..2bdd5320f 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -1,6 +1,6 @@ .set LOCALID_NORMAN, 1 .set LOCALID_WALLY, 10 -.set LOCALID_WALLYS_UNCLE, 11 +.set LOCALID_WALLYS_DAD, 11 PetalburgCity_Gym_MapScripts:: @ 8204889 map_script MAP_SCRIPT_ON_LOAD, PetalburgCity_Gym_OnLoad @@ -91,7 +91,7 @@ PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial:: @ 82049A4 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitGym waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_WALLY setflag FLAG_HIDE_PETALBURG_CITY_WALLY delay 30 @@ -203,7 +203,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC msgbox PetalburgCity_Gym_Text_WouldYouReallyComeWithMe, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 compare VAR_0x8008, 0 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallySouth compare VAR_0x8008, 1 @@ -213,7 +213,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC compare VAR_0x8008, 3 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallyEast removeobject LOCALID_WALLY - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM setvar VAR_PETALBURG_GYM_STATE, 1 setvar VAR_PETALBURG_CITY_STATE, 2 clearflag FLAG_HIDE_PETALBURG_CITY_WALLY @@ -433,11 +433,11 @@ PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B delay 40 playse SE_DOOR delay 10 - addobject LOCALID_WALLYS_UNCLE + addobject LOCALID_WALLYS_DAD switch VAR_FACING - case DIR_NORTH, PetalburgCity_Gym_EventScript_WallysUncleArrivesNorth - case DIR_WEST, PetalburgCity_Gym_EventScript_WallysUncleArrivesWest - case DIR_EAST, PetalburgCity_Gym_EventScript_WallysUncleArrivesEast + case DIR_NORTH, PetalburgCity_Gym_EventScript_WallysDadArrivesNorth + case DIR_WEST, PetalburgCity_Gym_EventScript_WallysDadArrivesWest + case DIR_EAST, PetalburgCity_Gym_EventScript_WallysDadArrivesEast end PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 @@ -448,119 +448,119 @@ PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 msgbox PetalburgCity_Gym_Text_ExplainFacade, MSGBOX_DEFAULT return -PetalburgCity_Gym_EventScript_WallysUncleArrivesNorth:: @ 8204EF5 +PetalburgCity_Gym_EventScript_WallysDadArrivesNorth:: @ 8204EF5 setvar VAR_0x8008, 1 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrivesEast:: @ 8204EFF +PetalburgCity_Gym_EventScript_WallysDadArrivesEast:: @ 8204EFF setvar VAR_0x8008, 2 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrivesWest:: @ 8204F09 +PetalburgCity_Gym_EventScript_WallysDadArrivesWest:: @ 8204F09 setvar VAR_0x8008, 3 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrives:: @ 8204F13 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleEnterGym +PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadEnterGym waitmovement 0 playse SE_PIN - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_ExclamationMark + applymovement LOCALID_WALLYS_DAD, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_Delay48 + applymovement LOCALID_WALLYS_DAD, Common_Movement_Delay48 waitmovement 0 delay 10 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerNorth + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerEast + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerWest + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest msgbox PetalburgCity_Gym_Text_PleaseComeWithMe, MSGBOX_DEFAULT closemessage delay 20 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanNorth + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanEast + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanWest + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleNorth + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleEast + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleWest - removeobject LOCALID_WALLYS_UNCLE + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest + removeobject LOCALID_WALLYS_DAD setvar VAR_PETALBURG_CITY_STATE, 4 - clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD warp MAP_PETALBURG_CITY, 255, 15, 8 waitstate release end -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanNorth:: @ 8204FCC - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestUp +PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth:: @ 8204FCC + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanEast:: @ 8204FD7 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestRight +PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast:: @ 8204FD7 + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanWest:: @ 8204FE2 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestLeft +PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest:: @ 8204FE2 + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerNorth:: @ 8204FED - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth:: @ 8204FED + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerEast:: @ 8205009 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast:: @ 8205009 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerWest:: @ 8205025 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest:: @ 8205025 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleNorth:: @ 8205041 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitNorth +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth:: @ 8205041 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitNorth applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleEast:: @ 820505A - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitEast - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast:: @ 820505A + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitEast + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleWest:: @ 820506C - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitWest - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest:: @ 820506C + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitWest + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest waitmovement 0 return -PetalburgCity_Gym_Movement_WallysUncleExitNorth: @ 820507E +PetalburgCity_Gym_Movement_WallysDadExitNorth: @ 820507E walk_down walk_down walk_left @@ -573,7 +573,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitNorth: @ 820507E set_invisible step_end -PetalburgCity_Gym_Movement_WallysUncleExitEast: @ 8205089 +PetalburgCity_Gym_Movement_WallysDadExitEast: @ 8205089 walk_down walk_down walk_left @@ -586,7 +586,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitEast: @ 8205089 set_invisible step_end -PetalburgCity_Gym_Movement_WallysUncleExitWest: @ 8205094 +PetalburgCity_Gym_Movement_WallysDadExitWest: @ 8205094 walk_down walk_down walk_left @@ -601,7 +601,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitWest: @ 8205094 set_invisible step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth: @ 82050A1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth: @ 82050A1 delay_16 walk_down walk_down @@ -611,7 +611,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth: @ 82050A1 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast: @ 82050A9 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast: @ 82050A9 delay_16 walk_down walk_down @@ -621,7 +621,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast: @ 82050A9 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest: @ 82050B1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest: @ 82050B1 delay_16 walk_down walk_down @@ -633,7 +633,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest: @ 82050B1 walk_down step_end -PetalburgCity_Gym_Movement_WallysUncleEnterGym: @ 82050BB +PetalburgCity_Gym_Movement_WallysDadEnterGym: @ 82050BB walk_up delay_8 walk_in_place_fastest_right @@ -643,7 +643,7 @@ PetalburgCity_Gym_Movement_WallysUncleEnterGym: @ 82050BB walk_in_place_fastest_up step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth: @ 82050C3 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth: @ 82050C3 walk_right walk_right walk_up @@ -652,7 +652,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth: @ 82050C3 walk_in_place_fastest_right step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast: @ 82050CA +PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast: @ 82050CA walk_right walk_right walk_up @@ -660,7 +660,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast: @ 82050CA walk_up step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest: @ 82050D0 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest: @ 82050D0 walk_right walk_right walk_up diff --git a/data/maps/PetalburgCity_House1/map.json b/data/maps/PetalburgCity_House1/map.json index 46121f67c..54bd3303f 100644 --- a/data/maps/PetalburgCity_House1/map.json +++ b/data/maps/PetalburgCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_HOUSE1", "name": "PetalburgCity_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_House2/map.json b/data/maps/PetalburgCity_House2/map.json index 8f40ec3e4..4a5436b97 100644 --- a/data/maps/PetalburgCity_House2/map.json +++ b/data/maps/PetalburgCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_HOUSE2", "name": "PetalburgCity_House2", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_Mart/map.json b/data/maps/PetalburgCity_Mart/map.json index a263e3036..a55e27293 100644 --- a/data/maps/PetalburgCity_Mart/map.json +++ b/data/maps/PetalburgCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_MART", "name": "PetalburgCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/map.json b/data/maps/PetalburgCity_PokemonCenter_1F/map.json index 29ba086f2..1fd6e972b 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/map.json +++ b/data/maps/PetalburgCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_POKEMON_CENTER_1F", "name": "PetalburgCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_PokemonCenter_2F/map.json b/data/maps/PetalburgCity_PokemonCenter_2F/map.json index 2fd4bf21a..8eb89d208 100644 --- a/data/maps/PetalburgCity_PokemonCenter_2F/map.json +++ b/data/maps/PetalburgCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_POKEMON_CENTER_2F", "name": "PetalburgCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_WallysHouse/map.json b/data/maps/PetalburgCity_WallysHouse/map.json index 172cf3e2e..0b8007a91 100644 --- a/data/maps/PetalburgCity_WallysHouse/map.json +++ b/data/maps/PetalburgCity_WallysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_WALLYS_HOUSE", "name": "PetalburgCity_WallysHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", @@ -24,7 +24,7 @@ "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_WallysHouse_EventScript_WallyUncle", + "script": "PetalburgCity_WallysHouse_EventScript_WallysDad", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_WallysHouse_EventScript_WallyAunt", + "script": "PetalburgCity_WallysHouse_EventScript_WallysMom", "flag": "0" } ], diff --git a/data/maps/PetalburgCity_WallysHouse/scripts.inc b/data/maps/PetalburgCity_WallysHouse/scripts.inc index a46f5d78d..1e4e75987 100644 --- a/data/maps/PetalburgCity_WallysHouse/scripts.inc +++ b/data/maps/PetalburgCity_WallysHouse/scripts.inc @@ -1,4 +1,4 @@ -.set LOCALID_WALLYS_UNCLE, 1 +.set LOCALID_WALLYS_DAD, 1 PetalburgCity_WallysHouse_MapScripts:: @ 8204229 map_script MAP_SCRIPT_ON_FRAME_TABLE, PetalburgCity_WallysHouse_OnFrame @@ -6,12 +6,12 @@ PetalburgCity_WallysHouse_MapScripts:: @ 8204229 .byte 0 PetalburgCity_WallysHouse_OnWarp: @ 8204234 - map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_PlayerUncleFaceEachOther + map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther .2byte 0 -PetalburgCity_WallysHouse_EventScript_PlayerUncleFaceEachOther:: @ 820423E +PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther:: @ 820423E turnobject OBJ_EVENT_ID_PLAYER, DIR_EAST - turnobject LOCALID_WALLYS_UNCLE, DIR_WEST + turnobject LOCALID_WALLYS_DAD, DIR_WEST end PetalburgCity_WallysHouse_OnFrame: @ 8204247 @@ -28,7 +28,7 @@ PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: @ 8204251 releaseall end -PetalburgCity_WallysHouse_EventScript_WallyUncle:: @ 8204278 +PetalburgCity_WallysHouse_EventScript_WallysDad:: @ 8204278 lock faceplayer goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, PetalburgCity_WallysHouse_EventScript_DefeatedWallyInVictoryRoad @@ -54,7 +54,7 @@ PetalburgCity_WallysHouse_EventScript_PlayedWithWally:: @ 82042B6 release end -PetalburgCity_WallysHouse_EventScript_WallyAunt:: @ 82042C0 +PetalburgCity_WallysHouse_EventScript_WallysMom:: @ 82042C0 lock faceplayer goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_ReceivedHM03Surf diff --git a/data/maps/PetalburgWoods/map.json b/data/maps/PetalburgWoods/map.json index cc9004737..fa97b5dd1 100644 --- a/data/maps/PetalburgWoods/map.json +++ b/data/maps/PetalburgWoods/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_WOODS", "name": "PetalburgWoods", "layout": "LAYOUT_PETALBURG_WOODS", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_PETALBURG_WOODS", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc index 292c2dfac..dbdb66b0b 100644 --- a/data/maps/PetalburgWoods/scripts.inc +++ b/data/maps/PetalburgWoods/scripts.inc @@ -11,7 +11,7 @@ PetalburgWoods_EventScript_DevonResearcherLeft:: @ 822DFD7 waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT @@ -48,7 +48,7 @@ PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079 waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index f3466eea8..083f44445 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_RECORD_CORNER", "name": "RecordCorner", "layout": "LAYOUT_RECORD_CORNER", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route101/map.json b/data/maps/Route101/map.json index e08c4fe5a..34dc92841 100644 --- a/data/maps/Route101/map.json +++ b/data/maps/Route101/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE101", "name": "Route101", "layout": "LAYOUT_ROUTE101", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_101", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc index 647c9ee16..66ce4abc8 100644 --- a/data/maps/Route101/scripts.inc +++ b/data/maps/Route101/scripts.inc @@ -21,7 +21,7 @@ Route101_EventScript_HideMapNamePopup:: @ 81EBCD5 Route101_EventScript_StartBirchRescue:: @ 81EBCDE lockall - playbgm MUS_EVENT0, 1 + playbgm MUS_HELP, 1 msgbox Route101_Text_HelpMe, MSGBOX_DEFAULT closemessage setobjectxy LOCALID_BIRCH, 0, 15 diff --git a/data/maps/Route102/map.json b/data/maps/Route102/map.json index 43e327d01..fc9adee3b 100644 --- a/data/maps/Route102/map.json +++ b/data/maps/Route102/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE102", "name": "Route102", "layout": "LAYOUT_ROUTE102", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_102", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route103/map.json b/data/maps/Route103/map.json index 599d0447f..4b91f913b 100644 --- a/data/maps/Route103/map.json +++ b/data/maps/Route103/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE103", "name": "Route103", "layout": "LAYOUT_ROUTE103", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_103", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index df8c3b628..965b5ff5c 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -31,7 +31,7 @@ Route103_EventScript_Rival:: @ 81EC3C1 Route103_EventScript_RivalMay:: @ 81EC3DA msgbox Route103_Text_MayRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -48,7 +48,7 @@ Route103_EventScript_RivalMay:: @ 81EC3DA Route103_EventScript_RivalBrendan:: @ 81EC434 msgbox Route103_Text_BrendanRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -115,7 +115,7 @@ Route103_EventScript_RivalExitFacingNorth:: @ 81EC53D applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingNorth applymovement LOCALID_RIVAL, Route103_Movement_RivalExitFacingNorth1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_EventScript_RivalExitFacingNorth2 waitmovement 0 goto Route103_EventScript_RivalEnd @@ -125,7 +125,7 @@ Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingEastOrWest applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_Movement_RivalExit2 waitmovement 0 goto Route103_EventScript_RivalEnd @@ -134,7 +134,7 @@ Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 Route103_EventScript_RivalExitFacingSouth:: @ 81EC585 applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_Movement_RivalExit2 waitmovement 0 goto Route103_EventScript_RivalEnd diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json index 99b8ffeb3..69e5faf27 100644 --- a/data/maps/Route104/map.json +++ b/data/maps/Route104/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104", "name": "Route104", "layout": "LAYOUT_ROUTE104", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index ff9003887..d1faca53a 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -84,11 +84,11 @@ Route104_EventScript_PlayRivalMusic:: @ 81ECD11 return Route104_EventScript_PlayMayMusic:: @ 81ECD29 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route104_EventScript_PlayBrendanMusic:: @ 81ECD2E - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route104_EventScript_RivalEncounter:: @ 81ECD33 @@ -106,7 +106,7 @@ Route104_EventScript_MayEncounter:: @ 81ECD4B msgbox Route104_Text_MayWeShouldRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredMay, MSGBOX_DEFAULT waitfanfare closemessage @@ -195,7 +195,7 @@ Route104_EventScript_BrendanEncounter:: @ 81ECE6F msgbox Route104_Text_BrendanWeShouldRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredBrendan, MSGBOX_DEFAULT waitfanfare closemessage @@ -387,7 +387,7 @@ Route104_EventScript_SailToDewfordDadCalls:: @ 81ED0EF pokenavcall Route104_Text_DadPokenavCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredDadInPokenav, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/Route104_MrBrineysHouse/map.json b/data/maps/Route104_MrBrineysHouse/map.json index e027c520e..ae4ffc791 100644 --- a/data/maps/Route104_MrBrineysHouse/map.json +++ b/data/maps/Route104_MrBrineysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_MR_BRINEYS_HOUSE", "name": "Route104_MrBrineysHouse", "layout": "LAYOUT_ROUTE104_MR_BRINEYS_HOUSE", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route104_PrettyPetalFlowerShop/map.json b/data/maps/Route104_PrettyPetalFlowerShop/map.json index 511f1cf7c..ec18b1ded 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/map.json +++ b/data/maps/Route104_PrettyPetalFlowerShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", "name": "Route104_PrettyPetalFlowerShop", "layout": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route104_Prototype/map.json b/data/maps/Route104_Prototype/map.json index d1210f4f1..a15458bf6 100644 --- a/data/maps/Route104_Prototype/map.json +++ b/data/maps/Route104_Prototype/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PROTOTYPE", "name": "Route104_Prototype", "layout": "LAYOUT_ROUTE104_PROTOTYPE", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json b/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json index e65913f30..7abd76e3d 100644 --- a/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json +++ b/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP", "name": "Route104_PrototypePrettyPetalFlowerShop", "layout": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route105/map.json b/data/maps/Route105/map.json index 76f11b3bd..bb6c7a653 100644 --- a/data/maps/Route105/map.json +++ b/data/maps/Route105/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE105", "name": "Route105", "layout": "LAYOUT_ROUTE105", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_105", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route106/map.json b/data/maps/Route106/map.json index 307608812..c28d593a7 100644 --- a/data/maps/Route106/map.json +++ b/data/maps/Route106/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE106", "name": "Route106", "layout": "LAYOUT_ROUTE106", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_106", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route107/map.json b/data/maps/Route107/map.json index 3768551a3..ddc0f1459 100644 --- a/data/maps/Route107/map.json +++ b/data/maps/Route107/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE107", "name": "Route107", "layout": "LAYOUT_ROUTE107", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_107", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route108/map.json b/data/maps/Route108/map.json index 36b200964..21acfd6ca 100644 --- a/data/maps/Route108/map.json +++ b/data/maps/Route108/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE108", "name": "Route108", "layout": "LAYOUT_ROUTE108", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_108", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route109/map.json b/data/maps/Route109/map.json index f6b1a46cd..2ddcc4530 100644 --- a/data/maps/Route109/map.json +++ b/data/maps/Route109/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE109", "name": "Route109", "layout": "LAYOUT_ROUTE109", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_109", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route109_SeashoreHouse/map.json b/data/maps/Route109_SeashoreHouse/map.json index 6a86e8c24..0a8164ba7 100644 --- a/data/maps/Route109_SeashoreHouse/map.json +++ b/data/maps/Route109_SeashoreHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE109_SEASHORE_HOUSE", "name": "Route109_SeashoreHouse", "layout": "LAYOUT_ROUTE109_SEASHORE_HOUSE", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_ROUTE_109", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index 5e15be18c..bb5df5eb4 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110", "name": "Route110", "layout": "LAYOUT_ROUTE110", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 02c13f4d9..50f3d1f48 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -410,11 +410,11 @@ Route110_EventScript_RivalScene:: @ 81EF76E end Route110_EventScript_PlayMayMusic:: @ 81EF7E1 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route110_EventScript_PlayBrendanMusic:: @ 81EF7E6 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route110_EventScript_MayBattle:: @ 81EF7EB @@ -448,7 +448,7 @@ Route110_EventScript_MayDefeated:: @ 81EF84A end Route110_EventScript_BrendanBattle:: @ 81EF865 - msgbox Route110_Text_BrendayLetsBattle, MSGBOX_DEFAULT + msgbox Route110_Text_BrendanLetsBattle, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route110_EventScript_BrendanBattleTreecko case 1, Route110_EventScript_BrendanBattleTorchic @@ -648,7 +648,7 @@ Route110_EventScript_BirchScene:: @ 81EF9F7 msgbox Route110_Text_HeardYouInstallMatchCall, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route110_Text_RegisteredBirchInPokenav, MSGBOX_DEFAULT waitfanfare closemessage @@ -814,7 +814,7 @@ Route110_Text_MayExplainItemfinder: @ 81EFD58 .string "me, but I think you should train a lot\l" .string "harder for the next time.$" -Route110_Text_BrendayLetsBattle: @ 81EFE3F +Route110_Text_BrendanLetsBattle: @ 81EFE3F .string "BRENDAN: Hey, {PLAYER}.\n" .string "So this is where you were.\l" .string "How's it going?\p" diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json index cd9fd8060..0d382f275 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", "name": "Route110_SeasideCyclingRoadNorthEntrance", "layout": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json index 01c200b02..12cd26ada 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", "name": "Route110_SeasideCyclingRoadSouthEntrance", "layout": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseCorridor/map.json b/data/maps/Route110_TrickHouseCorridor/map.json index fb9c25c08..5d6ddb556 100644 --- a/data/maps/Route110_TrickHouseCorridor/map.json +++ b/data/maps/Route110_TrickHouseCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_CORRIDOR", "name": "Route110_TrickHouseCorridor", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEnd/map.json b/data/maps/Route110_TrickHouseEnd/map.json index 6f6f3fcc7..c82d871fb 100644 --- a/data/maps/Route110_TrickHouseEnd/map.json +++ b/data/maps/Route110_TrickHouseEnd/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_END", "name": "Route110_TrickHouseEnd", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_END", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc index 7e6f6a5bf..0852b4e33 100644 --- a/data/maps/Route110_TrickHouseEnd/scripts.inc +++ b/data/maps/Route110_TrickHouseEnd/scripts.inc @@ -194,7 +194,7 @@ Route110_TrickHouseEnd_EventScript_GiveBlueTent:: @ 826AFC7 Route110_TrickHouseEnd_EventScript_TrickMasterExit:: @ 826AFCF applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -242,7 +242,7 @@ Route110_TrickHouseEnd_EventScript_TrickMasterExitTrigger:: @ 826B041 delay 20 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouseEnd_Movement_TrickMasterSurprise waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 msgbox Route110_TrickHouseEnd_Text_YoureIgnoringMe, MSGBOX_DEFAULT diff --git a/data/maps/Route110_TrickHouseEntrance/map.json b/data/maps/Route110_TrickHouseEntrance/map.json index 499cf26e0..5895ae788 100644 --- a/data/maps/Route110_TrickHouseEntrance/map.json +++ b/data/maps/Route110_TrickHouseEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_ENTRANCE", "name": "Route110_TrickHouseEntrance", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc index 98b06a94f..adfcf6bbc 100644 --- a/data/maps/Route110_TrickHouseEntrance/scripts.inc +++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc @@ -223,7 +223,7 @@ Route110_TrickHouseEntrance_EventScript_BeginChallenge:: @ 8269CF8 delay 20 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -480,7 +480,7 @@ Route110_TrickHouseEntrance_EventScript_ReceivedTent:: @ 826A09A waitmovement 0 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -711,7 +711,7 @@ Route110_TrickHousePuzzle_EventScript_ReadScrollAgain:: @ 826A3DB end Route110_TrickHousePuzzle_EventScript_FoundScroll:: @ 826A3E5 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route110_TrickHousePuzzle_Text_FoundAScroll waitfanfare msgbox Route110_TrickHousePuzzle_Text_MemorizedSecretCode, MSGBOX_DEFAULT diff --git a/data/maps/Route110_TrickHousePuzzle1/map.json b/data/maps/Route110_TrickHousePuzzle1/map.json index 087057163..42a416b51 100644 --- a/data/maps/Route110_TrickHousePuzzle1/map.json +++ b/data/maps/Route110_TrickHousePuzzle1/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE1", "name": "Route110_TrickHousePuzzle1", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle2/map.json b/data/maps/Route110_TrickHousePuzzle2/map.json index f2c96756b..2b3ca9b2e 100644 --- a/data/maps/Route110_TrickHousePuzzle2/map.json +++ b/data/maps/Route110_TrickHousePuzzle2/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE2", "name": "Route110_TrickHousePuzzle2", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle3/map.json b/data/maps/Route110_TrickHousePuzzle3/map.json index 389391b87..ba01c6b33 100644 --- a/data/maps/Route110_TrickHousePuzzle3/map.json +++ b/data/maps/Route110_TrickHousePuzzle3/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE3", "name": "Route110_TrickHousePuzzle3", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle4/map.json b/data/maps/Route110_TrickHousePuzzle4/map.json index ad00f12ac..8e8348c95 100644 --- a/data/maps/Route110_TrickHousePuzzle4/map.json +++ b/data/maps/Route110_TrickHousePuzzle4/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE4", "name": "Route110_TrickHousePuzzle4", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle5/map.json b/data/maps/Route110_TrickHousePuzzle5/map.json index ee074b37d..9eba5d7f8 100644 --- a/data/maps/Route110_TrickHousePuzzle5/map.json +++ b/data/maps/Route110_TrickHousePuzzle5/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE5", "name": "Route110_TrickHousePuzzle5", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle5/scripts.inc b/data/maps/Route110_TrickHousePuzzle5/scripts.inc index 419fa2831..36162f42f 100644 --- a/data/maps/Route110_TrickHousePuzzle5/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle5/scripts.inc @@ -454,7 +454,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz3:: @ 826D12F Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 waitse - playse SE_HAZURE + playse SE_FAILURE msgbox Route110_TrickHousePuzzle5_Text_DisappointmentError, MSGBOX_DEFAULT applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_MechadollShake applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_MechadollShake @@ -472,7 +472,7 @@ Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 Route110_TrickHousePuzzle5_EventScript_CorrectAnswer:: @ 826D1A0 waitse - playse SE_SEIKAI + playse SE_SUCCESS goto Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough end diff --git a/data/maps/Route110_TrickHousePuzzle6/map.json b/data/maps/Route110_TrickHousePuzzle6/map.json index bec9d12b3..ff6e3e7f3 100644 --- a/data/maps/Route110_TrickHousePuzzle6/map.json +++ b/data/maps/Route110_TrickHousePuzzle6/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE6", "name": "Route110_TrickHousePuzzle6", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle7/map.json b/data/maps/Route110_TrickHousePuzzle7/map.json index 12afd07ec..f5976bdef 100644 --- a/data/maps/Route110_TrickHousePuzzle7/map.json +++ b/data/maps/Route110_TrickHousePuzzle7/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE7", "name": "Route110_TrickHousePuzzle7", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle7/scripts.inc b/data/maps/Route110_TrickHousePuzzle7/scripts.inc index 6b7559389..b0cbd3813 100644 --- a/data/maps/Route110_TrickHousePuzzle7/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle7/scripts.inc @@ -125,7 +125,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch1:: @ 826E1FE call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1Off end @@ -136,7 +136,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch2:: @ 826E22D call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2Off end @@ -147,7 +147,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch3:: @ 826E25C call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3Off end @@ -158,7 +158,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch4:: @ 826E28B call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4Off end @@ -169,7 +169,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch5:: @ 826E2BA call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off end @@ -227,9 +227,9 @@ Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off:: @ 826E316 @ From here is where the new, actually used puzzle scripts begin Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 0 waitmovement 0 @@ -239,9 +239,9 @@ Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B end Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 1 waitmovement 0 @@ -251,9 +251,9 @@ Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 end Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 2 waitmovement 0 @@ -263,9 +263,9 @@ Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 end Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 3 waitmovement 0 @@ -276,9 +276,9 @@ Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D @ Unused Route110_TrickHousePuzzle7_EventScript_RedButton:: @ 826E373 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 4 waitmovement 0 diff --git a/data/maps/Route110_TrickHousePuzzle8/map.json b/data/maps/Route110_TrickHousePuzzle8/map.json index 3a1bc8caf..bfb106eb6 100644 --- a/data/maps/Route110_TrickHousePuzzle8/map.json +++ b/data/maps/Route110_TrickHousePuzzle8/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE8", "name": "Route110_TrickHousePuzzle8", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json index 938dbcff1..014ac084c 100644 --- a/data/maps/Route111/map.json +++ b/data/maps/Route111/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111", "name": "Route111", "layout": "LAYOUT_ROUTE111", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 281dddf0c..322c9a2b7 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -126,7 +126,7 @@ Route111_EventScript_MirageTowerDisappear:: @ 81F0E60 special StartMirageTowerShake waitstate delay 24 - playse SE_RU_HYUU + playse SE_FALL addobject LOCALID_PLAYER_FALLING special StartPlayerDescendMirageTower waitstate @@ -268,14 +268,14 @@ Route111_Movement_PushRightFromRoute: @ 81F0FAE Route111_EventScript_SunTrigger:: @ 81F0FB0 setweather WEATHER_SUNNY - fadenewbgm MUS_DOORO_X1 + fadenewbgm MUS_ROUTE110 doweather setvar VAR_TEMP_3, 0 end Route111_EventScript_SandstormTrigger:: @ 81F0FBD setweather WEATHER_SANDSTORM - fadenewbgm MUS_ASHROAD + fadenewbgm MUS_ROUTE111 doweather end diff --git a/data/maps/Route111_OldLadysRestStop/map.json b/data/maps/Route111_OldLadysRestStop/map.json index 679b53522..419e4c2ee 100644 --- a/data/maps/Route111_OldLadysRestStop/map.json +++ b/data/maps/Route111_OldLadysRestStop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111_OLD_LADYS_REST_STOP", "name": "Route111_OldLadysRestStop", "layout": "LAYOUT_HOUSE3", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route111_WinstrateFamilysHouse/map.json b/data/maps/Route111_WinstrateFamilysHouse/map.json index ec5afd93a..f88935971 100644 --- a/data/maps/Route111_WinstrateFamilysHouse/map.json +++ b/data/maps/Route111_WinstrateFamilysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE", "name": "Route111_WinstrateFamilysHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route112/map.json b/data/maps/Route112/map.json index 37f0a38df..d4d650857 100644 --- a/data/maps/Route112/map.json +++ b/data/maps/Route112/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE112", "name": "Route112", "layout": "LAYOUT_ROUTE112", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_112", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route112_CableCarStation/map.json b/data/maps/Route112_CableCarStation/map.json index a59df37cb..7adae98f7 100644 --- a/data/maps/Route112_CableCarStation/map.json +++ b/data/maps/Route112_CableCarStation/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE112_CABLE_CAR_STATION", "name": "Route112_CableCarStation", "layout": "LAYOUT_CABLE_CAR_STATION", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_112", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json index df1b35223..8d9d74028 100644 --- a/data/maps/Route113/map.json +++ b/data/maps/Route113/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE113", "name": "Route113", "layout": "LAYOUT_ROUTE113", - "music": "MUS_KAZANBAI", + "music": "MUS_ROUTE113", "region_map_section": "MAPSEC_ROUTE_113", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route113_GlassWorkshop/map.json b/data/maps/Route113_GlassWorkshop/map.json index 1d5deabd0..924fbd85d 100644 --- a/data/maps/Route113_GlassWorkshop/map.json +++ b/data/maps/Route113_GlassWorkshop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE113_GLASS_WORKSHOP", "name": "Route113_GlassWorkshop", "layout": "LAYOUT_HOUSE4", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_113", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114/map.json b/data/maps/Route114/map.json index 48bafee08..37edf509d 100644 --- a/data/maps/Route114/map.json +++ b/data/maps/Route114/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114", "name": "Route114", "layout": "LAYOUT_ROUTE114", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route114_FossilManiacsHouse/map.json b/data/maps/Route114_FossilManiacsHouse/map.json index 19d87c353..dd21ff77f 100644 --- a/data/maps/Route114_FossilManiacsHouse/map.json +++ b/data/maps/Route114_FossilManiacsHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_FOSSIL_MANIACS_HOUSE", "name": "Route114_FossilManiacsHouse", "layout": "LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114_FossilManiacsTunnel/map.json b/data/maps/Route114_FossilManiacsTunnel/map.json index 3384df523..9a8ac70c9 100644 --- a/data/maps/Route114_FossilManiacsTunnel/map.json +++ b/data/maps/Route114_FossilManiacsTunnel/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL", "name": "Route114_FossilManiacsTunnel", "layout": "LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114_LanettesHouse/map.json b/data/maps/Route114_LanettesHouse/map.json index 2a444d06a..fcb8edfc9 100644 --- a/data/maps/Route114_LanettesHouse/map.json +++ b/data/maps/Route114_LanettesHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_LANETTES_HOUSE", "name": "Route114_LanettesHouse", "layout": "LAYOUT_ROUTE114_LANETTES_HOUSE", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json index 0be264375..2d0dbdbaa 100644 --- a/data/maps/Route115/map.json +++ b/data/maps/Route115/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE115", "name": "Route115", "layout": "LAYOUT_ROUTE115", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_115", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route116/map.json b/data/maps/Route116/map.json index 6c2be7980..247a4b7b1 100644 --- a/data/maps/Route116/map.json +++ b/data/maps/Route116/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE116", "name": "Route116", "layout": "LAYOUT_ROUTE116", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_116", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route116_TunnelersRestHouse/map.json b/data/maps/Route116_TunnelersRestHouse/map.json index 8ced24aa7..b83971532 100644 --- a/data/maps/Route116_TunnelersRestHouse/map.json +++ b/data/maps/Route116_TunnelersRestHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE116_TUNNELERS_REST_HOUSE", "name": "Route116_TunnelersRestHouse", "layout": "LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_116", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route117/map.json b/data/maps/Route117/map.json index 655c43048..d2f45e256 100644 --- a/data/maps/Route117/map.json +++ b/data/maps/Route117/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE117", "name": "Route117", "layout": "LAYOUT_ROUTE117", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_117", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route117_PokemonDayCare/map.json b/data/maps/Route117_PokemonDayCare/map.json index 141dd44ca..5b51aa958 100644 --- a/data/maps/Route117_PokemonDayCare/map.json +++ b/data/maps/Route117_PokemonDayCare/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE117_POKEMON_DAY_CARE", "name": "Route117_PokemonDayCare", "layout": "LAYOUT_ROUTE117_POKEMON_DAY_CARE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_117", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route118/map.json b/data/maps/Route118/map.json index 09df9a05a..7b541e629 100644 --- a/data/maps/Route118/map.json +++ b/data/maps/Route118/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE118", "name": "Route118", "layout": "LAYOUT_ROUTE118", - "music": "MUS_ROUTE_118", + "music": "MUS_ROUTE118", "region_map_section": "MAPSEC_ROUTE_118", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 1a34ad96c..0197508bb 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -97,7 +97,7 @@ Route118_EventScript_StevenTrigger2:: @ 81F3EC4 end Route118_EventScript_StevenTrigger:: @ 81F3EE4 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_STEVEN, Route118_Movement_StevenJumpLedge waitmovement 0 delay 30 diff --git a/data/maps/Route119/map.json b/data/maps/Route119/map.json index 1ad1ca45a..fa6391a34 100644 --- a/data/maps/Route119/map.json +++ b/data/maps/Route119/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119", "name": "Route119", "layout": "LAYOUT_ROUTE119", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 2800126f6..734934d17 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -74,11 +74,11 @@ Route119_EventScript_RivalEncounter:: @ 81F4488 end Route119_EventScript_PlayMayMusic:: @ 81F4501 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route119_EventScript_PlayBrendanMusic:: @ 81F4506 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route119_EventScript_BattleMay:: @ 81F450B diff --git a/data/maps/Route119_House/map.json b/data/maps/Route119_House/map.json index 6478404e2..0225f1cd3 100644 --- a/data/maps/Route119_House/map.json +++ b/data/maps/Route119_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_HOUSE", "name": "Route119_House", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_1F/map.json b/data/maps/Route119_WeatherInstitute_1F/map.json index f1a3b0f99..9a9e23882 100644 --- a/data/maps/Route119_WeatherInstitute_1F/map.json +++ b/data/maps/Route119_WeatherInstitute_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_WEATHER_INSTITUTE_1F", "name": "Route119_WeatherInstitute_1F", "layout": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_2F/map.json b/data/maps/Route119_WeatherInstitute_2F/map.json index a6dc3dfee..e2e5ebb8a 100644 --- a/data/maps/Route119_WeatherInstitute_2F/map.json +++ b/data/maps/Route119_WeatherInstitute_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_WEATHER_INSTITUTE_2F", "name": "Route119_WeatherInstitute_2F", "layout": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 7e2c15606..85d9d928f 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -124,7 +124,7 @@ Route119_WeatherInstitute_2F_EventScript_SendCastformToPC:: @ 82700D0 end Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: @ 82700DB - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform waitmessage waitfanfare diff --git a/data/maps/Route120/map.json b/data/maps/Route120/map.json index 2f0f736a2..8a7e56ddc 100644 --- a/data/maps/Route120/map.json +++ b/data/maps/Route120/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE120", "name": "Route120", "layout": "LAYOUT_ROUTE120", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_120", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route121/map.json b/data/maps/Route121/map.json index f4b4f5e84..e956f6251 100644 --- a/data/maps/Route121/map.json +++ b/data/maps/Route121/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE121", "name": "Route121", "layout": "LAYOUT_ROUTE121", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_121", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route121/scripts.inc b/data/maps/Route121/scripts.inc index 1a7591a93..fdc191ea8 100644 --- a/data/maps/Route121/scripts.inc +++ b/data/maps/Route121/scripts.inc @@ -19,7 +19,7 @@ Route121_EventScript_SafariZoneSign:: @ 81F5E0F Route121_EventScript_AquaGruntsMoveOut:: @ 81F5E18 lockall - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT_2, Common_Movement_WalkInPlaceRight waitmovement 0 msgbox Route121_Text_OkayMoveOutToMtPyre, MSGBOX_DEFAULT diff --git a/data/maps/Route121_SafariZoneEntrance/map.json b/data/maps/Route121_SafariZoneEntrance/map.json index 35516142e..231d3b4a7 100644 --- a/data/maps/Route121_SafariZoneEntrance/map.json +++ b/data/maps/Route121_SafariZoneEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE121_SAFARI_ZONE_ENTRANCE", "name": "Route121_SafariZoneEntrance", "layout": "LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_ROUTE_121", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 549f22772..a87a374d2 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -64,12 +64,12 @@ Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: @ 822BC48 checkmoney 500, 0 compare VAR_RESULT, 0 goto_if_eq Route121_SafariZoneEntrance_EventScript_NotEnoughMoney - playse SE_REGI + playse SE_SHOP msgbox Route121_SafariZoneEntrance_Text_ThatWillBe500Please, MSGBOX_DEFAULT removemoney 500, 0 updatemoneybox 0, 0 msgbox Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route121_SafariZoneEntrance_Text_Received30SafariBalls waitfanfare msgbox Route121_SafariZoneEntrance_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT diff --git a/data/maps/Route122/map.json b/data/maps/Route122/map.json index 39481f9d7..8c9213347 100644 --- a/data/maps/Route122/map.json +++ b/data/maps/Route122/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE122", "name": "Route122", "layout": "LAYOUT_ROUTE122", - "music": "MUS_DOORO_X4", + "music": "MUS_ROUTE122", "region_map_section": "MAPSEC_ROUTE_122", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route123/map.json b/data/maps/Route123/map.json index 4a1863532..1bd25310a 100644 --- a/data/maps/Route123/map.json +++ b/data/maps/Route123/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE123", "name": "Route123", "layout": "LAYOUT_ROUTE123", - "music": "MUS_DOORO_X4", + "music": "MUS_ROUTE122", "region_map_section": "MAPSEC_ROUTE_123", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route123_BerryMastersHouse/map.json b/data/maps/Route123_BerryMastersHouse/map.json index ef72c04ab..488ee97b5 100644 --- a/data/maps/Route123_BerryMastersHouse/map.json +++ b/data/maps/Route123_BerryMastersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE123_BERRY_MASTERS_HOUSE", "name": "Route123_BerryMastersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_123", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route124/map.json b/data/maps/Route124/map.json index 80d44f155..cb075d29a 100644 --- a/data/maps/Route124/map.json +++ b/data/maps/Route124/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE124", "name": "Route124", "layout": "LAYOUT_ROUTE124", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_124", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/map.json b/data/maps/Route124_DivingTreasureHuntersHouse/map.json index fc6890729..a9c16cd22 100644 --- a/data/maps/Route124_DivingTreasureHuntersHouse/map.json +++ b/data/maps/Route124_DivingTreasureHuntersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", "name": "Route124_DivingTreasureHuntersHouse", "layout": "LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_ROUTE_124", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route125/map.json b/data/maps/Route125/map.json index c83abccd2..984a554e4 100644 --- a/data/maps/Route125/map.json +++ b/data/maps/Route125/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE125", "name": "Route125", "layout": "LAYOUT_ROUTE125", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_125", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route126/map.json b/data/maps/Route126/map.json index 3f1aa7dc7..60b439066 100644 --- a/data/maps/Route126/map.json +++ b/data/maps/Route126/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE126", "name": "Route126", "layout": "LAYOUT_ROUTE126", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_126", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route127/map.json b/data/maps/Route127/map.json index 7908f94b0..0e6d78da7 100644 --- a/data/maps/Route127/map.json +++ b/data/maps/Route127/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE127", "name": "Route127", "layout": "LAYOUT_ROUTE127", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_127", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route128/map.json b/data/maps/Route128/map.json index 9d9b003ba..d8fbb249a 100644 --- a/data/maps/Route128/map.json +++ b/data/maps/Route128/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE128", "name": "Route128", "layout": "LAYOUT_ROUTE128", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_128", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route129/map.json b/data/maps/Route129/map.json index 0c47261cf..ca814b465 100644 --- a/data/maps/Route129/map.json +++ b/data/maps/Route129/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE129", "name": "Route129", "layout": "LAYOUT_ROUTE129", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_129", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json index 91fcc7755..7b4cf047c 100644 --- a/data/maps/Route130/map.json +++ b/data/maps/Route130/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE130", "name": "Route130", "layout": "LAYOUT_ROUTE130", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_130", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route131/map.json b/data/maps/Route131/map.json index 03922e25e..3599ae556 100644 --- a/data/maps/Route131/map.json +++ b/data/maps/Route131/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE131", "name": "Route131", "layout": "LAYOUT_ROUTE131", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_131", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route132/map.json b/data/maps/Route132/map.json index 0f2d76d10..1d3d9efd0 100644 --- a/data/maps/Route132/map.json +++ b/data/maps/Route132/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE132", "name": "Route132", "layout": "LAYOUT_ROUTE132", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_132", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route133/map.json b/data/maps/Route133/map.json index 66047152c..80e64638b 100644 --- a/data/maps/Route133/map.json +++ b/data/maps/Route133/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE133", "name": "Route133", "layout": "LAYOUT_ROUTE133", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_133", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route134/map.json b/data/maps/Route134/map.json index 9960b3c14..dd642a8e1 100644 --- a/data/maps/Route134/map.json +++ b/data/maps/Route134/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE134", "name": "Route134", "layout": "LAYOUT_ROUTE134", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_134", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/RustboroCity/map.json b/data/maps/RustboroCity/map.json index 3d2232b9a..445bc5189 100644 --- a/data/maps/RustboroCity/map.json +++ b/data/maps/RustboroCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY", "name": "RustboroCity", "layout": "LAYOUT_RUSTBORO_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 477b0d658..7b1f4a3d8 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -43,7 +43,7 @@ RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 setvar VAR_ROUTE104_STATE, 1 applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_Movement_PlayerWalkDown waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_SCIENTIST applymovement LOCALID_SCIENTIST, RustboroCity_Movement_ScientistApproachPlayer @@ -62,13 +62,13 @@ RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 setflag FLAG_HAS_MATCH_CALL applymovement LOCALID_SCIENTIST, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 20 applymovement LOCALID_SCIENTIST, Common_Movement_WalkInPlaceFastestDown waitmovement 0 @@ -103,7 +103,7 @@ RustboroCity_EventScript_MatchCallTutorial:: @ 81E07BD closemessage applymovement LOCALID_SCIENTIST, RustboroCity_Movement_ScientistLeave waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_SCIENTIST setflag FLAG_HIDE_RUSTBORO_CITY_SCIENTIST setvar VAR_RUSTBORO_CITY_STATE, 7 @@ -294,7 +294,7 @@ RustboroCity_EventScript_StolenGoodsTrigger4:: @ 81E09B6 RustboroCity_EventScript_StolenGoodsScene:: @ 81E09CD msgbox RustboroCity_Text_OutOfTheWay, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 addobject LOCALID_GRUNT addobject LOCALID_DEVON_EMPLOYEE applymovement LOCALID_GRUNT, RustboroCity_Movement_GruntEscape @@ -706,11 +706,11 @@ RustboroCity_EventScript_PlayRivalMusic:: @ 81E0DD1 return RustboroCity_EventScript_PlayMayMusic:: @ 81E0DE9 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return RustboroCity_EventScript_PlayBrendanMusic:: @ 81E0DEE - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return RustboroCity_EventScript_RivalTrigger0:: @ 81E0DF3 @@ -856,7 +856,7 @@ RustboroCity_EventScript_MayEncounter:: @ 81E100B msgbox RustboroCity_Text_MayHiLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Text_RegisteredMay, MSGBOX_DEFAULT waitfanfare closemessage @@ -927,7 +927,7 @@ RustboroCity_EventScript_BrendanEncounter:: @ 81E1114 msgbox RustboroCity_Text_BrendanHiLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Text_RegisteredBrendan, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/RustboroCity_CuttersHouse/map.json b/data/maps/RustboroCity_CuttersHouse/map.json index cc19403ea..081799cd1 100644 --- a/data/maps/RustboroCity_CuttersHouse/map.json +++ b/data/maps/RustboroCity_CuttersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_CUTTERS_HOUSE", "name": "RustboroCity_CuttersHouse", "layout": "LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_1F/map.json b/data/maps/RustboroCity_DevonCorp_1F/map.json index 3cf7152c9..714f15506 100644 --- a/data/maps/RustboroCity_DevonCorp_1F/map.json +++ b/data/maps/RustboroCity_DevonCorp_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_1F", "name": "RustboroCity_DevonCorp_1F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_2F/map.json b/data/maps/RustboroCity_DevonCorp_2F/map.json index 9bc987949..95a931e94 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/map.json +++ b/data/maps/RustboroCity_DevonCorp_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_2F", "name": "RustboroCity_DevonCorp_2F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index e33fb2d0f..eb22fcc43 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -194,7 +194,7 @@ RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC:: @ 8211AB9 RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: @ 8211AC4 bufferspeciesname 1, SPECIES_LILEEP - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare @@ -243,7 +243,7 @@ RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC:: @ 8211B5C RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: @ 8211B67 bufferspeciesname 1, SPECIES_ANORITH - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare diff --git a/data/maps/RustboroCity_DevonCorp_3F/map.json b/data/maps/RustboroCity_DevonCorp_3F/map.json index d92e4272e..a31a49dd3 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/map.json +++ b/data/maps/RustboroCity_DevonCorp_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_3F", "name": "RustboroCity_DevonCorp_3F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index d24b4e902..34a31c692 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -39,7 +39,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E waitmovement 0 msgbox RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe, MSGBOX_DEFAULT closemessage - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident waitmovement 0 @@ -52,7 +52,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E msgbox RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor, MSGBOX_DEFAULT giveitem ITEM_LETTER msgbox RustboroCity_DevonCorp_3F_Text_MrStoneWantYouToHaveThis, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_3F_Text_ReceivedPokenav waitfanfare setflag FLAG_SYS_POKENAV_GET diff --git a/data/maps/RustboroCity_Flat1_1F/map.json b/data/maps/RustboroCity_Flat1_1F/map.json index 31341e0b7..d4ddfb2f6 100644 --- a/data/maps/RustboroCity_Flat1_1F/map.json +++ b/data/maps/RustboroCity_Flat1_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT1_1F", "name": "RustboroCity_Flat1_1F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT1_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat1_2F/map.json b/data/maps/RustboroCity_Flat1_2F/map.json index 454a0f1b5..3756411d7 100644 --- a/data/maps/RustboroCity_Flat1_2F/map.json +++ b/data/maps/RustboroCity_Flat1_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT1_2F", "name": "RustboroCity_Flat1_2F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT1_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_1F/map.json b/data/maps/RustboroCity_Flat2_1F/map.json index 29494765c..5379567ff 100644 --- a/data/maps/RustboroCity_Flat2_1F/map.json +++ b/data/maps/RustboroCity_Flat2_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_1F", "name": "RustboroCity_Flat2_1F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_2F/map.json b/data/maps/RustboroCity_Flat2_2F/map.json index 8f3e659cd..1ba0bbbba 100644 --- a/data/maps/RustboroCity_Flat2_2F/map.json +++ b/data/maps/RustboroCity_Flat2_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_2F", "name": "RustboroCity_Flat2_2F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_3F/map.json b/data/maps/RustboroCity_Flat2_3F/map.json index 927ff6c34..da911f004 100644 --- a/data/maps/RustboroCity_Flat2_3F/map.json +++ b/data/maps/RustboroCity_Flat2_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_3F", "name": "RustboroCity_Flat2_3F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_3F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Gym/map.json b/data/maps/RustboroCity_Gym/map.json index e473c3e1b..36ae306ab 100644 --- a/data/maps/RustboroCity_Gym/map.json +++ b/data/maps/RustboroCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_GYM", "name": "RustboroCity_Gym", "layout": "LAYOUT_RUSTBORO_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index ce6fdb127..6d9895fe5 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -96,7 +96,7 @@ RustboroCity_Gym_EventScript_RegisterRoxanne:: @ 821307B pokenavcall RustboroCity_Gym_Text_RoxanneRegisterCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Gym_Text_RegisteredRoxanne, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/RustboroCity_House1/map.json b/data/maps/RustboroCity_House1/map.json index 85b4ee2b1..a57b1a693 100644 --- a/data/maps/RustboroCity_House1/map.json +++ b/data/maps/RustboroCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE1", "name": "RustboroCity_House1", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_House2/map.json b/data/maps/RustboroCity_House2/map.json index dd30ff71c..fdaed84fc 100644 --- a/data/maps/RustboroCity_House2/map.json +++ b/data/maps/RustboroCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE2", "name": "RustboroCity_House2", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_House3/map.json b/data/maps/RustboroCity_House3/map.json index 3a757de8b..491550a2c 100644 --- a/data/maps/RustboroCity_House3/map.json +++ b/data/maps/RustboroCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE3", "name": "RustboroCity_House3", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Mart/map.json b/data/maps/RustboroCity_Mart/map.json index 423fbb4e7..1a5b4549f 100644 --- a/data/maps/RustboroCity_Mart/map.json +++ b/data/maps/RustboroCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_MART", "name": "RustboroCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonCenter_1F/map.json b/data/maps/RustboroCity_PokemonCenter_1F/map.json index e6c332678..633626c4c 100644 --- a/data/maps/RustboroCity_PokemonCenter_1F/map.json +++ b/data/maps/RustboroCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_CENTER_1F", "name": "RustboroCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonCenter_2F/map.json b/data/maps/RustboroCity_PokemonCenter_2F/map.json index dbdaddfc6..912e4b263 100644 --- a/data/maps/RustboroCity_PokemonCenter_2F/map.json +++ b/data/maps/RustboroCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_CENTER_2F", "name": "RustboroCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonSchool/map.json b/data/maps/RustboroCity_PokemonSchool/map.json index af9b02d98..e299248a0 100644 --- a/data/maps/RustboroCity_PokemonSchool/map.json +++ b/data/maps/RustboroCity_PokemonSchool/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_SCHOOL", "name": "RustboroCity_PokemonSchool", "layout": "LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL", - "music": "MUS_P_SCHOOL", + "music": "MUS_SCHOOL", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RusturfTunnel/map.json b/data/maps/RusturfTunnel/map.json index 0d6ae7d9b..d8531c879 100644 --- a/data/maps/RusturfTunnel/map.json +++ b/data/maps/RusturfTunnel/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTURF_TUNNEL", "name": "RusturfTunnel", "layout": "LAYOUT_RUSTURF_TUNNEL", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_RUSTURF_TUNNEL", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index a342135bf..17a229ab5 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -316,7 +316,7 @@ RusturfTunnel_EventScript_Peeko:: @ 822D0AF RusturfTunnel_EventScript_Grunt:: @ 822D0C2 lock faceplayer - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT diff --git a/data/maps/SSTidalCorridor/map.json b/data/maps/SSTidalCorridor/map.json index dc65b2443..7356e1fe0 100644 --- a/data/maps/SSTidalCorridor/map.json +++ b/data/maps/SSTidalCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_CORRIDOR", "name": "SSTidalCorridor", "layout": "LAYOUT_SS_TIDAL_CORRIDOR", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index a055c6548..b6fa7428e 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -17,7 +17,7 @@ SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -25,7 +25,7 @@ SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_LILYCOVE lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_HopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -33,14 +33,14 @@ SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 SSTidalRooms_EventScript_HalfwayToSlateport:: @ 823C028 special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage, MSGBOX_DEFAULT return SSTidalRooms_EventScript_ArrivedInLilycove:: @ 823C03C special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInLilycove, MSGBOX_DEFAULT return @@ -55,7 +55,7 @@ SSTidalCorridor_EventScript_HalfwayToLilycove:: @ 823C067 special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_LILYCOVE lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_HopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -64,7 +64,7 @@ SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInSlateport, MSGBOX_DEFAULT releaseall end @@ -72,7 +72,7 @@ SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D SSTidalRooms_EventScript_ArrivedInSlateport:: @ 823C093 special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInSlateport, MSGBOX_DEFAULT return @@ -204,7 +204,7 @@ SSTidalCorridor_EventScript_ScottScene:: @ 823C219 applymovement LOCALID_SAILOR, SSTidalCorridor_Movement_SailorMoveForScott applymovement LOCALID_SCOTT, SSTidalCorridor_Movement_ScottExit waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT waitse removeobject LOCALID_SCOTT applymovement LOCALID_SAILOR, SSTidalCorridor_Movement_SailorReturn diff --git a/data/maps/SSTidalLowerDeck/map.json b/data/maps/SSTidalLowerDeck/map.json index 25a24c1b9..79331001a 100644 --- a/data/maps/SSTidalLowerDeck/map.json +++ b/data/maps/SSTidalLowerDeck/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_LOWER_DECK", "name": "SSTidalLowerDeck", "layout": "LAYOUT_SS_TIDAL_LOWER_DECK", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SSTidalRooms/map.json b/data/maps/SSTidalRooms/map.json index 32fe40245..fd65d5ce2 100644 --- a/data/maps/SSTidalRooms/map.json +++ b/data/maps/SSTidalRooms/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_ROOMS", "name": "SSTidalRooms", "layout": "LAYOUT_SS_TIDAL_ROOMS", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index baccf0465..2419587d8 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTH", "name": "SafariZone_North", "layout": "LAYOUT_SAFARI_ZONE_NORTH", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Northeast/map.json b/data/maps/SafariZone_Northeast/map.json index 7855417f1..910403107 100644 --- a/data/maps/SafariZone_Northeast/map.json +++ b/data/maps/SafariZone_Northeast/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTHEAST", "name": "SafariZone_Northeast", "layout": "LAYOUT_SAFARI_ZONE_NORTHEAST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Northwest/map.json b/data/maps/SafariZone_Northwest/map.json index 3974f00de..1e27def2c 100644 --- a/data/maps/SafariZone_Northwest/map.json +++ b/data/maps/SafariZone_Northwest/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTHWEST", "name": "SafariZone_Northwest", "layout": "LAYOUT_SAFARI_ZONE_NORTHWEST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_RestHouse/map.json b/data/maps/SafariZone_RestHouse/map.json index cae90c79d..e03b024ae 100644 --- a/data/maps/SafariZone_RestHouse/map.json +++ b/data/maps/SafariZone_RestHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_REST_HOUSE", "name": "SafariZone_RestHouse", "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_South/map.json b/data/maps/SafariZone_South/map.json index 78ab47f72..562b85b9e 100644 --- a/data/maps/SafariZone_South/map.json +++ b/data/maps/SafariZone_South/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTH", "name": "SafariZone_South", "layout": "LAYOUT_SAFARI_ZONE_SOUTH", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Southeast/map.json b/data/maps/SafariZone_Southeast/map.json index 174014f3e..723e874cc 100644 --- a/data/maps/SafariZone_Southeast/map.json +++ b/data/maps/SafariZone_Southeast/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTHEAST", "name": "SafariZone_Southeast", "layout": "LAYOUT_SAFARI_ZONE_SOUTHEAST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Southwest/map.json b/data/maps/SafariZone_Southwest/map.json index 95017668e..42faf1f50 100644 --- a/data/maps/SafariZone_Southwest/map.json +++ b/data/maps/SafariZone_Southwest/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTHWEST", "name": "SafariZone_Southwest", "layout": "LAYOUT_SAFARI_ZONE_SOUTHWEST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ScorchedSlab/map.json b/data/maps/ScorchedSlab/map.json index 86e06c268..e90f1f5c1 100644 --- a/data/maps/ScorchedSlab/map.json +++ b/data/maps/ScorchedSlab/map.json @@ -2,7 +2,7 @@ "id": "MAP_SCORCHED_SLAB", "name": "ScorchedSlab", "layout": "LAYOUT_SCORCHED_SLAB", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_SCORCHED_SLAB", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Entrance/map.json b/data/maps/SeafloorCavern_Entrance/map.json index bc79a5f01..a80fce6c1 100644 --- a/data/maps/SeafloorCavern_Entrance/map.json +++ b/data/maps/SeafloorCavern_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ENTRANCE", "name": "SeafloorCavern_Entrance", "layout": "LAYOUT_SEAFLOOR_CAVERN_ENTRANCE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room1/map.json b/data/maps/SeafloorCavern_Room1/map.json index 0e6bd1bad..2caa79414 100644 --- a/data/maps/SeafloorCavern_Room1/map.json +++ b/data/maps/SeafloorCavern_Room1/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM1", "name": "SeafloorCavern_Room1", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM1", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room2/map.json b/data/maps/SeafloorCavern_Room2/map.json index 1391cc395..bfdd30499 100644 --- a/data/maps/SeafloorCavern_Room2/map.json +++ b/data/maps/SeafloorCavern_Room2/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM2", "name": "SeafloorCavern_Room2", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM2", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room3/map.json b/data/maps/SeafloorCavern_Room3/map.json index e40bcbcf5..478e108be 100644 --- a/data/maps/SeafloorCavern_Room3/map.json +++ b/data/maps/SeafloorCavern_Room3/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM3", "name": "SeafloorCavern_Room3", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM3", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room4/map.json b/data/maps/SeafloorCavern_Room4/map.json index 80de38537..9ea3528a3 100644 --- a/data/maps/SeafloorCavern_Room4/map.json +++ b/data/maps/SeafloorCavern_Room4/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM4", "name": "SeafloorCavern_Room4", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM4", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room5/map.json b/data/maps/SeafloorCavern_Room5/map.json index 9d6ca9e6a..415e2a718 100644 --- a/data/maps/SeafloorCavern_Room5/map.json +++ b/data/maps/SeafloorCavern_Room5/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM5", "name": "SeafloorCavern_Room5", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM5", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room6/map.json b/data/maps/SeafloorCavern_Room6/map.json index eb4c7f9d9..598f4a042 100644 --- a/data/maps/SeafloorCavern_Room6/map.json +++ b/data/maps/SeafloorCavern_Room6/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM6", "name": "SeafloorCavern_Room6", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM6", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room7/map.json b/data/maps/SeafloorCavern_Room7/map.json index 0f135d36a..243a1f9d1 100644 --- a/data/maps/SeafloorCavern_Room7/map.json +++ b/data/maps/SeafloorCavern_Room7/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM7", "name": "SeafloorCavern_Room7", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM7", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room8/map.json b/data/maps/SeafloorCavern_Room8/map.json index 90cd3ae7a..7c5d5c820 100644 --- a/data/maps/SeafloorCavern_Room8/map.json +++ b/data/maps/SeafloorCavern_Room8/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM8", "name": "SeafloorCavern_Room8", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM8", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room9/map.json b/data/maps/SeafloorCavern_Room9/map.json index cd5263488..94ef88e84 100644 --- a/data/maps/SeafloorCavern_Room9/map.json +++ b/data/maps/SeafloorCavern_Room9/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM9", "name": "SeafloorCavern_Room9", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM9", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 667251936..63c5853c3 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -18,7 +18,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, SeafloorCavern_Room9_Movement_Delay32 waitmovement 0 - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox SeafloorCavern_Room9_Text_ArchieHoldItRightThere, MSGBOX_DEFAULT closemessage addobject VAR_0x8004 @@ -43,13 +43,13 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 special WaitWeather waitstate setvar VAR_RESULT, 1 - playse SE_W197 + playse SE_M_DETECT dofieldeffectsparkle 16, 42, 0 waitfieldeffect FLDEFF_SPARKLE closemessage setvar VAR_RESULT, 0 - playfanfare MUS_ME_TAMA - playse SE_TAMA + playfanfare MUS_AWAKEN_LEGEND + playse SE_ORB special DoOrbEffect applymovement VAR_0x8004, Common_Movement_WalkInPlaceFastestUp applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp diff --git a/data/maps/SealedChamber_InnerRoom/map.json b/data/maps/SealedChamber_InnerRoom/map.json index febf5defa..1f8e741d8 100644 --- a/data/maps/SealedChamber_InnerRoom/map.json +++ b/data/maps/SealedChamber_InnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEALED_CHAMBER_INNER_ROOM", "name": "SealedChamber_InnerRoom", "layout": "LAYOUT_SEALED_CHAMBER_INNER_ROOM", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SealedChamber_InnerRoom/scripts.inc b/data/maps/SealedChamber_InnerRoom/scripts.inc index 15c98e57e..c31bb7efc 100644 --- a/data/maps/SealedChamber_InnerRoom/scripts.inc +++ b/data/maps/SealedChamber_InnerRoom/scripts.inc @@ -11,7 +11,7 @@ SealedChamber_InnerRoom_EventScript_BrailleBackWall:: @ 82391F8 compare VAR_RESULT, FALSE goto_if_eq SealedChamber_InnerRoom_EventScript_NoEffect fadeoutbgm 0 - playse SE_TRACK_MOVE + playse SE_TRUCK_MOVE special DoSealedChamberShakingEffect1 waitstate delay 40 diff --git a/data/maps/SealedChamber_OuterRoom/map.json b/data/maps/SealedChamber_OuterRoom/map.json index 88694940b..e16350d7e 100644 --- a/data/maps/SealedChamber_OuterRoom/map.json +++ b/data/maps/SealedChamber_OuterRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEALED_CHAMBER_OUTER_ROOM", "name": "SealedChamber_OuterRoom", "layout": "LAYOUT_SEALED_CHAMBER_OUTER_ROOM", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave1/map.json b/data/maps/SecretBase_BlueCave1/map.json index 8690a8aad..3fb6157cc 100644 --- a/data/maps/SecretBase_BlueCave1/map.json +++ b/data/maps/SecretBase_BlueCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave2/map.json b/data/maps/SecretBase_BlueCave2/map.json index feee5c585..ca15e39f1 100644 --- a/data/maps/SecretBase_BlueCave2/map.json +++ b/data/maps/SecretBase_BlueCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave3/map.json b/data/maps/SecretBase_BlueCave3/map.json index c26af7cba..356b4894d 100644 --- a/data/maps/SecretBase_BlueCave3/map.json +++ b/data/maps/SecretBase_BlueCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave4/map.json b/data/maps/SecretBase_BlueCave4/map.json index 3dc34e188..078bada8e 100644 --- a/data/maps/SecretBase_BlueCave4/map.json +++ b/data/maps/SecretBase_BlueCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave1/map.json b/data/maps/SecretBase_BrownCave1/map.json index 0671d40a3..6f2dc92f2 100644 --- a/data/maps/SecretBase_BrownCave1/map.json +++ b/data/maps/SecretBase_BrownCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave2/map.json b/data/maps/SecretBase_BrownCave2/map.json index 5fc3df0e5..11559c12f 100644 --- a/data/maps/SecretBase_BrownCave2/map.json +++ b/data/maps/SecretBase_BrownCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave3/map.json b/data/maps/SecretBase_BrownCave3/map.json index 29a27ad39..c2dbb7fc4 100644 --- a/data/maps/SecretBase_BrownCave3/map.json +++ b/data/maps/SecretBase_BrownCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave4/map.json b/data/maps/SecretBase_BrownCave4/map.json index 05d9fff3e..e7147ae85 100644 --- a/data/maps/SecretBase_BrownCave4/map.json +++ b/data/maps/SecretBase_BrownCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave1/map.json b/data/maps/SecretBase_RedCave1/map.json index 8a3be38be..fd264fc6c 100644 --- a/data/maps/SecretBase_RedCave1/map.json +++ b/data/maps/SecretBase_RedCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave2/map.json b/data/maps/SecretBase_RedCave2/map.json index 71c64bb77..b60b3bbff 100644 --- a/data/maps/SecretBase_RedCave2/map.json +++ b/data/maps/SecretBase_RedCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave3/map.json b/data/maps/SecretBase_RedCave3/map.json index e30c50b46..079837a62 100644 --- a/data/maps/SecretBase_RedCave3/map.json +++ b/data/maps/SecretBase_RedCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave4/map.json b/data/maps/SecretBase_RedCave4/map.json index d1abb1a74..10fbbfeb0 100644 --- a/data/maps/SecretBase_RedCave4/map.json +++ b/data/maps/SecretBase_RedCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub1/map.json b/data/maps/SecretBase_Shrub1/map.json index 5dba2b143..e0d1015cb 100644 --- a/data/maps/SecretBase_Shrub1/map.json +++ b/data/maps/SecretBase_Shrub1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub2/map.json b/data/maps/SecretBase_Shrub2/map.json index cdd5b1e00..879b7464e 100644 --- a/data/maps/SecretBase_Shrub2/map.json +++ b/data/maps/SecretBase_Shrub2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub3/map.json b/data/maps/SecretBase_Shrub3/map.json index cbdb08664..6751a7414 100644 --- a/data/maps/SecretBase_Shrub3/map.json +++ b/data/maps/SecretBase_Shrub3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub4/map.json b/data/maps/SecretBase_Shrub4/map.json index 3a7caee6b..c193b8348 100644 --- a/data/maps/SecretBase_Shrub4/map.json +++ b/data/maps/SecretBase_Shrub4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree1/map.json b/data/maps/SecretBase_Tree1/map.json index f9430cf0d..cd0cad5f0 100644 --- a/data/maps/SecretBase_Tree1/map.json +++ b/data/maps/SecretBase_Tree1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree2/map.json b/data/maps/SecretBase_Tree2/map.json index 79b1928b1..1ac393a15 100644 --- a/data/maps/SecretBase_Tree2/map.json +++ b/data/maps/SecretBase_Tree2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree3/map.json b/data/maps/SecretBase_Tree3/map.json index 9454cea0b..b7eec2244 100644 --- a/data/maps/SecretBase_Tree3/map.json +++ b/data/maps/SecretBase_Tree3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree4/map.json b/data/maps/SecretBase_Tree4/map.json index 8f9b0ebf7..0e068ec94 100644 --- a/data/maps/SecretBase_Tree4/map.json +++ b/data/maps/SecretBase_Tree4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave1/map.json b/data/maps/SecretBase_YellowCave1/map.json index 2bdf097c9..1d873bfe2 100644 --- a/data/maps/SecretBase_YellowCave1/map.json +++ b/data/maps/SecretBase_YellowCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave2/map.json b/data/maps/SecretBase_YellowCave2/map.json index 79d4e6950..af2e957bc 100644 --- a/data/maps/SecretBase_YellowCave2/map.json +++ b/data/maps/SecretBase_YellowCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave3/map.json b/data/maps/SecretBase_YellowCave3/map.json index 29ea865ca..d78aa2862 100644 --- a/data/maps/SecretBase_YellowCave3/map.json +++ b/data/maps/SecretBase_YellowCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave4/map.json b/data/maps/SecretBase_YellowCave4/map.json index df2db85bd..0ca4bc4d3 100644 --- a/data/maps/SecretBase_YellowCave4/map.json +++ b/data/maps/SecretBase_YellowCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_HighTideEntranceRoom/map.json b/data/maps/ShoalCave_HighTideEntranceRoom/map.json index 8dec3b1e2..9d3c5156b 100644 --- a/data/maps/ShoalCave_HighTideEntranceRoom/map.json +++ b/data/maps/ShoalCave_HighTideEntranceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", "name": "ShoalCave_HighTideEntranceRoom", "layout": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_HighTideInnerRoom/map.json b/data/maps/ShoalCave_HighTideInnerRoom/map.json index 280397a93..2f183d3ae 100644 --- a/data/maps/ShoalCave_HighTideInnerRoom/map.json +++ b/data/maps/ShoalCave_HighTideInnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", "name": "ShoalCave_HighTideInnerRoom", "layout": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/map.json b/data/maps/ShoalCave_LowTideEntranceRoom/map.json index c357ad5d7..ba71e1085 100644 --- a/data/maps/ShoalCave_LowTideEntranceRoom/map.json +++ b/data/maps/ShoalCave_LowTideEntranceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", "name": "ShoalCave_LowTideEntranceRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideIceRoom/map.json b/data/maps/ShoalCave_LowTideIceRoom/map.json index d8ecab059..ea4f0cedf 100644 --- a/data/maps/ShoalCave_LowTideIceRoom/map.json +++ b/data/maps/ShoalCave_LowTideIceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", "name": "ShoalCave_LowTideIceRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideInnerRoom/map.json b/data/maps/ShoalCave_LowTideInnerRoom/map.json index 1d0f44e0e..bf172e8b4 100644 --- a/data/maps/ShoalCave_LowTideInnerRoom/map.json +++ b/data/maps/ShoalCave_LowTideInnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", "name": "ShoalCave_LowTideInnerRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideLowerRoom/map.json b/data/maps/ShoalCave_LowTideLowerRoom/map.json index 40adf38cc..719841ec0 100644 --- a/data/maps/ShoalCave_LowTideLowerRoom/map.json +++ b/data/maps/ShoalCave_LowTideLowerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", "name": "ShoalCave_LowTideLowerRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideStairsRoom/map.json b/data/maps/ShoalCave_LowTideStairsRoom/map.json index a2ea91b5b..4207c9584 100644 --- a/data/maps/ShoalCave_LowTideStairsRoom/map.json +++ b/data/maps/ShoalCave_LowTideStairsRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", "name": "ShoalCave_LowTideStairsRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_1F/map.json b/data/maps/SkyPillar_1F/map.json index 17528b619..6ce499be2 100644 --- a/data/maps/SkyPillar_1F/map.json +++ b/data/maps/SkyPillar_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_1F", "name": "SkyPillar_1F", "layout": "LAYOUT_SKY_PILLAR_1F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_2F/map.json b/data/maps/SkyPillar_2F/map.json index 1430f9dc7..7b534c2f7 100644 --- a/data/maps/SkyPillar_2F/map.json +++ b/data/maps/SkyPillar_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_2F", "name": "SkyPillar_2F", "layout": "LAYOUT_SKY_PILLAR_2F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_3F/map.json b/data/maps/SkyPillar_3F/map.json index ddec299b5..c05324f10 100644 --- a/data/maps/SkyPillar_3F/map.json +++ b/data/maps/SkyPillar_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_3F", "name": "SkyPillar_3F", "layout": "LAYOUT_SKY_PILLAR_3F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_4F/map.json b/data/maps/SkyPillar_4F/map.json index 9c12a2071..7b5ad062e 100644 --- a/data/maps/SkyPillar_4F/map.json +++ b/data/maps/SkyPillar_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_4F", "name": "SkyPillar_4F", "layout": "LAYOUT_SKY_PILLAR_4F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_5F/map.json b/data/maps/SkyPillar_5F/map.json index 2638cb92c..5be104fb0 100644 --- a/data/maps/SkyPillar_5F/map.json +++ b/data/maps/SkyPillar_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_5F", "name": "SkyPillar_5F", "layout": "LAYOUT_SKY_PILLAR_5F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Entrance/map.json b/data/maps/SkyPillar_Entrance/map.json index 709f0af8d..c880da6ea 100644 --- a/data/maps/SkyPillar_Entrance/map.json +++ b/data/maps/SkyPillar_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_ENTRANCE", "name": "SkyPillar_Entrance", "layout": "LAYOUT_SKY_PILLAR_ENTRANCE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Outside/map.json b/data/maps/SkyPillar_Outside/map.json index 35721fd41..b0d4e198b 100644 --- a/data/maps/SkyPillar_Outside/map.json +++ b/data/maps/SkyPillar_Outside/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_OUTSIDE", "name": "SkyPillar_Outside", "layout": "LAYOUT_SKY_PILLAR_OUTSIDE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 60a1702ab..2e0495bca 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -81,7 +81,7 @@ SkyPillar_Outside_EventScript_WallaceScene:: @ 8239304 delay 30 msgbox SkyPillar_Outside_Text_GotToGoBackForSootopolis, MSGBOX_DEFAULT closemessage - playse SE_KAIDAN + playse SE_EXIT fadescreenswapbuffers FADE_TO_BLACK clearflag FLAG_HIDE_MAP_NAME_POPUP setvar VAR_SOOTOPOLIS_CITY_STATE, 4 diff --git a/data/maps/SkyPillar_Top/map.json b/data/maps/SkyPillar_Top/map.json index 8da3ca525..90301c53b 100644 --- a/data/maps/SkyPillar_Top/map.json +++ b/data/maps/SkyPillar_Top/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_TOP", "name": "SkyPillar_Top", "layout": "LAYOUT_SKY_PILLAR_TOP", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity/map.json b/data/maps/SlateportCity/map.json index 40ebfbc11..6ffed4b45 100644 --- a/data/maps/SlateportCity/map.json +++ b/data/maps/SlateportCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY", "name": "SlateportCity", "layout": "LAYOUT_SLATEPORT_CITY", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 055e13565..983ce9796 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -91,7 +91,7 @@ SlateportCity_EventScript_ScottScene:: @ 81DCD1C msgbox SlateportCity_Text_LetsRegisterEachOther, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox SlateportCity_Text_RegisteredScott, MSGBOX_DEFAULT waitfanfare closemessage @@ -170,7 +170,7 @@ SlateportCity_EventScript_EffortRibbonWoman:: @ 81DCDE4 compare VAR_RESULT, FALSE call_if_eq SlateportCity_EventScript_MonEVsNotMaxed msgbox SlateportCity_Text_PleaseGiveItThisEffortRibbon, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message SlateportCity_Text_ReceivedEffortRibbon waitfanfare msgbox SlateportCity_Text_PutEffortRibbonOnMon, MSGBOX_DEFAULT @@ -603,7 +603,7 @@ SlateportCity_EventScript_CaptStern:: @ 81DD1F8 applymovement LOCALID_CAPT_STERN, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox SlateportCity_Text_OhPlayerWeMadeDiscovery, MSGBOX_DEFAULT - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox SlateportCity_Text_AquaWillAssumeControlOfSubmarine, MSGBOX_DEFAULT applymovement LOCALID_COOK, Common_Movement_WalkInPlaceFastestLeft applymovement LOCALID_FAT_MAN, Common_Movement_WalkInPlaceFastestLeft diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/map.json b/data/maps/SlateportCity_BattleTentBattleRoom/map.json index 4bc1ea9f1..27cce84b4 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/map.json +++ b/data/maps/SlateportCity_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM", "name": "SlateportCity_BattleTentBattleRoom", "layout": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentCorridor/map.json b/data/maps/SlateportCity_BattleTentCorridor/map.json index e285ccdb1..c9cd4b1a7 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/map.json +++ b/data/maps/SlateportCity_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR", "name": "SlateportCity_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 85a95ded8..c018f54b9 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -60,7 +60,7 @@ SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: @ 8208EEE factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: @ 8208F0D diff --git a/data/maps/SlateportCity_BattleTentLobby/map.json b/data/maps/SlateportCity_BattleTentLobby/map.json index e2c439591..efd03e1e2 100644 --- a/data/maps/SlateportCity_BattleTentLobby/map.json +++ b/data/maps/SlateportCity_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY", "name": "SlateportCity_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 20f3c3e07..bdc8eb05f 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -53,7 +53,7 @@ SlateportCity_BattleTentLobby_EventScript_GivePrize:: @ 82087E9 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message BattleFrontier_BattleTowerLobby_Text_ReceivedPrize @ Odd that it uses Tower's instead of Factory's or its own waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize diff --git a/data/maps/SlateportCity_Harbor/map.json b/data/maps/SlateportCity_Harbor/map.json index 19bb83a06..17d3c8940 100644 --- a/data/maps/SlateportCity_Harbor/map.json +++ b/data/maps/SlateportCity_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_HARBOR", "name": "SlateportCity_Harbor", "layout": "LAYOUT_HARBOR", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 5d8dad1db..644911ea6 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -21,7 +21,7 @@ SlateportCity_Harbor_EventScript_ShowSSTidal:: @ 820C9A5 return SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene:: @ 820C9A9 - savebgm MUS_AQA_0 + savebgm MUS_ENCOUNTER_AQUA setobjectxyperm LOCALID_CAPT_STERN, 12, 13 setobjectmovementtype LOCALID_CAPT_STERN, MOVEMENT_TYPE_FACE_LEFT setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_PATRONS diff --git a/data/maps/SlateportCity_House/map.json b/data/maps/SlateportCity_House/map.json index d1bdfa1e3..5ccc92566 100644 --- a/data/maps/SlateportCity_House/map.json +++ b/data/maps/SlateportCity_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_HOUSE", "name": "SlateportCity_House", "layout": "LAYOUT_HOUSE2", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_Mart/map.json b/data/maps/SlateportCity_Mart/map.json index 8c5924ce8..45d322555 100644 --- a/data/maps/SlateportCity_Mart/map.json +++ b/data/maps/SlateportCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_MART", "name": "SlateportCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_NameRatersHouse/map.json b/data/maps/SlateportCity_NameRatersHouse/map.json index a1728f78a..c0a94fd69 100644 --- a/data/maps/SlateportCity_NameRatersHouse/map.json +++ b/data/maps/SlateportCity_NameRatersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE", "name": "SlateportCity_NameRatersHouse", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/map.json b/data/maps/SlateportCity_OceanicMuseum_1F/map.json index 00b2e8912..7748f5438 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/map.json +++ b/data/maps/SlateportCity_OceanicMuseum_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", "name": "SlateportCity_OceanicMuseum_1F", "layout": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", - "music": "MUS_FUNE_KAN", + "music": "MUS_OCEANIC_MUSEUM", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index 8af4af40c..90c9b93b7 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -37,7 +37,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: @ 820ADE8 checkmoney 50, 0 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney - playse SE_REGI + playse SE_SHOP removemoney 50, 0 updatemoneybox 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT @@ -191,7 +191,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast:: @ 820AF93 SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited:: @ 820AFAA setflag FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_FAMILIAR_AQUA_GRUNT - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_FAMILIAR_GRUNT release end diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/map.json b/data/maps/SlateportCity_OceanicMuseum_2F/map.json index af23dffef..7b78802e3 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/map.json +++ b/data/maps/SlateportCity_OceanicMuseum_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", "name": "SlateportCity_OceanicMuseum_2F", "layout": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", - "music": "MUS_FUNE_KAN", + "music": "MUS_OCEANIC_MUSEUM", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 8efd464c4..bba75dbd1 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -11,7 +11,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 faceplayer msgbox SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 1 + playbgm MUS_ENCOUNTER_AQUA, 1 addobject LOCALID_GRUNT_1 applymovement LOCALID_GRUNT_1, SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter waitmovement 0 @@ -81,7 +81,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 msgbox SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo, MSGBOX_DEFAULT closemessage fadescreen FADE_TO_BLACK - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty removeobject LOCALID_CAPT_STERN diff --git a/data/maps/SlateportCity_PokemonCenter_1F/map.json b/data/maps/SlateportCity_PokemonCenter_1F/map.json index fe730efd7..91132909a 100644 --- a/data/maps/SlateportCity_PokemonCenter_1F/map.json +++ b/data/maps/SlateportCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_CENTER_1F", "name": "SlateportCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_PokemonCenter_2F/map.json b/data/maps/SlateportCity_PokemonCenter_2F/map.json index d2204dabc..74b5ee63c 100644 --- a/data/maps/SlateportCity_PokemonCenter_2F/map.json +++ b/data/maps/SlateportCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_CENTER_2F", "name": "SlateportCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_PokemonFanClub/map.json b/data/maps/SlateportCity_PokemonFanClub/map.json index ae27c318b..b1e4b0f8b 100644 --- a/data/maps/SlateportCity_PokemonFanClub/map.json +++ b/data/maps/SlateportCity_PokemonFanClub/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB", "name": "SlateportCity_PokemonFanClub", "layout": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_SternsShipyard_1F/map.json b/data/maps/SlateportCity_SternsShipyard_1F/map.json index 45e5f5734..66cdd6a1d 100644 --- a/data/maps/SlateportCity_SternsShipyard_1F/map.json +++ b/data/maps/SlateportCity_SternsShipyard_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F", "name": "SlateportCity_SternsShipyard_1F", "layout": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_SternsShipyard_2F/map.json b/data/maps/SlateportCity_SternsShipyard_2F/map.json index 452c3f47a..1b89b2bfa 100644 --- a/data/maps/SlateportCity_SternsShipyard_2F/map.json +++ b/data/maps/SlateportCity_SternsShipyard_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F", "name": "SlateportCity_SternsShipyard_2F", "layout": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity/map.json b/data/maps/SootopolisCity/map.json index 41e5cf61a..d4c71db61 100644 --- a/data/maps/SootopolisCity/map.json +++ b/data/maps/SootopolisCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY", "name": "SootopolisCity", "layout": "LAYOUT_SOOTOPOLIS_CITY", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 2979f104d..6ef9c3d57 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -531,7 +531,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E setvar VAR_0x8004, 1 special Script_DoRayquazaScene waitstate - playse SE_T_KAMI + playse SE_THUNDER special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanUp waitmovement 0 @@ -562,7 +562,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_SKY_PILLAR_STATE, 3 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS - fadenewbgm MUS_RUNECITY + fadenewbgm MUS_SOOTOPOLIS delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 43, 32 @@ -615,7 +615,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_SKY_PILLAR_STATE, 2 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS - fadenewbgm MUS_NAMINORI + fadenewbgm MUS_SURF delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 29, 53 diff --git a/data/maps/SootopolisCity_Gym_1F/map.json b/data/maps/SootopolisCity_Gym_1F/map.json index 72d7c2d2b..46baea29d 100644 --- a/data/maps/SootopolisCity_Gym_1F/map.json +++ b/data/maps/SootopolisCity_Gym_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_GYM_1F", "name": "SootopolisCity_Gym_1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_GYM_1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index 66588ba08..ae5bfd108 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -46,7 +46,7 @@ SootopolisCity_Gym_1F_OnFrame: @ 8224ECB SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -54,7 +54,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -62,7 +62,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: @ 8224F15 addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -72,7 +72,7 @@ SootopolisCity_Gym_1F_EventScript_FallThroughIce:: @ 8224F29 delay 20 applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Gym_1F_Movement_FallThroughIce waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 warphole MAP_SOOTOPOLIS_CITY_GYM_B1F waitstate @@ -110,7 +110,7 @@ SootopolisCity_Gym_1F_EventScript_JuanDefeated:: @ 8224F82 call SootopolisCity_Gym_1F_EventScript_GiveWaterPulse closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox SootopolisCity_Gym_1F_Text_RegisteredJuan, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/SootopolisCity_Gym_B1F/map.json b/data/maps/SootopolisCity_Gym_B1F/map.json index 5706139f2..3badb1c52 100644 --- a/data/maps/SootopolisCity_Gym_B1F/map.json +++ b/data/maps/SootopolisCity_Gym_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_GYM_B1F", "name": "SootopolisCity_Gym_B1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_GYM_B1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House1/map.json b/data/maps/SootopolisCity_House1/map.json index 9db373ced..26c47c432 100644 --- a/data/maps/SootopolisCity_House1/map.json +++ b/data/maps/SootopolisCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE1", "name": "SootopolisCity_House1", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House2/map.json b/data/maps/SootopolisCity_House2/map.json index 6ffeb11f8..3fe0baf48 100644 --- a/data/maps/SootopolisCity_House2/map.json +++ b/data/maps/SootopolisCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE2", "name": "SootopolisCity_House2", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House3/map.json b/data/maps/SootopolisCity_House3/map.json index d6cb1f09b..00d82637e 100644 --- a/data/maps/SootopolisCity_House3/map.json +++ b/data/maps/SootopolisCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE3", "name": "SootopolisCity_House3", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House4/map.json b/data/maps/SootopolisCity_House4/map.json index 7ff8d9182..e811785d0 100644 --- a/data/maps/SootopolisCity_House4/map.json +++ b/data/maps/SootopolisCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE4", "name": "SootopolisCity_House4", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House5/map.json b/data/maps/SootopolisCity_House5/map.json index 2a335e4bb..6b25c5af6 100644 --- a/data/maps/SootopolisCity_House5/map.json +++ b/data/maps/SootopolisCity_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE5", "name": "SootopolisCity_House5", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House6/map.json b/data/maps/SootopolisCity_House6/map.json index e6b37ca19..365503e8f 100644 --- a/data/maps/SootopolisCity_House6/map.json +++ b/data/maps/SootopolisCity_House6/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE6", "name": "SootopolisCity_House6", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House7/map.json b/data/maps/SootopolisCity_House7/map.json index 5f66d082a..47d98c914 100644 --- a/data/maps/SootopolisCity_House7/map.json +++ b/data/maps/SootopolisCity_House7/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE7", "name": "SootopolisCity_House7", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json b/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json index d02aec2bb..143fdf9f2 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", "name": "SootopolisCity_LotadAndSeedotHouse", "layout": "LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_Mart/map.json b/data/maps/SootopolisCity_Mart/map.json index e7433e717..55686a14f 100644 --- a/data/maps/SootopolisCity_Mart/map.json +++ b/data/maps/SootopolisCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MART", "name": "SootopolisCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json b/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json index 9ccd91d9b..a7fa18760 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", "name": "SootopolisCity_MysteryEventsHouse_1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json index 3911f3e2b..82885ebcc 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json +++ b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", "name": "SootopolisCity_MysteryEventsHouse_B1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/map.json b/data/maps/SootopolisCity_PokemonCenter_1F/map.json index 2330f08ea..8dac70dea 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/map.json +++ b/data/maps/SootopolisCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F", "name": "SootopolisCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_PokemonCenter_2F/map.json b/data/maps/SootopolisCity_PokemonCenter_2F/map.json index ca779dd4b..fd85b236b 100644 --- a/data/maps/SootopolisCity_PokemonCenter_2F/map.json +++ b/data/maps/SootopolisCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F", "name": "SootopolisCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SouthernIsland_Exterior/map.json b/data/maps/SouthernIsland_Exterior/map.json index 67ee0fd3c..8fe4bcf29 100644 --- a/data/maps/SouthernIsland_Exterior/map.json +++ b/data/maps/SouthernIsland_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOUTHERN_ISLAND_EXTERIOR", "name": "SouthernIsland_Exterior", "layout": "LAYOUT_SOUTHERN_ISLAND_EXTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_SOUTHERN_ISLAND", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SouthernIsland_Interior/map.json b/data/maps/SouthernIsland_Interior/map.json index 14530c995..179ab1997 100644 --- a/data/maps/SouthernIsland_Interior/map.json +++ b/data/maps/SouthernIsland_Interior/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOUTHERN_ISLAND_INTERIOR", "name": "SouthernIsland_Interior", "layout": "LAYOUT_SOUTHERN_ISLAND_INTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_SOUTHERN_ISLAND", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/TerraCave_End/map.json b/data/maps/TerraCave_End/map.json index c7dfeeb3d..b186bddb2 100644 --- a/data/maps/TerraCave_End/map.json +++ b/data/maps/TerraCave_End/map.json @@ -2,7 +2,7 @@ "id": "MAP_TERRA_CAVE_END", "name": "TerraCave_End", "layout": "LAYOUT_TERRA_CAVE_END", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/TerraCave_Entrance/map.json b/data/maps/TerraCave_Entrance/map.json index 9a9650487..1ddc768e2 100644 --- a/data/maps/TerraCave_Entrance/map.json +++ b/data/maps/TerraCave_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_TERRA_CAVE_ENTRANCE", "name": "TerraCave_Entrance", "layout": "LAYOUT_TERRA_CAVE_ENTRANCE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index d0ed8e524..0d3dd5477 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRADE_CENTER", "name": "TradeCenter", "layout": "LAYOUT_TRADE_CENTER", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_1F/map.json b/data/maps/TrainerHill_1F/map.json index 30f80b810..d14bbb293 100644 --- a/data/maps/TrainerHill_1F/map.json +++ b/data/maps/TrainerHill_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_1F", "name": "TrainerHill_1F", "layout": "LAYOUT_TRAINER_HILL_1F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_2F/map.json b/data/maps/TrainerHill_2F/map.json index e94948c33..a4c9bca7d 100644 --- a/data/maps/TrainerHill_2F/map.json +++ b/data/maps/TrainerHill_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_2F", "name": "TrainerHill_2F", "layout": "LAYOUT_TRAINER_HILL_2F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_3F/map.json b/data/maps/TrainerHill_3F/map.json index 6e3ef9c51..069ca83ac 100644 --- a/data/maps/TrainerHill_3F/map.json +++ b/data/maps/TrainerHill_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_3F", "name": "TrainerHill_3F", "layout": "LAYOUT_TRAINER_HILL_3F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_4F/map.json b/data/maps/TrainerHill_4F/map.json index 2b62322e9..f195d9e93 100644 --- a/data/maps/TrainerHill_4F/map.json +++ b/data/maps/TrainerHill_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_4F", "name": "TrainerHill_4F", "layout": "LAYOUT_TRAINER_HILL_4F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Elevator/map.json b/data/maps/TrainerHill_Elevator/map.json index dc259fde0..3d56ff476 100644 --- a/data/maps/TrainerHill_Elevator/map.json +++ b/data/maps/TrainerHill_Elevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ELEVATOR", "name": "TrainerHill_Elevator", "layout": "LAYOUT_BATTLE_ELEVATOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Entrance/map.json b/data/maps/TrainerHill_Entrance/map.json index ed85405c1..b2c20d050 100644 --- a/data/maps/TrainerHill_Entrance/map.json +++ b/data/maps/TrainerHill_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ENTRANCE", "name": "TrainerHill_Entrance", "layout": "LAYOUT_TRAINER_HILL_ENTRANCE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 9cf3be806..b5b0f716c 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -23,8 +23,8 @@ TrainerHill_Entrance_OnWarp: @ 82680CF TrainerHill_Entrance_OnResume: @ 82680D0 trainerhill_resumetimer setvar VAR_TEMP_0, 0 - trainerhill_clearresult - compare VAR_RESULT, 0 @ VAR_RESULT always 0 here + trainerhill_getusingereader + compare VAR_RESULT, FALSE @ VAR_RESULT always FALSE here goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant setobjectxy OBJ_EVENT_ID_PLAYER, 9, 6 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant @@ -69,7 +69,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 waitmovement 0 setmetatile 17, 10, METATILE_TrainerHill_CounterDoor, 1 special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK waitse setvar VAR_TEMP_D, 0 releaseall diff --git a/data/maps/TrainerHill_Roof/map.json b/data/maps/TrainerHill_Roof/map.json index 244214ad3..16020a762 100644 --- a/data/maps/TrainerHill_Roof/map.json +++ b/data/maps/TrainerHill_Roof/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ROOF", "name": "TrainerHill_Roof", "layout": "LAYOUT_TRAINER_HILL_ROOF", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index e4e2cbb49..e239ed010 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -22,7 +22,7 @@ TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 case 2, TrainerHill_Roof_EventScript_CheckFinalTime TrainerHill_Roof_EventScript_ReceivePrize:: @ 8269020 msgbox TrainerHill_Roof_Text_HaveTheMostMarvelousGift, MSGBOX_DEFAULT - playfanfare MUS_FANFA1 + playfanfare MUS_LEVEL_UP message gText_ObtainedTheItem waitfanfare waitmessage diff --git a/data/maps/Underwater1/map.json b/data/maps/Underwater1/map.json index cc77e951d..71752745d 100644 --- a/data/maps/Underwater1/map.json +++ b/data/maps/Underwater1/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER1", "name": "Underwater1", "layout": "LAYOUT_UNDERWATER1", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_124", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater2/map.json b/data/maps/Underwater2/map.json index f402f8ea8..5ecdc402a 100644 --- a/data/maps/Underwater2/map.json +++ b/data/maps/Underwater2/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER2", "name": "Underwater2", "layout": "LAYOUT_UNDERWATER2", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_125", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater3/map.json b/data/maps/Underwater3/map.json index 69af7637f..43df933a0 100644 --- a/data/maps/Underwater3/map.json +++ b/data/maps/Underwater3/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER3", "name": "Underwater3", "layout": "LAYOUT_UNDERWATER3", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_126", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater4/map.json b/data/maps/Underwater4/map.json index 156923302..4b0fc6d3b 100644 --- a/data/maps/Underwater4/map.json +++ b/data/maps/Underwater4/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER4", "name": "Underwater4", "layout": "LAYOUT_UNDERWATER4", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_127", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater5/map.json b/data/maps/Underwater5/map.json index c50b8be53..909591f11 100644 --- a/data/maps/Underwater5/map.json +++ b/data/maps/Underwater5/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER5", "name": "Underwater5", "layout": "LAYOUT_UNDERWATER5", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_129", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater6/map.json b/data/maps/Underwater6/map.json index 971f2755c..2a021f77f 100644 --- a/data/maps/Underwater6/map.json +++ b/data/maps/Underwater6/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER6", "name": "Underwater6", "layout": "LAYOUT_UNDERWATER6", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater7/map.json b/data/maps/Underwater7/map.json index cf33280fe..5155fc6ba 100644 --- a/data/maps/Underwater7/map.json +++ b/data/maps/Underwater7/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER7", "name": "Underwater7", "layout": "LAYOUT_UNDERWATER7", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_UNK1", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_MarineCave/map.json b/data/maps/Underwater_MarineCave/map.json index c12531e48..c053fb121 100644 --- a/data/maps/Underwater_MarineCave/map.json +++ b/data/maps/Underwater_MarineCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_MARINE_CAVE", "name": "Underwater_MarineCave", "layout": "LAYOUT_UNDERWATER_MARINE_CAVE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_UNDERWATER_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_Route134/map.json b/data/maps/Underwater_Route134/map.json index dd5117aa4..74526bc4d 100644 --- a/data/maps/Underwater_Route134/map.json +++ b/data/maps/Underwater_Route134/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_ROUTE134", "name": "Underwater_Route134", "layout": "LAYOUT_UNDERWATER_ROUTE134", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SeafloorCavern/map.json b/data/maps/Underwater_SeafloorCavern/map.json index 90201d3b7..efcb3c291 100644 --- a/data/maps/Underwater_SeafloorCavern/map.json +++ b/data/maps/Underwater_SeafloorCavern/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SEAFLOOR_CAVERN", "name": "Underwater_SeafloorCavern", "layout": "LAYOUT_UNDERWATER_SEAFLOOR_CAVERN", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_128", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SealedChamber/map.json b/data/maps/Underwater_SealedChamber/map.json index 98bbcc850..5f3b99055 100644 --- a/data/maps/Underwater_SealedChamber/map.json +++ b/data/maps/Underwater_SealedChamber/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SEALED_CHAMBER", "name": "Underwater_SealedChamber", "layout": "LAYOUT_UNDERWATER_SEALED_CHAMBER", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SootopolisCity/map.json b/data/maps/Underwater_SootopolisCity/map.json index cc2d66ff2..90e5e97fc 100644 --- a/data/maps/Underwater_SootopolisCity/map.json +++ b/data/maps/Underwater_SootopolisCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SOOTOPOLIS_CITY", "name": "Underwater_SootopolisCity", "layout": "LAYOUT_UNDERWATER_SOOTOPOLIS_CITY", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SOOTOPOLIS", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index 1ee204137..3d19cd55f 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNION_ROOM", "name": "UnionRoom", "layout": "LAYOUT_UNION_ROOM", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnknownLinkContestRoom_25_29/map.json index cf6077259..72ed407ee 100644 --- a/data/maps/UnknownLinkContestRoom_25_29/map.json +++ b/data/maps/UnknownLinkContestRoom_25_29/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29", "name": "UnknownLinkContestRoom_25_29", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnknownLinkContestRoom_25_30/map.json index c51109ee9..cd4d6fddd 100644 --- a/data/maps/UnknownLinkContestRoom_25_30/map.json +++ b/data/maps/UnknownLinkContestRoom_25_30/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30", "name": "UnknownLinkContestRoom_25_30", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnknownLinkContestRoom_25_31/map.json index 27b550382..975ec382d 100644 --- a/data/maps/UnknownLinkContestRoom_25_31/map.json +++ b/data/maps/UnknownLinkContestRoom_25_31/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31", "name": "UnknownLinkContestRoom_25_31", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnknownLinkContestRoom_25_32/map.json index 0c20ee1f8..d2d673adc 100644 --- a/data/maps/UnknownLinkContestRoom_25_32/map.json +++ b/data/maps/UnknownLinkContestRoom_25_32/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32", "name": "UnknownLinkContestRoom_25_32", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json index aee753f22..f73ffe22e 100644 --- a/data/maps/UnknownLinkContestRoom_25_33/map.json +++ b/data/maps/UnknownLinkContestRoom_25_33/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33", "name": "UnknownLinkContestRoom_25_33", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json index ebd07e9fa..f5ddbbe5a 100644 --- a/data/maps/UnknownLinkContestRoom_25_34/map.json +++ b/data/maps/UnknownLinkContestRoom_25_34/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34", "name": "UnknownLinkContestRoom_25_34", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown/map.json b/data/maps/VerdanturfTown/map.json index c4b736f80..94d140c05 100644 --- a/data/maps/VerdanturfTown/map.json +++ b/data/maps/VerdanturfTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN", "name": "VerdanturfTown", "layout": "LAYOUT_VERDANTURF_TOWN", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json b/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json index 9ed2441dd..72eca1d95 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", "name": "VerdanturfTown_BattleTentBattleRoom", "layout": "LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index 86b5f3ec1..ad77cdf5f 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -78,7 +78,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 82023C8 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/map.json b/data/maps/VerdanturfTown_BattleTentCorridor/map.json index 0209c02d9..2b875b900 100644 --- a/data/maps/VerdanturfTown_BattleTentCorridor/map.json +++ b/data/maps/VerdanturfTown_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR", "name": "VerdanturfTown_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentLobby/map.json b/data/maps/VerdanturfTown_BattleTentLobby/map.json index cc294e47d..d4a8ccfa5 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/map.json +++ b/data/maps/VerdanturfTown_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY", "name": "VerdanturfTown_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 7a3aa605c..f7a03b1ec 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -55,7 +55,7 @@ VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: @ 8201791 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message BattleFrontier_BattleDomeLobby_Text_ReceivedPrize @ Odd that it used Dome's copy instead of Palace's waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT closemessage diff --git a/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json b/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json index 7aaedcd23..7fa310426 100644 --- a/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json +++ b/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE", "name": "VerdanturfTown_FriendshipRatersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_House/map.json b/data/maps/VerdanturfTown_House/map.json index bcc51079f..d552e914a 100644 --- a/data/maps/VerdanturfTown_House/map.json +++ b/data/maps/VerdanturfTown_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_HOUSE", "name": "VerdanturfTown_House", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_Mart/map.json b/data/maps/VerdanturfTown_Mart/map.json index 96fa21366..b8183646c 100644 --- a/data/maps/VerdanturfTown_Mart/map.json +++ b/data/maps/VerdanturfTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_MART", "name": "VerdanturfTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/map.json b/data/maps/VerdanturfTown_PokemonCenter_1F/map.json index 74f3e342b..8e3fc3e28 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_1F/map.json +++ b/data/maps/VerdanturfTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F", "name": "VerdanturfTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_PokemonCenter_2F/map.json b/data/maps/VerdanturfTown_PokemonCenter_2F/map.json index d7a51eba7..2edb6602d 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_2F/map.json +++ b/data/maps/VerdanturfTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F", "name": "VerdanturfTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_WandasHouse/map.json b/data/maps/VerdanturfTown_WandasHouse/map.json index 08b5348c7..43a5b9c44 100644 --- a/data/maps/VerdanturfTown_WandasHouse/map.json +++ b/data/maps/VerdanturfTown_WandasHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_WANDAS_HOUSE", "name": "VerdanturfTown_WandasHouse", "layout": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index d0ff9e440..5f3271c89 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_1F", "name": "VictoryRoad_1F", "layout": "LAYOUT_VICTORY_ROAD_1F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_B1F/map.json b/data/maps/VictoryRoad_B1F/map.json index 9a387aa52..6e290ce6d 100644 --- a/data/maps/VictoryRoad_B1F/map.json +++ b/data/maps/VictoryRoad_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_B1F", "name": "VictoryRoad_B1F", "layout": "LAYOUT_VICTORY_ROAD_B1F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_B2F/map.json b/data/maps/VictoryRoad_B2F/map.json index 7e59f9f27..6ee56389f 100644 --- a/data/maps/VictoryRoad_B2F/map.json +++ b/data/maps/VictoryRoad_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_B2F", "name": "VictoryRoad_B2F", "layout": "LAYOUT_VICTORY_ROAD_B2F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index 1e121678e..fe10af4b3 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -122,7 +122,7 @@ BerryTree_EventScript_PickBerry:: @ 8274448 special IncrementDailyPickedBerries special ObjectEventInteractionRemoveBerryTree message BerryTree_Text_PickedTheBerry - playfanfare MUS_ME_KINOMI + playfanfare MUS_OBTAIN_BERRY waitmessage waitfanfare waitbuttonpress diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index 66cf74f0a..b81fbb4d5 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -132,7 +132,7 @@ CableClub_EventScript_ExitLinkRoom:: @ 8276C85 call CableClub_EventScript_CloseLinkAndExitLinkRoom call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -142,7 +142,7 @@ CableClub_EventScript_ExitMinigameRoom:: @ 8276C9D call CableClub_EventScript_CloseLinkAndExitLinkRoom call EventScript_CloseMossdeepGameCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -165,7 +165,7 @@ CableClub_EventScript_ExitTradeCenter:: @ 8276CE7 call CableClub_EventScript_PlayerExitTradeCenter call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -187,7 +187,7 @@ CableClub_EventScript_ExitRecordCorner:: @ 8276D2C call CableClub_EventScript_PlayerExitRecordCorner call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -209,7 +209,7 @@ CableClub_EventScript_ExitUnionRoom:: @ 8276D6C call CableClub_EventScript_PlayerExitUnionRoom call CableClub_EventScript_CloseUnionRoomBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -372,7 +372,7 @@ CableClub_EventScript_EnterColosseum:: @ 8276FBD waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -477,7 +477,7 @@ CableClub_EventScript_EnterTradeCenter:: @ 827713A waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -552,7 +552,7 @@ CableClub_EventScript_EnterRecordCorner:: @ 827724C waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -955,7 +955,7 @@ CableClub_EventScript_EnterUnionRoom:: @ 827759F copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 call CableClub_EventScript_OpenUnionRoomBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -1285,7 +1285,7 @@ CableClub_EventScript_EnterWirelessLinkRoom:: @ 8277B3A copyvar VAR_0x8007, VAR_LAST_TALKED call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -1481,7 +1481,7 @@ MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: @ 8277E0E copyvar VAR_0x8007, VAR_LAST_TALKED call EventScript_OpenMossdeepGameCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 diff --git a/data/scripts/cave_hole.inc b/data/scripts/cave_hole.inc index b55c932ee..1cc334004 100644 --- a/data/scripts/cave_hole.inc +++ b/data/scripts/cave_hole.inc @@ -11,7 +11,7 @@ EventScript_FallDownHole:: @ 82A8337 delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 warphole MAP_UNDEFINED waitstate @@ -22,7 +22,7 @@ EventScript_FallDownHoleMtPyre:: @ 82A8350 delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 special DoFallWarp waitstate diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index c21488502..1ef723c37 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -401,13 +401,13 @@ ContestHall_EventScript_ShowContestMonPic:: @ 827A1D2 call ContestHall_EventScript_TryWaitForLink call ContestHall_EventScript_CheckIfContestWithRSPlayer addobject LOCALID_POKEBALL - playse SE_DANSA + playse SE_LEDGE lockall applymovement VAR_0x800B, ContestHall_Movement_ContestantDelay32 waitmovement 0 releaseall addvar VAR_0x8006, -1 - playse SE_BOWA2 + playse SE_BALL_OPEN special ShowContestEntryMonPic call ContestHall_EventScript_EntryXTrainersMon return @@ -427,7 +427,7 @@ ContestHall_EventScript_EntryXTrainersMonLink:: @ 827A229 ContestHall_EventScript_AudienceVote:: @ 827A230 call ContestHall_EventScript_AudienceWillVote call ContestHall_EventScript_VotingUnderWay - playse SE_W227B + playse SE_M_ENCORE2 waitmessage call ContestHall_EventScript_AudienceLookAround applymovement LOCALID_MC, ContestHall_Movement_MCFaceJudge2 @@ -481,7 +481,7 @@ ContestHall_EventScript_AudienceReactToContestant:: @ 827A2D5 call ContestHall_EventScript_TryWaitForLink applymovement LOCALID_MC, ContestHall_Movement_AudienceMemberLookLeft waitmovement 0 - playse SE_W227B + playse SE_M_ENCORE2 call ContestHall_EventScript_VObjectAudienceLookAround applymovement LOCALID_AUDIENCE_5, ContestHall_Movement_AudienceMemberLookRight applymovement LOCALID_AUDIENCE_2, ContestHall_Movement_AudienceMemberLookDown @@ -542,7 +542,7 @@ ContestHall_EventScript_AudienceHeartEmotes:: @ 827A34F ContestHall_EventScript_DisplayHearts:: @ 827A3E5 setvar VAR_RESULT, 8 - special ScriptRandom + special GenerateContestRand compare VAR_RESULT, 0 call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember1 compare VAR_RESULT, 1 @@ -916,7 +916,7 @@ ContestHall_EventScript_ContestResults:: @ 827A8A5 setvar VAR_TEMP_9, 1 showcontestresults setvar VAR_TEMP_9, 0 - playbgm MUS_CON_FAN, 0 + playbgm MUS_CONTEST_WINNER, 0 return ContestHall_EventScript_ThatsItForJudging:: @ 827A8FB @@ -1005,7 +1005,7 @@ ContestHall_EventScript_CongratulateWinner:: @ 827A9D4 call ContestHall_EventScript_CongratsWinner applymovement VAR_TEMP_3, ContestHall_Movement_WinningPlayerWalkUp waitmovement 0 - playse SE_W227B + playse SE_M_ENCORE2 setvar VAR_TEMP_1, 0 return @@ -1117,7 +1117,7 @@ ContestHall_EventScript_GiveWinnerPrize:: @ 827AB36 releaseall call ContestHall_EventScript_WinnerApproachForPrize call ContestHall_EventScript_GivePrizeIfWinner - playse SE_W227B + playse SE_M_ENCORE2 setvar VAR_TEMP_1, 0 call ContestHall_EventScript_AudienceLookAround delay 30 @@ -1266,7 +1266,7 @@ ContestHall_EventScript_ReceiveContestRibbon:: @ 827ACDF setflag FLAG_SYS_RIBBON_GET lockall msgbox ContestHall_Text_ConferRibbonAsPrize, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox ContestHall_Text_ReceivedRibbon, MSGBOX_DEFAULT waitfanfare special BufferContestWinnerMonName diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 87995581f..ea8552510 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -38,7 +38,7 @@ Route117_EventScript_DaycareAcceptEgg:: @ 8291C83 Route117_EventScript_DaycareReceiveEgg:: @ 8291C9D message Route117_Text_ReceivedEgg - playfanfare MUS_FANFA1 + playfanfare MUS_LEVEL_UP waitfanfare waitbuttonpress msgbox Route117_Text_TakeGoodCareOfIt, MSGBOX_DEFAULT @@ -217,7 +217,7 @@ Route117_PokemonDayCare_EventScript_RetrieveMon:: @ 8291EE2 waitmovement 0 specialvar VAR_RESULT, TakePokemonFromDaycare special SubtractMoneyFromVar0x8005 - playse SE_REGI + playse SE_SHOP msgbox Route117_PokemonDayCare_Text_HeresYourMon, MSGBOX_DEFAULT waitse playmoncry VAR_RESULT, 0 diff --git a/data/scripts/elite_four.inc b/data/scripts/elite_four.inc index 3b395de21..f4eb6393b 100644 --- a/data/scripts/elite_four.inc +++ b/data/scripts/elite_four.inc @@ -20,7 +20,7 @@ PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: @ 82723F8 PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: @ 8272475 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp6 waitmovement 0 - playse SE_TRACK_DOOR + playse SE_TRUCK_DOOR setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 56e3297b6..2d689348b 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -1,4 +1,4 @@ - +@ Interact with cuttable tree EventScript_CutTree:: @ 82906BB lockall goto_if_unset FLAG_BADGE01_GET, EventScript_CheckTreeCantCut @@ -18,7 +18,8 @@ EventScript_CutTree:: @ 82906BB goto EventScript_CutTreeDown end -EventScript_FldEffCut:: @ 8290705 +@ Use cut from party menu +EventScript_UseCut:: @ 8290705 lockall dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate @@ -58,6 +59,7 @@ Text_CantCut: @ 829077D .string "This tree looks like it can be\n" .string "CUT down!$" +@ Interact with smashable rock EventScript_RockSmash:: @ 82907A6 lockall goto_if_unset FLAG_BADGE03_GET, EventScript_CantSmashRock @@ -77,7 +79,8 @@ EventScript_RockSmash:: @ 82907A6 goto EventScript_SmashRock end -EventScript_FldEffRockSmash:: @ 82907F0 +@ Use rock smash from party menu +EventScript_UseRockSmash:: @ 82907F0 lockall dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate @@ -89,10 +92,10 @@ EventScript_SmashRock:: @ 82907FB waitmovement 0 removeobject VAR_LAST_TALKED specialvar VAR_RESULT, TryUpdateRusturfTunnelState - compare VAR_RESULT, 1 + compare VAR_RESULT, TRUE goto_if_eq EventScript_EndSmash special RockSmashWildEncounter - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq EventScript_EndSmash waitstate releaseall @@ -141,7 +144,7 @@ EventScript_StrengthBoulder:: @ 82908BA goto EventScript_ActivateStrength end -EventScript_FldEffStrength:: @ 82908FD +EventScript_UseStrength:: @ 82908FD lockall dofieldeffect FLDEFF_USE_STRENGTH waitstate diff --git a/data/scripts/flash.inc b/data/scripts/flash.inc index 916b50719..bb4ae84eb 100644 --- a/data/scripts/flash.inc +++ b/data/scripts/flash.inc @@ -1,4 +1,4 @@ -EventScript_FldEffFlash:: @ 82926F8 +EventScript_UseFlash:: @ 82926F8 animateflash 1 setflashradius 1 end diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index 7f629e5db..40ead8e58 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -259,9 +259,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: @ 82A8689 end LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 - playse SE_SEIKAI + playse SE_SUCCESS delay 10 - playse SE_SEIKAI + playse SE_SUCCESS msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRight, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize end @@ -269,9 +269,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: @ 82A86C7 special BufferQuizCorrectAnswer special BufferQuizPrizeName - playse SE_HAZURE + playse SE_FAILURE delay 10 - playse SE_HAZURE + playse SE_FAILURE msgbox LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs, MSGBOX_DEFAULT msgbox LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc index cc947e396..c51558e9e 100644 --- a/data/scripts/mevent_pichu.inc +++ b/data/scripts/mevent_pichu.inc @@ -14,7 +14,7 @@ SurfPichu_GiveIfPossible: @ 8674D4C vmessage sText_MysteryGiftEgg waitmessage waitbuttonpress - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare release end diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc index 3c68dfa13..f72337972 100644 --- a/data/scripts/new_game.inc +++ b/data/scripts/new_game.inc @@ -115,7 +115,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_4 setflag FLAG_HIDE_LILYCOVE_MUSEUM_TOURISTS setflag FLAG_HIDE_PETALBURG_GYM_GREETER - setflag FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM @@ -142,7 +142,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDA setflag FLAG_HIDE_VERDANTURF_TOWN_SCOTT - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD setflag FLAG_HIDE_PETALBURG_GYM_WALLY setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 3afd92588..19f57d9d5 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -65,11 +65,11 @@ EventScript_NoRoomForItem:: @ 8271BA9 return EventScript_PlayFanfareObtainedItem:: @ 8271BAF - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM return EventScript_PlayFanfareObtainedTMHM:: @ 8271BB3 - playfanfare MUS_ME_WAZA + playfanfare MUS_OBTAIN_TMHM return Std_ObtainDecoration:: @ 8271BB7 @@ -87,7 +87,7 @@ EventScript_ObtainDecorationMessage:: @ 8271BC5 return EventScript_ObtainedDecor:: @ 8271BE0 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message gText_ObtainedTheDecor waitfanfare msgbox gText_TheDecorWasTransferredToThePC, MSGBOX_DEFAULT diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 440f47a6a..684b27e71 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -73,7 +73,7 @@ PlayersHouse_2F_EventScript_WallClock:: @ 8292799 call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsMale compare VAR_RESULT, FEMALE call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsFemale - playse SE_KAIDAN + playse SE_EXIT removeobject VAR_0x8008 releaseall end @@ -159,7 +159,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportMale:: @ 829286D call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymMale waitmovement 0 - playbgm MUS_INTER_V, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, 0 msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale @@ -184,7 +184,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: @ 82928DC call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale waitmovement 0 - playbgm MUS_INTER_V, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, 0 msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale @@ -334,7 +334,7 @@ PlayersHouse_1F_EventScript_TryRegisterMom:: @ 8292A19 msgbox PlayersHouse_1F_Text_IsThatAPokenav, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox PlayersHouse_1F_Text_RegisteredMom, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc index 9aea65054..f590ca358 100644 --- a/data/scripts/roulette.inc +++ b/data/scripts/roulette.inc @@ -6,7 +6,7 @@ Roulette_EventScript_Table1:: @ 82A5AB1 getpricereduction POKENEWS_GAME_CORNER compare VAR_RESULT, FALSE goto_if_eq Roulette_EventScript_Play - addvar VAR_0x8004, 128 + addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end @@ -18,7 +18,7 @@ Roulette_EventScript_Table2:: @ 82A5ADF getpricereduction POKENEWS_GAME_CORNER compare VAR_RESULT, FALSE goto_if_eq Roulette_EventScript_Play - addvar VAR_0x8004, 128 + addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index 6a811d935..d04a16b58 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -24,7 +24,7 @@ SafariZone_EventScript_Retire:: @ 82A4B85 SafariZone_EventScript_TimesUp:: @ 82A4B8A lockall - playse SE_PINPON + playse SE_DING_DONG message SafariZone_Text_TimesUp waitmessage waitbuttonpress @@ -33,7 +33,7 @@ SafariZone_EventScript_TimesUp:: @ 82A4B8A SafariZone_EventScript_OutOfBalls:: @ 82A4B9B lockall - playse SE_PINPON + playse SE_DING_DONG message SafariZone_Text_OutOfBalls waitmessage waitbuttonpress diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 0de890aa6..132bdd19c 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -144,7 +144,7 @@ SecretBase_EventScript_ShrubEnter:: @ 8275B4D SecretBase_EventScript_InitSecretBase:: @ 8275B5B closemessage - playse SE_KAIDAN + playse SE_EXIT setvar VAR_INIT_SECRET_BASE, 0 setflag FLAG_DECORATION_0 special SetPlayerSecretBase @@ -164,7 +164,7 @@ SecretBase_EventScript_FirstEntrance:: @ 8275B81 compare VAR_RESULT, YES goto_if_eq SecretBase_EventScript_SetAsBase closemessage - playse SE_KAIDAN + playse SE_EXIT special ClearAndLeaveSecretBase end @@ -183,7 +183,7 @@ SecretBase_Movement_275BB4: @ 8275BB4 SecretBase_EventScript_Enter:: @ 8275BB7 lockall setvar VAR_INIT_SECRET_BASE, 1 - playse SE_KAIDAN + playse SE_EXIT special IsCurSecretBaseOwnedByAnotherPlayer compare VAR_RESULT, FALSE goto_if_eq SecretBase_EventScript_EnterPlayersBase diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc index 1d82bb381..10b46700e 100644 --- a/data/scripts/std_msgbox.inc +++ b/data/scripts/std_msgbox.inc @@ -29,7 +29,7 @@ Std_MsgboxYesNo: @ 8271332 Std_MsgboxGetPoints: @ 827133C message 0x0 - playfanfare MUS_ME_POINTGET + playfanfare MUS_OBTAIN_B_POINTS waitfanfare waitmessage return diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index ca692e1ef..34d0462bb 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -32,8 +32,8 @@ EventScript_TrainerHillTimer:: @ 82C8393 TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 setvar VAR_TEMP_2, 1 - trainerhill_clearresult - compare VAR_RESULT, 1 @ VAR_RESULT always 0 here + trainerhill_getusingereader + compare VAR_RESULT, TRUE @ VAR_RESULT always FALSE here goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter end diff --git a/data/scripts/trainer_script.inc b/data/scripts/trainer_script.inc index 59577e8a8..c77e628ee 100644 --- a/data/scripts/trainer_script.inc +++ b/data/scripts/trainer_script.inc @@ -3,7 +3,7 @@ Std_RegisteredInMatchCall:: @ 82742C9 buffertrainername 1, VAR_0x8000 closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox gText_RegisteredTrainerinPokeNav, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/specials.inc b/data/specials.inc index d7d1897d8..77e7d5c0a 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -149,7 +149,7 @@ gSpecials:: @ 81DBA64 def_special SaveMuseumContestPainting def_special DoesContestCategoryHaveWinner def_special CountPlayerContestPaintings - def_special ShowContestWinner + def_special ShowContestWinnerPainting def_special MauvilleGymSetDefaultBarriers def_special MauvilleGymPressSwitch def_special ShowFieldMessageStringVar4 @@ -336,7 +336,7 @@ gSpecials:: @ 81DBA64 def_special BattleSetup_StartLatiBattle def_special SetRoute119Weather def_special SetRoute123Weather - def_special ScriptGetMultiplayerId + def_special GetContestMultiplayerId def_special ScriptGetPartyMonSpecies def_special IsSelectedMonEgg def_special TryInitBattleTowerAwardManObjectEvent @@ -350,7 +350,7 @@ gSpecials:: @ 81DBA64 def_special BufferLottoTicketNumber def_special TryHideBattleTowerReporter def_special DoesPartyHaveEnigmaBerry - def_special ScriptRandom + def_special GenerateContestRand def_special SetChampionSaveWarp def_special TryPutTreasureInvestigatorsOnAir def_special TryPutLotteryWinnerReportOnAir diff --git a/data/text/tv.inc b/data/text/tv.inc index 63a1eff65..6f678d824 100644 --- a/data/text/tv.inc +++ b/data/text/tv.inc @@ -2436,7 +2436,7 @@ gTVSafariFanClubText10:: @ 08289D33 .string "and make the challenge yourself!\p" .string "Until next time, cheerio!$" -gTVContestLiveUpdatesText00:: @ 08289DD6 +ContestLiveUpdates_Text_Intro:: @ 08289DD6 .string "“POKéMON CONTEST LIVE UPDATES!”\p" .string "MC: Thanks for joining us!\p" .string "We're live from the just-ended\n" @@ -2455,117 +2455,117 @@ gTVContestLiveUpdatesText00:: @ 08289DD6 .string "MC: Let's hear what the fans have\n" .string "to say about this CONTEST.$" -gTVContestLiveUpdatesText01:: @ 08289F53 +ContestLiveUpdates_Text_WonBothRounds:: @ 08289F53 .string "Spectator: The {STR_VAR_2} was tops in\n" .string "both primary and secondary judging!\p" .string "That {STR_VAR_2} will keep winning!$" -gTVContestLiveUpdatesText02:: @ 08289FB0 +ContestLiveUpdates_Text_BetterRound2:: @ 08289FB0 .string "Spectator: The {STR_VAR_2} didn't do\n" .string "well in the primary judging, but it\l" .string "cleaned up in the secondary judging!\p" .string "It was a miraculous comeback\n" .string "for that {STR_VAR_2}. Yippee!$" -gTVContestLiveUpdatesText03:: @ 0828A047 +ContestLiveUpdates_Text_EqualRounds:: @ 0828A047 .string "Spectator: The {STR_VAR_2} remained\n" .string "consistent throughout both primary\l" .string "and secondary judging.\p" .string "{STR_VAR_3} and the {STR_VAR_2},\n" .string "they're no ordinary combo!$" -gTVContestLiveUpdatesText04:: @ 0828A0C6 +ContestLiveUpdates_Text_BetterRound1:: @ 0828A0C6 .string "Spectator: In terms of being {STR_VAR_1},\n" .string "that {STR_VAR_2} was outstanding.\p" .string "I hope it makes better appeals\n" .string "next time, though.$" -gTVContestLiveUpdatesText05:: @ 0828A132 +ContestLiveUpdates_Text_GotNervous:: @ 0828A132 .string "Spectator: When the {STR_VAR_2} got\n" .string "nervous, I couldn't stop myself from\l" .string "shouting encouragement.\p" .string "I'd like to say this to that\n" .string "{STR_VAR_2}, “Congratulations!”$" -gTVContestLiveUpdatesText06:: @ 0828A1BE +ContestLiveUpdates_Text_StartledFoes:: @ 0828A1BE .string "Spectator: That {STR_VAR_2}'s appeal\n" .string "startled even me!\p" .string "{STR_VAR_2}, you were awesome!$" -gTVContestLiveUpdatesText07:: @ 0828A202 +ContestLiveUpdates_Text_UsedCombo:: @ 0828A202 .string "Spectator: That {STR_VAR_2}'s combo\n" .string "appeal was stunning!\p" .string "It's shaken me to the core!$" -gTVContestLiveUpdatesText08:: @ 0828A24E +ContestLiveUpdates_Text_ExcitingAppeal:: @ 0828A24E .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal got my heart pounding!$" -gTVContestLiveUpdatesText09:: @ 0828A288 +ContestLiveUpdates_Text_WasCool:: @ 0828A288 .string "{STR_VAR_2}!\n" .string "You were cool!$" -gTVContestLiveUpdatesText10:: @ 0828A29B +ContestLiveUpdates_Text_WasBeautiful:: @ 0828A29B .string "{STR_VAR_2}!\n" .string "You were beautiful!$" -gTVContestLiveUpdatesText11:: @ 0828A2B3 +ContestLiveUpdates_Text_WasCute:: @ 0828A2B3 .string "{STR_VAR_2}!\n" .string "You were cute!$" -gTVContestLiveUpdatesText12:: @ 0828A2C6 +ContestLiveUpdates_Text_WasSmart:: @ 0828A2C6 .string "{STR_VAR_2}!\n" .string "You were smart!$" -gTVContestLiveUpdatesText13:: @ 0828A2DA +ContestLiveUpdates_Text_WasTough:: @ 0828A2DA .string "{STR_VAR_2}!\n" .string "You were tough!$" -gTVContestLiveUpdatesText14:: @ 0828A2EE +ContestLiveUpdates_Text_VeryExcitingAppeal:: @ 0828A2EE .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal still has my heart pounding!$" -gTVContestLiveUpdatesText15:: @ 0828A32E +ContestLiveUpdates_Text_VeryCool:: @ 0828A32E .string "{STR_VAR_2}!\n" .string "You're the last word in cool!$" -gTVContestLiveUpdatesText16:: @ 0828A350 +ContestLiveUpdates_Text_VeryBeautiful:: @ 0828A350 .string "{STR_VAR_2}!\n" .string "You're the most beautiful!$" -gTVContestLiveUpdatesText17:: @ 0828A36F +ContestLiveUpdates_Text_VeryCute:: @ 0828A36F .string "{STR_VAR_2}!\n" .string "You're simply the cutest!$" -gTVContestLiveUpdatesText18:: @ 0828A38D +ContestLiveUpdates_Text_VerySmart:: @ 0828A38D .string "{STR_VAR_2}!\n" .string "You're the smartest among the smart!$" -gTVContestLiveUpdatesText19:: @ 0828A3B6 +ContestLiveUpdates_Text_VeryTough:: @ 0828A3B6 .string "{STR_VAR_2}!\n" .string "You're the toughest of the tough!$" -gTVContestLiveUpdatesText20:: @ 0828A3DC +ContestLiveUpdates_Text_TookBreak:: @ 0828A3DC .string "Spectator: Even when the {STR_VAR_2}\n" .string "took a break from making appeals,\l" .string "I couldn't take my eyes off it.\p" .string "I'm captivated by that {STR_VAR_2}.$" -gTVContestLiveUpdatesText21:: @ 0828A455 +ContestLiveUpdates_Text_GotStartled:: @ 0828A455 .string "Spectator: When the {STR_VAR_2} was\n" .string "startled by another POKéMON's appeal,\l" .string "I was close to tears.\p" .string "{STR_VAR_2}, you were resilient!\n" .string "Way to go!$" -gTVContestLiveUpdatesText22:: @ 0828A4CF +ContestLiveUpdates_Text_MoveWonderful:: @ 0828A4CF .string "Spectator: Oh…\n" .string "That {STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "How could it be so wonderful?$" -gTVContestLiveUpdatesText23:: @ 0828A51C +ContestLiveUpdates_Text_TalkAboutAnotherMon:: @ 0828A51C .string "MC: Well, there you have it. This place\n" .string "is full of the {STR_VAR_1}'s fans!\p" .string "I should also mention that another\n" @@ -2573,20 +2573,20 @@ gTVContestLiveUpdatesText23:: @ 0828A51C .string "caught my eye.\p" .string "{STR_VAR_2}'s {STR_VAR_3}…$" -gTVContestLiveUpdatesText24:: @ 0828A5AC +ContestLiveUpdates_Text_FailedToAppeal:: @ 0828A5AC .string "It failed to make a single appeal during\n" .string "secondary judging out of nervousness.\p" .string "Next time, I would like to see this\n" .string "{STR_VAR_1} make even one appeal.$" -gTVContestLiveUpdatesText25:: @ 0828A638 +ContestLiveUpdates_Text_LastInBothRounds:: @ 0828A638 .string "It came dead last in both primary\n" .string "and secondary judging.\p" .string "I hope that {STR_VAR_1} will retrain this\n" .string "{STR_VAR_2} and erase the shame of\l" .string "this undisputed last-place finish.$" -gTVContestLiveUpdatesText26:: @ 0828A6CF +ContestLiveUpdates_Text_NotExcitingEnough:: @ 0828A6CF .string "It failed to take advantage of\n" .string "the audience's excitement and make\l" .string "an appropriate appeal.\p" @@ -2594,7 +2594,7 @@ gTVContestLiveUpdatesText26:: @ 0828A6CF .string "a feel for the audience and whip their\l" .string "excitement to a fever pitch next time.$" -gTVContestLiveUpdatesText27:: @ 0828A797 +ContestLiveUpdates_Text_LostAfterWinningRound1:: @ 0828A797 .string "While finishing first in the primary\n" .string "judging, its appeals in the secondary\l" .string "judging failed to click.\p" @@ -2603,14 +2603,14 @@ gTVContestLiveUpdatesText27:: @ 0828A797 .string "I'm sure {STR_VAR_1} is studying how to\n" .string "make more effective appeals now.$" -gTVContestLiveUpdatesText28:: @ 0828A86D +ContestLiveUpdates_Text_NeverExciting:: @ 0828A86D .string "The audience never got excited by its\n" .string "appeals during the secondary judging.\p" .string "We hope it will stop worrying about\n" .string "other POKéMON and learn to pitch\l" .string "its appeals to the audience more.$" -gTVContestLiveUpdatesText29:: @ 0828A920 +ContestLiveUpdates_Text_LostBySmallMargin:: @ 0828A920 .string "It lost to {STR_VAR_1}'s {STR_VAR_2}\n" .string "by only a small margin.\p" .string "It must be heartbreaking to come\n" @@ -2618,7 +2618,7 @@ gTVContestLiveUpdatesText29:: @ 0828A920 .string "I wouldn't be surprised if {STR_VAR_3}\n" .string "were weeping over this outcome.$" -gTVContestLiveUpdatesText30:: @ 0828A9CC +ContestLiveUpdates_Text_RepeatedAppeals:: @ 0828A9CC .string "It disappointed the JUDGE by\n" .string "repeating the same appeals.\p" .string "It's an unforgivable error in any\n" @@ -2626,14 +2626,14 @@ gTVContestLiveUpdatesText30:: @ 0828A9CC .string "{STR_VAR_1} should feel guilty for\n" .string "this sorry showing.$" -gTVContestLiveUpdatesText31:: @ 0828AA74 +ContestLiveUpdates_Text_ValiantEffortButLost:: @ 0828AA74 .string "{STR_VAR_1} turned in a valiant effort,\n" .string "but…\p" .string "It was all for naught, finishing last.\p" .string "{STR_VAR_1} should learn from this loss\n" .string "and put the knowledge to good use.$" -gTVContestLiveUpdatesText32:: @ 0828AB01 +ContestLiveUpdates_Text_Outro:: @ 0828AB01 .string "I'd like to end this program with our\n" .string "usual farewell to the winners.\p" .string "This time, it's {STR_VAR_1} and\n" diff --git a/gflib/io_reg.c b/gflib/io_reg.c new file mode 100644 index 000000000..44364349d --- /dev/null +++ b/gflib/io_reg.c @@ -0,0 +1,36 @@ +#include "global.h" +#include "io_reg.h" +#include "gba/io_reg.h" + +static const u32 sUnused[] = { + 0, + 0, + (1 << 26) | (1 << 3), + (1 << 26) | (1 << 3) | (1 << 1), + (1 << 26) | (1 << 3) | (1 << 2), + (1 << 26) | (1 << 3) | (1 << 2) | (1 << 1), + (1 << 26) | (1 << 4), + (1 << 26) | (1 << 4) | (1 << 2), + (1 << 26) | (1 << 4) | (1 << 3), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 2), + (1 << 26) | (1 << 4) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 2) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 2) | (1 << 1), + (1 << 25) | (1 << 8), + (1 << 27) | (1 << 10), +}; + +const u16 gOverworldBackgroundLayerFlags[] = { + BLDCNT_TGT2_BG0, + BLDCNT_TGT2_BG1, + BLDCNT_TGT2_BG2, + BLDCNT_TGT2_BG3, +}; + +const u16 gOrbEffectBackgroundLayerFlags[] = { + BLDCNT_TGT1_BG0, + BLDCNT_TGT1_BG1, + BLDCNT_TGT1_BG2, + BLDCNT_TGT1_BG3, +}; diff --git a/gflib/io_reg.h b/gflib/io_reg.h new file mode 100644 index 000000000..82d2fc5ed --- /dev/null +++ b/gflib/io_reg.h @@ -0,0 +1,7 @@ +#ifndef GUARD_IO_REG_H +#define GUARD_IO_REG_H + +extern const u16 gOverworldBackgroundLayerFlags[]; +extern const u16 gOrbEffectBackgroundLayerFlags[]; + +#endif // GUARD_IO_REG_H diff --git a/gflib/string_util.c b/gflib/string_util.c index db972a8ed..92f8eea5a 100644 --- a/gflib/string_util.c +++ b/gflib/string_util.c @@ -342,50 +342,61 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src) switch (c) { - case PLACEHOLDER_BEGIN: - placeholderId = *src++; - expandedString = GetExpandedPlaceholder(placeholderId); - dest = StringExpandPlaceholders(dest, expandedString); - break; - case EXT_CTRL_CODE_BEGIN: - *dest++ = c; - c = *src++; - *dest++ = c; - - switch (c) - { - case 0x07: - case 0x09: - case 0x0F: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - break; - case 0x04: - *dest++ = *src++; - case 0x0B: - *dest++ = *src++; - default: - *dest++ = *src++; - } + case PLACEHOLDER_BEGIN: + placeholderId = *src++; + expandedString = GetExpandedPlaceholder(placeholderId); + dest = StringExpandPlaceholders(dest, expandedString); + break; + case EXT_CTRL_CODE_BEGIN: + *dest++ = c; + c = *src++; + *dest++ = c; + + switch (c) + { + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_FILL_WINDOW: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: + case EXT_CTRL_CODE_PAUSE_MUSIC: + case EXT_CTRL_CODE_RESUME_MUSIC: break; - case EOS: - *dest = EOS; - return dest; - case CHAR_PROMPT_SCROLL: - case CHAR_PROMPT_CLEAR: - case CHAR_NEWLINE: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: + *dest++ = *src++; + case EXT_CTRL_CODE_PLAY_BGM: + *dest++ = *src++; default: - *dest++ = c; + *dest++ = *src++; + } + break; + case EOS: + *dest = EOS; + return dest; + case CHAR_PROMPT_SCROLL: + case CHAR_PROMPT_CLEAR: + case CHAR_NEWLINE: + default: + *dest++ = c; } } } u8 *StringBraille(u8 *dest, const u8 *src) { - u8 setBrailleFont[] = { EXT_CTRL_CODE_BEGIN, 0x06, 0x06, EOS }; - u8 gotoLine2[] = { CHAR_NEWLINE, EXT_CTRL_CODE_BEGIN, 0x0E, 0x02, EOS }; + const u8 setBrailleFont[] = { + EXT_CTRL_CODE_BEGIN, + EXT_CTRL_CODE_SIZE, + 6, + EOS + }; + const u8 gotoLine2[] = { + CHAR_NEWLINE, + EXT_CTRL_CODE_BEGIN, + EXT_CTRL_CODE_SHIFT_DOWN, + 2, + EOS + }; dest = StringCopy(dest, setBrailleFont); @@ -395,16 +406,16 @@ u8 *StringBraille(u8 *dest, const u8 *src) switch (c) { - case EOS: - *dest = c; - return dest; - case CHAR_NEWLINE: - dest = StringCopy(dest, gotoLine2); - break; - default: - *dest++ = c; - *dest++ = c + 0x40; - break; + case EOS: + *dest = c; + return dest; + case CHAR_NEWLINE: + dest = StringCopy(dest, gotoLine2); + break; + default: + *dest++ = c; + *dest++ = c + 0x40; + break; } } } @@ -564,7 +575,7 @@ u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n) else { *dest++ = *src++; - if (*(src - 1) == CHAR_SPECIAL_F9) + if (*(src - 1) == CHAR_EXTRA_SYMBOL) *dest++ = *src++; } } @@ -579,7 +590,7 @@ u32 StringLength_Multibyte(const u8 *str) while (*str != EOS) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; length++; @@ -596,15 +607,15 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color) switch (colorType) { case 0: - *dest = 1; + *dest = EXT_CTRL_CODE_COLOR; dest++; break; case 1: - *dest = 3; + *dest = EXT_CTRL_CODE_SHADOW; dest++; break; case 2: - *dest = 2; + *dest = EXT_CTRL_CODE_HIGHLIGHT; dest++; break; } @@ -619,7 +630,7 @@ bool32 IsStringJapanese(u8 *str) { while (*str != EOS) { - if (*str <= 0xA0) + if (*str < CHAR_0) if (*str != CHAR_SPACE) return TRUE; str++; @@ -634,7 +645,7 @@ bool32 sub_800924C(u8 *str, s32 n) for (i = 0; *str != EOS && i < n; i++) { - if (*str <= 0xA0) + if (*str < CHAR_0) if (*str != CHAR_SPACE) return TRUE; str++; @@ -647,31 +658,31 @@ u8 GetExtCtrlCodeLength(u8 code) { static const u8 lengths[] = { - 1, - 2, - 2, - 2, - 4, - 2, - 2, - 1, - 2, - 1, - 1, - 3, - 2, - 2, - 2, - 1, - 3, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, + [0] = 1, + [EXT_CTRL_CODE_COLOR] = 2, + [EXT_CTRL_CODE_HIGHLIGHT] = 2, + [EXT_CTRL_CODE_SHADOW] = 2, + [EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW] = 4, + [EXT_CTRL_CODE_PALETTE] = 2, + [EXT_CTRL_CODE_SIZE] = 2, + [EXT_CTRL_CODE_RESET_SIZE] = 1, + [EXT_CTRL_CODE_PAUSE] = 2, + [EXT_CTRL_CODE_PAUSE_UNTIL_PRESS] = 1, + [EXT_CTRL_CODE_WAIT_SE] = 1, + [EXT_CTRL_CODE_PLAY_BGM] = 3, + [EXT_CTRL_CODE_ESCAPE] = 2, + [EXT_CTRL_CODE_SHIFT_TEXT] = 2, + [EXT_CTRL_CODE_SHIFT_DOWN] = 2, + [EXT_CTRL_CODE_FILL_WINDOW] = 1, + [EXT_CTRL_CODE_PLAY_SE] = 3, + [EXT_CTRL_CODE_CLEAR] = 2, + [EXT_CTRL_CODE_SKIP] = 2, + [EXT_CTRL_CODE_CLEAR_TO] = 2, + [EXT_CTRL_CODE_MIN_LETTER_SPACING] = 2, + [EXT_CTRL_CODE_JPN] = 1, + [EXT_CTRL_CODE_ENG] = 1, + [EXT_CTRL_CODE_PAUSE_MUSIC] = 1, + [EXT_CTRL_CODE_RESUME_MUSIC] = 1, }; u8 length = 0; @@ -734,7 +745,7 @@ void ConvertInternationalString(u8 *s, u8 language) StripExtCtrlCodes(s); i = StringLength(s); s[i++] = EXT_CTRL_CODE_BEGIN; - s[i++] = 22; + s[i++] = EXT_CTRL_CODE_ENG; s[i++] = EOS; i--; @@ -746,7 +757,7 @@ void ConvertInternationalString(u8 *s, u8 language) } s[0] = EXT_CTRL_CODE_BEGIN; - s[1] = 21; + s[1] = EXT_CTRL_CODE_JPN; } } diff --git a/gflib/text.c b/gflib/text.c index 6e5af0e12..636fe50a9 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -21,7 +21,7 @@ static u16 gLastTextFgColor; static u16 gLastTextShadowColor; const struct FontInfo *gFonts; -u8 gUnknown_03002F84; +bool8 gUnknown_03002F84; struct Struct_03002F90 gUnknown_03002F90; TextFlags gTextFlags; @@ -67,19 +67,19 @@ const struct GlyphWidthFunc gGlyphWidthFuncs[] = const struct KeypadIcon gKeypadIcons[] = { - { 0x0, 0x8, 0xC }, - { 0x1, 0x8, 0xC }, - { 0x2, 0x10, 0xC }, - { 0x4, 0x10, 0xC }, - { 0x6, 0x18, 0xC }, - { 0x9, 0x18, 0xC }, - { 0xC, 0x8, 0xC }, - { 0xD, 0x8, 0xC }, - { 0xE, 0x8, 0xC }, - { 0xF, 0x8, 0xC }, - { 0x20, 0x8, 0xC }, - { 0x21, 0x8, 0xC }, - { 0x22, 0x8, 0xC } + [CHAR_A_BUTTON] = { 0x0, 0x8, 0xC }, + [CHAR_B_BUTTON] = { 0x1, 0x8, 0xC }, + [CHAR_L_BUTTON] = { 0x2, 0x10, 0xC }, + [CHAR_R_BUTTON] = { 0x4, 0x10, 0xC }, + [CHAR_START_BUTTON] = { 0x6, 0x18, 0xC }, + [CHAR_SELECT_BUTTON] = { 0x9, 0x18, 0xC }, + [CHAR_DPAD_UP] = { 0xC, 0x8, 0xC }, + [CHAR_DPAD_DOWN] = { 0xD, 0x8, 0xC }, + [CHAR_DPAD_LEFT] = { 0xE, 0x8, 0xC }, + [CHAR_DPAD_RIGHT] = { 0xF, 0x8, 0xC }, + [CHAR_DPAD_UPDOWN] = { 0x20, 0x8, 0xC }, + [CHAR_DPAD_LEFTRIGHT] = { 0x21, 0x8, 0xC }, + [CHAR_DPAD_NONE] = { 0x22, 0x8, 0xC } }; const u8 gKeypadIconTiles[] = INCBIN_U8("graphics/fonts/keypad_icons.4bpp"); @@ -205,7 +205,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi CopyWindowToVram(gTempTextPrinter.printerTemplate.windowId, 2); gTextPrinters[printerTemplate->windowId].active = 0; } - gUnknown_03002F84 = 0; + gUnknown_03002F84 = FALSE; return TRUE; } @@ -213,7 +213,7 @@ void RunTextPrinters(void) { int i; - if (gUnknown_03002F84 == 0) + if (!gUnknown_03002F84) { for (i = 0; i < NUM_TEXT_PRINTERS; ++i) { @@ -451,24 +451,21 @@ u8 GetLastTextColor(u8 colorType) { switch (colorType) { - case 0: + case COLOR_FOREGROUND: return gLastTextFgColor; - case 2: + case COLOR_BACKGROUND: return gLastTextBgColor; - case 1: + case COLOR_SHADOW: return gLastTextShadowColor; default: return 0; } } -#ifdef NONMATCHING - #define GLYPH_COPY(fromY_, toY_, fromX_, toX_, unk) \ { \ - u32 i, j, *ptr, toY, fromX, toX, r5, toOrr, bits; \ + u32 i, j, *ptr, toY, fromX, toX, r5, bits; \ u8 *dst; \ - \ j = fromX_; \ i = fromY_; \ ptr = unk; \ @@ -478,27 +475,29 @@ u8 GetLastTextColor(u8 colorType) \ for (; i < toY; i++) \ { \ + asm("":::"sl"); /* NONMATCHING */ \ r5 = *(ptr++); \ for (j = fromX; j < toX; j++) \ { \ - toOrr = r5 & 0xF; \ + const u32 toOrr = r5 & 0xF; \ if (toOrr) \ { \ - dst = windowTiles + ((j / 8) * 32) + ((j & 7) / 2) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ - bits = ((j & 1) << 2); \ - *dst = ((toOrr << bits) | (*dst & (0xF0 >> bits))); \ + dst = windowTiles + ((j / 8) * 32) + ((j & 7) >> 1) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ + bits = ((j & 1) * 4); \ + *dst = (toOrr << bits) | ((0xF0 >> bits) & *dst); \ } \ r5 >>= 4; \ } \ } \ } + void CopyGlyphToWindow(struct TextPrinter *textPrinter) { struct Window *win; struct WindowTemplate *winTempl; struct Struct_03002F90 *unkStruct; - u32 currX, widthOffset, currY; + u32 currX, currY, widthOffset; s32 r4, r0; u8 *windowTiles; @@ -519,9 +518,9 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) windowTiles = win->tileData; widthOffset = winTempl->width * 32; - if (r4 <= 8) + if (r4 < 9) { - if (r0 <= 8) + if (r0 < 9) { GLYPH_COPY(currY, currY + r0, currX, currX + r4, unkStruct->unk0); } @@ -536,9 +535,9 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } else { - if (r0 <= 8) + u32 temp; + if (r0 < 9) { - u32 temp; GLYPH_COPY(currY, currY + r0, currX, currX + 8, unkStruct->unk0); temp = currX + 8; @@ -546,7 +545,6 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } else { - u32 temp; GLYPH_COPY(currY, currY + 8, currX, currX + 8, unkStruct->unk0); temp = currX + 8; @@ -563,711 +561,6 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } } } -#else -NAKED -void CopyGlyphToWindow(struct TextPrinter *x) -{ - asm("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, #0x8C\n\ - add r3, r0, #0\n\ - ldrb r1, [r3, #0x4]\n\ - lsl r0, r1, #1\n\ - add r0, r1\n\ - lsl r0, #2\n\ - ldr r1, =gWindows\n\ - add r1, r0, r1\n\ - add r2, r1, #0\n\ - ldrb r7, [r1, #0x3]\n\ - lsl r0, r7, #3\n\ - ldrb r6, [r3, #0x8]\n\ - sub r4, r0, r6\n\ - ldr r5, =gUnknown_03002F90\n\ - add r0, r5, #0\n\ - add r0, #0x80\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - ble _08004DD2\n\ - add r4, r0, #0\n\ -_08004DD2:\n\ - ldrb r0, [r1, #0x4]\n\ - lsl r0, #3\n\ - ldrb r3, [r3, #0x9]\n\ - sub r0, r3\n\ - add r1, r5, #0\n\ - add r1, #0x81\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - ble _08004DE6\n\ - add r0, r1, #0\n\ -_08004DE6:\n\ - str r6, [sp]\n\ - mov r8, r3\n\ - add r3, r5, #0\n\ - ldr r2, [r2, #0x8]\n\ - mov r9, r2\n\ - lsl r1, r7, #5\n\ - str r1, [sp, #0x4]\n\ - cmp r4, #0x8\n\ - ble _08004DFA\n\ - b _08004F94\n\ -_08004DFA:\n\ - cmp r0, #0x8\n\ - bgt _08004E84\n\ - mov r1, r8\n\ - str r3, [sp, #0x8]\n\ - add r2, r6, #0\n\ - add r2, r4\n\ - mov r8, r2\n\ - add r0, r1, r0\n\ - str r0, [sp, #0xC]\n\ - str r6, [sp, #0x10]\n\ - cmp r1, r0\n\ - bcc _08004E14\n\ - b _080052AA\n\ -_08004E14:\n\ - ldr r3, [sp, #0x8]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x8]\n\ - ldr r4, [sp, #0x10]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _08004E72\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08004E38:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _08004E6A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004E6A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004E38\n\ -_08004E72:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0xC]\n\ - cmp r1, r2\n\ - bcc _08004E14\n\ - b _080052AA\n\ - .pool\n\ -_08004E84:\n\ - mov r1, r8\n\ - str r3, [sp, #0x14]\n\ - ldr r3, [sp]\n\ - add r3, r4\n\ - mov r12, r3\n\ - add r2, r1, #0\n\ - add r2, #0x8\n\ - str r2, [sp, #0x18]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x1C]\n\ - mov r2, r12\n\ - str r2, [sp, #0x74]\n\ - ldr r3, [sp, #0x18]\n\ - str r3, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - cmp r1, r3\n\ - bcs _08004F0E\n\ -_08004EA8:\n\ - ldr r0, [sp, #0x14]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x14]\n\ - ldr r4, [sp, #0x1C]\n\ - add r2, r1, #0x1\n\ - mov r8, r2\n\ - cmp r4, r12\n\ - bcs _08004F06\n\ - mov r3, #0x7\n\ - mov r10, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r10\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_08004ECC:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004EFE\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r10\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004EFE:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004ECC\n\ -_08004F06:\n\ - mov r1, r8\n\ - ldr r2, [sp, #0x18]\n\ - cmp r1, r2\n\ - bcc _08004EA8\n\ -_08004F0E:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x40\n\ - str r3, [sp, #0x20]\n\ - ldr r0, [sp, #0x74]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x24]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x28]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ -_08004F28:\n\ - ldr r0, [sp, #0x20]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x20]\n\ - ldr r4, [sp, #0x28]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08004F86\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_08004F4C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004F7E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004F7E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004F4C\n\ -_08004F86:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x24]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ - .pool\n\ -_08004F94:\n\ - cmp r0, #0x8\n\ - ble _08004F9A\n\ - b _080050A4\n\ -_08004F9A:\n\ - mov r1, r8\n\ - str r3, [sp, #0x2C]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - add r0, r8\n\ - str r0, [sp, #0x30]\n\ - ldr r0, [sp]\n\ - str r0, [sp, #0x34]\n\ - ldr r2, [sp, #0x30]\n\ - str r2, [sp, #0x78]\n\ - str r3, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800501C\n\ -_08004FBA:\n\ - ldr r0, [sp, #0x2C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x2C]\n\ - ldr r4, [sp, #0x34]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r12\n\ - bcs _08005014\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, #0x7\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08004FDA:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800500C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800500C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004FDA\n\ -_08005014:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x30]\n\ - cmp r1, r2\n\ - bcc _08004FBA\n\ -_0800501C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002F90 + 0x20\n\ - str r3, [sp, #0x38]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x78]\n\ - str r3, [sp, #0x3C]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x40]\n\ - cmp r1, r3\n\ - bcc _08005038\n\ - b _080052AA\n\ -_08005038:\n\ - ldr r2, [sp, #0x38]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x38]\n\ - ldr r4, [sp, #0x40]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _08005096\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_0800505C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800508E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800508E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800505C\n\ -_08005096:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x3C]\n\ - cmp r1, r2\n\ - bcc _08005038\n\ - b _080052AA\n\ - .pool\n\ -_080050A4:\n\ - mov r1, r8\n\ - str r5, [sp, #0x44]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - mov r2, r8\n\ - add r2, #0x8\n\ - str r2, [sp, #0x48]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x4C]\n\ - str r2, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - mov r0, r12\n\ - str r0, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800512C\n\ -_080050CA:\n\ - ldr r2, [sp, #0x44]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x44]\n\ - ldr r4, [sp, #0x4C]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r12\n\ - bcs _08005124\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, #0x7\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_080050EA:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800511C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800511C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _080050EA\n\ -_08005124:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x48]\n\ - cmp r1, r2\n\ - bcc _080050CA\n\ -_0800512C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002F90 + 0x20\n\ - str r3, [sp, #0x50]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x88]\n\ - str r3, [sp, #0x54]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x58]\n\ - cmp r1, r3\n\ - bcs _080051AC\n\ -_08005146:\n\ - ldr r2, [sp, #0x50]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x50]\n\ - ldr r4, [sp, #0x58]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _080051A4\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_0800516A:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800519C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800519C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800516A\n\ -_080051A4:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x54]\n\ - cmp r1, r2\n\ - bcc _08005146\n\ -_080051AC:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x40\n\ - str r3, [sp, #0x5C]\n\ - ldr r0, [sp, #0x84]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x60]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x64]\n\ - cmp r1, r2\n\ - bcs _0800522A\n\ -_080051C4:\n\ - ldr r0, [sp, #0x5C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x5C]\n\ - ldr r4, [sp, #0x64]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08005222\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_080051E8:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800521A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800521A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _080051E8\n\ -_08005222:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x60]\n\ - cmp r1, r2\n\ - bcc _080051C4\n\ -_0800522A:\n\ - ldr r4, [sp, #0x84]\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x60\n\ - str r3, [sp, #0x68]\n\ - ldr r0, [sp, #0x7C]\n\ - add r0, r4\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x6C]\n\ - str r4, [sp, #0x70]\n\ - cmp r1, r2\n\ - bcs _080052AA\n\ -_08005244:\n\ - ldr r3, [sp, #0x68]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x68]\n\ - ldr r4, [sp, #0x70]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _080052A2\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08005268:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800529A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800529A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08005268\n\ -_080052A2:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x6C]\n\ - cmp r1, r2\n\ - bcc _08005244\n\ -_080052AA:\n\ - add sp, #0x8C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif // NONMATCHING - void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) { struct Window *window; @@ -1299,7 +592,7 @@ u16 Font0Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 0; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1311,7 +604,7 @@ u16 Font1Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 1; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1323,7 +616,7 @@ u16 Font2Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 2; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1335,7 +628,7 @@ u16 Font3Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 3; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1347,7 +640,7 @@ u16 Font4Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 4; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1359,7 +652,7 @@ u16 Font5Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 5; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1371,7 +664,7 @@ u16 Font7Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 7; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1383,7 +676,7 @@ u16 Font8Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 8; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1395,7 +688,7 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (gTextFlags.autoScroll == 1) + if (gTextFlags.autoScroll == TRUE) { subStruct->autoScrollDelay = 0; } @@ -1411,7 +704,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); const u8 *arrowTiles; - if (gTextFlags.autoScroll == 0) + if (!gTextFlags.autoScroll) { if (subStruct->downArrowDelay != 0) { @@ -1487,7 +780,7 @@ bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) { bool8 result = FALSE; - if (gTextFlags.autoScroll != 0) + if (gTextFlags.autoScroll) { result = TextPrinterWaitAutoMode(textPrinter); } @@ -1506,17 +799,14 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) bool16 TextPrinterWait(struct TextPrinter *textPrinter) { bool16 result = FALSE; - if (gTextFlags.autoScroll != 0) + if (gTextFlags.autoScroll) { result = TextPrinterWaitAutoMode(textPrinter); } - else + else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - { - result = TRUE; - PlaySE(SE_SELECT); - } + result = TRUE; + PlaySE(SE_SELECT); } return result; } @@ -1532,7 +822,7 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c else { FillWindowPixelRect(windowId, (bgColor << 4) | bgColor, x, y, 0x8, 0x10); - if (drawArrow == 0) + if (!drawArrow) { switch (gTextFlags.useAlternateDownArrow) { @@ -1609,22 +899,22 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; switch (currChar) { - case 1: + case EXT_CTRL_CODE_COLOR: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 2: + case EXT_CTRL_CODE_HIGHLIGHT: textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 3: + case EXT_CTRL_CODE_SHADOW: textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar; @@ -1633,63 +923,63 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 5: + case EXT_CTRL_CODE_PALETTE: textPrinter->printerTemplate.currentChar++; return 2; - case 6: + case EXT_CTRL_CODE_SIZE: subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case EXT_CTRL_CODE_UNKNOWN_7: + case EXT_CTRL_CODE_RESET_SIZE: return 2; - case 8: + case EXT_CTRL_CODE_PAUSE: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; textPrinter->state = 6; return 2; - case 9: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: textPrinter->state = 1; if (gTextFlags.autoScroll) subStruct->autoScrollDelay = 0; return 3; - case 10: + case EXT_CTRL_CODE_WAIT_SE: textPrinter->state = 5; return 3; - case 11: + case EXT_CTRL_CODE_PLAY_BGM: currChar = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; currChar |= *textPrinter->printerTemplate.currentChar << 8; textPrinter->printerTemplate.currentChar++; PlayBGM(currChar); return 2; - case 12: + case EXT_CTRL_CODE_ESCAPE: currChar = *textPrinter->printerTemplate.currentChar | 0x100; textPrinter->printerTemplate.currentChar++; break; - case 16: + case EXT_CTRL_CODE_PLAY_SE: currChar = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; currChar |= (*textPrinter->printerTemplate.currentChar << 8); textPrinter->printerTemplate.currentChar++; PlaySE(currChar); return 2; - case 13: + case EXT_CTRL_CODE_SHIFT_TEXT: textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 14: + case EXT_CTRL_CODE_SHIFT_DOWN: textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 15: + case EXT_CTRL_CODE_FILL_WINDOW: FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; return 2; - case 23: + case EXT_CTRL_CODE_PAUSE_MUSIC: m4aMPlayStop(&gMPlayInfo_BGM); return 2; - case 24: + case EXT_CTRL_CODE_RESUME_MUSIC: m4aMPlayContinue(&gMPlayInfo_BGM); return 2; case EXT_CTRL_CODE_CLEAR: @@ -1702,7 +992,7 @@ u16 RenderText(struct TextPrinter *textPrinter) return 0; } return 2; - case 18: + case EXT_CTRL_CODE_SKIP: textPrinter->printerTemplate.currentX = *textPrinter->printerTemplate.currentChar + textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentChar++; return 2; @@ -1724,10 +1014,10 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++; return 2; case EXT_CTRL_CODE_JPN: - textPrinter->japanese = 1; + textPrinter->japanese = TRUE; return 2; case EXT_CTRL_CODE_ENG: - textPrinter->japanese = 0; + textPrinter->japanese = FALSE; return 2; } break; @@ -1739,11 +1029,11 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->state = 3; TextPrinterInitDownArrowCounters(textPrinter); return 3; - case CHAR_SPECIAL_F9: + case CHAR_EXTRA_SYMBOL: currChar = *textPrinter->printerTemplate.currentChar | 0x100; textPrinter->printerTemplate.currentChar++; break; - case CHAR_SPECIAL_F8: + case CHAR_KEYPAD_ICON: currChar = *textPrinter->printerTemplate.currentChar++; gUnknown_03002F90.unk80 = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY); textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing; @@ -1788,13 +1078,10 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentX += width; } } + else if (textPrinter->japanese) + textPrinter->printerTemplate.currentX += (gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing); else - { - if (textPrinter->japanese) - textPrinter->printerTemplate.currentX += (gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing); - else - textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80; - } + textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80; return 0; case 1: if (TextPrinterWait(textPrinter)) @@ -1891,45 +1178,45 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) temp2 = strLocal[strPos++]; switch (temp2) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: ++strPos; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++strPos; - case 0x1: - case 0x2: - case 0x3: - case 0x5: - case 0x6: - case 0x8: - case 0xC: - case 0xD: - case 0xE: - case 0x11: - case 0x12: - case 0x13: - case 0x14: + case EXT_CTRL_CODE_COLOR: + case EXT_CTRL_CODE_HIGHLIGHT: + case EXT_CTRL_CODE_SHADOW: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_SIZE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: + case EXT_CTRL_CODE_CLEAR: + case EXT_CTRL_CODE_SKIP: + case EXT_CTRL_CODE_CLEAR_TO: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: ++strPos; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: case EXT_CTRL_CODE_JPN: case EXT_CTRL_CODE_ENG: default: break; } break; - case CHAR_SPECIAL_F7: + case CHAR_DYNAMIC: case PLACEHOLDER_BEGIN: ++strPos; break; case CHAR_PROMPT_SCROLL: case CHAR_PROMPT_CLEAR: break; - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: ++strPos; default: ++width; @@ -1999,19 +1286,19 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case PLACEHOLDER_BEGIN: switch (*++str) { - case 0x2: + case PLACEHOLDER_ID_STRING_VAR_1: bufferPointer = gStringVar1; break; - case 0x3: + case PLACEHOLDER_ID_STRING_VAR_2: bufferPointer = gStringVar2; break; - case 0x4: + case PLACEHOLDER_ID_STRING_VAR_3: bufferPointer = gStringVar3; break; default: return 0; } - case CHAR_SPECIAL_F7: + case CHAR_DYNAMIC: if (bufferPointer == NULL) bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str); while (*bufferPointer != EOS) @@ -2035,40 +1322,40 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case EXT_CTRL_CODE_BEGIN: switch (*++str) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: ++str; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++str; - case 0x1: - case 0x2: - case 0x3: - case 0x5: - case 0x8: - case 0xC: - case 0xD: - case 0xE: + case EXT_CTRL_CODE_COLOR: + case EXT_CTRL_CODE_HIGHLIGHT: + case EXT_CTRL_CODE_SHADOW: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: ++str; break; - case 0x6: + case EXT_CTRL_CODE_SIZE: func = GetFontWidthFunc(*++str); if (func == NULL) return 0; if (letterSpacing == -1) localLetterSpacing = GetFontAttribute(*str, FONTATTR_LETTER_SPACING); break; - case 0x11: + case EXT_CTRL_CODE_CLEAR: glyphWidth = *++str; lineWidth += glyphWidth; break; - case 0x12: + case EXT_CTRL_CODE_SKIP: lineWidth = *++str; break; - case 0x13: + case EXT_CTRL_CODE_CLEAR_TO: if (*++str > lineWidth) lineWidth = *str; break; - case 0x14: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: minGlyphWidth = *++str; break; case EXT_CTRL_CODE_JPN: @@ -2077,17 +1364,17 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case EXT_CTRL_CODE_ENG: isJapanese = 0; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: default: break; } break; - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: - if (*str == CHAR_SPECIAL_F9) + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: + if (*str == CHAR_EXTRA_SYMBOL) glyphWidth = func(*++str | 0x100, isJapanese); else glyphWidth = GetKeypadIconWidth(*++str); @@ -2146,11 +1433,11 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) SaveTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]); - fgColor = 1; - bgColor = 0; - shadowColor = 3; + fgColor = TEXT_COLOR_WHITE; + bgColor = TEXT_COLOR_TRANSPARENT; + shadowColor = TEXT_COLOR_LIGHT_GREY; - GenerateFontHalfRowLookupTable(1, 0, 3); + GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY); strLocal = str; strPos = 0; @@ -2163,54 +1450,54 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) temp2 = strLocal[strPos++]; switch (temp2) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: fgColor = strLocal[strPos++]; bgColor = strLocal[strPos++]; shadowColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x1: + case EXT_CTRL_CODE_COLOR: fgColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x2: + case EXT_CTRL_CODE_HIGHLIGHT: bgColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x3: + case EXT_CTRL_CODE_SHADOW: shadowColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x6: + case EXT_CTRL_CODE_SIZE: fontId = strLocal[strPos++]; break; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++strPos; - case 0x5: - case 0x8: - case 0xC: - case 0xD: - case 0xE: - case 0x11: - case 0x12: - case 0x13: - case 0x14: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: + case EXT_CTRL_CODE_CLEAR: + case EXT_CTRL_CODE_SKIP: + case EXT_CTRL_CODE_CLEAR_TO: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: ++strPos; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: case EXT_CTRL_CODE_JPN: case EXT_CTRL_CODE_ENG: default: continue; } break; - case CHAR_SPECIAL_F7: - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: + case CHAR_DYNAMIC: + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: case PLACEHOLDER_BEGIN: ++strPos; break; diff --git a/gflib/text.h b/gflib/text.h index 5b317600e..0829d748f 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -169,9 +169,9 @@ #define CHAR_a_DIAERESIS 0xF4 #define CHAR_o_DIAERESIS 0xF5 #define CHAR_u_DIAERESIS 0xF6 -#define CHAR_SPECIAL_F7 0xF7 -#define CHAR_SPECIAL_F8 0xF8 -#define CHAR_SPECIAL_F9 0xF9 +#define CHAR_DYNAMIC 0xF7 +#define CHAR_KEYPAD_ICON 0xF8 +#define CHAR_EXTRA_SYMBOL 0xF9 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code @@ -179,7 +179,22 @@ #define CHAR_NEWLINE 0xFE #define EOS 0xFF // end of string -// Special F9 chars +// CHAR_KEYPAD_ICON chars +#define CHAR_A_BUTTON 0x00 +#define CHAR_B_BUTTON 0x01 +#define CHAR_L_BUTTON 0x02 +#define CHAR_R_BUTTON 0x03 +#define CHAR_START_BUTTON 0x04 +#define CHAR_SELECT_BUTTON 0x05 +#define CHAR_DPAD_UP 0x06 +#define CHAR_DPAD_DOWN 0x07 +#define CHAR_DPAD_LEFT 0x08 +#define CHAR_DPAD_RIGHT 0x09 +#define CHAR_DPAD_UPDOWN 0x0A +#define CHAR_DPAD_LEFTRIGHT 0x0B +#define CHAR_DPAD_NONE 0x0C + +// CHAR_EXTRA_SYMBOL chars #define CHAR_UP_ARROW_2 0x00 #define CHAR_DOWN_ARROW_2 0x01 #define CHAR_LEFT_ARROW_2 0x02 @@ -191,18 +206,30 @@ #define CHAR_NO 0x08 #define CHAR_UNDERSCORE 0x09 -#define EXT_CTRL_CODE_COLOR 0x1 -#define EXT_CTRL_CODE_HIGHLIGHT 0x2 -#define EXT_CTRL_CODE_SHADOW 0x3 -// -#define EXT_CTRL_CODE_UNKNOWN_7 0x7 -// -#define EXT_CTRL_CODE_CLEAR 0x11 -// -#define EXT_CTRL_CODE_CLEAR_TO 0x13 -#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 -#define EXT_CTRL_CODE_JPN 0x15 -#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_COLOR 0x01 +#define EXT_CTRL_CODE_HIGHLIGHT 0x02 +#define EXT_CTRL_CODE_SHADOW 0x03 +#define EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW 0x04 +#define EXT_CTRL_CODE_PALETTE 0x05 +#define EXT_CTRL_CODE_SIZE 0x06 +#define EXT_CTRL_CODE_RESET_SIZE 0x07 +#define EXT_CTRL_CODE_PAUSE 0x08 +#define EXT_CTRL_CODE_PAUSE_UNTIL_PRESS 0x09 +#define EXT_CTRL_CODE_WAIT_SE 0x0A +#define EXT_CTRL_CODE_PLAY_BGM 0x0B +#define EXT_CTRL_CODE_ESCAPE 0x0C +#define EXT_CTRL_CODE_SHIFT_TEXT 0x0D +#define EXT_CTRL_CODE_SHIFT_DOWN 0x0E +#define EXT_CTRL_CODE_FILL_WINDOW 0x0F +#define EXT_CTRL_CODE_PLAY_SE 0x10 +#define EXT_CTRL_CODE_CLEAR 0x11 +#define EXT_CTRL_CODE_SKIP 0x12 +#define EXT_CTRL_CODE_CLEAR_TO 0x13 +#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 +#define EXT_CTRL_CODE_JPN 0x15 +#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_PAUSE_MUSIC 0x17 +#define EXT_CTRL_CODE_RESUME_MUSIC 0x18 #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 @@ -244,6 +271,13 @@ enum { + COLOR_FOREGROUND, + COLOR_SHADOW, + COLOR_BACKGROUND +}; + +enum +{ FONTATTR_MAX_LETTER_WIDTH, FONTATTR_MAX_LETTER_HEIGHT, FONTATTR_LETTER_SPACING, @@ -295,7 +329,7 @@ struct TextPrinter u8 delayCounter; u8 scrollDistance; u8 minLetterSpacing; // 0x20 - u8 japanese; + bool8 japanese; }; struct FontInfo @@ -345,7 +379,7 @@ struct Struct_03002F90 extern TextFlags gTextFlags; -extern u8 gUnknown_03002F84; +extern bool8 gUnknown_03002F84; extern struct Struct_03002F90 gUnknown_03002F90; void SetFontsPointer(const struct FontInfo *fonts); diff --git a/graphics/contest/heart.png b/graphics/contest/slider_heart.png Binary files differindex bd1ede8fc..bd1ede8fc 100644 --- a/graphics/contest/heart.png +++ b/graphics/contest/slider_heart.png diff --git a/graphics/unknown/unknown_587C30.pal b/graphics/contest/text.pal index 1c10c781f..1c10c781f 100644 --- a/graphics/unknown/unknown_587C30.pal +++ b/graphics/contest/text.pal diff --git a/graphics/field_effects/palettes/02.pal b/graphics/field_effects/palettes/ash.pal index e3a76c035..e3a76c035 100644 --- a/graphics/field_effects/palettes/02.pal +++ b/graphics/field_effects/palettes/ash.pal diff --git a/graphics/field_effects/palettes/06.pal b/graphics/field_effects/palettes/cut_grass.pal index e4a49a4b9..e4a49a4b9 100644 --- a/graphics/field_effects/palettes/06.pal +++ b/graphics/field_effects/palettes/cut_grass.pal diff --git a/graphics/field_effects/palettes/00.pal b/graphics/field_effects/palettes/general_0.pal index bbc9c778b..bbc9c778b 100644 --- a/graphics/field_effects/palettes/00.pal +++ b/graphics/field_effects/palettes/general_0.pal diff --git a/graphics/field_effects/palettes/01.pal b/graphics/field_effects/palettes/general_1.pal index 044e1c987..044e1c987 100644 --- a/graphics/field_effects/palettes/01.pal +++ b/graphics/field_effects/palettes/general_1.pal diff --git a/graphics/field_effects/palettes/05.pal b/graphics/field_effects/palettes/hof_monitor.pal index 468d7212c..468d7212c 100644 --- a/graphics/field_effects/palettes/05.pal +++ b/graphics/field_effects/palettes/hof_monitor.pal diff --git a/graphics/field_effects/palettes/10.pal b/graphics/field_effects/palettes/pokeball.pal index 6190709ed..6190709ed 100644 --- a/graphics/field_effects/palettes/10.pal +++ b/graphics/field_effects/palettes/pokeball.pal diff --git a/graphics/field_effects/palettes/04.pal b/graphics/field_effects/palettes/pokeball_glow.pal index 2dddefa5f..2dddefa5f 100644 --- a/graphics/field_effects/palettes/04.pal +++ b/graphics/field_effects/palettes/pokeball_glow.pal diff --git a/graphics/unknown/unknown_58E82C.pal b/graphics/field_effects/palettes/record_mix_lights.pal index 292acfd35..292acfd35 100644 --- a/graphics/unknown/unknown_58E82C.pal +++ b/graphics/field_effects/palettes/record_mix_lights.pal diff --git a/graphics/field_effects/palettes/07.pal b/graphics/field_effects/palettes/secret_power_cave.pal index 6d9e03c67..6d9e03c67 100644 --- a/graphics/field_effects/palettes/07.pal +++ b/graphics/field_effects/palettes/secret_power_cave.pal diff --git a/graphics/field_effects/palettes/08.pal b/graphics/field_effects/palettes/secret_power_plant.pal index 4c41030f6..4c41030f6 100644 --- a/graphics/field_effects/palettes/08.pal +++ b/graphics/field_effects/palettes/secret_power_plant.pal diff --git a/graphics/field_effects/palettes/03.pal b/graphics/field_effects/palettes/small_sparkle.pal index b170eb1f5..b170eb1f5 100644 --- a/graphics/field_effects/palettes/03.pal +++ b/graphics/field_effects/palettes/small_sparkle.pal diff --git a/graphics/field_effects/pics/lavaridge_gym_warp.png b/graphics/field_effects/pics/ash_launch.png Binary files differindex 26b852200..26b852200 100644 --- a/graphics/field_effects/pics/lavaridge_gym_warp.png +++ b/graphics/field_effects/pics/ash_launch.png diff --git a/graphics/field_effects/pics/jump_out_of_ash.png b/graphics/field_effects/pics/ash_puff.png Binary files differindex 3247b8169..3247b8169 100644 --- a/graphics/field_effects/pics/jump_out_of_ash.png +++ b/graphics/field_effects/pics/ash_puff.png diff --git a/graphics/field_effects/pics/bike_hop_big_splash.png b/graphics/field_effects/pics/jump_big_splash.png Binary files differindex 171d23457..171d23457 100644 --- a/graphics/field_effects/pics/bike_hop_big_splash.png +++ b/graphics/field_effects/pics/jump_big_splash.png diff --git a/graphics/field_effects/pics/bike_hop_small_splash.png b/graphics/field_effects/pics/jump_small_splash.png Binary files differindex e98ded025..e98ded025 100644 --- a/graphics/field_effects/pics/bike_hop_small_splash.png +++ b/graphics/field_effects/pics/jump_small_splash.png diff --git a/graphics/field_effects/pics/bike_hop_tall_grass.png b/graphics/field_effects/pics/jump_tall_grass.png Binary files differindex c43da9f28..c43da9f28 100755 --- a/graphics/field_effects/pics/bike_hop_tall_grass.png +++ b/graphics/field_effects/pics/jump_tall_grass.png diff --git a/graphics/field_effects/pics/record_mix_lights.png b/graphics/field_effects/pics/record_mix_lights.png Binary files differnew file mode 100644 index 000000000..b6d3d6537 --- /dev/null +++ b/graphics/field_effects/pics/record_mix_lights.png diff --git a/graphics/field_effects/pics/unknown_29.png b/graphics/field_effects/pics/sand_pile.png Binary files differindex 03f89a5f5..03f89a5f5 100644 --- a/graphics/field_effects/pics/unknown_29.png +++ b/graphics/field_effects/pics/sand_pile.png diff --git a/graphics/unknown/858E674/0.png b/graphics/field_effects/pics/sand_pillar/0.png Binary files differindex 64b61050f..64b61050f 100644 --- a/graphics/unknown/858E674/0.png +++ b/graphics/field_effects/pics/sand_pillar/0.png diff --git a/graphics/unknown/858E674/1.png b/graphics/field_effects/pics/sand_pillar/1.png Binary files differindex 05cd8f396..05cd8f396 100644 --- a/graphics/unknown/858E674/1.png +++ b/graphics/field_effects/pics/sand_pillar/1.png diff --git a/graphics/unknown/858E674/2.png b/graphics/field_effects/pics/sand_pillar/2.png Binary files differindex d5dd69078..d5dd69078 100644 --- a/graphics/unknown/858E674/2.png +++ b/graphics/field_effects/pics/sand_pillar/2.png diff --git a/graphics/field_effects/pics/secret_power_cave.png b/graphics/field_effects/pics/secret_power_cave.png Binary files differnew file mode 100644 index 000000000..445b275f3 --- /dev/null +++ b/graphics/field_effects/pics/secret_power_cave.png diff --git a/graphics/field_effects/pics/secret_power_shrub.png b/graphics/field_effects/pics/secret_power_shrub.png Binary files differnew file mode 100644 index 000000000..322643372 --- /dev/null +++ b/graphics/field_effects/pics/secret_power_shrub.png diff --git a/graphics/field_effects/pics/secret_power_tree.png b/graphics/field_effects/pics/secret_power_tree.png Binary files differnew file mode 100644 index 000000000..879741784 --- /dev/null +++ b/graphics/field_effects/pics/secret_power_tree.png diff --git a/graphics/field_effects/pics/unknown_35.png b/graphics/field_effects/pics/small_sparkle.png Binary files differindex b2072bd26..b2072bd26 100644 --- a/graphics/field_effects/pics/unknown_35.png +++ b/graphics/field_effects/pics/small_sparkle.png diff --git a/graphics/field_effects/pics/berry_tree_growth_sparkle.png b/graphics/field_effects/pics/sparkle.png Binary files differindex 2910c2a49..2910c2a49 100644 --- a/graphics/field_effects/pics/berry_tree_growth_sparkle.png +++ b/graphics/field_effects/pics/sparkle.png diff --git a/graphics/field_effects/pics/unknown_18.png b/graphics/field_effects/pics/unused_grass_2.png Binary files differindex 65f4d97e2..65f4d97e2 100644 --- a/graphics/field_effects/pics/unknown_18.png +++ b/graphics/field_effects/pics/unused_grass_2.png diff --git a/graphics/field_effects/pics/unused_grass.png b/graphics/field_effects/pics/unused_grass_3.png Binary files differindex ffd68ec1d..ffd68ec1d 100644 --- a/graphics/field_effects/pics/unused_grass.png +++ b/graphics/field_effects/pics/unused_grass_3.png diff --git a/graphics/field_effects/pics/unknown_19.png b/graphics/field_effects/pics/unused_sand.png Binary files differindex 4ae851e58..4ae851e58 100644 --- a/graphics/field_effects/pics/unknown_19.png +++ b/graphics/field_effects/pics/unused_sand.png diff --git a/graphics/field_effects/pics/unknown_20.png b/graphics/field_effects/pics/water_surfacing.png Binary files differindex 7d6af5e0c..7d6af5e0c 100644 --- a/graphics/field_effects/pics/unknown_20.png +++ b/graphics/field_effects/pics/water_surfacing.png diff --git a/graphics/unknown/unknown_55C1B0.png b/graphics/misc/deoxys_rock_fragment_bottom_left.png Binary files differindex 3f5b8d5c3..3f5b8d5c3 100644 --- a/graphics/unknown/unknown_55C1B0.png +++ b/graphics/misc/deoxys_rock_fragment_bottom_left.png diff --git a/graphics/unknown/unknown_55C1D0.png b/graphics/misc/deoxys_rock_fragment_bottom_right.png Binary files differindex 7684451e4..7684451e4 100644 --- a/graphics/unknown/unknown_55C1D0.png +++ b/graphics/misc/deoxys_rock_fragment_bottom_right.png diff --git a/graphics/unknown/unknown_55C170.png b/graphics/misc/deoxys_rock_fragment_top_left.png Binary files differindex d601cb6e5..d601cb6e5 100644 --- a/graphics/unknown/unknown_55C170.png +++ b/graphics/misc/deoxys_rock_fragment_top_left.png diff --git a/graphics/unknown/unknown_55C190.png b/graphics/misc/deoxys_rock_fragment_top_right.png Binary files differindex 01f10cd07..01f10cd07 100644 --- a/graphics/unknown/unknown_55C190.png +++ b/graphics/misc/deoxys_rock_fragment_top_right.png diff --git a/graphics/misc/big_hof_monitor.png b/graphics/misc/hof_monitor_big.png Binary files differindex 510e6a232..510e6a232 100644 --- a/graphics/misc/big_hof_monitor.png +++ b/graphics/misc/hof_monitor_big.png diff --git a/graphics/misc/small_hof_monitor.png b/graphics/misc/hof_monitor_small.png Binary files differindex dcff33095..dcff33095 100644 --- a/graphics/misc/small_hof_monitor.png +++ b/graphics/misc/hof_monitor_small.png diff --git a/graphics/pokenav/862A5D4.pal b/graphics/misc/trainer_hill_ereader.pal index 4b0812f09..4b0812f09 100644 --- a/graphics/pokenav/862A5D4.pal +++ b/graphics/misc/trainer_hill_ereader.pal diff --git a/graphics/unknown/unknown_DD4544.bin b/graphics/naming_screen/background.bin Binary files differindex 7e3604311..7e3604311 100644 --- a/graphics/unknown/unknown_DD4544.bin +++ b/graphics/naming_screen/background.bin diff --git a/graphics/naming_screen/right_pointing_triangle.png b/graphics/naming_screen/input_arrow.png Binary files differindex e07b9e5a8..e07b9e5a8 100644 --- a/graphics/naming_screen/right_pointing_triangle.png +++ b/graphics/naming_screen/input_arrow.png diff --git a/graphics/naming_screen/0.pal b/graphics/naming_screen/keyboard.pal index e38b79fcf..e38b79fcf 100644 --- a/graphics/naming_screen/0.pal +++ b/graphics/naming_screen/keyboard.pal diff --git a/graphics/unknown/unknown_DD46E0.bin b/graphics/naming_screen/keyboard_lower.bin Binary files differindex 64095dce5..64095dce5 100644 --- a/graphics/unknown/unknown_DD46E0.bin +++ b/graphics/naming_screen/keyboard_lower.bin diff --git a/graphics/unknown/unknown_DD47A0.bin b/graphics/naming_screen/keyboard_symbols.bin Binary files differindex 847486432..847486432 100644 --- a/graphics/unknown/unknown_DD47A0.bin +++ b/graphics/naming_screen/keyboard_symbols.bin diff --git a/graphics/unknown/unknown_DD4620.bin b/graphics/naming_screen/keyboard_upper.bin Binary files differindex bc4260b1f..bc4260b1f 100644 --- a/graphics/unknown/unknown_DD4620.bin +++ b/graphics/naming_screen/keyboard_upper.bin diff --git a/graphics/naming_screen/keyboard_button.png b/graphics/naming_screen/page_button.png Binary files differindex e5a004894..e5a004894 100644 --- a/graphics/naming_screen/keyboard_button.png +++ b/graphics/naming_screen/page_button.png diff --git a/graphics/naming_screen/pc_icon/0.png b/graphics/naming_screen/pc_icon/off.png Binary files differindex bafd5c32d..bafd5c32d 100644 --- a/graphics/naming_screen/pc_icon/0.png +++ b/graphics/naming_screen/pc_icon/off.png diff --git a/graphics/naming_screen/pc_icon/1.png b/graphics/naming_screen/pc_icon/on.png Binary files differindex e2f9d604c..e2f9d604c 100644 --- a/graphics/naming_screen/pc_icon/1.png +++ b/graphics/naming_screen/pc_icon/on.png diff --git a/graphics/naming_screen/1.pal b/graphics/naming_screen/unused.pal index c3158adbf..c3158adbf 100644 --- a/graphics/naming_screen/1.pal +++ b/graphics/naming_screen/unused.pal diff --git a/graphics/interface/85DFC0C.bin b/graphics/pokeblock/use_screen/graph_data.bin Binary files differindex 5f8f364fc..5f8f364fc 100644 --- a/graphics/interface/85DFC0C.bin +++ b/graphics/pokeblock/use_screen/graph_data.bin diff --git a/graphics/interface/85DFB60.bin b/graphics/pokeblock/use_screen/mon_frame.bin Binary files differindex 4e7c2d4ad..4e7c2d4ad 100644 --- a/graphics/interface/85DFB60.bin +++ b/graphics/pokeblock/use_screen/mon_frame.bin diff --git a/graphics/interface/85DFA80.png b/graphics/pokeblock/use_screen/mon_frame.png Binary files differindex c1fde0325..c1fde0325 100644 --- a/graphics/interface/85DFA80.png +++ b/graphics/pokeblock/use_screen/mon_frame.png diff --git a/graphics/interface/85DFA60.bin b/graphics/pokeblock/use_screen/mon_frame_pal.bin Binary files differindex b1a4230d4..b1a4230d4 100644 --- a/graphics/interface/85DFA60.bin +++ b/graphics/pokeblock/use_screen/mon_frame_pal.bin diff --git a/graphics/pokenav/cancel.pal b/graphics/pokenav/condition/cancel.pal index f32b77d07..f32b77d07 100644 --- a/graphics/pokenav/cancel.pal +++ b/graphics/pokenav/condition/cancel.pal diff --git a/graphics/pokenav/cancel.png b/graphics/pokenav/condition/cancel.png Binary files differindex 1d57a4488..1d57a4488 100644 --- a/graphics/pokenav/cancel.png +++ b/graphics/pokenav/condition/cancel.png diff --git a/graphics/pokenav/condition.bin b/graphics/pokenav/condition/graph.bin Binary files differindex 4c04c5f0d..4c04c5f0d 100644 --- a/graphics/pokenav/condition.bin +++ b/graphics/pokenav/condition/graph.bin diff --git a/graphics/pokenav/condition.png b/graphics/pokenav/condition/graph.png Binary files differindex eadd2c0aa..eadd2c0aa 100644 --- a/graphics/pokenav/condition.png +++ b/graphics/pokenav/condition/graph.png diff --git a/graphics/pokenav/86231E8.pal b/graphics/pokenav/condition/graph_data.pal index 98c309d52..98c309d52 100644 --- a/graphics/pokenav/86231E8.pal +++ b/graphics/pokenav/condition/graph_data.pal diff --git a/graphics/pokenav/marker.png b/graphics/pokenav/condition/marker.png Binary files differindex 818446557..818446557 100644 --- a/graphics/pokenav/marker.png +++ b/graphics/pokenav/condition/marker.png diff --git a/graphics/pokenav/pokeball.png b/graphics/pokenav/condition/pokeball.png Binary files differindex 9eb7d9165..9eb7d9165 100644 --- a/graphics/pokenav/pokeball.png +++ b/graphics/pokenav/condition/pokeball.png diff --git a/graphics/pokenav/pokeball_placeholder.png b/graphics/pokenav/condition/pokeball_placeholder.png Binary files differindex 84c74462d..84c74462d 100644 --- a/graphics/pokenav/pokeball_placeholder.png +++ b/graphics/pokenav/condition/pokeball_placeholder.png diff --git a/graphics/pokenav/sparkle.png b/graphics/pokenav/condition/sparkle.png Binary files differindex 5949b376e..5949b376e 100644 --- a/graphics/pokenav/sparkle.png +++ b/graphics/pokenav/condition/sparkle.png diff --git a/graphics/pokenav/8623208.pal b/graphics/pokenav/condition/text.pal index 7c8a71275..7c8a71275 100644 --- a/graphics/pokenav/8623208.pal +++ b/graphics/pokenav/condition/text.pal diff --git a/graphics/roulette/85B5BFC.pal b/graphics/roulette/85B5BFC.pal deleted file mode 100644 index ed68618ff..000000000 --- a/graphics/roulette/85B5BFC.pal +++ /dev/null @@ -1,259 +0,0 @@ -JASC-PAL -0100 -256 -82 156 49 -41 41 41 -98 98 115 -172 180 197 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 0 -74 106 156 -41 41 41 -98 98 115 -156 156 164 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -74 106 156 -41 41 41 -123 123 131 -172 180 197 -255 255 255 -238 238 156 -189 180 106 -131 90 32 -255 131 90 -189 106 98 -230 222 255 -74 189 156 -255 255 255 -123 180 172 -255 255 255 -255 255 255 -74 106 156 -57 57 65 -98 98 115 -156 156 164 -255 255 255 -106 205 205 -246 98 90 -106 156 255 -255 255 255 -156 255 106 -246 230 74 -255 230 123 -255 255 255 -255 255 156 -156 255 148 -205 156 255 -74 106 156 -41 41 41 -98 98 115 -205 205 213 -255 255 255 -123 238 139 -255 172 139 -16 156 74 -197 164 255 -49 106 32 -115 197 131 -197 139 189 -255 82 57 -255 238 82 -205 180 8 -255 205 8 -74 106 156 -106 139 230 -82 115 205 -255 255 255 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 255 -74 106 156 -255 246 65 -255 255 164 -255 246 65 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -172 255 238 -222 255 255 -148 255 238 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -65 65 57 -74 106 156 -255 205 255 -255 222 255 -255 197 255 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 255 -74 106 156 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -74 106 156 -255 246 82 -164 255 222 -172 180 197 -255 255 255 -255 246 65 -246 205 24 -238 197 98 -205 172 90 -164 131 90 -156 246 222 -90 213 180 -131 222 172 -115 189 156 -98 148 148 -65 65 57 -74 106 156 -238 189 238 -156 148 148 -172 180 197 -255 255 255 -255 205 255 -222 156 230 -197 156 197 -172 139 172 -139 106 148 -205 205 230 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -238 230 246 -205 205 230 -172 180 197 -255 255 255 -255 255 230 -255 255 164 -255 255 255 -222 255 255 -255 246 255 -255 222 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 diff --git a/graphics/roulette/85B5DFC.bin b/graphics/roulette/grid.bin Binary files differindex 6950027c3..6950027c3 100644 --- a/graphics/roulette/85B5DFC.bin +++ b/graphics/roulette/grid.bin diff --git a/graphics/roulette/poke_icons.png b/graphics/roulette/grid_icons.png Binary files differindex 91a2f301f..91a2f301f 100644 --- a/graphics/roulette/poke_icons.png +++ b/graphics/roulette/grid_icons.png diff --git a/graphics/roulette/85B65D0.pal b/graphics/roulette/unused_1.pal index 9d44b25c8..9d44b25c8 100644 --- a/graphics/roulette/85B65D0.pal +++ b/graphics/roulette/unused_1.pal diff --git a/graphics/roulette/85B65F0.pal b/graphics/roulette/unused_2.pal index 81b0328a5..81b0328a5 100644 --- a/graphics/roulette/85B65F0.pal +++ b/graphics/roulette/unused_2.pal diff --git a/graphics/roulette/85B6610.pal b/graphics/roulette/unused_3.pal index 42a1bae94..42a1bae94 100644 --- a/graphics/roulette/85B6610.pal +++ b/graphics/roulette/unused_3.pal diff --git a/graphics/roulette/85B6630.pal b/graphics/roulette/unused_4.pal index ff76379c8..ff76379c8 100644 --- a/graphics/roulette/85B6630.pal +++ b/graphics/roulette/unused_4.pal diff --git a/graphics/roulette/wheel_map.bin b/graphics/roulette/wheel.bin Binary files differindex 53d919545..53d919545 100644 --- a/graphics/roulette/wheel_map.bin +++ b/graphics/roulette/wheel.bin diff --git a/graphics/slot_machine/reel_time.png b/graphics/slot_machine/digital_display.png Binary files differindex 4ba92175f..8295aeca2 100644 --- a/graphics/slot_machine/reel_time.png +++ b/graphics/slot_machine/digital_display.png diff --git a/graphics/slot_machine/85A843E.pal b/graphics/slot_machine/flashing_lights_inside.pal index e4d2436c7..e4d2436c7 100644 --- a/graphics/slot_machine/85A843E.pal +++ b/graphics/slot_machine/flashing_lights_inside.pal diff --git a/graphics/slot_machine/85A845E.pal b/graphics/slot_machine/flashing_lights_middle.pal index db8703d47..db8703d47 100644 --- a/graphics/slot_machine/85A845E.pal +++ b/graphics/slot_machine/flashing_lights_middle.pal diff --git a/graphics/slot_machine/85A847E.pal b/graphics/slot_machine/flashing_lights_outside.pal index 4bb9a0b4d..4bb9a0b4d 100644 --- a/graphics/slot_machine/85A847E.pal +++ b/graphics/slot_machine/flashing_lights_outside.pal diff --git a/graphics/slot_machine/slots_layout.bin b/graphics/slot_machine/info_box.bin Binary files differindex 4009d8177..4009d8177 100644 --- a/graphics/slot_machine/slots_layout.bin +++ b/graphics/slot_machine/info_box.bin diff --git a/graphics/slot_machine/85A84B0.pal b/graphics/slot_machine/pokeball_shining_0.pal index 3e1dbc024..3e1dbc024 100644 --- a/graphics/slot_machine/85A84B0.pal +++ b/graphics/slot_machine/pokeball_shining_0.pal diff --git a/graphics/slot_machine/85A84D0.pal b/graphics/slot_machine/pokeball_shining_1.pal index 38b1c125d..38b1c125d 100644 --- a/graphics/slot_machine/85A84D0.pal +++ b/graphics/slot_machine/pokeball_shining_1.pal diff --git a/graphics/slot_machine/85A84F0.pal b/graphics/slot_machine/pokeball_shining_2.pal index f4abe23f1..f4abe23f1 100644 --- a/graphics/slot_machine/85A84F0.pal +++ b/graphics/slot_machine/pokeball_shining_2.pal diff --git a/graphics/unknown/unknown_DD19F8.bin b/graphics/slot_machine/reel_background.bin index 6338ade28..6338ade28 100644 --- a/graphics/unknown/unknown_DD19F8.bin +++ b/graphics/slot_machine/reel_background.bin diff --git a/graphics/slot_machine/reel_pikachu.png b/graphics/slot_machine/reel_pikachu.png Binary files differdeleted file mode 100644 index 29b004c84..000000000 --- a/graphics/slot_machine/reel_pikachu.png +++ /dev/null diff --git a/graphics/unknown/unknown_DD1A18.png b/graphics/slot_machine/reel_time_number_gap.png Binary files differindex 8b4a564bf..8b4a564bf 100644 --- a/graphics/unknown/unknown_DD1A18.png +++ b/graphics/slot_machine/reel_time_number_gap.png diff --git a/graphics/slot_machine/85A96E0.bin b/graphics/slot_machine/reel_time_window.bin index 3aa89e7b4..3aa89e7b4 100644 --- a/graphics/slot_machine/85A96E0.bin +++ b/graphics/slot_machine/reel_time_window.bin diff --git a/graphics/slot_machine/spr6.pal b/graphics/slot_machine/spr6.pal deleted file mode 100644 index 4f74a3079..000000000 --- a/graphics/slot_machine/spr6.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 98 90 -255 189 16 -131 0 0 -197 65 16 -197 65 16 -197 65 16 -197 65 16 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -0 0 0 diff --git a/graphics/unknown/858E588/0.png b/graphics/unknown/858E588/0.png Binary files differdeleted file mode 100644 index 70b0774b0..000000000 --- a/graphics/unknown/858E588/0.png +++ /dev/null diff --git a/graphics/unknown/858E588/1.png b/graphics/unknown/858E588/1.png Binary files differdeleted file mode 100644 index e176b5f73..000000000 --- a/graphics/unknown/858E588/1.png +++ /dev/null diff --git a/graphics/unknown/858E588/2.png b/graphics/unknown/858E588/2.png Binary files differdeleted file mode 100644 index c006bb660..000000000 --- a/graphics/unknown/858E588/2.png +++ /dev/null diff --git a/graphics/unknown/858E588/3.png b/graphics/unknown/858E588/3.png Binary files differdeleted file mode 100644 index 67a3cf769..000000000 --- a/graphics/unknown/858E588/3.png +++ /dev/null diff --git a/graphics/unknown/858E588/4.png b/graphics/unknown/858E588/4.png Binary files differdeleted file mode 100644 index e2a5aec4f..000000000 --- a/graphics/unknown/858E588/4.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/0.png b/graphics/unknown/858E5B0/0.png Binary files differdeleted file mode 100644 index afd104d7c..000000000 --- a/graphics/unknown/858E5B0/0.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/1.png b/graphics/unknown/858E5B0/1.png Binary files differdeleted file mode 100644 index 026b9b7af..000000000 --- a/graphics/unknown/858E5B0/1.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/2.png b/graphics/unknown/858E5B0/2.png Binary files differdeleted file mode 100644 index 360e2ab63..000000000 --- a/graphics/unknown/858E5B0/2.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/3.png b/graphics/unknown/858E5B0/3.png Binary files differdeleted file mode 100644 index 88672c182..000000000 --- a/graphics/unknown/858E5B0/3.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/4.png b/graphics/unknown/858E5B0/4.png Binary files differdeleted file mode 100644 index 660ad331d..000000000 --- a/graphics/unknown/858E5B0/4.png +++ /dev/null diff --git a/graphics/unknown/858E5B0/5.png b/graphics/unknown/858E5B0/5.png Binary files differdeleted file mode 100644 index 7006e9cc9..000000000 --- a/graphics/unknown/858E5B0/5.png +++ /dev/null diff --git a/graphics/unknown/858E5D8/0.png b/graphics/unknown/858E5D8/0.png Binary files differdeleted file mode 100644 index 110b1dd0a..000000000 --- a/graphics/unknown/858E5D8/0.png +++ /dev/null diff --git a/graphics/unknown/858E5D8/1.png b/graphics/unknown/858E5D8/1.png Binary files differdeleted file mode 100644 index f50079de7..000000000 --- a/graphics/unknown/858E5D8/1.png +++ /dev/null diff --git a/graphics/unknown/858E5D8/2.png b/graphics/unknown/858E5D8/2.png Binary files differdeleted file mode 100644 index a54bb3d12..000000000 --- a/graphics/unknown/858E5D8/2.png +++ /dev/null diff --git a/graphics/unknown/858E5D8/3.png b/graphics/unknown/858E5D8/3.png Binary files differdeleted file mode 100644 index 0ea6e43c9..000000000 --- a/graphics/unknown/858E5D8/3.png +++ /dev/null diff --git a/graphics/unknown/858E5D8/4.png b/graphics/unknown/858E5D8/4.png Binary files differdeleted file mode 100644 index 4b4e300bb..000000000 --- a/graphics/unknown/858E5D8/4.png +++ /dev/null diff --git a/graphics/unknown/858E84C/0.png b/graphics/unknown/858E84C/0.png Binary files differdeleted file mode 100644 index 4673403e0..000000000 --- a/graphics/unknown/858E84C/0.png +++ /dev/null diff --git a/graphics/unknown/858E84C/1.png b/graphics/unknown/858E84C/1.png Binary files differdeleted file mode 100644 index c55f2146d..000000000 --- a/graphics/unknown/858E84C/1.png +++ /dev/null diff --git a/graphics/unknown/858E84C/2.png b/graphics/unknown/858E84C/2.png Binary files differdeleted file mode 100644 index 4f03b50ae..000000000 --- a/graphics/unknown/858E84C/2.png +++ /dev/null diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 42fe82155..019f382eb 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -483,7 +483,7 @@ $(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ $(ROULETTEGFXDIR)/tailow.4bpp @cat $^ >$@ -$(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ +$(ROULETTEGFXDIR)/wheel_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ $(ROULETTEGFXDIR)/azurill.4bpp \ $(ROULETTEGFXDIR)/skitty.4bpp \ $(ROULETTEGFXDIR)/makuhita.4bpp diff --git a/include/battle.h b/include/battle.h index ab01f255b..0ebc9fe01 100644 --- a/include/battle.h +++ b/include/battle.h @@ -124,22 +124,22 @@ struct ProtectStruct u32 flinchImmobility:1; u32 notFirstStrike:1; u32 palaceUnableToUseMove:1; - u32 physicalDmg; - u32 specialDmg; + s32 physicalDmg; + s32 specialDmg; u8 physicalBattlerId; u8 specialBattlerId; }; struct SpecialStatus { - u8 statLowered:1; - u8 lightningRodRedirected:1; - u8 restoredBattlerSprite: 1; - u8 intimidatedMon:1; - u8 traced:1; - u8 ppNotAffectedByPressure:1; - u8 flag40:1; - u8 focusBanded:1; + u32 statLowered:1; + u32 lightningRodRedirected:1; + u32 restoredBattlerSprite: 1; + u32 intimidatedMon:1; + u32 traced:1; + u32 ppNotAffectedByPressure:1; + u32 flag40:1; + u32 focusBanded:1; s32 dmg; s32 physicalDmg; s32 specialDmg; @@ -254,7 +254,7 @@ struct BattleResults u16 playerMon2Species; // 0x26 u16 caughtMonSpecies; // 0x28 u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; // 0x2A - u8 filler35[1]; // 0x35 + u8 filler35; // 0x35 u8 catchAttempts[11]; // 0x36 }; diff --git a/include/battle_message.h b/include/battle_message.h index a3f2636e5..011a1cb0c 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -274,7 +274,7 @@ extern const u8 gText_PkmnGettingPumped[]; extern const u8 gText_PkmnShroudedInMist[]; extern const u8 gText_PkmnsXPreventsSwitching[]; extern const u8 gText_TheGreatNewHope[]; -extern const u8 gText_WillChampinshipDreamComeTrue[]; +extern const u8 gText_WillChampionshipDreamComeTrue[]; extern const u8 gText_AFormerChampion[]; extern const u8 gText_ThePreviousChampion[]; extern const u8 gText_TheUnbeatenChampion[]; diff --git a/include/battle_transition.h b/include/battle_transition.h index 6581d6413..a33032fb4 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -9,7 +9,7 @@ bool8 FldEff_Pokeball(void); void TransitionPhase1_Task_RunFuncs(u8 taskId); void GetBg0TilesDst(u16 **tilemap, u16 **tileset); -extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; +extern const struct SpritePalette gSpritePalette_Pokeball; enum // TRANSITION_MUGSHOT { diff --git a/include/battle_util.h b/include/battle_util.h index b77fa10ad..157ba8eb6 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -52,8 +52,8 @@ void CancelMultiTurnMoves(u8 battlerId); bool8 WasUnableToUseMove(u8 battlerId); void PrepareStringBattle(u16 stringId, u8 battlerId); void ResetSentPokesToOpponentValue(void); -void sub_803F9EC(u8 battlerId); -void sub_803FA70(u8 battlerId); +void OpponentSwitchInResetSentPokesToOpponentValue(u8 battlerId); +void UpdateSentPokesToOpponentValue(u8 battlerId); void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); diff --git a/include/constants/battle.h b/include/constants/battle.h index 8b860e384..fa8f422c4 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -186,7 +186,7 @@ #define HITMARKER_x4000000 (1 << 26) #define HITMARKER_CHARGING (1 << 27) #define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28) -#define HITMARKER_FAINTED2(battler) (1 << (28 + battler)) +#define HITMARKER_FAINTED2(battler) ((1 << 28) << battler) // Per-side statuses that affect an entire party #define SIDE_STATUS_REFLECT (1 << 0) diff --git a/include/constants/coins.h b/include/constants/coins.h index 3ae3bb23f..e65e981d6 100644 --- a/include/constants/coins.h +++ b/include/constants/coins.h @@ -2,5 +2,6 @@ #define GUARD_CONSTANTS_COINS_H #define MAX_COINS 9999 +#define MAX_COIN_DIGITS 4 #endif // GUARD_CONSTANTS_COINS_H diff --git a/include/constants/contest.h b/include/constants/contest.h index 2de2866a3..9eb6b26e4 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -1,9 +1,9 @@ #ifndef GUARD_CONSTANTS_CONTEST_H #define GUARD_CONSTANTS_CONTEST_H -#define CONTESTANT_COUNT 4 #define APPLAUSE_METER_SIZE 5 -#define CONTEST_TURN_COUNT 5 +#define CONTEST_NUM_APPEALS 5 +#define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1) #define LINK_CONTEST_FLAG_IS_LINK (1 << 0) #define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) @@ -22,13 +22,6 @@ #define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1) #define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1) -#define CONTEST_CATEGORY_COOL 0 -#define CONTEST_CATEGORY_BEAUTY 1 -#define CONTEST_CATEGORY_CUTE 2 -#define CONTEST_CATEGORY_SMART 3 -#define CONTEST_CATEGORY_TOUGH 4 -#define CONTEST_CATEGORIES_COUNT 5 - #define CONTEST_WINNER_ARTIST 0 // Winner shown by the artist, painting not necessarily saved #define CONTEST_WINNER_HALL_1 1 #define CONTEST_WINNER_HALL_2 2 @@ -52,4 +45,165 @@ #define CANT_ENTER_CONTEST_EGG 3 #define CANT_ENTER_CONTEST_FAINTED 4 +#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0) +#define CONTEST_AI_CHECK_COMBO (1 << 1) +#define CONTEST_AI_CHECK_BORING (1 << 2) +#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3) +#define CONTEST_AI_CHECK_ORDER (1 << 4) +#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5) +#define CONTEST_AI_ERRATIC (1 << 6) +#define CONTEST_AI_DUMMY_1 (1 << 7) +#define CONTEST_AI_DUMMY_2 (1 << 8) +#define CONTEST_AI_DUMMY_3 (1 << 9) +#define CONTEST_AI_DUMMY_4 (1 << 10) +#define CONTEST_AI_DUMMY_5 (1 << 11) +#define CONTEST_AI_DUMMY_6 (1 << 12) +#define CONTEST_AI_DUMMY_7 (1 << 13) +#define CONTEST_AI_DUMMY_8 (1 << 14) +#define CONTEST_AI_DUMMY_9 (1 << 15) +#define CONTEST_AI_DUMMY_10 (1 << 16) +#define CONTEST_AI_DUMMY_11 (1 << 17) +#define CONTEST_AI_DUMMY_12 (1 << 18) +#define CONTEST_AI_DUMMY_13 (1 << 19) +#define CONTEST_AI_DUMMY_14 (1 << 20) +#define CONTEST_AI_DUMMY_15 (1 << 21) +#define CONTEST_AI_DUMMY_16 (1 << 22) +#define CONTEST_AI_DUMMY_17 (1 << 23) +#define CONTEST_AI_DUMMY_18 (1 << 24) +#define CONTEST_AI_DUMMY_19 (1 << 25) +#define CONTEST_AI_DUMMY_20 (1 << 26) +#define CONTEST_AI_DUMMY_21 (1 << 27) +#define CONTEST_AI_DUMMY_22 (1 << 28) +#define CONTEST_AI_DUMMY_23 (1 << 29) +#define CONTEST_AI_DUMMY_24 (1 << 30) +#define CONTEST_AI_DUMMY_25 (1 << 31) + +// The below scripts are used by every AI contest opponent +// It includes every non-dummy script +#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \ + CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \ + CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5) + +#define CONTEST_EFFECT_HIGHLY_APPEALING 0 +#define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1 +#define CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES 2 +#define CONTEST_EFFECT_REPETITION_NOT_BORING 3 +#define CONTEST_EFFECT_AVOID_STARTLE_ONCE 4 +#define CONTEST_EFFECT_AVOID_STARTLE 5 +#define CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY 6 +#define CONTEST_EFFECT_USER_LESS_EASILY_STARTLED 7 +#define CONTEST_EFFECT_STARTLE_FRONT_MON 8 +#define CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS 9 +#define CONTEST_EFFECT_STARTLE_PREV_MON 10 +#define CONTEST_EFFECT_STARTLE_PREV_MONS 11 +#define CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON 12 +#define CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS 13 +#define CONTEST_EFFECT_STARTLE_PREV_MON_2 14 +#define CONTEST_EFFECT_STARTLE_PREV_MONS_2 15 +#define CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION 16 +#define CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION 17 +#define CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN 18 +#define CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL 19 +#define CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL 20 +#define CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL 21 +#define CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL 22 +#define CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL 23 +#define CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL 24 +#define CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS 25 +#define CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS 26 +#define CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS 27 +#define CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION 28 +#define CONTEST_EFFECT_BETTER_IF_FIRST 29 +#define CONTEST_EFFECT_BETTER_IF_LAST 30 +#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES 31 +#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE 32 +#define CONTEST_EFFECT_BETTER_WHEN_LATER 33 +#define CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING 34 +#define CONTEST_EFFECT_BETTER_IF_SAME_TYPE 35 +#define CONTEST_EFFECT_BETTER_IF_DIFF_TYPE 36 +#define CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL 37 +#define CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS 38 +#define CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION 39 +#define CONTEST_EFFECT_NEXT_APPEAL_EARLIER 40 +#define CONTEST_EFFECT_NEXT_APPEAL_LATER 41 +#define CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER 42 +#define CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER 43 +#define CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST 44 +#define CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS 45 +#define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46 +#define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47 + +// Each of the above effects is grouped into one of these effect type categories +// Only a few of these get checked by the AI, the rest go unused +#define CONTEST_EFFECT_TYPE_APPEAL 0 +#define CONTEST_EFFECT_TYPE_AVOID_STARTLE 1 +#define CONTEST_EFFECT_TYPE_STARTLE_MON 2 +#define CONTEST_EFFECT_TYPE_STARTLE_MONS 3 +#define CONTEST_EFFECT_TYPE_WORSEN 4 +#define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5 +#define CONTEST_EFFECT_TYPE_TURN_ORDER 6 + +#define COMBO_STARTER_RAIN_DANCE 1 +#define COMBO_STARTER_RAGE 2 +#define COMBO_STARTER_FOCUS_ENERGY 3 +#define COMBO_STARTER_HYPNOSIS 4 +#define COMBO_STARTER_ENDURE 5 +#define COMBO_STARTER_HORN_ATTACK 6 +#define COMBO_STARTER_SWORDS_DANCE 7 +#define COMBO_STARTER_STOCKPILE 8 +#define COMBO_STARTER_SUNNY_DAY 9 +#define COMBO_STARTER_REST 10 +#define COMBO_STARTER_VICE_GRIP 11 +#define COMBO_STARTER_DEFENSE_CURL 12 +#define COMBO_STARTER_CHARGE 13 +#define COMBO_STARTER_ROCK_THROW 14 +#define COMBO_STARTER_YAWN 15 +#define COMBO_STARTER_SCARY_FACE 16 +#define COMBO_STARTER_POWDER_SNOW 17 +#define COMBO_STARTER_LOCK_ON 18 +#define COMBO_STARTER_SOFT_BOILED 19 +#define COMBO_STARTER_MEAN_LOOK 20 +#define COMBO_STARTER_SCRATCH 21 +#define COMBO_STARTER_GROWTH 22 +#define COMBO_STARTER_HAIL 23 +#define COMBO_STARTER_SANDSTORM 24 +#define COMBO_STARTER_BELLY_DRUM 25 +#define COMBO_STARTER_MIND_READER 26 +#define COMBO_STARTER_DRAGON_BREATH 27 +#define COMBO_STARTER_DRAGON_RAGE 28 +#define COMBO_STARTER_DRAGON_DANCE 29 +#define COMBO_STARTER_SURF 30 +#define COMBO_STARTER_DIVE 31 +#define COMBO_STARTER_STRING_SHOT 32 +#define COMBO_STARTER_LEER 33 +#define COMBO_STARTER_TAUNT 34 +#define COMBO_STARTER_CHARM 35 +#define COMBO_STARTER_HARDEN 36 +#define COMBO_STARTER_SING 37 +#define COMBO_STARTER_EARTHQUAKE 38 +#define COMBO_STARTER_DOUBLE_TEAM 39 +#define COMBO_STARTER_CURSE 40 +#define COMBO_STARTER_SWEET_SCENT 41 +#define COMBO_STARTER_SLUDGE 42 +#define COMBO_STARTER_SLUDGE_BOMB 43 +#define COMBO_STARTER_THUNDER_PUNCH 44 +#define COMBO_STARTER_FIRE_PUNCH 45 +#define COMBO_STARTER_ICE_PUNCH 46 +#define COMBO_STARTER_PECK 47 +#define COMBO_STARTER_METAL_SOUND 48 +#define COMBO_STARTER_MUD_SPORT 49 +#define COMBO_STARTER_WATER_SPORT 50 +#define COMBO_STARTER_BONE_CLUB 51 +#define COMBO_STARTER_BONEMERANG 52 +#define COMBO_STARTER_BONE_RUSH 53 +#define COMBO_STARTER_SAND_ATTACK 54 +#define COMBO_STARTER_MUD_SLAP 55 +#define COMBO_STARTER_FAKE_OUT 56 +#define COMBO_STARTER_PSYCHIC 57 +#define COMBO_STARTER_KINESIS 58 +#define COMBO_STARTER_CONFUSION 59 +#define COMBO_STARTER_POUND 60 +#define COMBO_STARTER_SMOG 61 +#define COMBO_STARTER_CALM_MIND 62 + #endif // GUARD_CONSTANTS_CONTEST_H diff --git a/include/constants/daycare.h b/include/constants/daycare.h index 103f920f2..adb62fab5 100644 --- a/include/constants/daycare.h +++ b/include/constants/daycare.h @@ -22,6 +22,6 @@ // Array buffers #define EGG_MOVES_ARRAY_COUNT 10 -#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 +#define EGG_LVL_UP_MOVES_ARRAY_COUNT (MAX_LEVEL_UP_MOVES > 50 ? MAX_LEVEL_UP_MOVES : 50) #endif //GUARD_DAYCARE_CONSTANTS_H diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index 00ca60457..dc1085f7c 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -20,10 +20,10 @@ #define FLDEFF_JUMP_SMALL_SPLASH 16 #define FLDEFF_LONG_GRASS 17 #define FLDEFF_JUMP_LONG_GRASS 18 -#define FLDEFF_UNKNOWN_19 19 -#define FLDEFF_UNKNOWN_20 20 -#define FLDEFF_UNKNOWN_21 21 -#define FLDEFF_UNKNOWN_22 22 +#define FLDEFF_UNUSED_GRASS 19 +#define FLDEFF_UNUSED_GRASS_2 20 +#define FLDEFF_UNUSED_SAND 21 +#define FLDEFF_WATER_SURFACING 22 #define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23 #define FLDEFF_DEEP_SAND_FOOTPRINTS 24 #define FLDEFF_POKECENTER_HEAL 25 @@ -50,8 +50,8 @@ #define FLDEFF_HEART_ICON 46 #define FLDEFF_NOP_47 47 #define FLDEFF_NOP_48 48 -#define FLDEFF_POP_OUT_OF_ASH 49 -#define FLDEFF_LAVARIDGE_GYM_WARP 50 +#define FLDEFF_ASH_PUFF 49 +#define FLDEFF_ASH_LAUNCH 50 #define FLDEFF_SWEET_SCENT 51 #define FLDEFF_SAND_PILLAR 52 #define FLDEFF_BUBBLES 53 @@ -65,8 +65,59 @@ #define FLDEFF_PCTURN_ON 61 #define FLDEFF_HALL_OF_FAME_RECORD 62 #define FLDEFF_USE_TELEPORT 63 -#define FLDEFF_RAYQUAZA 64 -#define FLDEFF_65 65 +#define FLDEFF_RAYQUAZA_SPOTLIGHT 64 +#define FLDEFF_DESTROY_DEOXYS_ROCK 65 #define FLDEFF_MOVE_DEOXYS_ROCK 66 -#endif +#define FLDEFFOBJ_SHADOW_S 0 +#define FLDEFFOBJ_SHADOW_M 1 +#define FLDEFFOBJ_SHADOW_L 2 +#define FLDEFFOBJ_SHADOW_XL 3 +#define FLDEFFOBJ_TALL_GRASS 4 +#define FLDEFFOBJ_RIPPLE 5 +#define FLDEFFOBJ_ASH 6 +#define FLDEFFOBJ_SURF_BLOB 7 +#define FLDEFFOBJ_ARROW 8 +#define FLDEFFOBJ_GROUND_IMPACT_DUST 9 +#define FLDEFFOBJ_JUMP_TALL_GRASS 10 +#define FLDEFFOBJ_SAND_FOOTPRINTS 11 +#define FLDEFFOBJ_JUMP_BIG_SPLASH 12 +#define FLDEFFOBJ_SPLASH 13 +#define FLDEFFOBJ_JUMP_SMALL_SPLASH 14 +#define FLDEFFOBJ_LONG_GRASS 15 +#define FLDEFFOBJ_JUMP_LONG_GRASS 16 +#define FLDEFFOBJ_UNUSED_GRASS 17 +#define FLDEFFOBJ_UNUSED_GRASS_2 18 +#define FLDEFFOBJ_UNUSED_SAND 19 +#define FLDEFFOBJ_WATER_SURFACING 20 +#define FLDEFFOBJ_REFLECTION_DISTORTION 21 +#define FLDEFFOBJ_SPARKLE 22 +#define FLDEFFOBJ_DEEP_SAND_FOOTPRINTS 23 +#define FLDEFFOBJ_TREE_DISGUISE 24 +#define FLDEFFOBJ_MOUNTAIN_DISGUISE 25 +#define FLDEFFOBJ_BIRD 26 +#define FLDEFFOBJ_BIKE_TIRE_TRACKS 27 +#define FLDEFFOBJ_SAND_DISGUISE 28 +#define FLDEFFOBJ_SAND_PILE 29 +#define FLDEFFOBJ_SHORT_GRASS 30 +#define FLDEFFOBJ_HOT_SPRINGS_WATER 31 +#define FLDEFFOBJ_ASH_PUFF 32 +#define FLDEFFOBJ_ASH_LAUNCH 33 +#define FLDEFFOBJ_BUBBLES 34 +#define FLDEFFOBJ_SMALL_SPARKLE 35 +#define FLDEFFOBJ_RAYQUAZA 36 + +#define FLDEFF_PAL_TAG_CUT_GRASS 0x1000 +#define FLDEFF_PAL_TAG_SECRET_POWER_TREE 0x1003 +#define FLDEFF_PAL_TAG_GENERAL_0 0x1004 +#define FLDEFF_PAL_TAG_GENERAL_1 0x1005 +#define FLDEFF_PAL_TAG_POKEBALL_GLOW 0x1007 +#define FLDEFF_PAL_TAG_SECRET_POWER_PLANT 0x1008 +#define FLDEFF_PAL_TAG_POKEBALL 0x1009 +#define FLDEFF_PAL_TAG_ASH 0x100D +#define FLDEFF_PAL_TAG_SAND_PILLAR 0x100E +#define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F +#define FLDEFF_PAL_TAG_HOF_MONITOR 0x1010 +#define FLDEFF_PAL_TAG_UNKNOWN 0x1011 + +#endif // GUARD_FIELD_EFFECT_CONSTANTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 485dd3058..2490a6244 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -768,7 +768,7 @@ #define FLAG_HIDE_PETALBURG_WOODS_AQUA_GRUNT 0x2D5 #define FLAG_HIDE_PETALBURG_CITY_WALLY 0x2D6 #define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_INVISIBLE_NINJA_BOY 0x2D7 -#define FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT 0x2D8 +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM 0x2D8 #define FLAG_UNUSED_0x2D9 0x2D9 // Unused Flag @@ -866,13 +866,13 @@ #define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE 0x335 #define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE 0x336 #define FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA 0x337 -#define FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE 0x338 +#define FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD 0x338 #define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339 // Unused, leftover from R/S #define FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE 0x33A #define FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE 0x33B #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE 0x33C #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE 0x33D -#define FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE 0x33E +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD 0x33E #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS 0x33F #define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER 0x340 #define FLAG_HIDE_GRANITE_CAVE_STEVEN 0x341 diff --git a/include/constants/global.h b/include/constants/global.h index 98f15e7dc..55830ae8b 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -60,6 +60,14 @@ #define MAX_MON_MOVES 4 #define NUM_STATS 6 +#define CONTESTANT_COUNT 4 +#define CONTEST_CATEGORY_COOL 0 +#define CONTEST_CATEGORY_BEAUTY 1 +#define CONTEST_CATEGORY_CUTE 2 +#define CONTEST_CATEGORY_SMART 3 +#define CONTEST_CATEGORY_TOUGH 4 +#define CONTEST_CATEGORIES_COUNT 5 + // party sizes #define PARTY_SIZE 6 #define MULTI_PARTY_SIZE PARTY_SIZE / 2 diff --git a/include/constants/items.h b/include/constants/items.h index ba4d3c49e..9496a4c61 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -497,6 +497,11 @@ #define MAX_PC_ITEM_CAPACITY 999 #define MAX_BERRY_CAPACITY 999 +// Secondary IDs for rods +#define OLD_ROD 0 +#define GOOD_ROD 1 +#define SUPER_ROD 2 + // Check if the item is one that can be used on a Pokemon. #define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) diff --git a/include/constants/layouts.h b/include/constants/layouts.h index 3e876f499..500b82cd4 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -1,6 +1,10 @@ #ifndef GUARD_CONSTANTS_LAYOUTS_H #define GUARD_CONSTANTS_LAYOUTS_H +// +// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json +// + #define LAYOUT_PETALBURG_CITY 1 #define LAYOUT_SLATEPORT_CITY 2 #define LAYOUT_MAUVILLE_CITY 3 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 17fe7ab53..aef9924fa 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -1,6 +1,10 @@ #ifndef GUARD_CONSTANTS_MAP_GROUPS_H #define GUARD_CONSTANTS_MAP_GROUPS_H +// +// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json +// + // Map Group 0 #define MAP_PETALBURG_CITY (0 | (0 << 8)) #define MAP_SLATEPORT_CITY (1 | (0 << 8)) diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h index 26de3ebc6..68d360955 100644 --- a/include/constants/map_scripts.h +++ b/include/constants/map_scripts.h @@ -1,6 +1,41 @@ #ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H #define GUARD_CONSTANTS_MAP_SCRIPTS_H +/* + IDs for special scripts that can be run for a particular map. + For the functions that handle when they are run, see these constants' uses in src/script.c + + Below describes when a script of this kind will be called, and what it typically does. + They are numbered in the order that they will be called when entering a map (from a warp or camera transition). + NOTE: These descriptions are just of what they generally do, not what they always or have to do + + 3. ON_LOAD: Run after the layout is loaded (but not drawn yet). + Almost exclusively used to set metatiles on the map before it's first drawn + + 6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed. + This is a table of scripts that each run if their condition is satisfied. + Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress + + 2. ON_TRANSITION: Run during the transition to the map + Used to set map-specific flags/vars, update object positions/movement types, set weather, etc + + 5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded. + This is a table of scripts that each run if their condition is satisfied. + Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility) + Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var + + 4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle) + Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge) + In some maps this takes the metatile setting job of ON_LOAD + + 1. ON_DIVE_WARP: Run after the player chooses to dive/emerge. + Only used once, to determine whether or not the player should emerge in the Sealed Chamber + + x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map) + Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island) + +*/ + #define MAP_SCRIPT_ON_LOAD 1 #define MAP_SCRIPT_ON_FRAME_TABLE 2 #define MAP_SCRIPT_ON_TRANSITION 3 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 586107687..f7405f46a 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -289,31 +289,31 @@ #define METATILE_EverGrande_Door_PokemonLeague 0x21D // gTileset_PokemonCenter -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame0 0x280 -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame1 0x282 -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame2 0x284 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame0 0x281 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame1 0x283 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame2 0x285 -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame0 0x288 -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame1 0x28A -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame2 0x28C -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame0 0x289 -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame1 0x28B -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame2 0x28D -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame0 0x2A0 -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame1 0x2A2 -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame2 0x2A4 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame0 0x2A1 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame1 0x2A3 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame2 0x2A5 -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame0 0x2A8 -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame1 0x2AA -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame2 0x2AC -#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC -#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4 -#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E -#define METATILE_PokemonCenter_CounterBarrier 0x25D +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 0x280 +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame1 0x282 +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame2 0x284 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 0x281 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame1 0x283 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame2 0x285 +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 0x288 +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame1 0x28A +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame2 0x28C +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 0x289 +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame1 0x28B +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame2 0x28D +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame0 0x2A0 +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame1 0x2A2 +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 0x2A4 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame0 0x2A1 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame1 0x2A3 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 0x2A5 +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame0 0x2A8 +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame1 0x2AA +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 0x2AC +#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC +#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4 +#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E +#define METATILE_PokemonCenter_CounterBarrier 0x25D // gTileset_InsideOfTruck #define METATILE_InsideOfTruck_ExitLight_Top 0x208 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 0d8fc6a57..52eabe71b 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -84,6 +84,10 @@ #define NUM_NATURE_STATS NUM_STATS - 1 // excludes HP #define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion +#define MIN_STAT_STAGE 0 +#define DEFAULT_STAT_STAGE 6 +#define MAX_STAT_STAGE 12 + // Shiny odds #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 @@ -200,6 +204,8 @@ #define LEVEL_UP_MOVE_LV 0xFE00 #define LEVEL_UP_END 0xFFFF +#define MAX_LEVEL_UP_MOVES 20 + #define MON_MALE 0x00 #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF @@ -226,6 +232,7 @@ #define STATUS_PRIMARY_POKERUS 6 #define STATUS_PRIMARY_FAINTED 7 +#define MAX_PER_STAT_EVS 255 #define MAX_TOTAL_EVS 510 #define EV_ITEM_RAISE_LIMIT 100 diff --git a/include/constants/roulette.h b/include/constants/roulette.h new file mode 100644 index 000000000..2ab17e476 --- /dev/null +++ b/include/constants/roulette.h @@ -0,0 +1,7 @@ +#ifndef GUARD_CONSTANTS_ROULETTE_H +#define GUARD_CONSTANTS_ROULETTE_H + +// Flag set in gSpecialVar_0x8004 when playing Roulette on a Game Corner service day +#define ROULETTE_SPECIAL_RATE (1 << 7) + +#endif // GUARD_CONSTANTS_ROULETTE_H diff --git a/include/constants/slot_machine.h b/include/constants/slot_machine.h index 9ecf46d79..81848f208 100644 --- a/include/constants/slot_machine.h +++ b/include/constants/slot_machine.h @@ -1,42 +1,6 @@ #ifndef GUARD_CONSTANTS_SLOT_MACHINE_H #define GUARD_CONSTANTS_SLOT_MACHINE_H -#define NUM_REELS 3 -#define REEL_NUM_TAGS 21 -#define REEL_TAG_HEIGHT 24 #define SLOT_MACHINE_COUNT 12 -// Lucky Flags -#define LUCKY_BIAS_REPLAY (1 << 0) -#define LUCKY_BIAS_CHERRY (1 << 1) -#define LUCKY_BIAS_LOTAD (1 << 2) -#define LUCKY_BIAS_AZURILL (1 << 3) -#define LUCKY_BIAS_POWER (1 << 4) -#define LUCKY_BIAS_REELTIME (1 << 5) -#define LUCKY_BIAS_MIXED_777 (1 << 6) -#define LUCKY_BIAS_777 (1 << 7) - -#define SLOT_MACHINE_TAG_7_RED 0 -#define SLOT_MACHINE_TAG_7_BLUE 1 -#define SLOT_MACHINE_TAG_AZURILL 2 -#define SLOT_MACHINE_TAG_LOTAD 3 -#define SLOT_MACHINE_TAG_CHERRY 4 -#define SLOT_MACHINE_TAG_POWER 5 -#define SLOT_MACHINE_TAG_REPLAY 6 - -#define SLOT_MACHINE_MATCHED_1CHERRY 0 -#define SLOT_MACHINE_MATCHED_2CHERRY 1 -#define SLOT_MACHINE_MATCHED_REPLAY 2 -#define SLOT_MACHINE_MATCHED_LOTAD 3 -#define SLOT_MACHINE_MATCHED_AZURILL 4 -#define SLOT_MACHINE_MATCHED_POWER 5 -#define SLOT_MACHINE_MATCHED_777_MIXED 6 -#define SLOT_MACHINE_MATCHED_777_RED 7 -#define SLOT_MACHINE_MATCHED_777_BLUE 8 -#define SLOT_MACHINE_MATCHED_NONE 9 - -#define LEFT_REEL 0 -#define MIDDLE_REEL 1 -#define RIGHT_REEL 2 - -#endif // GUARD_CONSTANTS_SLOT_MACHINE_H
\ No newline at end of file +#endif // GUARD_CONSTANTS_SLOT_MACHINE_H diff --git a/include/constants/songs.h b/include/constants/songs.h index b44c9f7a8..a78ee6faf 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -1,543 +1,548 @@ #ifndef GUARD_CONSTANTS_SONGS_H #define GUARD_CONSTANTS_SONGS_H -#define MUS_DUMMY 0 -#define SE_KAIFUKU 1 // Healing Item -#define SE_PC_LOGIN 2 // PC Logon -#define SE_PC_OFF 3 // PC Shutdown -#define SE_PC_ON 4 // PC Startup -#define SE_SELECT 5 // Cursor Selection -#define SE_WIN_OPEN 6 // Start Menu -#define SE_WALL_HIT 7 // Wall Bump -#define SE_DOOR 8 // Opening Door -#define SE_KAIDAN 9 // Stairs -#define SE_DANSA 10 // Ledge -#define SE_JITENSYA 11 // Bicycle Bell -#define SE_KOUKA_L 12 // Not Very Effective -#define SE_KOUKA_M 13 // Normal Effectiveness -#define SE_KOUKA_H 14 // Super Effective -#define SE_BOWA2 15 // Pokémon Withdrawal -#define SE_POKE_DEAD 16 // Pokémon Fainted -#define SE_NIGERU 17 // Flee from Wild Battle -#define SE_JIDO_DOA 18 // Pokémon Center Door -#define SE_NAMINORI 19 // Briney's Ship -#define SE_BAN 20 // Bang -#define SE_PIN 21 // Exclamation Bubble -#define SE_BOO 22 // Contest Jam -#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle -#define SE_JYUNI 24 // Places in Contest Appearing -#define SE_A 25 // Bard A -#define SE_I 26 // Bard I -#define SE_U 27 // Bard U -#define SE_E 28 // Bard E -#define SE_O 29 // Bard O -#define SE_N 30 // Bard N -#define SE_SEIKAI 31 // Success -#define SE_HAZURE 32 // Failure -#define SE_EXP 33 // Exp. Bar -#define SE_JITE_PYOKO 34 // Bunny Hop -#define SE_MU_PACHI 35 -#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch -#define SE_FU_ZAKU 37 -#define SE_FU_ZAKU2 38 -#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp -#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear -#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking -#define SE_RU_BARI 42 // Sootopolis Gym - Walking on Ice -#define SE_RU_HYUU 43 // Falling Down -#define SE_KI_GASYAN 44 -#define SE_TK_WARPIN 45 // Warp In -#define SE_TK_WARPOUT 46 // Warp Out -#define SE_TU_SAA 47 // Repel -#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym -#define SE_TRACK_MOVE 49 // Moving Truck -#define SE_TRACK_STOP 50 // Moving Truck Stop -#define SE_TRACK_HAIKI 51 // Moving Truck Unload -#define SE_TRACK_DOOR 52 // Moving Truck Door -#define SE_MOTER 53 -#define SE_CARD 54 -#define SE_SAVE 55 // Save -#define SE_KON 56 // Poké Ball Bounce 1 -#define SE_KON2 57 // Poké Ball Bounce 2 -#define SE_KON3 58 // Poké Ball Bounce 3 -#define SE_KON4 59 // Poké Ball Bounce 4 -#define SE_SUIKOMU 60 // Poké Ball Trade -#define SE_NAGERU 61 // Poké Ball Throw -#define SE_TOY_C 62 // Note C -#define SE_TOY_D 63 // Note D -#define SE_TOY_E 64 // Note E -#define SE_TOY_F 65 // Note F -#define SE_TOY_G 66 // Note G -#define SE_TOY_A 67 // Note A -#define SE_TOY_B 68 // Note B -#define SE_TOY_C1 69 // Note High C -#define SE_MIZU 70 // Puddle -#define SE_HASHI 71 // Boardwalk -#define SE_DAUGI 72 // Slots Credits -#define SE_PINPON 73 // Ding-dong! -#define SE_FUUSEN1 74 // Red Balloon -#define SE_FUUSEN2 75 // Blue Balloon -#define SE_FUUSEN3 76 // Yellow Balloon -#define SE_TOY_KABE 77 // Breakable Door -#define SE_TOY_DANGO 78 // Mud Ball -#define SE_DOKU 79 // Overworld Poison Damage -#define SE_ESUKA 80 // Escalator -#define SE_T_AME 81 // Rain -#define SE_T_AME_E 82 // Rain Stop -#define SE_T_OOAME 83 // Heavy Rain -#define SE_T_OOAME_E 84 // Heavy Rain Stop -#define SE_T_KOAME 85 // Light Rain -#define SE_T_KOAME_E 86 // Light Rain Stop -#define SE_T_KAMI 87 // Thunder -#define SE_T_KAMI2 88 // Thunder 2 -#define SE_ELEBETA 89 // Elevator -#define SE_HINSI 90 // Low Health -#define SE_EXPMAX 91 // Exp. Max -#define SE_TAMAKORO 92 // Roulette Ball -#define SE_TAMAKORO_E 93 // Roulette Ball 2 -#define SE_BASABASA 94 -#define SE_REGI 95 // Cash Register -#define SE_C_GAJI 96 // Contest Hearts -#define SE_C_MAKU_U 97 // Contest Curtain rise -#define SE_C_MAKU_D 98 // Contest Curtain fall -#define SE_C_PASI 99 -#define SE_C_SYU 100 -#define SE_C_PIKON 101 // Pokémon Appears in Contest -#define SE_REAPOKE 102 // Shiny Pokémon -#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh -#define SE_BT_START 104 // Battle Mugshot whoosh -#define SE_DENDOU 105 // Audience Cheering -#define SE_JIHANKI 106 // Vending Machine -#define SE_TAMA 107 // Orb Used -#define SE_Z_SCROLL 108 // Pokédex Scrolling -#define SE_Z_PAGE 109 // Pokédex Page -#define SE_PN_ON 110 // PokéNav On -#define SE_PN_OFF 111 // PokéNav Off -#define SE_Z_SEARCH 112 // Pokédex Search -#define SE_TAMAGO 113 // Egg hatch -#define SE_TB_START 114 // Battle - Poké Ball Tray slide in -#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound -#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out -#define SE_BIDORO 117 -#define SE_W085 118 // Thunderbolt -#define SE_W085B 119 // Thunderbolt 2 -#define SE_W231 120 // Harden -#define SE_W171 121 // Nightmare -#define SE_W233 122 // Vital Throw -#define SE_W233B 123 // Vital Throw 2 -#define SE_W145 124 // Bubble -#define SE_W145B 125 // Bubble 2 -#define SE_W145C 126 // Bubble 3 -#define SE_W240 127 // Rain Dance -#define SE_W015 128 // Cut -#define SE_W081 129 // String Shot -#define SE_W081B 130 // String Shot 2 -#define SE_W088 131 // Rock Throw -#define SE_W016 132 // Gust -#define SE_W016B 133 // Gust 2 -#define SE_W003 134 // DoubleSlap -#define SE_W104 135 // Double Team -#define SE_W013 136 // Razor Wind -#define SE_W196 137 // Icy Wind -#define SE_W086 138 // Thunder Wave -#define SE_W004 139 // Comet Punch -#define SE_W025 140 // Mega Kick -#define SE_W025B 141 // Mega Kick 2 -#define SE_W152 142 // Crabhammer -#define SE_W026 143 // Jump Kick -#define SE_W172 144 // Flame Wheel -#define SE_W172B 145 // Flame Wheel 2 -#define SE_W053 146 // Flamethrower -#define SE_W007 147 // Fire Punch -#define SE_W092 148 // Toxic -#define SE_W221 149 // Sacred Fire -#define SE_W221B 150 // Sacred Fire 2 -#define SE_W052 151 // Ember -#define SE_W036 152 // Take Down -#define SE_W059 153 // Blizzard -#define SE_W059B 154 // Blizzard 2 -#define SE_W010 155 // Scratch -#define SE_W011 156 // Vicegrip -#define SE_W017 157 // Wing Attack -#define SE_W019 158 // Fly -#define SE_W028 159 // Sand-Attack -#define SE_W013B 160 // Razor Wind 2 -#define SE_W044 161 // Bite -#define SE_W029 162 // Headbutt -#define SE_W057 163 // Surf -#define SE_W056 164 // Hydro Pump -#define SE_W250 165 // Whirlpool -#define SE_W030 166 // Horn Attack -#define SE_W039 167 // Tail Whip -#define SE_W054 168 // Mist -#define SE_W077 169 // PoisonPowder -#define SE_W020 170 // Bind -#define SE_W082 171 // Dragon Rage -#define SE_W047 172 // Sing -#define SE_W195 173 // Perish Song -#define SE_W006 174 // Pay Day -#define SE_W091 175 // Dig -#define SE_W146 176 // Dizzy Punch -#define SE_W120 177 // Self-Destruct -#define SE_W153 178 // Explosion -#define SE_W071B 179 // Absorb 2 -#define SE_W071 180 // Absorb -#define SE_W103 181 // Screech -#define SE_W062 182 // BubbleBeam -#define SE_W062B 183 // BubbleBeam 2 -#define SE_W048 184 // Supersonic -#define SE_W187 185 // Belly Drum -#define SE_W118 186 // Metronome -#define SE_W155 187 // Bonemerang -#define SE_W122 188 // Lick -#define SE_W060 189 // Psybeam -#define SE_W185 190 // Faint Attack -#define SE_W014 191 // Swords Dance -#define SE_W043 192 // Leer -#define SE_W207 193 // Swagger -#define SE_W207B 194 // Swagger 2 -#define SE_W215 195 // Heal Bell -#define SE_W109 196 // Confuse Ray -#define SE_W173 197 // Snore -#define SE_W280 198 // Brick Break -#define SE_W202 199 // Giga Drain -#define SE_W060B 200 // Psybeam 2 -#define SE_W076 201 // SolarBeam -#define SE_W080 202 // Petal Dance -#define SE_W100 203 // Teleport -#define SE_W107 204 // Minimize -#define SE_W166 205 // Sketch -#define SE_W129 206 // Swift -#define SE_W115 207 // Reflect -#define SE_W112 208 // Barrier -#define SE_W197 209 // Detect -#define SE_W199 210 // Lock-On -#define SE_W236 211 // Moonlight -#define SE_W204 212 // Charm -#define SE_W268 213 // Charge -#define SE_W070 214 // Strength -#define SE_W063 215 // Hyper Beam -#define SE_W127 216 // Waterfall -#define SE_W179 217 // Reversal -#define SE_W151 218 // Acid Armor -#define SE_W201 219 // Sandstorm -#define SE_W161 220 // Tri-Attack -#define SE_W161B 221 // Tri-Attack 2 -#define SE_W227 222 // Encore -#define SE_W227B 223 // Encore 2 -#define SE_W226 224 // Baton Pass -#define SE_W208 225 // Milk Drink -#define SE_W213 226 // Attract -#define SE_W213B 227 // Attract 2 -#define SE_W234 228 // Morning Sun -#define SE_W260 229 // Flatter -#define SE_W328 230 // Sand Tomb -#define SE_W320 231 // GrassWhistle -#define SE_W255 232 // Spit Up -#define SE_W291 233 // Dive -#define SE_W089 234 // Earthquake -#define SE_W239 235 // Twister -#define SE_W230 236 // Sweet Scent -#define SE_W281 237 // Yawn -#define SE_W327 238 // Sky Uppercut -#define SE_W287 239 // Stat Increased -#define SE_W257 240 // Heat Wave -#define SE_W253 241 // Uproar -#define SE_W258 242 // Hail -#define SE_W322 243 // Cosmic Power -#define SE_W298 244 // Teeter Dance -#define SE_W287B 245 // Stat Decreased -#define SE_W114 246 // Haze -#define SE_W063B 247 // Hyper Beam 2 -// FRLG SFX below -#define SE_RG_W_DOOR 248 // Door -#define SE_RG_CARD1 249 // Trainer Card 1 -#define SE_RG_CARD2 250 // Trainer Card 2 -#define SE_RG_CARD3 251 // Trainer Card 3 -#define SE_RG_BAG1 252 // Bag Scroll -#define SE_RG_BAG2 253 // Bag Pocket Change -#define SE_RG_GETTING 254 -#define SE_RG_SHOP 255 // Cash Register -#define SE_RG_KITEKI 256 // S.S. Anne Horn -#define SE_RG_HELP_OP 257 // Help Menu Open -#define SE_RG_HELP_CL 258 // Help Menu Close -#define SE_RG_HELP_NG 259 // Help Menu Error -#define SE_RG_DEOMOV 260 // Deoxys Moves -#define SE_RG_EXCELLENT 261 -#define SE_RG_NAWAMISS 262 -// end FRLG SFX -#define SE_TOREEYE 263 // Trainer's Eye Call -#define SE_TOREOFF 264 // Trainer's Eye Hang Up -#define SE_HANTEI1 265 // Battle Arena Time's Up 1 -#define SE_HANTEI2 266 // Battle Arena Time's Up 2 -#define SE_CURTAIN 267 // Battle Pike Curtain Open -#define SE_CURTAIN1 268 // Battle Pike Curtain Close -#define SE_USSOKI 269 // Sudowoodo +// Original JP names listed on right, along with any additional notes -#define MUS_TETSUJI 350 // Littleroot Town Test 'TETSUJI' -#define MUS_FIELD13 351 // GSC - Route 38 -#define MUS_KACHI22 352 // Wild Pokémon Defeated -#define MUS_KACHI2 353 // Wild Pokémon Defeated with Intro -#define MUS_KACHI3 354 // Gym Leader Defeated -#define MUS_KACHI5 355 // Victory! Elite Four -#define MUS_PCC 356 // Crystal - Pokémon Communication Center -#define MUS_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc -#define MUS_SUIKUN 358 // Crystal - Battle! Legendary Beasts -#define MUS_DOORO1 359 // Route 101 -#define MUS_DOORO_X1 360 // Route 110 -#define MUS_DOORO_X3 361 // Route 120 -#define MUS_MACHI_S2 362 // Petalburg City -#define MUS_MACHI_S4 363 // Oldale/Lavaridge Town -#define MUS_GIM 364 // Gym -#define MUS_NAMINORI 365 // Surfing -#define MUS_DAN01 366 // Caves and Darkness -#define MUS_FANFA1 367 // Level Up! -#define MUS_ME_ASA 368 // Pokémon Healed -#define MUS_ME_BACHI 369 // Obtained a Badge! -#define MUS_FANFA4 370 // Obtained an Item! -#define MUS_FANFA5 371 // Your Pokémon Just Evolved! -#define MUS_ME_WAZA 372 // Obtained a TM/HM! -#define MUS_BIJYUTU 373 // Lilycove Museum -#define MUS_DOORO_X4 374 // Route 122/Intro -#define MUS_FUNE_KAN 375 // Slateport Museum -#define MUS_ME_SHINKA 376 // Evolution Intro -#define MUS_SHINKA 377 // Evolution -#define MUS_ME_WASURE 378 // Move Deleted/Messed Up Appeal -#define MUS_SYOUJOEYE 379 // Encounter! Tuber -#define MUS_BOYEYE 380 // Encounter! Boy -#define MUS_DAN02 381 // Abandoned Ship/Southern Island -#define MUS_MACHI_S3 382 // Fortree City/Pacifidlog Town -#define MUS_ODAMAKI 383 // Professor Birch's Lab -#define MUS_B_TOWER 384 // Battle Tower (RS) -#define MUS_SWIMEYE 385 // Encounter! Swimmer -#define MUS_DAN03 386 // Meteor Falls/Cave of Origin -#define MUS_ME_KINOMI 387 // Obtained a Berry! -#define MUS_ME_TAMA 388 // Awakening the Super-Ancient Pokémon -#define MUS_ME_B_BIG 389 // Slots Jackpot! -#define MUS_ME_B_SMALL 390 // Slots Victory! -#define MUS_ME_ZANNEN 391 // Too bad! -#define MUS_BD_TIME 392 // Roulette! -#define MUS_TEST1 393 // Contest Test 1 -#define MUS_TEST2 394 // Contest Test 2 -#define MUS_TEST3 395 // Contest Test 3 -#define MUS_TEST4 396 // Contest Test 4 -#define MUS_TEST 397 // Encounter! Gentleman -#define MUS_GOMACHI0 398 // Verdanturf Town -#define MUS_GOTOWN 399 // Rustboro/Mauville/Mossdeep City -#define MUS_POKECEN 400 // Pokémon Center -#define MUS_NEXTROAD 401 // Route 104 -#define MUS_GRANROAD 402 // Route 119 -#define MUS_CYCLING 403 // Cycling -#define MUS_FRIENDLY 404 // Pokémart -#define MUS_MISHIRO 405 // Littleroot Town -#define MUS_TOZAN 406 // Sky Pillar -#define MUS_GIRLEYE 407 // Encounter! Girl -#define MUS_MINAMO 408 // Lilycove City -#define MUS_ASHROAD 409 // Route 111 -#define MUS_EVENT0 410 // Help me! -#define MUS_DEEPDEEP 411 // Underwater -#define MUS_KACHI1 412 // Victory! Trainer -#define MUS_TITLE3 413 // Title Screen -#define MUS_DEMO1 414 // Opening Movie -#define MUS_GIRL_SUP 415 // Encounter! May -#define MUS_HAGESHII 416 // Encounter! Biker -#define MUS_KAKKOII 417 // Encounter! Electric Trainer -#define MUS_KAZANBAI 418 // Route 113 -#define MUS_AQA_0 419 // Encounter! Team Aqua -#define MUS_TSURETEK 420 // Follow Me! -#define MUS_BOY_SUP 421 // Encounter! Brendan -#define MUS_RAINBOW 422 // Ever Grande City -#define MUS_AYASII 423 // Encounter! Psychic -#define MUS_KACHI4 424 // Victory! Aqua/Magma Grunt -#define MUS_ROPEWAY 425 // Cable Car -#define MUS_CASINO 426 // Game Corner -#define MUS_HIGHTOWN 427 // Dewford Town -#define MUS_SAFARI 428 // Safari Zone -#define MUS_C_ROAD 429 // Victory Road -#define MUS_AJITO 430 // Aqua/Magma Hideout -#define MUS_M_BOAT 431 // Sailing -#define MUS_M_DUNGON 432 // Mt. Pyre (Inside) -#define MUS_FINECITY 433 // Slateport City -#define MUS_MACHUPI 434 // Mt. Pyre (Outside) -#define MUS_P_SCHOOL 435 // Pokémon Trainer's School -#define MUS_DENDOU 436 // You're the Champion! -#define MUS_TONEKUSA 437 // Fallarbor Town -#define MUS_MABOROSI 438 // Sealed Chamber -#define MUS_CON_FAN 439 // Obtained a Contest Ribbon! -#define MUS_CONTEST0 440 // Pokémon Contest -#define MUS_MGM0 441 // Encounter! Team Magma -#define MUS_T_BATTLE 442 // Opening Battle -#define MUS_OOAME 443 // The Flood -#define MUS_HIDERI 444 // The Drought -#define MUS_RUNECITY 445 // Sootopolis City -#define MUS_CON_K 446 // Contest/Berry Blending Results -#define MUS_EIKOU_R 447 // Hall of Fame -#define MUS_KARAKURI 448 // Trick House -#define MUS_HUTAGO 449 // Encounter! Kid -#define MUS_SITENNOU 450 // Encounter! Elite Four -#define MUS_YAMA_EYE 451 // Encounter! Hiker -#define MUS_CONLOBBY 452 // Contest Lobby -#define MUS_INTER_V 453 // Encounter! Gabby and Ty -#define MUS_DAIGO 454 // Encounter! Wallace -#define MUS_THANKFOR 455 // Credits -#define MUS_END 456 // The End -#define MUS_B_FRONTIER 457 // Battle Frontier -#define MUS_B_ARENA 458 // Battle Arena -#define MUS_ME_POINTGET 459 // Obtained Battle Points! -#define MUS_ME_TORE_EYE 460 // Registered Trainer! -#define MUS_PYRAMID 461 // Battle Pyramid -#define MUS_PYRAMID_TOP 462 // Top of the Battle Pyramid -#define MUS_B_PALACE 463 // Battle Palace -#define MUS_REKKUU_KOURIN 464 // Rayquaza Enters -#define MUS_SATTOWER 465 // Battle Tower (Emerald) -#define MUS_ME_SYMBOLGET 466 // Obtained a Frontier Symbol! -#define MUS_B_DOME 467 // Battle Dome -#define MUS_B_TUBE 468 // Battle Pike -#define MUS_B_FACTORY 469 // Battle Factory -#define MUS_VS_REKKU 470 // Battle! Legendary Pokémon -#define MUS_VS_FRONT 471 // Battle! Frontier Brain -#define MUS_VS_MEW 472 // Battle! Mew -#define MUS_B_DOME1 473 // Battle Dome Lobby -#define MUS_BATTLE27 474 // Battle! Wild Pokémon -#define MUS_BATTLE31 475 // Battle! Team Aqua/Magma -#define MUS_BATTLE20 476 // Battle! Trainer -#define MUS_BATTLE32 477 // Battle! Gym Leader -#define MUS_BATTLE33 478 // Battle! Champion -#define MUS_BATTLE36 479 // Battle! Regi Trio -#define MUS_BATTLE34 480 // Battle! Legendary Pokémon (dupe) -#define MUS_BATTLE35 481 // Battle! Rival -#define MUS_BATTLE38 482 // Battle! Elite Four -#define MUS_BATTLE30 483 // Battle! Archie/Maxie -// FRLG Music Below -#define MUS_RG_ANNAI 484 // Follow Me! -#define MUS_RG_SLOT 485 // Game Corner -#define MUS_RG_AJITO 486 // Rocket Hideout -#define MUS_RG_GYM 487 // Gym -#define MUS_RG_PURIN 488 // Jigglypuff's Song -#define MUS_RG_DEMO 489 // Opening Movie -#define MUS_RG_TITLE 490 // Title Screen -#define MUS_RG_GUREN 491 // Cinnabar Island -#define MUS_RG_SHION 492 // Lavender Town -#define MUS_RG_KAIHUKU 493 // RBY Pokémon Center Healing -#define MUS_RG_CYCLING 494 // Cycling -#define MUS_RG_ROCKET 495 // Encounter! Team Rocket -#define MUS_RG_SHOUJO 496 // Encounter! Girl -#define MUS_RG_SHOUNEN 497 // Encounter! Boy -#define MUS_RG_DENDOU 498 // You're the Champion! -#define MUS_RG_T_MORI 499 // Viridian Forest -#define MUS_RG_OTSUKIMI 500 // Mt. Moon -#define MUS_RG_POKEYASHI 501 // Pokémon Mansion -#define MUS_RG_ENDING 502 // Credits -#define MUS_RG_LOAD01 503 // Route 1 -#define MUS_RG_OPENING 504 // Route 24/Intro -#define MUS_RG_LOAD02 505 // Route 3 -#define MUS_RG_LOAD03 506 // Route 11 -#define MUS_RG_CHAMP_R 507 // Victory Road/Indigo Plateau -#define MUS_RG_VS_GYM 508 // Battle! Gym Leader/Elite Four -#define MUS_RG_VS_TORE 509 // Battle! Trainer -#define MUS_RG_VS_YASEI 510 // Battle! Wild Pokémon -#define MUS_RG_VS_LAST 511 // Battle! Champion -#define MUS_RG_MASARA 512 // Pallet Town -#define MUS_RG_KENKYU 513 // Professor Oak's Lab -#define MUS_RG_OHKIDO 514 // Professor Oak's Theme -#define MUS_RG_POKECEN 515 // Pokémon Center -#define MUS_RG_SANTOAN 516 // S.S. Anne -#define MUS_RG_NAMINORI 517 // Surfing -#define MUS_RG_P_TOWER 518 // Pokémon Tower -#define MUS_RG_SHIRUHU 519 // Silph Co. -#define MUS_RG_HANADA 520 // Cerulean/Fuschia City -#define MUS_RG_TAMAMUSI 521 // Celadon City -#define MUS_RG_WIN_TRE 522 // Victory! Trainer -#define MUS_RG_WIN_YASEI 523 // Victory! Wild Pokémon -#define MUS_RG_WIN_GYM 524 // Victory! Gym Leader -#define MUS_RG_KUCHIBA 525 // Vermillion City -#define MUS_RG_NIBI 526 // Viridian/Saffron/Pewter City -#define MUS_RG_RIVAL1 527 // Encounter! Rival -#define MUS_RG_RIVAL2 528 // Rival's Exit -#define MUS_RG_FAN2 529 // Fanfare 2 -#define MUS_RG_FAN5 530 // Obtained a Starter! -#define MUS_RG_FAN6 531 // Pokémon Caught! (Used in Emerald) -#define MUS_ME_RG_PHOTO 532 // Trainer Photo -#define MUS_RG_TITLEROG 533 // Game Freak -#define MUS_RG_GET_YASEI 534 // Pokémon Caught Victory Theme -#define MUS_RG_SOUSA 535 // Starting Tutorial -#define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2 -#define MUS_RG_SEIBETU 537 // Starting Tutorial 3 -#define MUS_RG_JUMP 538 // Pokemon Jump Minigame -#define MUS_RG_UNION 539 // Union Room -#define MUS_RG_NETWORK 540 // Network Center -#define MUS_RG_OKURIMONO 541 // Mystery Gift -#define MUS_RG_KINOMIKUI 542 // Dodrio Berry Picking -#define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon) -#define MUS_RG_OSHIE_TV 544 // Follow Me! -#define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage) -#define MUS_RG_NANAISEKI 546 // Sevii Forests (Viridian Forest) -#define MUS_RG_NANA123 547 // Sevii Islands 1-3 (Viridian/Saffron/Pewter) -#define MUS_RG_NANA45 548 // Sevii Islands 4-5 (Azalea Town) -#define MUS_RG_NANA67 549 // Sevii Islands 6-7 (Violet City) -#define MUS_RG_POKEFUE 550 // Poké Flute -#define MUS_RG_VS_DEO 551 // Battle! Deoxys -#define MUS_RG_VS_MYU2 552 // Battle! Mewtwo -#define MUS_RG_VS_DEN 553 // Battle! Legendary Birds -#define MUS_RG_EXEYE 554 // Encounter! Gym Leader -#define MUS_RG_DEOEYE 555 // Encounter! Deoxys -#define MUS_RG_T_TOWER 556 // Trainer Tower (Gym) -#define MUS_RG_SLOWMASARA 557 // Pallet Town (Hall of Fame remix) -#define MUS_RG_TVNOIZE 558 // Teachy TV -#define PH_TRAP_BLEND 559 -#define PH_TRAP_HELD 560 -#define PH_TRAP_SOLO 561 -#define PH_FACE_BLEND 562 -#define PH_FACE_HELD 563 -#define PH_FACE_SOLO 564 -#define PH_CLOTH_BLEND 565 -#define PH_CLOTH_HELD 566 -#define PH_CLOTH_SOLO 567 -#define PH_DRESS_BLEND 568 -#define PH_DRESS_HELD 569 -#define PH_DRESS_SOLO 570 -#define PH_FLEECE_BLEND 571 -#define PH_FLEECE_HELD 572 -#define PH_FLEECE_SOLO 573 -#define PH_KIT_BLEND 574 -#define PH_KIT_HELD 575 -#define PH_KIT_SOLO 576 -#define PH_PRICE_BLEND 577 -#define PH_PRICE_HELD 578 -#define PH_PRICE_SOLO 579 -#define PH_LOT_BLEND 580 -#define PH_LOT_HELD 581 -#define PH_LOT_SOLO 582 -#define PH_GOAT_BLEND 583 -#define PH_GOAT_HELD 584 -#define PH_GOAT_SOLO 585 -#define PH_THOUGHT_BLEND 586 -#define PH_THOUGHT_HELD 587 -#define PH_THOUGHT_SOLO 588 -#define PH_CHOICE_BLEND 589 -#define PH_CHOICE_HELD 590 -#define PH_CHOICE_SOLO 591 -#define PH_MOUTH_BLEND 592 -#define PH_MOUTH_HELD 593 -#define PH_MOUTH_SOLO 594 -#define PH_FOOT_BLEND 595 -#define PH_FOOT_HELD 596 -#define PH_FOOT_SOLO 597 -#define PH_GOOSE_BLEND 598 -#define PH_GOOSE_HELD 599 -#define PH_GOOSE_SOLO 600 -#define PH_STRUT_BLEND 601 -#define PH_STRUT_HELD 602 -#define PH_STRUT_SOLO 603 -#define PH_CURE_BLEND 604 -#define PH_CURE_HELD 605 -#define PH_CURE_SOLO 606 -#define PH_NURSE_BLEND 607 -#define PH_NURSE_HELD 608 -#define PH_NURSE_SOLO 609 +#define MUS_DUMMY 0 // MUS_DUMMY +#define SE_USE_ITEM 1 // SE_KAIFUKU +#define SE_PC_LOGIN 2 // SE_PC_LOGIN +#define SE_PC_OFF 3 // SE_PC_OFF +#define SE_PC_ON 4 // SE_PC_ON +#define SE_SELECT 5 // SE_SELECT +#define SE_WIN_OPEN 6 // SE_WIN_OPEN +#define SE_WALL_HIT 7 // SE_WALL_HIT +#define SE_DOOR 8 // SE_DOOR +#define SE_EXIT 9 // SE_KAIDAN +#define SE_LEDGE 10 // SE_DANSA +#define SE_BIKE_BELL 11 // SE_JITENSYA +#define SE_NOT_EFFECTIVE 12 // SE_KOUKA_L +#define SE_EFFECTIVE 13 // SE_KOUKA_M +#define SE_SUPER_EFFECTIVE 14 // SE_KOUKA_H +#define SE_BALL_OPEN 15 // SE_BOWA2 +#define SE_FAINT 16 // SE_POKE_DEAD +#define SE_FLEE 17 // SE_NIGERU +#define SE_SLIDING_DOOR 18 // SE_JIDO_DOA +#define SE_SHIP 19 // SE_NAMINORI +#define SE_BANG 20 // SE_BAN +#define SE_PIN 21 // SE_PIN (General "good", commonly for "!") +#define SE_BOO 22 // SE_BOO (General "bad") +#define SE_BALL 23 // SE_BOWA (Giving Poké Ball to nurse, Poké Ball shake, etc) +#define SE_CONTEST_PLACE 24 // SE_JYUNI +#define SE_A 25 // SE_A (Bard sounds) +#define SE_I 26 // SE_I +#define SE_U 27 // SE_U +#define SE_E 28 // SE_E +#define SE_O 29 // SE_O +#define SE_N 30 // SE_N +#define SE_SUCCESS 31 // SE_SEIKAI +#define SE_FAILURE 32 // SE_HAZURE +#define SE_EXP 33 // SE_EXP +#define SE_BIKE_HOP 34 // SE_JITE_PYOKO +#define SE_SWITCH 35 // SE_MU_PACHI +#define SE_CLICK 36 // SE_TK_KASYA +#define SE_FU_ZAKU 37 // SE_FU_ZAKU (Unknown purpose, unused) +#define SE_CONTEST_CONDITION_LOSE 38 // SE_FU_ZAKU2 +#define SE_LAVARIDGE_FALL_WARP 39 // SE_FU_ZUZUZU +#define SE_ICE_STAIRS 40 // SE_RU_GASHIN +#define SE_ICE_BREAK 41 // SE_RU_GASYAN +#define SE_ICE_CRACK 42 // SE_RU_BARI +#define SE_FALL 43 // SE_RU_HYUU +#define SE_UNLOCK 44 // SE_KI_GASYAN +#define SE_WARP_IN 45 // SE_TK_WARPIN +#define SE_WARP_OUT 46 // SE_TK_WARPOUT +#define SE_REPEL 47 // SE_TU_SAA +#define SE_ROTATING_GATE 48 // SE_HI_TURUN +#define SE_TRUCK_MOVE 49 // SE_TRACK_MOVE +#define SE_TRUCK_STOP 50 // SE_TRACK_STOP +#define SE_TRUCK_UNLOAD 51 // SE_TRACK_HAIKI +#define SE_TRUCK_DOOR 52 // SE_TRACK_DOOR +#define SE_BERRY_BLENDER 53 // SE_MOTER +#define SE_CARD 54 // SE_CARD (Unused, different from the RS card SE) +#define SE_SAVE 55 // SE_SAVE +#define SE_BALL_BOUNCE_1 56 // SE_KON +#define SE_BALL_BOUNCE_2 57 // SE_KON2 +#define SE_BALL_BOUNCE_3 58 // SE_KON3 +#define SE_BALL_BOUNCE_4 59 // SE_KON4 +#define SE_BALL_TRADE 60 // SE_SUIKOMU +#define SE_BALL_THROW 61 // SE_NAGERU +#define SE_NOTE_C 62 // SE_TOY_C +#define SE_NOTE_D 63 // SE_TOY_D +#define SE_NOTE_E 64 // SE_TOY_E +#define SE_NOTE_F 65 // SE_TOY_F +#define SE_NOTE_G 66 // SE_TOY_G +#define SE_NOTE_A 67 // SE_TOY_A +#define SE_NOTE_B 68 // SE_TOY_B +#define SE_NOTE_C_HIGH 69 // SE_TOY_C1 +#define SE_PUDDLE 70 // SE_MIZU +#define SE_BRIDGE_WALK 71 // SE_HASHI +#define SE_ITEMFINDER 72 // SE_DAUGI +#define SE_DING_DONG 73 // SE_PINPON +#define SE_BALLOON_RED 74 // SE_FUUSEN1 +#define SE_BALLOON_BLUE 75 // SE_FUUSEN2 +#define SE_BALLOON_YELLOW 76 // SE_FUUSEN3 +#define SE_BREAKABLE_DOOR 77 // SE_TOY_KABE +#define SE_MUD_BALL 78 // SE_TOY_DANGO +#define SE_FIELD_POISON 79 // SE_DOKU +#define SE_ESCALATOR 80 // SE_ESUKA +#define SE_THUNDERSTORM 81 // SE_T_AME +#define SE_THUNDERSTORM_STOP 82 // SE_T_AME_E +#define SE_DOWNPOUR 83 // SE_T_OOAME +#define SE_DOWNPOUR_STOP 84 // SE_T_OOAME_E +#define SE_RAIN 85 // SE_T_KOAME +#define SE_RAIN_STOP 86 // SE_T_KOAME_E +#define SE_THUNDER 87 // SE_T_KAMI +#define SE_THUNDER2 88 // SE_T_KAMI2 +#define SE_ELEVATOR 89 // SE_ELEBETA +#define SE_LOW_HEALTH 90 // SE_HINSI +#define SE_EXP_MAX 91 // SE_EXPMAX +#define SE_ROULETTE_BALL 92 // SE_TAMAKORO +#define SE_ROULETTE_BALL2 93 // SE_TAMAKORO_E +#define SE_TAILLOW_WING_FLAP 94 // SE_BASABASA +#define SE_SHOP 95 // SE_REGI +#define SE_CONTEST_HEART 96 // SE_C_GAJI +#define SE_CONTEST_CURTAIN_RISE 97 // SE_C_MAKU_U +#define SE_CONTEST_CURTAIN_FALL 98 // SE_C_MAKU_D +#define SE_CONTEST_ICON_CHANGE 99 // SE_C_PASI +#define SE_CONTEST_ICON_CLEAR 100 // SE_C_SYU +#define SE_CONTEST_MONS_TURN 101 // SE_C_PIKON +#define SE_SHINY 102 // SE_REAPOKE +#define SE_INTRO_BLAST 103 // SE_OP_BASYU +#define SE_MUGSHOT 104 // SE_BT_START +#define SE_APPLAUSE 105 // SE_DENDOU +#define SE_VEND 106 // SE_JIHANKI +#define SE_ORB 107 // SE_TAMA +#define SE_DEX_SCROLL 108 // SE_Z_SCROLL +#define SE_DEX_PAGE 109 // SE_Z_PAGE +#define SE_POKENAV_ON 110 // SE_PN_ON +#define SE_POKENAV_OFF 111 // SE_PN_OFF +#define SE_DEX_SEARCH 112 // SE_Z_SEARCH +#define SE_EGG_HATCH 113 // SE_TAMAGO +#define SE_BALL_TRAY_ENTER 114 // SE_TB_START +#define SE_BALL_TRAY_BALL 115 // SE_TB_KON +#define SE_BALL_TRAY_EXIT 116 // SE_TB_KARA +#define SE_GLASS_FLUTE 117 // SE_BIDORO +// Move SFX +#define SE_M_THUNDERBOLT 118 // SE_W085 +#define SE_M_THUNDERBOLT2 119 // SE_W085B +#define SE_M_HARDEN 120 // SE_W231 +#define SE_M_NIGHTMARE 121 // SE_W171 +#define SE_M_VITAL_THROW 122 // SE_W233 +#define SE_M_VITAL_THROW2 123 // SE_W233B +#define SE_M_BUBBLE 124 // SE_W145 +#define SE_M_BUBBLE2 125 // SE_W145B +#define SE_M_BUBBLE3 126 // SE_W145C +#define SE_M_RAIN_DANCE 127 // SE_W240 +#define SE_M_CUT 128 // SE_W015 +#define SE_M_STRING_SHOT 129 // SE_W081 +#define SE_M_STRING_SHOT2 130 // SE_W081B +#define SE_M_ROCK_THROW 131 // SE_W088 +#define SE_M_GUST 132 // SE_W016 +#define SE_M_GUST2 133 // SE_W016B +#define SE_M_DOUBLE_SLAP 134 // SE_W003 +#define SE_M_DOUBLE_TEAM 135 // SE_W104 +#define SE_M_RAZOR_WIND 136 // SE_W013 +#define SE_M_ICY_WIND 137 // SE_W196 +#define SE_M_THUNDER_WAVE 138 // SE_W086 +#define SE_M_COMET_PUNCH 139 // SE_W004 +#define SE_M_MEGA_KICK 140 // SE_W025 +#define SE_M_MEGA_KICK2 141 // SE_W025B +#define SE_M_CRABHAMMER 142 // SE_W152 +#define SE_M_JUMP_KICK 143 // SE_W026 +#define SE_M_FLAME_WHEEL 144 // SE_W172 +#define SE_M_FLAME_WHEEL2 145 // SE_W172B +#define SE_M_FLAMETHROWER 146 // SE_W053 +#define SE_M_FIRE_PUNCH 147 // SE_W007 +#define SE_M_TOXIC 148 // SE_W092 +#define SE_M_SACRED_FIRE 149 // SE_W221 +#define SE_M_SACRED_FIRE2 150 // SE_W221B +#define SE_M_EMBER 151 // SE_W052 +#define SE_M_TAKE_DOWN 152 // SE_W036 +#define SE_M_BLIZZARD 153 // SE_W059 +#define SE_M_BLIZZARD2 154 // SE_W059B +#define SE_M_SCRATCH 155 // SE_W010 +#define SE_M_VICEGRIP 156 // SE_W011 +#define SE_M_WING_ATTACK 157 // SE_W017 +#define SE_M_FLY 158 // SE_W019 +#define SE_M_SAND_ATTACK 159 // SE_W028 +#define SE_M_RAZOR_WIND2 160 // SE_W013B +#define SE_M_BITE 161 // SE_W044 +#define SE_M_HEADBUTT 162 // SE_W029 +#define SE_M_SURF 163 // SE_W057 +#define SE_M_HYDRO_PUMP 164 // SE_W056 +#define SE_M_WHIRLPOOL 165 // SE_W250 +#define SE_M_HORN_ATTACK 166 // SE_W030 +#define SE_M_TAIL_WHIP 167 // SE_W039 +#define SE_M_MIST 168 // SE_W054 +#define SE_M_POISON_POWDER 169 // SE_W077 +#define SE_M_BIND 170 // SE_W020 +#define SE_M_DRAGON_RAGE 171 // SE_W082 +#define SE_M_SING 172 // SE_W047 +#define SE_M_PERISH_SONG 173 // SE_W195 +#define SE_M_PAY_DAY 174 // SE_W006 +#define SE_M_DIG 175 // SE_W091 +#define SE_M_DIZZY_PUNCH 176 // SE_W146 +#define SE_M_SELF_DESTRUCT 177 // SE_W120 +#define SE_M_EXPLOSION 178 // SE_W153 +#define SE_M_ABSORB_2 179 // SE_W071B +#define SE_M_ABSORB 180 // SE_W071 +#define SE_M_SCREECH 181 // SE_W103 +#define SE_M_BUBBLE_BEAM 182 // SE_W062 +#define SE_M_BUBBLE_BEAM2 183 // SE_W062B +#define SE_M_SUPERSONIC 184 // SE_W048 +#define SE_M_BELLY_DRUM 185 // SE_W187 +#define SE_M_METRONOME 186 // SE_W118 +#define SE_M_BONEMERANG 187 // SE_W155 +#define SE_M_LICK 188 // SE_W122 +#define SE_M_PSYBEAM 189 // SE_W060 +#define SE_M_FAINT_ATTACK 190 // SE_W185 +#define SE_M_SWORDS_DANCE 191 // SE_W014 +#define SE_M_LEER 192 // SE_W043 +#define SE_M_SWAGGER 193 // SE_W207 +#define SE_M_SWAGGER2 194 // SE_W207B +#define SE_M_HEAL_BELL 195 // SE_W215 +#define SE_M_CONFUSE_RAY 196 // SE_W109 +#define SE_M_SNORE 197 // SE_W173 +#define SE_M_BRICK_BREAK 198 // SE_W280 +#define SE_M_GIGA_DRAIN 199 // SE_W202 +#define SE_M_PSYBEAM2 200 // SE_W060B +#define SE_M_SOLAR_BEAM 201 // SE_W076 +#define SE_M_PETAL_DANCE 202 // SE_W080 +#define SE_M_TELEPORT 203 // SE_W100 +#define SE_M_MINIMIZE 204 // SE_W107 +#define SE_M_SKETCH 205 // SE_W166 +#define SE_M_SWIFT 206 // SE_W129 +#define SE_M_REFLECT 207 // SE_W115 +#define SE_M_BARRIER 208 // SE_W112 +#define SE_M_DETECT 209 // SE_W197 +#define SE_M_LOCK_ON 210 // SE_W199 +#define SE_M_MOONLIGHT 211 // SE_W236 +#define SE_M_CHARM 212 // SE_W204 +#define SE_M_CHARGE 213 // SE_W268 +#define SE_M_STRENGTH 214 // SE_W070 +#define SE_M_HYPER_BEAM 215 // SE_W063 +#define SE_M_WATERFALL 216 // SE_W127 +#define SE_M_REVERSAL 217 // SE_W179 +#define SE_M_ACID_ARMOR 218 // SE_W151 +#define SE_M_SANDSTORM 219 // SE_W201 +#define SE_M_TRI_ATTACK 220 // SE_W161 +#define SE_M_TRI_ATTACK2 221 // SE_W161B +#define SE_M_ENCORE 222 // SE_W227 +#define SE_M_ENCORE2 223 // SE_W227B +#define SE_M_BATON_PASS 224 // SE_W226 +#define SE_M_MILK_DRINK 225 // SE_W208 +#define SE_M_ATTRACT 226 // SE_W213 +#define SE_M_ATTRACT2 227 // SE_W213B +#define SE_M_MORNING_SUN 228 // SE_W234 +#define SE_M_FLATTER 229 // SE_W260 +#define SE_M_SAND_TOMB 230 // SE_W328 +#define SE_M_GRASSWHISTLE 231 // SE_W320 +#define SE_M_SPIT_UP 232 // SE_W255 +#define SE_M_DIVE 233 // SE_W291 +#define SE_M_EARTHQUAKE 234 // SE_W089 +#define SE_M_TWISTER 235 // SE_W239 +#define SE_M_SWEET_SCENT 236 // SE_W230 +#define SE_M_YAWN 237 // SE_W281 +#define SE_M_SKY_UPPERCUT 238 // SE_W327 +#define SE_M_STAT_INCREASE 239 // SE_W287 +#define SE_M_HEAT_WAVE 240 // SE_W257 +#define SE_M_UPROAR 241 // SE_W253 +#define SE_M_HAIL 242 // SE_W258 +#define SE_M_COSMIC_POWER 243 // SE_W322 +#define SE_M_TEETER_DANCE 244 // SE_W298 +#define SE_M_STAT_DECREASE 245 // SE_W287B +#define SE_M_HAZE 246 // SE_W114 +#define SE_M_HYPER_BEAM2 247 // SE_W063B +// FRLG SFX +#define SE_RG_DOOR 248 // SE_RG_W_DOOR +#define SE_RG_CARD_FLIP 249 // SE_RG_CARD1 +#define SE_RG_CARD_FLIPPING 250 // SE_RG_CARD2 +#define SE_RG_CARD_OPEN 251 // SE_RG_CARD3 +#define SE_RG_BAG_CURSOR 252 // SE_RG_BAG1 +#define SE_RG_BAG_POCKET 253 // SE_RG_BAG2 +#define SE_RG_BALL_CLICK 254 // SE_RG_GETTING +#define SE_RG_SHOP 255 // SE_RG_SHOP +#define SE_RG_SS_ANNE_HORN 256 // SE_RG_KITEKI +#define SE_RG_HELP_OPEN 257 // SE_RG_HELP_OP +#define SE_RG_HELP_CLOSE 258 // SE_RG_HELP_CL +#define SE_RG_HELP_ERROR 259 // SE_RG_HELP_NG +#define SE_RG_DEOXYS_MOVE 260 // SE_RG_DEOMOV +#define SE_RG_POKE_JUMP_SUCCESS 261 // SE_RG_EXCELLENT +#define SE_RG_POKE_JUMP_FAILURE 262 // SE_RG_NAWAMISS +// New Emerald SFX +#define SE_POKENAV_CALL 263 // SE_TOREEYE +#define SE_POKENAV_HANG_UP 264 // SE_TOREOFF +#define SE_ARENA_TIMEUP1 265 // SE_HANTEI1 +#define SE_ARENA_TIMEUP2 266 // SE_HANTEI2 +#define SE_PIKE_CURTAIN_CLOSE 267 // SE_CURTAIN +#define SE_PIKE_CURTAIN_OPEN 268 // SE_CURTAIN1 +#define SE_SUDOWOODO_SHAKE 269 // SE_USSOKI -#define MUS_ROUTE_118 0x7FFF // map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). +// Music +#define MUS_LITTLEROOT_TEST 350 // MUS_TETSUJI +#define MUS_GSC_ROUTE38 351 // MUS_FIELD13 +#define MUS_CAUGHT 352 // MUS_KACHI22 +#define MUS_VICTORY_WILD 353 // MUS_KACHI2 +#define MUS_VICTORY_GYM_LEADER 354 // MUS_KACHI3 +#define MUS_VICTORY_LEAGUE 355 // MUS_KACHI5 +#define MUS_C_COMM_CENTER 356 // MUS_PCC +#define MUS_GSC_PEWTER 357 // MUS_NIBI +#define MUS_C_VS_LEGEND_BEAST 358 // MUS_SUIKUN +#define MUS_ROUTE101 359 // MUS_DOORO1 +#define MUS_ROUTE110 360 // MUS_DOORO_X1 +#define MUS_ROUTE120 361 // MUS_DOORO_X3 +#define MUS_PETALBURG 362 // MUS_MACHI_S2 +#define MUS_OLDALE 363 // MUS_MACHI_S4 +#define MUS_GYM 364 // MUS_GIM +#define MUS_SURF 365 // MUS_NAMINORI +#define MUS_PETALBURG_WOODS 366 // MUS_DAN01 +#define MUS_LEVEL_UP 367 // MUS_FANFA1 +#define MUS_HEAL 368 // MUS_ME_ASA +#define MUS_OBTAIN_BADGE 369 // MUS_ME_BACHI +#define MUS_OBTAIN_ITEM 370 // MUS_FANFA4 +#define MUS_EVOLVED 371 // MUS_FANFA5 +#define MUS_OBTAIN_TMHM 372 // MUS_ME_WAZA +#define MUS_LILYCOVE_MUSEUM 373 // MUS_BIJYUTU +#define MUS_ROUTE122 374 // MUS_DOORO_X4 +#define MUS_OCEANIC_MUSEUM 375 // MUS_FUNE_KAN +#define MUS_EVOLUTION_INTRO 376 // MUS_ME_SHINKA +#define MUS_EVOLUTION 377 // MUS_SHINKA +#define MUS_MOVE_DELETED 378 // MUS_ME_WASURE +#define MUS_ENCOUNTER_GIRL 379 // MUS_SYOUJOEYE +#define MUS_ENCOUNTER_MALE 380 // MUS_BOYEYE +#define MUS_ABANDONED_SHIP 381 // MUS_DAN02 +#define MUS_FORTREE 382 // MUS_MACHI_S3 +#define MUS_BIRCH_LAB 383 // MUS_ODAMAKI +#define MUS_B_TOWER_RS 384 // MUS_B_TOWER +#define MUS_ENCOUNTER_SWIMMER 385 // MUS_SWIMEYE +#define MUS_CAVE_OF_ORIGIN 386 // MUS_DAN03 +#define MUS_OBTAIN_BERRY 387 // MUS_ME_KINOMI +#define MUS_AWAKEN_LEGEND 388 // MUS_ME_TAMA +#define MUS_SLOTS_JACKPOT 389 // MUS_ME_B_BIG +#define MUS_SLOTS_WIN 390 // MUS_ME_B_SMALL +#define MUS_TOO_BAD 391 // MUS_ME_ZANNEN +#define MUS_ROULETTE 392 // MUS_BD_TIME +#define MUS_LINK_CONTEST_P1 393 // MUS_TEST1 +#define MUS_LINK_CONTEST_P2 394 // MUS_TEST2 +#define MUS_LINK_CONTEST_P3 395 // MUS_TEST3 +#define MUS_LINK_CONTEST_P4 396 // MUS_TEST4 +#define MUS_ENCOUNTER_RICH 397 // MUS_TEST +#define MUS_VERDANTURF 398 // MUS_GOMACHI0 +#define MUS_RUSTBORO 399 // MUS_GOTOWN +#define MUS_POKE_CENTER 400 // MUS_POKECEN +#define MUS_ROUTE104 401 // MUS_NEXTROAD +#define MUS_ROUTE119 402 // MUS_GRANROAD +#define MUS_CYCLING 403 // MUS_CYCLING +#define MUS_POKE_MART 404 // MUS_FRIENDLY +#define MUS_LITTLEROOT 405 // MUS_MISHIRO +#define MUS_MT_CHIMNEY 406 // MUS_TOZAN +#define MUS_ENCOUNTER_FEMALE 407 // MUS_GIRLEYE +#define MUS_LILYCOVE 408 // MUS_MINAMO +#define MUS_ROUTE111 409 // MUS_ASHROAD +#define MUS_HELP 410 // MUS_EVENT0 +#define MUS_UNDERWATER 411 // MUS_DEEPDEEP +#define MUS_VICTORY_TRAINER 412 // MUS_KACHI1 +#define MUS_TITLE 413 // MUS_TITLE3 +#define MUS_INTRO 414 // MUS_DEMO1 +#define MUS_ENCOUNTER_MAY 415 // MUS_GIRL_SUP +#define MUS_ENCOUNTER_INTENSE 416 // MUS_HAGESHII +#define MUS_ENCOUNTER_COOL 417 // MUS_KAKKOII +#define MUS_ROUTE113 418 // MUS_KAZANBAI +#define MUS_ENCOUNTER_AQUA 419 // MUS_AQA_0 +#define MUS_FOLLOW_ME 420 // MUS_TSURETEK +#define MUS_ENCOUNTER_BRENDAN 421 // MUS_BOY_SUP +#define MUS_EVER_GRANDE 422 // MUS_RAINBOW +#define MUS_ENCOUNTER_SUSPICIOUS 423 // MUS_AYASII +#define MUS_VICTORY_AQUA_MAGMA 424 // MUS_KACHI4 +#define MUS_CABLE_CAR 425 // MUS_ROPEWAY +#define MUS_GAME_CORNER 426 // MUS_CASINO +#define MUS_DEWFORD 427 // MUS_HIGHTOWN +#define MUS_SAFARI_ZONE 428 // MUS_SAFARI +#define MUS_VICTORY_ROAD 429 // MUS_C_ROAD +#define MUS_AQUA_MAGMA_HIDEOUT 430 // MUS_AJITO +#define MUS_SAILING 431 // MUS_M_BOAT +#define MUS_MT_PYRE 432 // MUS_M_DUNGON +#define MUS_SLATEPORT 433 // MUS_FINECITY +#define MUS_MT_PYRE_EXTERIOR 434 // MUS_MACHUPI +#define MUS_SCHOOL 435 // MUS_P_SCHOOL +#define MUS_HALL_OF_FAME 436 // MUS_DENDOU +#define MUS_FALLARBOR 437 // MUS_TONEKUSA +#define MUS_SEALED_CHAMBER 438 // MUS_MABOROSI +#define MUS_CONTEST_WINNER 439 // MUS_CON_FAN +#define MUS_CONTEST 440 // MUS_CONTEST0 +#define MUS_ENCOUNTER_MAGMA 441 // MUS_MGM0 +#define MUS_INTRO_BATTLE 442 // MUS_T_BATTLE +#define MUS_ABNORMAL_WEATHER 443 // MUS_OOAME (Replaces MUS_WEATHER_KYOGRE from R/S) +#define MUS_WEATHER_GROUDON 444 // MUS_HIDERI (Unused, from R/S) +#define MUS_SOOTOPOLIS 445 // MUS_RUNECITY +#define MUS_CONTEST_RESULTS 446 // MUS_CON_K +#define MUS_HALL_OF_FAME_ROOM 447 // MUS_EIKOU_R +#define MUS_TRICK_HOUSE 448 // MUS_KARAKURI +#define MUS_ENCOUNTER_TWINS 449 // MUS_HUTAGO +#define MUS_ENCOUNTER_ELITE_FOUR 450 // MUS_SITENNOU +#define MUS_ENCOUNTER_HIKER 451 // MUS_YAMA_EYE +#define MUS_CONTEST_LOBBY 452 // MUS_CONLOBBY +#define MUS_ENCOUNTER_INTERVIEWER 453 // MUS_INTER_V +#define MUS_ENCOUNTER_CHAMPION 454 // MUS_DAIGO +#define MUS_CREDITS 455 // MUS_THANKFOR +#define MUS_END 456 // MUS_END +#define MUS_B_FRONTIER 457 // MUS_B_FRONTIER +#define MUS_B_ARENA 458 // MUS_B_ARENA +#define MUS_OBTAIN_B_POINTS 459 // MUS_ME_POINTGET +#define MUS_REGISTER_MATCH_CALL 460 // MUS_ME_TORE_EYE +#define MUS_B_PYRAMID 461 // MUS_PYRAMID +#define MUS_B_PYRAMID_TOP 462 // MUS_PYRAMID_TOP +#define MUS_B_PALACE 463 // MUS_B_PALACE +#define MUS_RAYQUAZA_APPEARS 464 // MUS_REKKUU_KOURIN +#define MUS_B_TOWER 465 // MUS_SATTOWER +#define MUS_OBTAIN_SYMBOL 466 // MUS_ME_SYMBOLGET +#define MUS_B_DOME 467 // MUS_B_DOME +#define MUS_B_PIKE 468 // MUS_B_TUBE +#define MUS_B_FACTORY 469 // MUS_B_FACTORY +#define MUS_VS_RAYQUAZA 470 // MUS_VS_REKKU (Identical to MUS_VS_KYOGRE_GROUDON) +#define MUS_VS_FRONTIER_BRAIN 471 // MUS_VS_FRONT +#define MUS_VS_MEW 472 // MUS_VS_MEW +#define MUS_B_DOME_LOBBY 473 // MUS_B_DOME1 +#define MUS_VS_WILD 474 // MUS_BATTLE27 +#define MUS_VS_AQUA_MAGMA 475 // MUS_BATTLE31 +#define MUS_VS_TRAINER 476 // MUS_BATTLE20 +#define MUS_VS_GYM_LEADER 477 // MUS_BATTLE32 +#define MUS_VS_CHAMPION 478 // MUS_BATTLE33 +#define MUS_VS_REGI 479 // MUS_BATTLE36 +#define MUS_VS_KYOGRE_GROUDON 480 // MUS_BATTLE34 +#define MUS_VS_RIVAL 481 // MUS_BATTLE35 +#define MUS_VS_ELITE_FOUR 482 // MUS_BATTLE38 +#define MUS_VS_AQUA_MAGMA_LEADER 483 // MUS_BATTLE30 +// FRLG Music +#define MUS_RG_FOLLOW_ME 484 // MUS_RG_ANNAI +#define MUS_RG_GAME_CORNER 485 // MUS_RG_SLOT +#define MUS_RG_ROCKET_HIDEOUT 486 // MUS_RG_AJITO +#define MUS_RG_GYM 487 // MUS_RG_GYM +#define MUS_RG_JIGGLYPUFF 488 // MUS_RG_PURIN +#define MUS_RG_INTRO_FIGHT 489 // MUS_RG_DEMO +#define MUS_RG_TITLE 490 // MUS_RG_TITLE +#define MUS_RG_CINNABAR 491 // MUS_RG_GUREN +#define MUS_RG_LAVENDER 492 // MUS_RG_SHION +#define MUS_RG_HEAL 493 // MUS_RG_KAIHUKU +#define MUS_RG_CYCLING 494 // MUS_RG_CYCLING +#define MUS_RG_ENCOUNTER_ROCKET 495 // MUS_RG_ROCKET +#define MUS_RG_ENCOUNTER_GIRL 496 // MUS_RG_SHOUJO +#define MUS_RG_ENCOUNTER_BOY 497 // MUS_RG_SHOUNEN +#define MUS_RG_HALL_OF_FAME 498 // MUS_RG_DENDOU +#define MUS_RG_VIRIDIAN_FOREST 499 // MUS_RG_T_MORI +#define MUS_RG_MT_MOON 500 // MUS_RG_OTSUKIMI +#define MUS_RG_POKE_MANSION 501 // MUS_RG_POKEYASHI +#define MUS_RG_CREDITS 502 // MUS_RG_ENDING +#define MUS_RG_ROUTE1 503 // MUS_RG_LOAD01 +#define MUS_RG_ROUTE24 504 // MUS_RG_OPENING +#define MUS_RG_ROUTE3 505 // MUS_RG_LOAD02 +#define MUS_RG_ROUTE11 506 // MUS_RG_LOAD03 +#define MUS_RG_VICTORY_ROAD 507 // MUS_RG_CHAMP_R +#define MUS_RG_VS_GYM_LEADER 508 // MUS_RG_VS_GYM +#define MUS_RG_VS_TRAINER 509 // MUS_RG_VS_TORE +#define MUS_RG_VS_WILD 510 // MUS_RG_VS_YASEI +#define MUS_RG_VS_CHAMPION 511 // MUS_RG_VS_LAST +#define MUS_RG_PALLET 512 // MUS_RG_MASARA +#define MUS_RG_OAK_LAB 513 // MUS_RG_KENKYU +#define MUS_RG_OAK 514 // MUS_RG_OHKIDO +#define MUS_RG_POKE_CENTER 515 // MUS_RG_POKECEN +#define MUS_RG_SS_ANNE 516 // MUS_RG_SANTOAN +#define MUS_RG_SURF 517 // MUS_RG_NAMINORI +#define MUS_RG_POKE_TOWER 518 // MUS_RG_P_TOWER +#define MUS_RG_SILPH 519 // MUS_RG_SHIRUHU +#define MUS_RG_FUCHSIA 520 // MUS_RG_HANADA +#define MUS_RG_CELADON 521 // MUS_RG_TAMAMUSI +#define MUS_RG_VICTORY_TRAINER 522 // MUS_RG_WIN_TRE (Identical to MUS_VICTORY_TRAINER) +#define MUS_RG_VICTORY_WILD 523 // MUS_RG_WIN_YASEI (Identical to MUS_VICTORY_WILD) +#define MUS_RG_VICTORY_GYM_LEADER 524 // MUS_RG_WIN_GYM (Identical to MUS_VICTORY_GYM_LEADER) +#define MUS_RG_VERMILLION 525 // MUS_RG_KUCHIBA +#define MUS_RG_PEWTER 526 // MUS_RG_NIBI +#define MUS_RG_ENCOUNTER_RIVAL 527 // MUS_RG_RIVAL1 +#define MUS_RG_RIVAL_EXIT 528 // MUS_RG_RIVAL2 +#define MUS_RG_DEX_RATING 529 // MUS_RG_FAN2 +#define MUS_RG_OBTAIN_KEY_ITEM 530 // MUS_RG_FAN5 +#define MUS_RG_CAUGHT_INTRO 531 // MUS_RG_FAN6 +#define MUS_RG_PHOTO 532 // MUS_ME_RG_PHOTO +#define MUS_RG_GAME_FREAK 533 // MUS_RG_TITLEROG +#define MUS_RG_CAUGHT 534 // MUS_RG_GET_YASEI +#define MUS_RG_NEW_GAME_INSTRUCT 535 // MUS_RG_SOUSA +#define MUS_RG_NEW_GAME_INTRO 536 // MUS_RG_SEKAIKAN +#define MUS_RG_NEW_GAME_EXIT 537 // MUS_RG_SEIBETU +#define MUS_RG_POKE_JUMP 538 // MUS_RG_JUMP +#define MUS_RG_UNION_ROOM 539 // MUS_RG_UNION +#define MUS_RG_NET_CENTER 540 // MUS_RG_NETWORK +#define MUS_RG_MYSTERY_GIFT 541 // MUS_RG_OKURIMONO +#define MUS_RG_BERRY_PICK 542 // MUS_RG_KINOMIKUI +#define MUS_RG_SEVII_CAVE 543 // MUS_RG_NANADUNGEON (Identical to MUS_RG_MT_MOON) +#define MUS_RG_TEACHY_TV_SHOW 544 // MUS_RG_OSHIE_TV (Identical to MUS_RG_FOLLOW_ME) +#define MUS_RG_SEVII_ROUTE 545 // MUS_RG_NANASHIMA +#define MUS_RG_SEVII_DUNGEON 546 // MUS_RG_NANAISEKI (Identical to MUS_RG_VIRIDIAN_FOREST) +#define MUS_RG_SEVII_123 547 // MUS_RG_NANA123 (Identical to MUS_RG_PEWTER) +#define MUS_RG_SEVII_45 548 // MUS_RG_NANA45 +#define MUS_RG_SEVII_67 549 // MUS_RG_NANA67 +#define MUS_RG_POKE_FLUTE 550 // MUS_RG_POKEFUE +#define MUS_RG_VS_DEOXYS 551 // MUS_RG_VS_DEO +#define MUS_RG_VS_MEWTWO 552 // MUS_RG_VS_MYU2 +#define MUS_RG_VS_LEGEND 553 // MUS_RG_VS_DEN +#define MUS_RG_ENCOUNTER_GYM_LEADER 554 // MUS_RG_EXEYE +#define MUS_RG_ENCOUNTER_DEOXYS 555 // MUS_RG_DEOEYE +#define MUS_RG_TRAINER_TOWER 556 // MUS_RG_T_TOWER +#define MUS_RG_SLOW_PALLET 557 // MUS_RG_SLOWMASARA +#define MUS_RG_TEACHY_TV_MENU 558 // MUS_RG_TVNOIZE -#define MUS_NONE 0xFFFF +#define PH_TRAP_BLEND 559 +#define PH_TRAP_HELD 560 +#define PH_TRAP_SOLO 561 +#define PH_FACE_BLEND 562 +#define PH_FACE_HELD 563 +#define PH_FACE_SOLO 564 +#define PH_CLOTH_BLEND 565 +#define PH_CLOTH_HELD 566 +#define PH_CLOTH_SOLO 567 +#define PH_DRESS_BLEND 568 +#define PH_DRESS_HELD 569 +#define PH_DRESS_SOLO 570 +#define PH_FLEECE_BLEND 571 +#define PH_FLEECE_HELD 572 +#define PH_FLEECE_SOLO 573 +#define PH_KIT_BLEND 574 +#define PH_KIT_HELD 575 +#define PH_KIT_SOLO 576 +#define PH_PRICE_BLEND 577 +#define PH_PRICE_HELD 578 +#define PH_PRICE_SOLO 579 +#define PH_LOT_BLEND 580 +#define PH_LOT_HELD 581 +#define PH_LOT_SOLO 582 +#define PH_GOAT_BLEND 583 +#define PH_GOAT_HELD 584 +#define PH_GOAT_SOLO 585 +#define PH_THOUGHT_BLEND 586 +#define PH_THOUGHT_HELD 587 +#define PH_THOUGHT_SOLO 588 +#define PH_CHOICE_BLEND 589 +#define PH_CHOICE_HELD 590 +#define PH_CHOICE_SOLO 591 +#define PH_MOUTH_BLEND 592 +#define PH_MOUTH_HELD 593 +#define PH_MOUTH_SOLO 594 +#define PH_FOOT_BLEND 595 +#define PH_FOOT_HELD 596 +#define PH_FOOT_SOLO 597 +#define PH_GOOSE_BLEND 598 +#define PH_GOOSE_HELD 599 +#define PH_GOOSE_SOLO 600 +#define PH_STRUT_BLEND 601 +#define PH_STRUT_HELD 602 +#define PH_STRUT_SOLO 603 +#define PH_CURE_BLEND 604 +#define PH_CURE_HELD 605 +#define PH_CURE_SOLO 606 +#define PH_NURSE_BLEND 607 +#define PH_NURSE_HELD 608 +#define PH_NURSE_SOLO 609 + +#define MUS_ROUTE118 0x7FFF // Map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). + +#define MUS_NONE 0xFFFF #endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index afbcd4ace..27357e99c 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -22,7 +22,7 @@ #define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 #define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 #define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 -#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 +#define TRAINER_HILL_FUNC_GET_IN_EREADER_MODE 9 #define TRAINER_HILL_FUNC_IN_CHALLENGE 10 #define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 #define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12 diff --git a/include/constants/tv.h b/include/constants/tv.h index 6f686f727..4b5f9115b 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -133,5 +133,59 @@ #define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s +// TV Show states for Pokemon Contest Live Updates +#define CONTESTLIVE_STATE_INTRO 0 +#define CONTESTLIVE_STATE_WON_BOTH_ROUNDS 1 +#define CONTESTLIVE_STATE_BETTER_ROUND2 2 +#define CONTESTLIVE_STATE_EQUAL_ROUNDS 3 +#define CONTESTLIVE_STATE_BETTER_ROUND1 4 +#define CONTESTLIVE_STATE_GOT_NERVOUS 5 +#define CONTESTLIVE_STATE_STARTLED_OTHER 6 +#define CONTESTLIVE_STATE_USED_COMBO 7 +#define CONTESTLIVE_STATE_EXCITING_APPEAL 8 +#define CONTESTLIVE_STATE_COOL 9 +#define CONTESTLIVE_STATE_BEAUTIFUL 10 +#define CONTESTLIVE_STATE_CUTE 11 +#define CONTESTLIVE_STATE_SMART 12 +#define CONTESTLIVE_STATE_TOUGH 13 +#define CONTESTLIVE_STATE_VERY_EXCITING_APPEAL 14 +#define CONTESTLIVE_STATE_VERY_COOL 15 +#define CONTESTLIVE_STATE_VERY_BEAUTIFUL 16 +#define CONTESTLIVE_STATE_VERY_CUTE 17 +#define CONTESTLIVE_STATE_VERY_SMART 18 +#define CONTESTLIVE_STATE_VERY_TOUGH 19 +#define CONTESTLIVE_STATE_TOOK_BREAK 20 +#define CONTESTLIVE_STATE_GOT_STARTLED 21 +#define CONTESTLIVE_STATE_USED_MOVE 22 +#define CONTESTLIVE_STATE_TALK_ABOUT_LOSER 23 +#define CONTESTLIVE_STATE_NO_APPEALS 24 +#define CONTESTLIVE_STATE_LAST_BOTH 25 +#define CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH 26 +#define CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN 27 +#define CONTESTLIVE_STATE_NO_EXCITING_APPEALS 28 +#define CONTESTLIVE_STATE_LOST_SMALL_MARGIN 29 +#define CONTESTLIVE_STATE_REPEATED_APPEALS 30 +#define CONTESTLIVE_STATE_LOST 31 +#define CONTESTLIVE_STATE_OUTRO 32 + +// Flags used to comment on winner +#define CONTESTLIVE_FLAG_EXCITING_APPEAL (1 << 0) +#define CONTESTLIVE_FLAG_GOT_NERVOUS (1 << 1) +#define CONTESTLIVE_FLAG_MAXED_EXCITEMENT (1 << 2) +#define CONTESTLIVE_FLAG_USED_COMBO (1 << 3) +#define CONTESTLIVE_FLAG_STARTLED_OTHER (1 << 4) +#define CONTESTLIVE_FLAG_SKIPPED_TURN (1 << 5) +#define CONTESTLIVE_FLAG_GOT_STARTLED (1 << 6) +#define CONTESTLIVE_FLAG_MADE_APPEAL (1 << 7) + +// Flags used to comment on loser +#define CONTESTLIVE_FLAG_LOST (1 << 0) +#define CONTESTLIVE_FLAG_REPEATED_MOVE (1 << 1) +#define CONTESTLIVE_FLAG_LOST_SMALL_MARGIN (1 << 2) +#define CONTESTLIVE_FLAG_NO_EXCITEMENT (1 << 3) +#define CONTESTLIVE_FLAG_BLEW_LEAD (1 << 4) +#define CONTESTLIVE_FLAG_MISSED_EXCITEMENT (1 << 5) +#define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6) +#define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7) #endif //GUARD_CONSTANTS_TV_H diff --git a/include/contest.h b/include/contest.h index a9b1db9ee..1dd4340bd 100644 --- a/include/contest.h +++ b/include/contest.h @@ -6,135 +6,6 @@ enum { - CONTEST_DEBUG_MODE_OFF, - // Prints the totalPoints value for each contestant. - CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, - // Prints the ContestResourcesField1C::unk_C value as a bitstring for each contestant. - CONTEST_DEBUG_MODE_PRINT_UNK_C, - // Prints the ContestResourcesField1C::unk_D value as a bitstring for each contestant. - CONTEST_DEBUG_MODE_PRINT_UNK_D -}; - -enum -{ - CONTEST_EFFECT_HIGHLY_APPEALING, - CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - CONTEST_EFFECT_REPETITION_NOT_BORING, - CONTEST_EFFECT_AVOID_STARTLE_ONCE, - CONTEST_EFFECT_AVOID_STARTLE, - CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, - CONTEST_EFFECT_USER_LESS_EASILY_STARTLED, - CONTEST_EFFECT_STARTLE_FRONT_MON, - CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, - CONTEST_EFFECT_STARTLE_PREV_MON, - CONTEST_EFFECT_STARTLE_PREV_MONS, - CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - CONTEST_EFFECT_STARTLE_PREV_MON_2, - CONTEST_EFFECT_STARTLE_PREV_MONS_2, - CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, - CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, - CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, - CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, - CONTEST_EFFECT_BETTER_IF_FIRST, - CONTEST_EFFECT_BETTER_IF_LAST, - CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, - CONTEST_EFFECT_BETTER_WHEN_LATER, - CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, - CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, - CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - CONTEST_EFFECT_NEXT_APPEAL_LATER, - CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER, - CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, - CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - CONTEST_EFFECT_DONT_EXCITE_AUDIENCE -}; - -enum -{ - COMBO_STARTER_RAIN_DANCE = 1, - COMBO_STARTER_RAGE, - COMBO_STARTER_FOCUS_ENERGY, - COMBO_STARTER_HYPNOSIS, - COMBO_STARTER_ENDURE, - COMBO_STARTER_HORN_ATTACK, - COMBO_STARTER_SWORDS_DANCE, - COMBO_STARTER_STOCKPILE, - COMBO_STARTER_SUNNY_DAY, - COMBO_STARTER_REST, - COMBO_STARTER_VICE_GRIP, - COMBO_STARTER_DEFENSE_CURL, - COMBO_STARTER_CHARGE, - COMBO_STARTER_ROCK_THROW, - COMBO_STARTER_YAWN, - COMBO_STARTER_SCARY_FACE, - COMBO_STARTER_POWDER_SNOW, - COMBO_STARTER_LOCK_ON, - COMBO_STARTER_SOFT_BOILED, - COMBO_STARTER_MEAN_LOOK, - COMBO_STARTER_SCRATCH, - COMBO_STARTER_GROWTH, - COMBO_STARTER_HAIL, - COMBO_STARTER_SANDSTORM, - COMBO_STARTER_BELLY_DRUM, - COMBO_STARTER_MIND_READER, - COMBO_STARTER_DRAGON_BREATH, - COMBO_STARTER_DRAGON_RAGE, - COMBO_STARTER_DRAGON_DANCE, - COMBO_STARTER_SURF, - COMBO_STARTER_DIVE, - COMBO_STARTER_STRING_SHOT, - COMBO_STARTER_LEER, - COMBO_STARTER_TAUNT, - COMBO_STARTER_CHARM, - COMBO_STARTER_HARDEN, - COMBO_STARTER_SING, - COMBO_STARTER_EARTHQUAKE, - COMBO_STARTER_DOUBLE_TEAM, - COMBO_STARTER_CURSE, - COMBO_STARTER_SWEET_SCENT, - COMBO_STARTER_SLUDGE, - COMBO_STARTER_SLUDGE_BOMB, - COMBO_STARTER_THUNDER_PUNCH, - COMBO_STARTER_FIRE_PUNCH, - COMBO_STARTER_ICE_PUNCH, - COMBO_STARTER_PECK, - COMBO_STARTER_METAL_SOUND, - COMBO_STARTER_MUD_SPORT, - COMBO_STARTER_WATER_SPORT, - COMBO_STARTER_BONE_CLUB, - COMBO_STARTER_BONEMERANG, - COMBO_STARTER_BONE_RUSH, - COMBO_STARTER_SAND_ATTACK, - COMBO_STARTER_MUD_SLAP, - COMBO_STARTER_FAKE_OUT, - COMBO_STARTER_PSYCHIC, - COMBO_STARTER_KINESIS, - COMBO_STARTER_CONFUSION, - COMBO_STARTER_POUND, - COMBO_STARTER_SMOG, - COMBO_STARTER_CALM_MIND -}; - -enum -{ CONTEST_STRING_MORE_CONSCIOUS, CONTEST_STRING_NO_APPEAL, CONTEST_STRING_SETTLE_DOWN, @@ -206,29 +77,38 @@ enum { CONTEST_FILTER_ONLY_POSTGAME }; +// Constants for changing in-contest Condition (the stars that appear during appeals) +enum { + CONDITION_NO_CHANGE, + CONDITION_GAIN, + CONDITION_LOSE, +}; + struct ContestPokemon { - /*0x00*/ u16 species; - /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; - /*0x15*/ u8 trainerGfxId; - /*0x18*/ u32 aiChecks; - /*0x1C*/ u8 whichRank:2; // 0x1 0x2 - u8 aiPool_Cool:1; // 0x4 - u8 aiPool_Beauty:1; // 0x8 - u8 aiPool_Cute:1; // 0x10 - u8 aiPool_Smart:1; // 0x20 - u8 aiPool_Tough:1; // 0x40 - /*0x1E*/ u16 moves[MAX_MON_MOVES]; // moves - /*0x26*/ u8 cool; // cool - /*0x27*/ u8 beauty; // beauty - /*0x28*/ u8 cute; // cute - /*0x29*/ u8 smart; // smart - /*0x2A*/ u8 tough; // tough - /*0x2B*/ u8 sheen; // sheen - /*0x2C*/ u8 unk2C[12]; - /*0x38*/ u32 personality; // personality - /*0x3C*/ u32 otId; // otId + u16 species; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; + u8 trainerGfxId; + u32 aiFlags; + u8 whichRank:2; + u8 aiPool_Cool:1; + u8 aiPool_Beauty:1; + u8 aiPool_Cute:1; + u8 aiPool_Smart:1; + u8 aiPool_Tough:1; + u16 moves[MAX_MON_MOVES]; + u8 cool; + u8 beauty; + u8 cute; + u8 smart; + u8 tough; + u8 sheen; + u8 highestRank; + bool8 gameCleared; + u8 unused[10]; + u32 personality; + u32 otId; }; struct Shared1A004 @@ -239,101 +119,101 @@ struct Shared1A004 u8 savedJunk[0x800]; }; -struct ContestStruct_field_18 +struct ContestMoveAnimData { u16 species; - u16 unk2; - u8 unk4_0:1; - u8 unk5; - u32 unk8; - u32 unkC; - u32 unk10; + u16 targetSpecies; + bool8 hasTargetAnim:1; + u8 contestant; + u32 personality; + u32 otId; + u32 targetPersonality; }; struct Contest { - /*0x0*/ u8 playerMoveChoice; - /*0x1*/ u8 turnNumber; - /*0x2*/ u8 unused2[CONTESTANT_COUNT]; - /*0x6*/ u16 unk1920A_0:1; // Task active flags? - u16 unk1920A_1:1; - u16 unk1920A_2:1; - u16 unk1920A_3:1; - u16 unk1920A_4:1; - u16 isShowingApplauseMeter:1; - u16 applauseMeterIsMoving:1; - u16 unk1920A_7:1; - /*0x7*/ u16 unk1920B_0:1; - u16 unk1920B_1:1; - u16 unk1920B_2:1; - /*0x8*/ u8 mainTaskId; - /*0x9*/ u8 unk1920D[4]; - /*0xD*/ u8 unk19211; - /*0xE*/ u8 unk19212; - /*0xF*/ u8 filler19213; - /*0x10*/ u8 unk19214; - /*0x11*/ u8 unk19215; - /*0x12*/ u8 unk19216; // sprite ID - /*0x13*/ s8 applauseLevel; - /*0x19218*/ u8 prevTurnOrder[CONTESTANT_COUNT]; - /*0x1921C*/ u32 unk1921C; // saved RNG value? - u16 moveHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; - u8 excitementHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; + u8 playerMoveChoice; + u8 appealNumber; + u8 unk[CONTESTANT_COUNT]; // never read + bool16 unused1:1; + bool16 unused2:1; + bool16 unused3:1; + bool16 unused4:1; + bool16 waitForJudgeSpeechBubble:1; + bool16 isShowingApplauseMeter:1; + bool16 applauseMeterIsMoving:1; + bool16 animatingAudience:1; + bool16 waitForAudienceBlend:1; + bool16 sliderHeartsAnimating:1; // When the slider heart is appearing/disappearing + bool16 waitForLink:1; + u8 mainTaskId; + u8 filler1[4]; + u8 judgeAttentionTaskId; + u8 blendTaskId; + u8 filler2; + u8 turnNumber; + u8 currentContestant; + u8 judgeSpeechBubbleSpriteId; + s8 applauseLevel; + u8 prevTurnOrder[CONTESTANT_COUNT]; + u32 unusedRng; + u16 moveHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; + u8 excitementHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; u8 applauseMeterSpriteId; - /*0x1925D*/ u8 contestSetupState; - /*0x1925E*/ u8 unk1925E; + u8 contestSetupState; + u8 moveAnimTurnCount; }; struct ContestantStatus { - /*0x00*/ s16 appeal1; // move appeal? - /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe? - /*0x04*/ s16 pointTotal; - /*0x06*/ u16 currMove; - /*0x08*/ u16 prevMove; - /*0x0A*/ u8 moveCategory; - /*0x0B*/ u8 ranking:2; - u8 unkB_2:2; + s16 baseAppeal; + s16 appeal; + s16 pointTotal; + u16 currMove; + u16 prevMove; + u8 moveCategory; + u8 ranking:2; + u8 unused1:2; u8 moveRepeatCount:3; - u8 noMoreTurns:1; // used a one-time move? - /*0x0C*/ u8 nervous:1; + bool8 noMoreTurns:1; // used a one-time move? + bool8 nervous:1; u8 numTurnsSkipped:2; - /*0x0D*/ s8 condition; - /*0x0E*/ u8 jam; - /*0x0F*/ u8 jamReduction; + s8 condition; + u8 jam; + u8 jamReduction; // Flags set by move effect - /*0x10*/ u8 resistant:1; - u8 immune:1; - u8 moreEasilyStartled:1; - u8 usedRepeatableMove:1; + bool8 resistant:1; + bool8 immune:1; + bool8 moreEasilyStartled:1; + bool8 usedRepeatableMove:1; u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition u8 turnOrderMod:2; // 1: defined; 2: random - /*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random - u8 turnSkipped:1; - u8 exploded:1; - u8 overrideCategoryExcitementMod:1; - u8 appealTripleCondition:1; + u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random + bool8 turnSkipped:1; + bool8 exploded:1; + bool8 overrideCategoryExcitementMod:1; + bool8 appealTripleCondition:1; - /*0x12*/ u8 jamSafetyCount; - /*0x13*/ u8 effectStringId; // status action? - /*0x14*/ u8 effectStringId2; - /*0x15*/ u8 disappointedRepeat:1; - u8 unk15_1:1; - u8 unk15_2:1; - u8 unk15_3:1; - u8 hasJudgesAttention:1; - u8 judgesAttentionWasRemoved:1; - u8 unk15_6:1; - /*0x16*/ u8 unk16; - /*0x17*/ u8 unk17; - /*0x18*/ u8 unk18; - /*0x19*/ u8 nextTurnOrder; // turn position - /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out" - /*0x1B*/ u8 unk1B; + u8 jamSafetyCount; + u8 effectStringId; // status action? + u8 effectStringId2; + bool8 repeatedMove:1; + bool8 unused2:1; + bool8 repeatedPrevMove:1; // never read + bool8 completedComboFlag:1; + bool8 hasJudgesAttention:1; + bool8 judgesAttentionWasRemoved:1; + bool8 usedComboMove:1; + bool8 completedCombo; + u8 comboAppealBonus; + u8 repeatJam; + u8 nextTurnOrder; // turn position + u8 attentionLevel; // How much the Pokemon "stood out" + u8 contestantAnimTarget; }; -struct UnknownContestStruct7 +struct ContestAppealMoveResults { u8 turnOrder[CONTESTANT_COUNT]; s16 jam; @@ -348,97 +228,97 @@ struct ContestAIInfo /*0x00*/ u8 aiState; /*0x02*/ u16 nextMove; /*0x04*/ u8 nextMoveIndex; - /*0x05*/ u8 unk5[4]; + /*0x05*/ u8 moveScores[MAX_MON_MOVES]; /*0x09*/ u8 aiAction; - /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here - /*0x10*/ u8 currentAICheck; - /*0x14*/ u32 aiChecks; + /*0x0A*/ u8 filler[6]; + /*0x10*/ u8 currentAIFlag; + /*0x14*/ u32 aiFlags; /*0x18*/ s16 scriptResult; - /*0x1A*/ s16 scriptArr[3]; + /*0x1A*/ s16 vars[3]; /*0x20*/ const u8 *stack[8]; /*0x40*/ u8 stackSize; /*0x41*/ u8 contestantId; }; -struct UnknownContestStruct5 +struct ContestExcitement { - s8 bits_0; // current move excitement? - u8 excitementFrozen:1; - u8 excitementFreezer:3; - s8 unk2; + s8 moveExcitement; + u8 frozen:1; + u8 freezer:3; + s8 excitementAppealBonus; }; -struct UnknownContestStruct4 +struct ContestGraphicsState { - u8 unk0; // sprite ID - u8 unk1; // sprite ID - u8 unk2_0:1; - u8 unk2_1:1; - u8 unk2_2:1; + u8 sliderHeartSpriteId; + u8 nextTurnSpriteId; + bool8 sliderUpdating:1; + bool8 boxBlinking:1; + bool8 updatingAppealHearts:1; }; -struct UnknownContestStruct6 +struct ContestFinalStandings { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; + s32 totalPoints; + s32 round1Points; + s32 random; + s32 contestant; }; -struct ContestResourcesField1C +struct ContestTV { - u16 unk0[5]; - s16 unkA; - u8 unkC; - u8 unkD; - u8 unkE_1:1; - u8 unkE_2:1; + u16 appeals[CONTEST_NUM_APPEALS]; + s16 move; + u8 winnerFlags; + u8 loserFlags; + bool8 madeAppeal:1; + bool8 madeExcitingAppeal:1; }; -struct ContestResourcesField20 +struct ContestUnused { - u8 filler_00[0x0C]; + u8 filler[12]; }; struct ContestResources { struct Contest *contest; struct ContestantStatus *status; - struct UnknownContestStruct7 *field_8; + struct ContestAppealMoveResults *appealResults; struct ContestAIInfo *aiData; - struct UnknownContestStruct5 *field_10; - struct UnknownContestStruct4 *field_14; - struct ContestStruct_field_18 *field_18; - struct ContestResourcesField1C * field_1c; - struct ContestResourcesField20 * field_20; + struct ContestExcitement *excitement; + struct ContestGraphicsState *gfxState; + struct ContestMoveAnimData *moveAnim; + struct ContestTV *tv; + struct ContestUnused * unused; u8 * contestBgTilemaps[CONTESTANT_COUNT]; - void * field_34; - void * field_38; + void * boxBlinkTiles1; + void * boxBlinkTiles2; void * field_3c; }; #define eContest (*gContestResources->contest) #define eContestantStatus (gContestResources->status) -#define eContestResources8 (*gContestResources->field_8) +#define eContestAppealResults (*gContestResources->appealResults) #define eContestAI (*gContestResources->aiData) -#define eContestResources10 (*gContestResources->field_10) -#define eContestResources14 (*gContestResources->field_14) -#define eUnzippedContestAudienceGfx (gHeap + 0x18000) -#define eUnknownHeap19000 (gHeap + 0x19000) +#define eContestExcitement (*gContestResources->excitement) +#define eContestGfxState (gContestResources->gfxState) +#define eUnzippedContestAudience_Gfx (gHeap + 0x18000) +#define eContestAudienceFrame2_Gfx (gHeap + 0x19000) #define eContestDebugMode (gHeap[0x1a000]) #define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) extern struct ContestPokemon gContestMons[CONTESTANT_COUNT]; -extern s16 gContestMonConditions[CONTESTANT_COUNT]; +extern s16 gContestMonRound1Points[CONTESTANT_COUNT]; extern s16 gContestMonTotalPoints[CONTESTANT_COUNT]; -extern s16 gUnknown_02039F10[CONTESTANT_COUNT]; +extern s16 gContestMonAppealPointTotals[CONTESTANT_COUNT]; extern s16 gContestMonRound2Points[CONTESTANT_COUNT]; extern u8 gContestFinalStandings[CONTESTANT_COUNT]; extern u8 gContestMonPartyIndex; extern u8 gContestPlayerMonIndex; extern u8 gContestantTurnOrder[CONTESTANT_COUNT]; extern u8 gLinkContestFlags; -extern u8 gUnknown_02039F2B; +extern u8 gContestLinkLeaderIndex; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; extern u8 gNumLinkContestPlayers; @@ -454,11 +334,11 @@ extern u32 gContestRngValue; void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); void CB2_StartContest(void); -void sub_80DA8C8(u8 partyIndex); -void sub_80DAB8C(u8 contestType, u8 rank); -void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); +void CreateContestMonFromParty(u8 partyIndex); +void SetContestants(u8 contestType, u8 rank); +void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame); u8 GetContestEntryEligibility(struct Pokemon *pkmn); -void sub_80DB09C(u8 contestCategory); +void CalculateRound1Points(u8 contestCategory); bool8 IsSpeciesNotUnown(u16 species); bool8 Contest_IsMonsTurnDisabled(u8 a); void SaveLinkContestResults(void); @@ -468,24 +348,12 @@ void SetContestantEffectStringID2(u8 a, u8 b); void SetStartledString(u8 contestant, u8 jam); void MakeContestantNervous(u8 p); s8 Contest_GetMoveExcitement(u16 move); -bool8 sub_80DE1E8(u8 a); +bool8 IsContestantAllowedToCombo(u8 contestant); void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId); void ResetContestLinkResults(void); bool8 sub_80DEDA8(u8 a); u8 sub_80DEFA8(u8 a, u8 b); void ClearContestWinnerPicsInContestHall(void); -void sub_80DFA08(struct ContestPokemon *mon, s32 language); - -// contest link -void sub_81D9DE4(u8 taskId); -void sub_80FCF40(u8); -void sub_80FCFD0(u8); -void sub_80F8714(u8); -bool32 sub_80FC670(s16 *); -bool32 sub_80FC4F4(void *, u16); -bool8 sub_80FC55C(void); -bool8 sub_80FC530(u8); -u8 sub_80F86E0(u8 *); -void sub_80FC9F8(u8 taskId); +void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language); #endif //GUARD_CONTEST_H diff --git a/include/contest_link.h b/include/contest_link.h index 4344d55ad..cd2682524 100644 --- a/include/contest_link.h +++ b/include/contest_link.h @@ -1,13 +1,23 @@ #ifndef GUARD_CONTEST_LINK_H #define GUARD_CONTEST_LINK_H -void sub_80FCC88(u8); -void sub_80FCC88(u8); -void sub_80FCACC(u8); -void sub_80FC580(u8); -void sub_80FC6BC(u8); -void sub_80FC804(u8); -void sub_80FCE48(u8); -void sub_80FC894(u8); +void Task_LinkContest_CommunicateAppealsState(u8); +void Task_LinkContest_CommunicateFinalStandings(u8); +void Task_LinkContest_Init(u8); +void Task_LinkContest_CommunicateMonsRS(u8); +void Task_LinkContest_CommunicateRngRS(u8); +void Task_LinkContest_CommunicateLeaderIdsRS(u8); +void Task_LinkContest_CommunicateCategoryRS(u8); +void Task_LinkContest_CommunicateMonIdxs(u8); +void Task_LinkContest_StartCommunicationEm(u8); +void Task_LinkContest_CommunicateRound1Points(u8); +void Task_LinkContest_CommunicateTurnOrder(u8); +void Task_LinkContest_FinalizeConnection(u8); +void Task_LinkContest_CommunicateMoveSelections(u8); +bool32 LinkContest_TryLinkStandby(s16 *); +bool32 LinkContest_SendBlock(void *, u16); +bool8 LinkContest_GetBlockReceivedFromAllPlayers(void); +bool8 LinkContest_GetBlockReceived(u8); +u8 LinkContest_GetLeaderIndex(u8 *); #endif //GUARD_CONTEST_LINK_H diff --git a/include/contest_util.h b/include/contest_util.h index c0d8df031..76f9ae522 100644 --- a/include/contest_util.h +++ b/include/contest_util.h @@ -7,6 +7,8 @@ void StartContest(void); void BufferContestantMonSpecies(void); void ShowContestResults(void); void ContestLinkTransfer(u8); -void sub_80FC998(u8 taskId); +void ShowContestWinnerPainting(void); +u16 GetContestRand(void); +u8 CountPlayerContestPaintings(void); #endif // GUARD_CONTEST_UTIL_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 6ccd4759e..9b4d9302f 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -16,11 +16,7 @@ enum SpinnerRunnerFollowPatterns RUNFOLLOW_SOUTH_EAST_WEST }; -struct UnkStruct_085094AC -{ - const union AnimCmd *const *anims; - u8 animPos[4]; -}; +#define FIGURE_8_LENGTH 72 #define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0) #define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1) @@ -43,6 +39,12 @@ struct UnkStruct_085094AC #define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18) #define GROUND_EFFECT_FLAG_SEAWEED (1 << 19) +struct UnkStruct_085094AC +{ + const union AnimCmd *const *anims; + u8 animPos[4]; +}; + struct PairedPalettes { u16 tag; @@ -98,7 +100,7 @@ void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8); const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); void FreeAndReserveObjectSpritePalettes(void); -void sub_808E82C(u8, u8, u8, s16, s16); +void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); void sub_808E7E4(u8, u8, u8); void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); @@ -174,8 +176,6 @@ u8 sub_809785C(struct Sprite *); u8 sub_80978E4(struct Sprite *); void SetAndStartSpriteAnim(struct Sprite *, u8, u8); bool8 SpriteAnimEnded(struct Sprite *); -void sub_8097750(struct Sprite *); -bool8 sub_8097758(struct Sprite *); void CreateLevitateMovementTask(struct ObjectEvent *); void DestroyExtraMovementTask(u8); void UnfreezeObjectEvents(void); @@ -191,8 +191,8 @@ u8 GetLedgeJumpDirection(s16, s16, u8); void CameraObjectSetFollowedObjectId(u8 objectId); u16 GetObjectPaletteTag(u8 palSlot); void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); -s16 sub_809773C(s16 a1); -s16 sub_8097728(s16 a1); +s16 GetFigure8XOffset(s16 idx); +s16 GetFigure8YOffset(s16 idx); void CameraObjectReset2(void); u8 GetObjectEventBerryTreeId(u8 objectEventId); void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); diff --git a/include/event_scripts.h b/include/event_scripts.h index d147dd4f1..851559724 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -294,39 +294,39 @@ extern const u8 gTVSafariFanClubText07[]; extern const u8 gTVSafariFanClubText08[]; extern const u8 gTVSafariFanClubText09[]; extern const u8 gTVSafariFanClubText10[]; -extern const u8 gTVContestLiveUpdatesText00[]; -extern const u8 gTVContestLiveUpdatesText01[]; -extern const u8 gTVContestLiveUpdatesText02[]; -extern const u8 gTVContestLiveUpdatesText03[]; -extern const u8 gTVContestLiveUpdatesText04[]; -extern const u8 gTVContestLiveUpdatesText05[]; -extern const u8 gTVContestLiveUpdatesText06[]; -extern const u8 gTVContestLiveUpdatesText07[]; -extern const u8 gTVContestLiveUpdatesText08[]; -extern const u8 gTVContestLiveUpdatesText09[]; -extern const u8 gTVContestLiveUpdatesText10[]; -extern const u8 gTVContestLiveUpdatesText11[]; -extern const u8 gTVContestLiveUpdatesText12[]; -extern const u8 gTVContestLiveUpdatesText13[]; -extern const u8 gTVContestLiveUpdatesText14[]; -extern const u8 gTVContestLiveUpdatesText15[]; -extern const u8 gTVContestLiveUpdatesText16[]; -extern const u8 gTVContestLiveUpdatesText17[]; -extern const u8 gTVContestLiveUpdatesText18[]; -extern const u8 gTVContestLiveUpdatesText19[]; -extern const u8 gTVContestLiveUpdatesText20[]; -extern const u8 gTVContestLiveUpdatesText21[]; -extern const u8 gTVContestLiveUpdatesText22[]; -extern const u8 gTVContestLiveUpdatesText23[]; -extern const u8 gTVContestLiveUpdatesText24[]; -extern const u8 gTVContestLiveUpdatesText25[]; -extern const u8 gTVContestLiveUpdatesText26[]; -extern const u8 gTVContestLiveUpdatesText27[]; -extern const u8 gTVContestLiveUpdatesText28[]; -extern const u8 gTVContestLiveUpdatesText29[]; -extern const u8 gTVContestLiveUpdatesText30[]; -extern const u8 gTVContestLiveUpdatesText31[]; -extern const u8 gTVContestLiveUpdatesText32[]; +extern const u8 ContestLiveUpdates_Text_Intro[]; +extern const u8 ContestLiveUpdates_Text_WonBothRounds[]; +extern const u8 ContestLiveUpdates_Text_BetterRound2[]; +extern const u8 ContestLiveUpdates_Text_EqualRounds[]; +extern const u8 ContestLiveUpdates_Text_BetterRound1[]; +extern const u8 ContestLiveUpdates_Text_GotNervous[]; +extern const u8 ContestLiveUpdates_Text_StartledFoes[]; +extern const u8 ContestLiveUpdates_Text_UsedCombo[]; +extern const u8 ContestLiveUpdates_Text_ExcitingAppeal[]; +extern const u8 ContestLiveUpdates_Text_WasCool[]; +extern const u8 ContestLiveUpdates_Text_WasBeautiful[]; +extern const u8 ContestLiveUpdates_Text_WasCute[]; +extern const u8 ContestLiveUpdates_Text_WasSmart[]; +extern const u8 ContestLiveUpdates_Text_WasTough[]; +extern const u8 ContestLiveUpdates_Text_VeryExcitingAppeal[]; +extern const u8 ContestLiveUpdates_Text_VeryCool[]; +extern const u8 ContestLiveUpdates_Text_VeryBeautiful[]; +extern const u8 ContestLiveUpdates_Text_VeryCute[]; +extern const u8 ContestLiveUpdates_Text_VerySmart[]; +extern const u8 ContestLiveUpdates_Text_VeryTough[]; +extern const u8 ContestLiveUpdates_Text_TookBreak[]; +extern const u8 ContestLiveUpdates_Text_GotStartled[]; +extern const u8 ContestLiveUpdates_Text_MoveWonderful[]; +extern const u8 ContestLiveUpdates_Text_TalkAboutAnotherMon[]; +extern const u8 ContestLiveUpdates_Text_FailedToAppeal[]; +extern const u8 ContestLiveUpdates_Text_LastInBothRounds[]; +extern const u8 ContestLiveUpdates_Text_NotExcitingEnough[]; +extern const u8 ContestLiveUpdates_Text_LostAfterWinningRound1[]; +extern const u8 ContestLiveUpdates_Text_NeverExciting[]; +extern const u8 ContestLiveUpdates_Text_LostBySmallMargin[]; +extern const u8 ContestLiveUpdates_Text_RepeatedAppeals[]; +extern const u8 ContestLiveUpdates_Text_ValiantEffortButLost[]; +extern const u8 ContestLiveUpdates_Text_Outro[]; extern const u8 gTVPokemonBattleUpdateText00[]; extern const u8 gTVPokemonBattleUpdateText01[]; extern const u8 gTVPokemonBattleUpdateText02[]; @@ -372,10 +372,11 @@ extern const u8 SecretBase_Text_Trainer8Defeated[]; extern const u8 SecretBase_Text_Trainer9Defeated[]; //field effects -extern const u8 EventScript_FldEffStrength[]; +extern const u8 EventScript_UseStrength[]; extern const u8 EventScript_FailSweetScent[]; -extern const u8 EventScript_FldEffFlash[]; -extern const u8 EventScript_FldEffRockSmash[]; +extern const u8 EventScript_UseFlash[]; +extern const u8 EventScript_UseCut[]; +extern const u8 EventScript_UseRockSmash[]; //player pc extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[]; @@ -587,4 +588,26 @@ extern u8 BerryTree_EventScript_ItemUsePlantBerry[]; extern u8 BerryTree_EventScript_ItemUseWailmerPail[]; extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[]; +// overworld +extern const u8 EventScript_WhiteOut[]; +extern const u8 EventScript_ResetMrBriney[]; +extern const u8 EventScript_DoLinkRoomExit[]; +extern const u8 CableClub_EventScript_TooBusyToNotice[]; +extern const u8 CableClub_EventScript_ReadTrainerCard[]; +extern const u8 CableClub_EventScript_ReadTrainerCardColored[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[]; +extern const u8 EventScript_RecordCenter_Spot0[]; +extern const u8 EventScript_RecordCenter_Spot1[]; +extern const u8 EventScript_RecordCenter_Spot2[]; +extern const u8 EventScript_RecordCenter_Spot3[]; +extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[]; +extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; +extern const u8 EventScript_TradeCenter_Chair1[]; +extern const u8 EventScript_TradeCenter_Chair0[]; +extern const u8 EventScript_ConfirmLeaveTradeRoom[]; +extern const u8 EventScript_TerminateLink[]; + #endif // GUARD_EVENT_SCRIPTS_H diff --git a/include/field_camera.h b/include/field_camera.h index fecea244e..2bed02b20 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -23,7 +23,7 @@ void DrawWholeMapView(void); void CurrentMapDrawMetatileAt(int x, int y); void sub_8089C08(s16 *a0, s16 *a1); void DrawDoorMetatileAt(int x, int y, u16 *arr); -void move_tilemap_camera_to_upper_left_corner(void); +void ResetFieldCamera(void); void sub_8057A58(void); void ResetCameraUpdateInfo(void); u32 InitCameraUpdateCallback(u8 a); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index f722a6063..17e5afb63 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -34,7 +34,7 @@ bool8 sub_8068870(u16 a); bool8 sub_8068894(void); bool8 sub_8068A64(struct MapPosition *, u16); u8 sub_8068F18(void); -bool8 dive_warp(struct MapPosition *position, u16 b); +bool8 TryDoDiveWarp(struct MapPosition *position, u16 b); int SetCableClubWarp(void); u8 TrySetDiveWarp(void); const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction); diff --git a/include/field_effect.h b/include/field_effect.h index 59f99ad93..731fb9c59 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -16,7 +16,7 @@ void ReturnToFieldFromFlyMapSelect(void); u8 AddNewGameBirchObject(s16, s16, u8); void FieldEffectStop(struct Sprite *sprite, u8 id); u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer); -void CreateTeleportFieldEffectTask(void); +void FldEff_TeleportWarpOut(void); void FieldEffectActiveListRemove(u8 id); void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); void FieldEffectActiveListAdd(u8 id); @@ -39,12 +39,8 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority); void StartLavaridgeGymB1FWarp(u8 priority); void StartLavaridgeGym1FWarp(u8 priority); -void sub_80B9C28(s16*, u8); -void sub_80B9C54(s16*, u8); -void sub_80B9CDC(s16*, u8); - -void SpriteCB_PopOutOfAsh(struct Sprite*); -void SpriteCB_LavaridgeGymWarp(struct Sprite*); +void SpriteCB_AshPuff(struct Sprite*); +void SpriteCB_AshLaunch(struct Sprite*); void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId); diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 8257bc110..9b7b6ffd5 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -8,20 +8,22 @@ // Exported ROM declarations u8 CreateWarpArrowSprite(void); u8 sub_8155800(u8 oldSpriteId); -void sub_81555AC(u8, u8); +void SetSurfBobState(u8 spriteId, u8 value); +void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value); +void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1); bool8 sub_8155DA0(struct ObjectEvent *); void sub_8155D78(struct ObjectEvent *); void StartAshFieldEffect(s16, s16, u16, s16); void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8); u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*); u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void sub_8155F80(struct Sprite*); +void UpdateRayquazaSpotlightEffect(struct Sprite*); void UpdateShadowFieldEffect(struct Sprite*); void UpdateTallGrassFieldEffect(struct Sprite*); void WaitFieldEffectSpriteAnim(struct Sprite*); void UpdateAshFieldEffect(struct Sprite*); void UpdateSurfBlobFieldEffect(struct Sprite*); -void sub_8156194(struct Sprite*); +void UpdateJumpImpactEffect(struct Sprite*); void UpdateFootprintsTireTracksFieldEffect(struct Sprite*); void UpdateSplashFieldEffect(struct Sprite*); void UpdateLongGrassFieldEffect(struct Sprite*); @@ -33,7 +35,5 @@ void UpdateBubblesFieldEffect(struct Sprite*); void UpdateSparkleFieldEffect(struct Sprite*); void SetSpriteInvisible(u8 spriteId); void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y); -void sub_8155604(u8 spriteId, u8 value, s16 data1); -void sub_81555D8(u8 spriteId, u8 value); #endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index bcee339d5..722fe4444 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,7 +1,7 @@ #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H -void player_step(u8 a, u16 b, u16 c); +void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys); void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u8, u8); u8 GetPlayerAvatarGenderByGraphicsId(u8); @@ -39,7 +39,7 @@ void sub_808BCF4(void); void sub_808D074(u8); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); -void sub_808C114(void); +void SetPlayerAvatarFieldMove(void); u8 GetPlayerAvatarGraphicsIdByCurrentState(void); void SetPlayerAvatarStateMask(u8 a); u8 GetPlayerAvatarGraphicsIdByStateId(u8 a); @@ -47,9 +47,9 @@ u8 GetJumpSpecialMovementAction(u32); bool8 PartyHasMonWithSurf(void); bool8 IsPlayerFacingSurfableFishableWater(void); bool8 IsPlayerSurfingNorth(void); -void sub_808C228(u8 direction); +void SetPlayerAvatarWatering(u8 direction); u8 GetPlayerAvatarFlags(void); -void sub_808B578(void); +void UpdatePlayerAvatarTransitionState(void); u8 GetFRLGAvatarGraphicsIdByGender(u8); u8 GetRSAvatarGraphicsIdByGender(u8); void PlayerWheelieInPlace(u8 direction); diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index e05e30378..951bf0788 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -1,6 +1,8 @@ #ifndef GUARD_FIELD_SCREEN_EFFECT_H #define GUARD_FIELD_SCREEN_EFFECT_H +extern const s32 gMaxFlashLevel; + void WarpFadeInScreen(void); void WarpFadeOutScreen(void); void FadeInFromBlack(void); @@ -26,7 +28,7 @@ void DoFallWarp(void); void DoEscalatorWarp(u8 metatileBehavior); void DoLavaridgeGymB1FWarp(void); void DoLavaridgeGym1FWarp(void); -void DoTeleportWarp(void); +void DoTeleportTileWarp(void); void DoMossdeepGymWarp(void); void DoPortholeWarp(void); void DoCableClubWarp(void); diff --git a/include/fieldmap.h b/include/fieldmap.h index aff458eb1..438fb4787 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -30,25 +30,21 @@ struct MapConnection *sub_8088950(u8 direction, int x, int y); bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection); bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset); void save_serialize_map(void); -void sub_8088B3C(u16 x, u16 y); +void SetCameraFocusCoords(u16 x, u16 y); void InitMap(void); void InitMapFromSavedGame(void); void InitTrainerHillMap(void); void InitBattlePyramidMap(bool8 setPlayerPosition); -void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout); -void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout); -void apply_map_tileset2_palette(struct MapLayout const *mapLayout); -void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout); -void copy_map_tileset1_to_vram(const struct MapLayout *); -void copy_map_tileset2_to_vram(const struct MapLayout *); -struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection); +void CopyMapTilesetsToVram(struct MapLayout const *mapLayout); +void LoadMapTilesetPalettes(struct MapLayout const *mapLayout); +void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout); +void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout); +void CopyPrimaryTilesetToVram(const struct MapLayout *); +void CopySecondaryTilesetToVram(const struct MapLayout *); +struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection); struct MapConnection *GetConnectionAtCoords(s16 x, s16 y); void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable); -void SpriteCB_PokeballGlow(struct Sprite *); -void SpriteCB_PokecenterMonitor(struct Sprite *); -void SpriteCB_HallOfFameMonitor(struct Sprite *); - // field_region_map.c void FieldInitRegionMap(MainCallback callback); diff --git a/include/fldeff.h b/include/fldeff.h index deb54372c..597ce6f47 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -9,22 +9,13 @@ bool8 FldEff_CutGrass(void); void FixLongGrassMetatilesWindowTop(s16 x, s16 y); void FixLongGrassMetatilesWindowBottom(s16 x, s16 y); -extern const struct SpritePalette gFieldEffectObjectPaletteInfo6; +extern const struct SpritePalette gSpritePalette_CutGrass; extern struct MapPosition gPlayerFacingPosition; -// groundshake -bool8 sub_81BE66C(void); -void sub_81BE6AC(void); -void sub_81BE6B8(void); -void sub_81BE72C(void); -void sub_81BE79C(void); -void sub_81BE7F4(void); -void sub_81BE994(void); - // escalator -void sub_80E1558(u8 var); -void sub_80E1570(void); -bool8 sub_80E1584(void); +void StartEscalator(bool8 var); +void StopEscalator(void); +bool8 IsEscalatorMoving(void); // soft-boiled bool8 SetUpFieldMove_SoftBoiled(void); @@ -39,7 +30,7 @@ bool8 GetMapPairFadeFromType(u8 a1, u8 a2); // strength bool8 SetUpFieldMove_Strength(void); -bool8 sub_8145E2C(void); +bool8 FldEff_UseStrength(void); // sweet scent bool8 SetUpFieldMove_SweetScent(void); @@ -55,7 +46,7 @@ bool8 FldEff_UseDig(void); // rock smash bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId); -u8 oei_task_add(void); +u8 CreateFieldMoveTask(void); bool8 SetUpFieldMove_RockSmash(void); bool8 FldEff_UseRockSmash(void); diff --git a/include/fldeff_misc.h b/include/fldeff_misc.h index 6fd15c1ea..4acca7944 100644 --- a/include/fldeff_misc.h +++ b/include/fldeff_misc.h @@ -1,10 +1,10 @@ #ifndef GUARD_FLDEFF_MISC_H #define GUARD_FLDEFF_MISC_H -void sub_80F9BCC(u16 a0, u16 a1, u8 a2); -void sub_80F9BF4(u16 a0, u16 a1, u8 a2); -bool8 sub_80F9C1C(void); -bool8 sub_80F9C30(void); +void ComputerScreenOpenEffect(u16 a0, u16 a1, u8 a2); +void ComputerScreenCloseEffect(u16 a0, u16 a1, u8 a2); +bool8 IsComputerScreenOpenEffectActive(void); +bool8 IsComputerScreenCloseEffectActive(void); bool8 SetUpFieldMove_SecretPower(void); bool8 FldEff_UseSecretPowerCave(void); bool8 FldEff_SecretPowerCave(void); @@ -15,22 +15,22 @@ bool8 FldEff_SecretPowerShrub(void); bool8 FldEff_SecretBasePCTurnOn(void); void DoSecretBasePCTurnOffEffect(void); void PopSecretBaseBalloon(s16 metatileId, s16 x, s16 y); -bool8 FldEff_NopA6FC(void); -bool8 FldEff_NopA700(void); +bool8 FldEff_Nop47(void); +bool8 FldEff_Nop48(void); void ShatterSecretBaseBreakableDoor(s16 x, s16 y); void PlaySecretBaseMusicNoteMatSound(s16 metatileId); void DoSecretBaseGlitterMatSparkle(void); bool8 FldEff_SandPillar(void); void InteractWithShieldOrTVDecoration(void); -bool8 sub_80FADE4(u16 arg0, u8 arg1); +bool8 IsLargeBreakableDecoration(u16 arg0, u8 arg1); void FldEffPoison_Start(void); bool32 FldEffPoison_IsActive(void); void DoWateringBerryTreeAnim(void); -u8 CreateRecordMixingSprite(void); -void DestroyRecordMixingSprite(void); +u8 CreateRecordMixingLights(void); +void DestroyRecordMixingLights(void); -extern const struct SpritePalette gFieldEffectObjectPaletteInfo7; -extern const struct SpritePalette gFieldEffectObjectPaletteInfo8; +extern const struct SpritePalette gSpritePalette_SecretPower_Cave; +extern const struct SpritePalette gSpritePalette_SecretPower_Plant; extern const struct SpritePalette gFieldEffectObjectPaletteInfo9; extern const u16 gTilesetPalettes_SecretBase[][16]; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 59610f9ad..4598e87fa 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -247,14 +247,14 @@ enum { PLAYER_AVATAR_STATE_WATERING, }; -#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL) -#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE) -#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE) -#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING) -#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER) -#define PLAYER_AVATAR_FLAG_5 (1 << PLAYER_AVATAR_STATE_FIELD_MOVE) -#define PLAYER_AVATAR_FLAG_6 (1 << PLAYER_AVATAR_STATE_FISHING) -#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING) +#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0) +#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1) +#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2) +#define PLAYER_AVATAR_FLAG_SURFING (1 << 3) +#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4) +#define PLAYER_AVATAR_FLAG_5 (1 << 5) +#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6) +#define PLAYER_AVATAR_FLAG_DASH (1 << 7) enum { diff --git a/include/global.h b/include/global.h index 9612a25f0..7de8d1eb3 100644 --- a/include/global.h +++ b/include/global.h @@ -102,6 +102,7 @@ #define TEST_BUTTON(field, button) ({(field) & (button);}) #define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button) #define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button) +#define JOY_REPEAT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button) #define S16TOPOSFLOAT(val) \ ({ \ @@ -479,7 +480,7 @@ struct SaveBlock2 /*0x20C*/ struct BerryPickingResults berryPick; /*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing. /*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing. - /*0x624*/ u16 contestLinkResults[5][4]; // 4 positions for 5 categories. + /*0x624*/ u16 contestLinkResults[CONTEST_CATEGORIES_COUNT][CONTESTANT_COUNT]; /*0x64C*/ struct BattleFrontier frontier; }; // sizeof=0xF2C @@ -488,7 +489,7 @@ extern struct SaveBlock2 *gSaveBlock2Ptr; struct SecretBaseParty { u32 personality[PARTY_SIZE]; - u16 moves[PARTY_SIZE * 4]; + u16 moves[PARTY_SIZE * MAX_MON_MOVES]; u16 species[PARTY_SIZE]; u16 heldItems[PARTY_SIZE]; u8 levels[PARTY_SIZE]; diff --git a/include/global.tv.h b/include/global.tv.h index ba1c3c37e..b211052e0 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -124,18 +124,18 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 winningSpecies; - /*0x04*/ u8 winningTrainerName[8]; - /*0x0C*/ u8 appealFlags2; - /*0x0D*/ u8 round1Rank; - /*0x0e*/ u8 round2Rank; - /*0x0f*/ u8 appealFlags1; + /*0x02*/ u16 losingSpecies; + /*0x04*/ u8 losingTrainerName[8]; + /*0x0C*/ u8 loserAppealFlag; + /*0x0D*/ u8 round1Placing; + /*0x0e*/ u8 round2Placing; + /*0x0f*/ u8 winnerAppealFlag; /*0x10*/ u16 move; - /*0x12*/ u16 species; - /*0x14*/ u8 playerName[8]; + /*0x12*/ u16 winningSpecies; + /*0x14*/ u8 winningTrainerName[8]; /*0x1C*/ u8 category; - /*0x1D*/ u8 language; - /*0x1E*/ u8 winningTrainerLanguage; + /*0x1D*/ u8 winningTrainerLanguage; + /*0x1E*/ u8 losingTrainerLanguage; } contestLiveUpdates; // TVSHOW_3_CHEERS_FOR_POKEBLOCKS diff --git a/include/graphics.h b/include/graphics.h index 8514d49bd..4c98bee47 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4069,16 +4069,16 @@ extern const u8 gHealthboxElementsGfxTable[][32]; extern const u16 gNamingScreenMenu_Pal[]; extern const u32 gNamingScreenMenu_Gfx[]; -extern const u32 gUnknown_08DD4544[]; -extern const u8 gUnknown_08DD4620[]; -extern const u8 gUnknown_08DD46E0[]; -extern const u8 gUnknown_08DD47A0[]; +extern const u32 gNamingScreenBackground_Tilemap[]; +extern const u8 gNamingScreenKeyboardUpper_Tilemap[]; +extern const u8 gNamingScreenKeyboardLower_Tilemap[]; +extern const u8 gNamingScreenKeyboardSymbols_Tilemap[]; extern const u8 gNamingScreenRWindow_Gfx[]; -extern const u8 gNamingScreenKeyboardButton_Gfx[]; +extern const u8 gNamingScreenPageButton_Gfx[]; extern const u8 gNamingScreenROptions_Gfx[]; extern const u8 gNamingScreenCursor_Gfx[]; -extern const u8 gNamingScreenRightPointingTriangleTiles[]; -extern const u8 gNamingScreenUnderscoreTiles[]; +extern const u8 gNamingScreenInputArrow_Gfx[]; +extern const u8 gNamingScreenUnderscore_Gfx[]; extern const u32 gUnknown_08D9BA44[]; @@ -4786,10 +4786,10 @@ extern const u32 gOldContestGfx[]; extern const u32 gOldContestPalette[]; extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17980[]; -extern const u32 gTiles_8C19450[]; +extern const u32 gContestSliderHeart_Gfx[]; extern const u32 gContestNextTurnGfx[]; extern const u16 gContestPal[]; -extern const u32 gUnknown_08C19168[]; +extern const u32 gContestFaces_Gfx[]; extern const u32 gContestApplauseGfx[]; extern const u32 gContestJudgeGfx[]; extern const u32 gContestJudgeSymbolsGfx[]; @@ -4824,7 +4824,7 @@ extern const u32 gUnknown_08D91DB8[]; extern const u32 gUnknown_08D927EC[]; // Slot Machine -extern const u32 gSlotMachineReelTime_Gfx[]; +extern const u32 gSlotMachineDigitalDisplay_Gfx[]; extern const u8 gSlotMachineReelTimeNumber0[]; extern const u8 gSlotMachineReelTimeNumber1[]; extern const u8 gSlotMachineReelTimeNumber2[]; @@ -4832,15 +4832,15 @@ extern const u8 gSlotMachineReelTimeNumber3[]; extern const u8 gSlotMachineReelTimeNumber4[]; extern const u8 gSlotMachineReelTimeNumber5[]; extern const u8 gSlotMachineReelTimeShadow[]; -extern const u8 gUnknown_08DD1A18[]; -extern const u8 gSlotMachineReelTimeLargeBolt0[]; -extern const u8 gSlotMachineReelTimeLargeBolt1[]; +extern const u8 gSlotMachineReelTimeNumberGap_Gfx[]; +extern const u8 gSlotMachineReelTimeBolt0[]; +extern const u8 gSlotMachineReelTimeBolt1[]; extern const u8 gSlotMachineReelTimePikaAura[]; extern const u8 gSlotMachineReelTimeExplosion0[]; extern const u8 gSlotMachineReelTimeExplosion1[]; extern const u8 gSlotMachineReelTimeDuck[]; extern const u8 gSlotMachineReelTimeSmoke[]; -extern const u8 gSlotMachineReelTimeBolt[]; +extern const u8 gSlotMachinePikaPowerBolt[]; extern const u8 gSlotMachineReelSymbol1Tiles[]; extern const u8 gSlotMachineReelSymbol2Tiles[]; extern const u8 gSlotMachineReelSymbol3Tiles[]; @@ -4858,19 +4858,18 @@ extern const u8 gSlotMachineNumber6Tiles[]; extern const u8 gSlotMachineNumber7Tiles[]; extern const u8 gSlotMachineNumber8Tiles[]; extern const u8 gSlotMachineNumber9Tiles[]; -extern const u8 gUnknown_08DD19F8[]; +extern const u8 gSlotMachineReelBackground_Tilemap[]; extern const u32 gSlotMachineMenu_Gfx[]; extern const u16 gSlotMachineMenu_Tilemap[]; -extern const u16 gUnknown_08DCEC70[]; +extern const u16 gSlotMachineInfoBox_Tilemap[]; extern const u16 gSlotMachineMenu_Pal[]; -extern const u16 gUnknown_08DCF230[]; -extern const u16 gUnknown_08DCF170[]; -extern const u16 gUnknown_08DCF1B0[]; -extern const u16 gSlotMachineReelTime_Pal[]; -extern const u16 gUnknown_08DCF1F0[]; -extern const u16 gUnknown_08DCF210[]; -extern const u16 gUnknown_08DCF230[]; -extern const u16 gUnknown_08DCF190[]; +extern const u16 gSlotMachineReelSymbols_Pal[]; +extern const u16 gSlotMachineReelTimeMisc_Pal[]; +extern const u16 gSlotMachineReelTimeMachine_Pal[]; +extern const u16 gSlotMachineMisc_Pal[]; +extern const u16 gSlotMachineReelTimeExplosion_Pal[]; +extern const u16 gSlotMachineDigitalDisplay_Pal[]; +extern const u16 gSlotMachineReelTimePikachu_Pal[]; extern const u32 gBattleAnimBgTilemap_Sandstorm[]; extern const u32 gBattleAnimBgImage_Sandstorm[]; @@ -4919,13 +4918,13 @@ extern const u32 gPartyMenuPokeball_Pal[]; extern const u32 gStatusPal_Icons[]; // Roulette -extern const u32 gRouletteMenuTiles[]; -extern const u32 gRouletteWheelTiles[]; +extern const u32 gRouletteMenu_Gfx[]; +extern const u32 gRouletteWheel_Gfx[]; extern const u32 gRouletteCenter_Gfx[]; -extern const u32 gRouletteHeadersTiles[]; -extern const u32 gRouletteCreditTiles[]; -extern const u32 gRouletteNumbersTiles[]; -extern const u32 gRouletteMultiplierTiles[]; +extern const u32 gRouletteHeaders_Gfx[]; +extern const u32 gRouletteCredit_Gfx[]; +extern const u32 gRouletteNumbers_Gfx[]; +extern const u32 gRouletteMultiplier_Gfx[]; // Contest util extern const u32 gContestResults_Gfx[]; diff --git a/include/link.h b/include/link.h index 25e62ff1e..de10bb8dc 100644 --- a/include/link.h +++ b/include/link.h @@ -49,11 +49,11 @@ (((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT) #define LINKCMD_SEND_LINK_TYPE 0x2222 -#define LINKCMD_0x2FFE 0x2FFE +#define LINKCMD_READY_EXIT_STANDBY 0x2FFE #define LINKCMD_SEND_HELD_KEYS 0x4444 #define LINKCMD_0x5555 0x5555 #define LINKCMD_0x5566 0x5566 -#define LINKCMD_0x5FFF 0x5FFF +#define LINKCMD_READY_CLOSE_LINK 0x5FFF #define LINKCMD_0x6666 0x6666 #define LINKCMD_0x7777 0x7777 #define LINKCMD_CONT_BLOCK 0x8888 @@ -64,7 +64,7 @@ #define LINKCMD_INIT_BLOCK 0xBBBB #define LINKCMD_READY_CANCEL_TRADE 0xBBCC #define LINKCMD_SEND_HELD_KEYS_2 0xCAFE -#define LINKCMD_0xCCCC 0xCCCC +#define LINKCMD_SEND_BLOCK_REQ 0xCCCC #define LINKCMD_START_TRADE 0xCCDD #define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA #define LINKCMD_SET_MONS_TO_TRADE 0xDDDD @@ -273,11 +273,11 @@ bool32 InUnionRoom(void); void LoadWirelessStatusIndicatorSpriteGfx(void); bool8 IsLinkTaskFinished(void); void CreateWirelessStatusIndicatorSprite(u8, u8); -void sub_800ADF8(void); +void SetLinkStandbyCallback(void); void SetWirelessCommType1(void); void CheckShouldAdvanceLinkState(void); u8 IsLinkMaster(void); -void sub_800AC34(void); +void SetCloseLinkCallback(void); bool8 HandleLinkConnection(void); void SetLinkDebugValues(u32 seed, u32 flags); void sub_800A418(void); @@ -305,9 +305,9 @@ extern u16 gLinkHeldKeys; extern u32 gLinkStatus; extern u8 gUnknown_030030E4; extern u8 gUnknown_030030E8; -extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS]; -extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; -extern u16 gUnknown_030030F4; +extern bool8 gReadyToExitStandby[MAX_LINK_PLAYERS]; +extern bool8 gReadyToCloseLink[MAX_LINK_PLAYERS]; +extern u16 gReadyCloseLinkType; extern u8 gSuppressLinkErrorMessage; extern u8 gWirelessCommType; extern bool8 gSavedLinkPlayerCount; @@ -334,15 +334,15 @@ bool32 LinkDummy_Return2(void); void SetLocalLinkPlayerId(u8); u8 GetSavedPlayerCount(void); void sub_8009FAC(void); -bool8 sub_800A4D8(u8 a0); +bool8 SendBlockRequest(u8 type); u8 GetLinkPlayerCountAsBitFlags(void); u8 sub_800A0C8(s32, s32); u8 GetSavedLinkPlayerCountAsBitFlags(void); -void sub_800AD10(void); +void SetCloseLinkCallbackHandleJP(void); void CheckLinkPlayersMatchSaved(void); void StartSendingKeysToLink(void); bool8 DoesLinkPlayerCountMatchSaved(void); -void sub_800ABF4(u16 a0); +void SetCloseLinkCallbackAndType(u16 type); bool32 IsSendingKeysToLink(void); u32 GetLinkRecvQueueLength(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index eede41d60..4d00039eb 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -8,11 +8,11 @@ #define RFU_COMMAND_0x4400 0x4400 #define RFU_COMMAND_0x8800 0x8800 #define RFU_COMMAND_0x8900 0x8900 -#define RFU_COMMAND_0xA100 0xA100 +#define RFU_COMMAND_SEND_BLOCK_REQ 0xA100 #define RFU_COMMAND_0x7700 0x7700 #define RFU_COMMAND_0x7800 0x7800 -#define RFU_COMMAND_0x6600 0x6600 -#define RFU_COMMAND_0x5F00 0x5F00 +#define RFU_COMMAND_READY_EXIT_STANDBY 0x6600 +#define RFU_COMMAND_READY_CLOSE_LINK 0x5F00 #define RFU_COMMAND_0x2F00 0x2F00 #define RFU_COMMAND_0xBE00 0xBE00 #define RFU_COMMAND_0xEE00 0xEE00 @@ -125,7 +125,7 @@ struct GFRfuManager /* 0x012 */ u16 unk_12; /* 0x014 */ u8 unk_14[RFU_CHILD_MAX][14]; /* 0x04c */ u8 unk_4c[14]; - /* 0x05a */ u8 unk_5a; + /* 0x05a */ u8 blockRequestType; /* 0x05b */ u8 unk_5b; /* 0x05c */ bool8 blockReceived[MAX_RFU_PLAYERS]; /* 0x061 */ bool8 numBlocksReceived[MAX_RFU_PLAYERS]; @@ -134,14 +134,14 @@ struct GFRfuManager /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct RfuBlockSend sendBlock; /* 0x080 */ struct RfuBlockSend recvBlock[MAX_RFU_PLAYERS]; - /* 0x0e4 */ u8 unk_e4[5]; - /* 0x0e9 */ u8 unk_e9[5]; + /* 0x0e4 */ bool8 readyCloseLink[MAX_RFU_PLAYERS]; + /* 0x0e9 */ bool8 readyExitStandby[MAX_RFU_PLAYERS]; /* 0x0ee */ vu8 errorState; /* 0x0ef */ bool8 isShuttingDown; /* 0x0f0 */ u8 linkLossRecoveryState; /* 0x0f1 */ u8 status; /* 0x0f2 */ u16 unk_f2[6]; - /* 0x0fe */ u16 unk_fe; + /* 0x0fe */ u16 resendExitStandbyTimer; /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x10A - 0x103]; @@ -203,11 +203,11 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size); void ClearLinkRfuCallback(void); u8 Rfu_GetLinkPlayerCount(void); u8 Rfu_GetMultiplayerId(void); -bool8 sub_8010100(u8 a0); +bool8 Rfu_SendBlockRequest(u8 type); bool8 IsLinkRfuTaskFinished(void); bool8 Rfu_IsMaster(void); -void task_add_05_task_del_08FA224_when_no_RfuFunc(void); -void sub_8010434(void); +void Rfu_SetCloseLinkCallback(void); +void Rfu_SetLinkStandbyCallback(void); void ResetLinkRfuGFLayer(void); void UpdateWirelessStatusIndicatorSprite(void); void InitRFU(void); diff --git a/include/menu.h b/include/menu.h index 20eda0fce..1bd800742 100644 --- a/include/menu.h +++ b/include/menu.h @@ -8,6 +8,12 @@ #define MENU_NOTHING_CHOSEN -2 #define MENU_B_PRESSED -1 +#define MENU_CURSOR_DELTA_NONE 0 +#define MENU_CURSOR_DELTA_UP -1 +#define MENU_CURSOR_DELTA_DOWN 1 +#define MENU_CURSOR_DELTA_LEFT -1 +#define MENU_CURSOR_DELTA_RIGHT 1 + enum { SAVE_MENU_NAME, @@ -30,7 +36,7 @@ extern const u16 gUnknown_0860F074[]; void FreeAllOverworldWindowBuffers(void); void InitStandardTextBoxWindows(void); -void sub_8197200(void); +void InitTextBoxGfxAndPrinters(void); u16 RunTextPrintersAndIsPrinter0Active(void); void LoadMessageBoxAndBorderGfx(void); void DrawDialogueFrame(u8 windowId, bool8 copyToVram); @@ -64,8 +70,8 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); s8 Menu_ProcessInputNoWrapClearOnChoose(void); s8 ProcessMenuInput_other(void); -void do_scheduled_bg_tilemap_copies_to_vram(void); -void clear_scheduled_bg_copies_to_vram(void); +void DoScheduledBgTilemapCopiesToVram(void); +void ClearScheduledBgCopiesToVram(void); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3); void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds); @@ -77,7 +83,7 @@ void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); -u8 sub_8199134(s8, s8); +u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY); u8 GetStartMenuWindowId(void); void ListMenuLoadStdPalAt(u8, u8); u8 Menu_MoveCursor(s8 cursorDelta); diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 14a246468..242e1c6b2 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -5,6 +5,15 @@ #include "player_pc.h" #include "list_menu.h" #include "pokemon.h" +#include "constants/berry.h" + +#define TAG_CONDITION_MON 100 +#define TAG_CONDITION_BALL 101 +#define TAG_CONDITION_CANCEL 102 +#define TAG_CONDITION_BALL_PLACEHOLDER 103 +#define TAG_CONDITION_SPARKLE 104 + +#define MAX_CONDITION_SPARKLES 10 struct UnknownSubStruct_81D1ED4 { @@ -12,12 +21,12 @@ struct UnknownSubStruct_81D1ED4 u16 unk2; }; -struct UnknownStruct_81D1ED4 +struct ConditionGraph { - /*0x000*/ u8 unk0[4][5]; - /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][5]; - /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][5]; - /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[5]; + /*0x000*/ u8 unk0[4][FLAVOR_COUNT]; + /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][FLAVOR_COUNT]; + /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][FLAVOR_COUNT]; + /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[FLAVOR_COUNT]; /*0x140*/ u16 unk140[66][2]; /*0x248*/ u16 unk248[66][2]; /*0x350*/ u16 unk350; @@ -32,35 +41,35 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); void sub_81D1E90(struct PlayerPCItemPageStruct *page); void sub_81D1EC0(void); void sub_81D1D04(u8 a0); -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0); -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D1ED4(struct ConditionGraph *graph); +void sub_81D2108(struct ConditionGraph *graph); void sub_81D21DC(u8 bg); -void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0); -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0); -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0); -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0); +void sub_81D20AC(struct ConditionGraph *graph); +void sub_81D2230(struct ConditionGraph *graph); +bool8 sub_81D20BC(struct ConditionGraph *graph); +bool32 TransitionConditionGraph(struct ConditionGraph *graph); void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1); -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2); +void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2); void MoveRelearnerPrintText(u8 *str); bool16 MoveRelearnerRunTextPrinters(void); void MoveRelearnerCreateYesNoMenu(void); u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); void InitMoveRelearnerWindows(bool8 useContextWindow); s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst); -void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); -void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8); -void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); -bool8 sub_81D312C(s16 *var); -bool8 sub_81D3150(s16 *var); -bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); -bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); -void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); -void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); -void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal); -void sub_81D3464(struct Sprite **sprites); -void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2); -void sub_81D3520(struct Sprite **sprites); -void sub_81D354C(struct Sprite **sprites); +void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); +void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel); +void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); +bool8 MoveConditionMonOnscreen(s16 *x); +bool8 MoveConditionMonOffscreen(s16 *x); +bool8 TryUpdateConditionMonTransitionOn(struct ConditionGraph *graph, s16 *x); +bool8 TryUpdateConditionMonTransitionOff(struct ConditionGraph *graph, s16 *x); +void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); +void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); +void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal); +void ResetConditionSparkleSprites(struct Sprite **sprites); +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 count); +void DestroyConditionSparkleSprites(struct Sprite **sprites); +void FreeConditionSparkles(struct Sprite **sprites); void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr); void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats); diff --git a/include/naming_screen.h b/include/naming_screen.h index 7d32abcd3..93527640e 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -3,91 +3,14 @@ #include "main.h" -#define KBEVENT_NONE 0 -#define KBEVENT_PRESSED_A 5 -#define KBEVENT_PRESSED_B 6 -#define KBEVENT_PRESSED_SELECT 8 -#define KBEVENT_PRESSED_START 9 - -#define KBROW_COUNT 4 - -enum -{ - KBPAGE_LETTERS_LOWER, - KBPAGE_LETTERS_UPPER, - KBPAGE_SYMBOLS, - KBPAGE_COUNT, -}; - -enum -{ +enum { NAMING_SCREEN_PLAYER, NAMING_SCREEN_BOX, NAMING_SCREEN_CAUGHT_MON, - NAMING_SCREEN_3, + NAMING_SCREEN_NICKNAME, NAMING_SCREEN_WALDA, }; -struct NamingScreenTemplate -{ - u8 copyExistingString; - u8 maxChars; - u8 iconFunction; - u8 addGenderIcon; - u8 initialPage; - u8 unused; - const u8 *title; -}; - -struct NamingScreenData { - /*0x0*/ u8 tilemapBuffer1[0x800]; - /*0x800*/ u8 tilemapBuffer2[0x800]; - /*0x800*/ u8 tilemapBuffer3[0x800]; - /*0x1800*/ u8 textBuffer[0x10]; - /*0x1810*/ u8 tileBuffer[0x600]; - /*0x1E10*/ u8 state; - /*0x1E11*/ u8 windows[5]; - /*0x1E16*/ u16 inputCharBaseXPos; - /*0x1E18*/ u16 bg1vOffset; - /*0x1E1A*/ u16 bg2vOffset; - /*0x1E1C*/ u16 bg1Priority; - /*0x1E1E*/ u16 bg2Priority; - /*0x1E20*/ u8 bgToReveal; - /*0x1E21*/ u8 bgToHide; - /*0x1E22*/ u8 currentPage; - /*0x1E23*/ u8 cursorSpriteId; - /*0x1E24*/ u8 selectBtnFrameSpriteId; - /*0x1E25*/ u8 keyRepeatStartDelayCopy; - /*0x1E28*/ const struct NamingScreenTemplate *template; - /*0x1E2C*/ u8 templateNum; - /*0x1E30*/ u8 *destBuffer; - /*0x1E34*/ u16 monSpecies; - /*0x1E36*/ u16 monGender; - /*0x1E38*/ u32 monPersonality; - /*0x1E3C*/ MainCallback returnCallback; -}; - - -enum -{ - MAIN_STATE_BEGIN_FADE_IN, - MAIN_STATE_WAIT_FADE_IN, - MAIN_STATE_HANDLE_INPUT, - MAIN_STATE_MOVE_TO_OK_BUTTON, - MAIN_STATE_START_PAGE_SWAP, - MAIN_STATE_WAIT_PAGE_SWAP, - MAIN_STATE_6, - MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE, - MAIN_STATE_BEGIN_FADE_OUT, -}; - -enum -{ - INPUT_STATE_DISABLED, - INPUT_STATE_ENABLED, - INPUT_STATE_2, -}; - void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback); #endif // GUARD_NAMING_SCREEN_H diff --git a/include/overworld.h b/include/overworld.h index 78a5b4ad0..a2eac7e29 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -24,6 +24,8 @@ #define MOVEMENT_MODE_FROZEN 1 #define MOVEMENT_MODE_SCRIPTED 2 +#define SKIP_OBJECT_EVENT_LOAD 1 + struct InitialPlayerAvatarState { u8 transitionFlags; @@ -99,8 +101,7 @@ void SetDefaultFlashLevel(void); void Overworld_SetFlashLevel(s32 flashLevel); u8 Overworld_GetFlashLevel(void); void SetCurrentMapLayout(u16 mapLayoutId); -void sub_8085540(u8 var); -u8 sub_808554C(void); +void SetObjectEventLoadFlag(u8 var); u16 GetLocationMusic(struct WarpData *warp); u16 GetCurrLocationDefaultMusic(void); u16 GetWarpDestinationMusic(void); @@ -135,11 +136,9 @@ void SetUnusedCallback(void *a0); void CB2_NewGame(void); void CB2_WhiteOut(void); void CB2_LoadMap(void); -void sub_8086024(void); +void CB2_ReturnToFieldContestHall(void); void CB2_ReturnToFieldCableClub(void); void CB2_ReturnToField(void); -void CB2_ReturnToFieldLocal(void); -void CB2_ReturnToFieldLink(void); void CB2_ReturnToFieldFromMultiplayer(void); void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldContinueScript(void); diff --git a/include/palette_util.h b/include/palette_util.h new file mode 100644 index 000000000..46468c0a6 --- /dev/null +++ b/include/palette_util.h @@ -0,0 +1,83 @@ +#ifndef GUARD_PALETTE_UTIL_H +#define GUARD_PALETTE_UTIL_H + +struct PulseBlendSettings +{ + u16 blendColor; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 numFadeCycles; + s8 maxBlendCoeff:4; + s8 fadeType:2; + s8 restorePaletteOnUnload:1; + s8 unk7_7:1; +}; + +struct PulseBlendPalette +{ + u8 paletteSelector; + u8 blendCoeff:4; + u8 fadeDirection:1; + s8 unk1_5:1; + s8 available:1; + u32 inUse:1; + u8 delayCounter; + u8 fadeCycleCounter; + struct PulseBlendSettings pulseBlendSettings; +}; + +struct PulseBlend +{ + u16 usedPulseBlendPalettes; + struct PulseBlendPalette pulseBlendPalettes[16]; +}; + + +#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15) + +struct RouletteFlashSettings +{ + u16 color; + u16 paletteOffset; + u8 numColors; + u8 delay; + s8 unk6; // Set but never used + s8 numFadeCycles:5; + s8 unk7_5:2; // Set but never used + s8 colorDeltaDir:1; +}; + +struct RouletteFlashPalette +{ + u8 state:7; + bool8 available:1; + u8 delayCounter; + s8 fadeCycleCounter; + s8 colorDelta; + struct RouletteFlashSettings settings; +}; + +struct RouletteFlashUtil +{ + u8 enabled; + u8 unused; + u16 flags; + struct RouletteFlashPalette palettes[16]; +}; + +int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); +void InitPulseBlend(struct PulseBlend *); +void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UpdatePulseBlend(struct PulseBlend *); +void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); +void RouletteFlash_Run(struct RouletteFlashUtil *r0); +void RouletteFlash_Reset(struct RouletteFlashUtil *r0); +u8 RouletteFlash_Add(struct RouletteFlashUtil *r0, u8 r1, const struct RouletteFlashSettings *r2); +void RouletteFlash_Stop(struct RouletteFlashUtil *r0, u16 r1); +void RouletteFlash_Enable(struct RouletteFlashUtil *r0, u16 r1); + +#endif // GUARD_PALETTE_UTIL_H diff --git a/include/pokemon.h b/include/pokemon.h index 69ef7a142..d75ec94f3 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -254,7 +254,7 @@ extern const u16 *const gLevelUpLearnsets[]; extern const u8 gPPUpGetMask[]; extern const u8 gPPUpSetMask[]; extern const u8 gPPUpAddMask[]; -extern const u8 gStatStageRatios[][2]; +extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2]; extern const u16 gLinkPlayerFacilityClasses[]; extern const struct SpriteTemplate gUnknown_08329D98[]; extern const s8 gNatureStatTable[][5]; diff --git a/include/pokenav.h b/include/pokenav.h index 3eafe9af2..ac916f3ba 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -391,7 +391,7 @@ u32 sub_81CD070(void); void sub_81CD1C0(void); bool32 sub_81CD3C4(void); bool32 sub_81CDD5C(void); -struct UnknownStruct_81D1ED4 *sub_81CDC70(void); +struct ConditionGraph *sub_81CDC70(void); u16 sub_81CDC60(void); u16 sub_81CDC50(void); u8 sub_81CDDB0(void); diff --git a/include/roulette.h b/include/roulette.h index 71100d0d3..c753f671c 100755 --- a/include/roulette.h +++ b/include/roulette.h @@ -1,34 +1,6 @@ #ifndef GUARD_ROULETTE_H #define GUARD_ROULETTE_H -struct UnkStruct1 -{ - u16 var00; - u16 var02; - u8 var04; - u8 var05; - u8 var06; - s8 var07_0:5; - s8 var07_5:2; - s8 var07_7:1; -}; - -struct UnkStruct3 -{ - u8 var00_0:7; - u8 var00_7:1; - u8 var01; - s8 var02; - s8 var03; - struct UnkStruct1 var04; -}; - -struct UnkStruct0 -{ - u8 var00; - u8 var01; - u16 var02; //flag for each UnkStruct3 - struct UnkStruct3 var04[0x10]; -}; +void PlayRoulette(void); #endif // GUARD_ROULETTE_H diff --git a/include/roulette_util.h b/include/roulette_util.h deleted file mode 100644 index 76752fe74..000000000 --- a/include/roulette_util.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef GUARD_ROULETTE_UTIL_H -#define GUARD_ROULETTE_UTIL_H - -#include "roulette.h" - -struct PulseBlendSettings -{ - u16 blendColor; - u16 paletteOffset; - u8 numColors; - u8 delay; - u8 numFadeCycles; - s8 maxBlendCoeff:4; - s8 fadeType:2; - s8 restorePaletteOnUnload:1; - s8 unk7_7:1; -}; - -struct PulseBlendPalette -{ - u8 paletteSelector; - u8 blendCoeff:4; - u8 fadeDirection:1; - s8 unk1_5:1; - s8 available:1; - u32 inUse:1; - u8 delayCounter; - u8 fadeCycleCounter; - struct PulseBlendSettings pulseBlendSettings; -}; - -struct PulseBlend -{ - u16 usedPulseBlendPalettes; - struct PulseBlendPalette pulseBlendPalettes[16]; -}; - -int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); -void InitPulseBlend(struct PulseBlend *); -void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UpdatePulseBlend(struct PulseBlend *); -void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); -void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); -void task_tutorial_controls_fadein(struct UnkStruct0 *r0); -void sub_8151678(struct UnkStruct0 *r0); -u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2); -void sub_8151A9C(struct UnkStruct0 *r0, u16 r1); -void sub_8151A48(struct UnkStruct0 *r0, u16 r1); - -#endif // GUARD_ROULETTE_UTIL_H diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h deleted file mode 100644 index 8dd7ed0c0..000000000 --- a/include/script_pokemon_80F8.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GUARD_SCRIPTPOKE80F8_H -#define GUARD_SCRIPTPOKE80F8_H - -void ShowContestWinner(void); -u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); -u8 ScriptGiveEgg(u16); -void CreateScriptedWildMon(u16, u8, u16); -void ScriptSetMonMoveSlot(u8, u16, u8); - -#endif diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h new file mode 100644 index 000000000..120c28a63 --- /dev/null +++ b/include/script_pokemon_util.h @@ -0,0 +1,11 @@ +#ifndef GUARD_SCRIPT_POKEMON_UTIL +#define GUARD_SCRIPT_POKEMON_UTIL + +u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); +u8 ScriptGiveEgg(u16); +void CreateScriptedWildMon(u16, u8, u16); +void ScriptSetMonMoveSlot(u8, u16, u8); +void ReducePlayerPartyToSelectedMons(void); +void HealPlayerParty(void); + +#endif // GUARD_SCRIPT_POKEMON_UTIL diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h deleted file mode 100644 index 7c246b745..000000000 --- a/include/script_pokemon_util_80F87D8.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H -#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H - -u16 GetContestRand(void); -void ReducePlayerPartyToSelectedMons(void); -void HealPlayerParty(void); -u8 CountPlayerContestPaintings(void); - -#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H diff --git a/include/strings.h b/include/strings.h index 702392efa..1f2920140 100644 --- a/include/strings.h +++ b/include/strings.h @@ -84,10 +84,29 @@ extern const u8 gText_SoSo[]; extern const u8 gText_Bad[]; extern const u8 gText_TheWorst[]; +extern const u8 Roulette_Text_ControlsInstruction[]; +extern const u8 Roulette_Text_KeepPlaying[]; +extern const u8 Roulette_Text_Jackpot[]; +extern const u8 Roulette_Text_ItsAHit[]; +extern const u8 Roulette_Text_NothingDoing[]; +extern const u8 Roulette_Text_YouveWonXCoins[]; +extern const u8 Roulette_Text_BoardWillBeCleared[]; +extern const u8 Roulette_Text_CoinCaseIsFull[]; +extern const u8 Roulette_Text_NoCoinsLeft[]; +extern const u8 Roulette_Text_PlayMinimumWagerIsX[]; +extern const u8 Roulette_Text_SpecialRateTable[]; +extern const u8 Roulette_Text_NotEnoughCoins[]; + extern const u8 gText_Slots[]; extern const u8 gText_Roulette[]; extern const u8 gText_Jackpot[]; +extern const u8 gText_YouDontHaveThreeCoins[]; +extern const u8 gText_QuitTheGame[]; +extern const u8 gText_YouveGot9999Coins[]; +extern const u8 gText_YouveRunOutOfCoins[]; +extern const u8 gText_ReelTimeHelp[]; + extern const u8 gText_First[]; extern const u8 gText_Second[]; extern const u8 gText_Third[]; diff --git a/include/text_window.h b/include/text_window.h index 501597aa2..7bdcacd17 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -20,7 +20,7 @@ void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset); void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum); void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum); void rbox_fill_rectangle(u8 windowId); -const u16 *stdpal_get(u8 id); +const u16 *GetTextWindowPalette(u8 id); const u16 *GetOverworldTextboxPalettePtr(void); void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset); diff --git a/include/trainer_hill.h b/include/trainer_hill.h index c849bcced..3f0644248 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -75,7 +75,7 @@ void FillHillTrainerParty(void); void FillHillTrainersParties(void); u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId); u8 GetNumFloorsInTrainerHillChallenge(void); -void sub_81D64C0(void); -bool32 sub_81D6534(void); +void TryLoadTrainerHillEReaderPalette(void); +bool32 OnTrainerHillEReaderChallengeFloor(void); #endif // GUARD_TRAINER_HILL_H diff --git a/include/tv.h b/include/tv.h index 8e9233c2b..4dc14143c 100644 --- a/include/tv.h +++ b/include/tv.h @@ -30,12 +30,12 @@ void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); void TryPutSecretBaseSecretsOnAir(void); -void sub_80EDB44(void); +void TryPutTodaysRivalTrainerOnAir(void); void sub_80EDC60(const u16 *words); void sub_80EDA80(void); void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx); void sub_80F0BB8(void); -void sub_80ED950(bool8 flag); +void RecordFishingAttemptForTV(bool8 caughtFish); void IncrementDailySlotsUses(void); void IncrementDailyRouletteUses(void); void IncrementDailyWildBattles(void); @@ -59,11 +59,11 @@ void SaveRecordedItemPurchasesForTVShow(void); bool8 ShouldAirFrontierTVShow(void); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); -void ContestLiveUpdates_BeforeInterview_1(u8 a0); -void ContestLiveUpdates_BeforeInterview_2(u8 a0); -void ContestLiveUpdates_BeforeInterview_3(u8 a0); -void ContestLiveUpdates_BeforeInterview_4(u16 a0); -void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1); +void ContestLiveUpdates_Init(u8 round1Placing); +void ContestLiveUpdates_SetRound2Placing(u8 round2Placing); +void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag); +void ContestLiveUpdates_SetWinnerMoveUsed(u16 move); +void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser); void ResetGabbyAndTy(void); #endif //GUARD_TV_H diff --git a/ld_script.txt b/ld_script.txt index 2596c6eea..da0ecac9e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -170,7 +170,7 @@ SECTIONS { src/secret_base.o(.text); src/tv.o(.text); src/contest_util.o(.text); - src/script_pokemon_util_80F87D8.o(.text); + src/script_pokemon_util.o(.text); src/field_poison.o(.text); src/pokemon_size_record.o(.text); src/fldeff_misc.o(.text); @@ -237,7 +237,7 @@ SECTIONS { src/battle_message.o(.text); src/cable_car.o(.text); src/math_util.o(.text); - src/roulette_util.o(.text); + src/palette_util.o(.text); src/confetti_util.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); @@ -440,7 +440,7 @@ SECTIONS { gflib/window.o(.rodata); gflib/text.o(.rodata); gflib/sprite.o(.rodata); - data/io_reg.o(.rodata); + gflib/io_reg.o(.rodata); gflib/string_util.o(.rodata); src/link.o(.rodata); src/link.o(.rodata.str1.4); @@ -545,7 +545,7 @@ SECTIONS { src/secret_base.o(.rodata); src/tv.o(.rodata); src/contest_util.o(.rodata); - src/script_pokemon_util_80F87D8.o(.rodata); + src/script_pokemon_util.o(.rodata); src/pokemon_size_record.o(.rodata) src/fldeff_misc.o(.rodata); src/field_special_scene.o(.rodata); @@ -698,7 +698,7 @@ SECTIONS { ALIGN(4) { sound/songs/midi/mus_dummy.o(.rodata); - sound/songs/midi/se_kaifuku.o(.rodata); + sound/songs/midi/se_use_item.o(.rodata); sound/songs/midi/se_pc_login.o(.rodata); sound/songs/midi/se_pc_off.o(.rodata); sound/songs/midi/se_pc_on.o(.rodata); @@ -706,476 +706,476 @@ SECTIONS { sound/songs/se_win_open.o(.rodata); sound/songs/se_wall_hit.o(.rodata); sound/songs/midi/se_door.o(.rodata); - sound/songs/midi/se_kaidan.o(.rodata); - sound/songs/midi/se_dansa.o(.rodata); - sound/songs/midi/se_jitensya.o(.rodata); - sound/songs/midi/se_kouka_l.o(.rodata); - sound/songs/midi/se_kouka_m.o(.rodata); - sound/songs/midi/se_kouka_h.o(.rodata); - sound/songs/midi/se_bowa2.o(.rodata); - sound/songs/midi/se_poke_dead.o(.rodata); - sound/songs/midi/se_nigeru.o(.rodata); - sound/songs/midi/se_jido_doa.o(.rodata); - sound/songs/midi/se_naminori.o(.rodata); - sound/songs/midi/se_ban.o(.rodata); + sound/songs/midi/se_exit.o(.rodata); + sound/songs/midi/se_ledge.o(.rodata); + sound/songs/midi/se_bike_bell.o(.rodata); + sound/songs/midi/se_not_effective.o(.rodata); + sound/songs/midi/se_effective.o(.rodata); + sound/songs/midi/se_super_effective.o(.rodata); + sound/songs/midi/se_ball_open.o(.rodata); + sound/songs/midi/se_faint.o(.rodata); + sound/songs/midi/se_flee.o(.rodata); + sound/songs/midi/se_sliding_door.o(.rodata); + sound/songs/midi/se_ship.o(.rodata); + sound/songs/midi/se_bang.o(.rodata); sound/songs/midi/se_pin.o(.rodata); sound/songs/midi/se_boo.o(.rodata); - sound/songs/midi/se_bowa.o(.rodata); - sound/songs/midi/se_jyuni.o(.rodata); + sound/songs/midi/se_ball.o(.rodata); + sound/songs/midi/se_contest_place.o(.rodata); sound/songs/midi/se_a.o(.rodata); sound/songs/midi/se_i.o(.rodata); sound/songs/midi/se_u.o(.rodata); sound/songs/midi/se_e.o(.rodata); sound/songs/midi/se_o.o(.rodata); sound/songs/midi/se_n.o(.rodata); - sound/songs/midi/se_seikai.o(.rodata); - sound/songs/midi/se_hazure.o(.rodata); + sound/songs/midi/se_success.o(.rodata); + sound/songs/midi/se_failure.o(.rodata); sound/songs/midi/se_exp.o(.rodata); - sound/songs/midi/se_jite_pyoko.o(.rodata); - sound/songs/midi/se_mu_pachi.o(.rodata); - sound/songs/midi/se_tk_kasya.o(.rodata); + sound/songs/midi/se_bike_hop.o(.rodata); + sound/songs/midi/se_switch.o(.rodata); + sound/songs/midi/se_click.o(.rodata); sound/songs/midi/se_fu_zaku.o(.rodata); - sound/songs/midi/se_fu_zaku2.o(.rodata); - sound/songs/midi/se_fu_zuzuzu.o(.rodata); - sound/songs/midi/se_ru_gashin.o(.rodata); - sound/songs/midi/se_ru_gasyan.o(.rodata); - sound/songs/midi/se_ru_bari.o(.rodata); - sound/songs/midi/se_ru_hyuu.o(.rodata); - sound/songs/midi/se_ki_gasyan.o(.rodata); - sound/songs/midi/se_tk_warpin.o(.rodata); - sound/songs/midi/se_tk_warpout.o(.rodata); - sound/songs/midi/se_tu_saa.o(.rodata); - sound/songs/midi/se_hi_turun.o(.rodata); - sound/songs/midi/se_track_move.o(.rodata); - sound/songs/midi/se_track_stop.o(.rodata); - sound/songs/midi/se_track_haiki.o(.rodata); - sound/songs/midi/se_track_door.o(.rodata); - sound/songs/midi/se_moter.o(.rodata); + sound/songs/midi/se_contest_condition_lose.o(.rodata); + sound/songs/midi/se_lavaridge_fall_warp.o(.rodata); + sound/songs/midi/se_ice_stairs.o(.rodata); + sound/songs/midi/se_ice_break.o(.rodata); + sound/songs/midi/se_ice_crack.o(.rodata); + sound/songs/midi/se_fall.o(.rodata); + sound/songs/midi/se_unlock.o(.rodata); + sound/songs/midi/se_warp_in.o(.rodata); + sound/songs/midi/se_warp_out.o(.rodata); + sound/songs/midi/se_repel.o(.rodata); + sound/songs/midi/se_rotating_gate.o(.rodata); + sound/songs/midi/se_truck_move.o(.rodata); + sound/songs/midi/se_truck_stop.o(.rodata); + sound/songs/midi/se_truck_unload.o(.rodata); + sound/songs/midi/se_truck_door.o(.rodata); + sound/songs/midi/se_berry_blender.o(.rodata); sound/songs/midi/se_card.o(.rodata); sound/songs/midi/se_save.o(.rodata); - sound/songs/midi/se_kon.o(.rodata); - sound/songs/midi/se_kon2.o(.rodata); - sound/songs/midi/se_kon3.o(.rodata); - sound/songs/midi/se_kon4.o(.rodata); - sound/songs/midi/se_suikomu.o(.rodata); - sound/songs/midi/se_nageru.o(.rodata); - sound/songs/midi/se_toy_c.o(.rodata); - sound/songs/midi/se_toy_d.o(.rodata); - sound/songs/midi/se_toy_e.o(.rodata); - sound/songs/midi/se_toy_f.o(.rodata); - sound/songs/midi/se_toy_g.o(.rodata); - sound/songs/midi/se_toy_a.o(.rodata); - sound/songs/midi/se_toy_b.o(.rodata); - sound/songs/midi/se_toy_c1.o(.rodata); - sound/songs/midi/se_mizu.o(.rodata); - sound/songs/midi/se_hashi.o(.rodata); - sound/songs/midi/se_daugi.o(.rodata); - sound/songs/midi/se_pinpon.o(.rodata); - sound/songs/midi/se_fuusen1.o(.rodata); - sound/songs/midi/se_fuusen2.o(.rodata); - sound/songs/midi/se_fuusen3.o(.rodata); - sound/songs/midi/se_toy_kabe.o(.rodata); - sound/songs/midi/se_toy_dango.o(.rodata); - sound/songs/midi/se_doku.o(.rodata); - sound/songs/midi/se_esuka.o(.rodata); - sound/songs/midi/se_t_ame.o(.rodata); - sound/songs/midi/se_t_ame_e.o(.rodata); - sound/songs/midi/se_t_ooame.o(.rodata); - sound/songs/midi/se_t_ooame_e.o(.rodata); - sound/songs/midi/se_t_koame.o(.rodata); - sound/songs/midi/se_t_koame_e.o(.rodata); - sound/songs/midi/se_t_kami.o(.rodata); - sound/songs/midi/se_t_kami2.o(.rodata); - sound/songs/midi/se_elebeta.o(.rodata); - sound/songs/midi/se_hinsi.o(.rodata); - sound/songs/midi/se_expmax.o(.rodata); - sound/songs/midi/se_tamakoro.o(.rodata); - sound/songs/midi/se_tamakoro_e.o(.rodata); - sound/songs/midi/se_basabasa.o(.rodata); - sound/songs/midi/se_regi.o(.rodata); - sound/songs/midi/se_c_gaji.o(.rodata); - sound/songs/midi/se_c_maku_u.o(.rodata); - sound/songs/midi/se_c_maku_d.o(.rodata); - sound/songs/midi/se_c_pasi.o(.rodata); - sound/songs/midi/se_c_syu.o(.rodata); - sound/songs/midi/se_c_pikon.o(.rodata); - sound/songs/midi/se_reapoke.o(.rodata); - sound/songs/midi/se_op_basyu.o(.rodata); - sound/songs/midi/se_bt_start.o(.rodata); - sound/songs/midi/se_dendou.o(.rodata); - sound/songs/midi/se_jihanki.o(.rodata); - sound/songs/midi/se_tama.o(.rodata); - sound/songs/se_z_scroll.o(.rodata); - sound/songs/se_z_page.o(.rodata); - sound/songs/midi/se_pn_on.o(.rodata); - sound/songs/midi/se_pn_off.o(.rodata); - sound/songs/midi/se_z_search.o(.rodata); - sound/songs/midi/se_tamago.o(.rodata); - sound/songs/midi/se_tb_start.o(.rodata); - sound/songs/midi/se_tb_kon.o(.rodata); - sound/songs/midi/se_tb_kara.o(.rodata); - sound/songs/midi/se_bidoro.o(.rodata); - sound/songs/se_w085.o(.rodata); - sound/songs/se_w085b.o(.rodata); - sound/songs/se_w231.o(.rodata); - sound/songs/se_w171.o(.rodata); - sound/songs/se_w233.o(.rodata); - sound/songs/se_w233b.o(.rodata); - sound/songs/se_w145.o(.rodata); - sound/songs/se_w145b.o(.rodata); - sound/songs/se_w145c.o(.rodata); - sound/songs/se_w240.o(.rodata); - sound/songs/midi/se_w015.o(.rodata); - sound/songs/se_w081.o(.rodata); - sound/songs/se_w081b.o(.rodata); - sound/songs/se_w088.o(.rodata); - sound/songs/midi/se_w016.o(.rodata); - sound/songs/midi/se_w016b.o(.rodata); - sound/songs/midi/se_w003.o(.rodata); - sound/songs/se_w104.o(.rodata); - sound/songs/midi/se_w013.o(.rodata); - sound/songs/se_w196.o(.rodata); - sound/songs/se_w086.o(.rodata); - sound/songs/midi/se_w004.o(.rodata); - sound/songs/midi/se_w025.o(.rodata); - sound/songs/midi/se_w025b.o(.rodata); - sound/songs/se_w152.o(.rodata); - sound/songs/midi/se_w026.o(.rodata); - sound/songs/se_w172.o(.rodata); - sound/songs/se_w172b.o(.rodata); - sound/songs/se_w053.o(.rodata); - sound/songs/midi/se_w007.o(.rodata); - sound/songs/se_w092.o(.rodata); - sound/songs/se_w221.o(.rodata); - sound/songs/se_w221b.o(.rodata); - sound/songs/se_w052.o(.rodata); - sound/songs/midi/se_w036.o(.rodata); - sound/songs/se_w059.o(.rodata); - sound/songs/se_w059b.o(.rodata); - sound/songs/midi/se_w010.o(.rodata); - sound/songs/midi/se_w011.o(.rodata); - sound/songs/midi/se_w017.o(.rodata); - sound/songs/midi/se_w019.o(.rodata); - sound/songs/midi/se_w028.o(.rodata); - sound/songs/midi/se_w013b.o(.rodata); - sound/songs/se_w044.o(.rodata); - sound/songs/midi/se_w029.o(.rodata); - sound/songs/se_w057.o(.rodata); - sound/songs/se_w056.o(.rodata); - sound/songs/se_w250.o(.rodata); - sound/songs/midi/se_w030.o(.rodata); - sound/songs/midi/se_w039.o(.rodata); - sound/songs/se_w054.o(.rodata); - sound/songs/se_w077.o(.rodata); - sound/songs/midi/se_w020.o(.rodata); - sound/songs/se_w082.o(.rodata); - sound/songs/se_w047.o(.rodata); - sound/songs/se_w195.o(.rodata); - sound/songs/midi/se_w006.o(.rodata); - sound/songs/se_w091.o(.rodata); - sound/songs/se_w146.o(.rodata); - sound/songs/se_w120.o(.rodata); - sound/songs/se_w153.o(.rodata); - sound/songs/se_w071b.o(.rodata); - sound/songs/se_w071.o(.rodata); - sound/songs/se_w103.o(.rodata); - sound/songs/se_w062.o(.rodata); - sound/songs/se_w062b.o(.rodata); - sound/songs/se_w048.o(.rodata); - sound/songs/se_w187.o(.rodata); - sound/songs/se_w118.o(.rodata); - sound/songs/se_w155.o(.rodata); - sound/songs/se_w122.o(.rodata); - sound/songs/se_w060.o(.rodata); - sound/songs/se_w185.o(.rodata); - sound/songs/midi/se_w014.o(.rodata); - sound/songs/midi/se_w043.o(.rodata); - sound/songs/se_w207.o(.rodata); - sound/songs/se_w207b.o(.rodata); - sound/songs/se_w215.o(.rodata); - sound/songs/se_w109.o(.rodata); - sound/songs/se_w173.o(.rodata); - sound/songs/se_w280.o(.rodata); - sound/songs/se_w202.o(.rodata); - sound/songs/se_w060b.o(.rodata); - sound/songs/se_w076.o(.rodata); - sound/songs/se_w080.o(.rodata); - sound/songs/se_w100.o(.rodata); - sound/songs/se_w107.o(.rodata); - sound/songs/se_w166.o(.rodata); - sound/songs/se_w129.o(.rodata); - sound/songs/se_w115.o(.rodata); - sound/songs/se_w112.o(.rodata); - sound/songs/se_w197.o(.rodata); - sound/songs/se_w199.o(.rodata); - sound/songs/se_w236.o(.rodata); - sound/songs/se_w204.o(.rodata); - sound/songs/se_w268.o(.rodata); - sound/songs/se_w070.o(.rodata); - sound/songs/se_w063.o(.rodata); - sound/songs/se_w127.o(.rodata); - sound/songs/se_w179.o(.rodata); - sound/songs/se_w151.o(.rodata); - sound/songs/se_w201.o(.rodata); - sound/songs/se_w161.o(.rodata); - sound/songs/se_w161b.o(.rodata); - sound/songs/se_w227.o(.rodata); - sound/songs/se_w227b.o(.rodata); - sound/songs/se_w226.o(.rodata); - sound/songs/se_w208.o(.rodata); - sound/songs/se_w213.o(.rodata); - sound/songs/se_w213b.o(.rodata); - sound/songs/se_w234.o(.rodata); - sound/songs/se_w260.o(.rodata); - sound/songs/se_w328.o(.rodata); - sound/songs/se_w320.o(.rodata); - sound/songs/se_w255.o(.rodata); - sound/songs/se_w291.o(.rodata); - sound/songs/se_w089.o(.rodata); - sound/songs/se_w239.o(.rodata); - sound/songs/se_w230.o(.rodata); - sound/songs/se_w281.o(.rodata); - sound/songs/se_w327.o(.rodata); - sound/songs/se_w287.o(.rodata); - sound/songs/se_w257.o(.rodata); - sound/songs/se_w253.o(.rodata); - sound/songs/se_w258.o(.rodata); - sound/songs/se_w322.o(.rodata); - sound/songs/se_w298.o(.rodata); - sound/songs/se_w287b.o(.rodata); - sound/songs/se_w114.o(.rodata); - sound/songs/se_w063b.o(.rodata); - sound/songs/midi/se_rg_w_door.o(.rodata); - sound/songs/midi/se_rg_card1.o(.rodata); - sound/songs/midi/se_rg_card2.o(.rodata); - sound/songs/midi/se_rg_card3.o(.rodata); - sound/songs/midi/se_rg_bag1.o(.rodata); - sound/songs/midi/se_rg_bag2.o(.rodata); - sound/songs/midi/se_rg_getting.o(.rodata); + sound/songs/midi/se_ball_bounce_1.o(.rodata); + sound/songs/midi/se_ball_bounce_2.o(.rodata); + sound/songs/midi/se_ball_bounce_3.o(.rodata); + sound/songs/midi/se_ball_bounce_4.o(.rodata); + sound/songs/midi/se_ball_trade.o(.rodata); + sound/songs/midi/se_ball_throw.o(.rodata); + sound/songs/midi/se_note_c.o(.rodata); + sound/songs/midi/se_note_d.o(.rodata); + sound/songs/midi/se_note_e.o(.rodata); + sound/songs/midi/se_note_f.o(.rodata); + sound/songs/midi/se_note_g.o(.rodata); + sound/songs/midi/se_note_a.o(.rodata); + sound/songs/midi/se_note_b.o(.rodata); + sound/songs/midi/se_note_c_high.o(.rodata); + sound/songs/midi/se_puddle.o(.rodata); + sound/songs/midi/se_bridge_walk.o(.rodata); + sound/songs/midi/se_itemfinder.o(.rodata); + sound/songs/midi/se_ding_dong.o(.rodata); + sound/songs/midi/se_balloon_red.o(.rodata); + sound/songs/midi/se_balloon_blue.o(.rodata); + sound/songs/midi/se_balloon_yellow.o(.rodata); + sound/songs/midi/se_breakable_door.o(.rodata); + sound/songs/midi/se_mud_ball.o(.rodata); + sound/songs/midi/se_field_poison.o(.rodata); + sound/songs/midi/se_escalator.o(.rodata); + sound/songs/midi/se_thunderstorm.o(.rodata); + sound/songs/midi/se_thunderstorm_stop.o(.rodata); + sound/songs/midi/se_downpour.o(.rodata); + sound/songs/midi/se_downpour_stop.o(.rodata); + sound/songs/midi/se_rain.o(.rodata); + sound/songs/midi/se_rain_stop.o(.rodata); + sound/songs/midi/se_thunder.o(.rodata); + sound/songs/midi/se_thunder2.o(.rodata); + sound/songs/midi/se_elevator.o(.rodata); + sound/songs/midi/se_low_health.o(.rodata); + sound/songs/midi/se_exp_max.o(.rodata); + sound/songs/midi/se_roulette_ball.o(.rodata); + sound/songs/midi/se_roulette_ball2.o(.rodata); + sound/songs/midi/se_taillow_wing_flap.o(.rodata); + sound/songs/midi/se_shop.o(.rodata); + sound/songs/midi/se_contest_heart.o(.rodata); + sound/songs/midi/se_contest_curtain_rise.o(.rodata); + sound/songs/midi/se_contest_curtain_fall.o(.rodata); + sound/songs/midi/se_contest_icon_change.o(.rodata); + sound/songs/midi/se_contest_icon_clear.o(.rodata); + sound/songs/midi/se_contest_mons_turn.o(.rodata); + sound/songs/midi/se_shiny.o(.rodata); + sound/songs/midi/se_intro_blast.o(.rodata); + sound/songs/midi/se_mugshot.o(.rodata); + sound/songs/midi/se_applause.o(.rodata); + sound/songs/midi/se_vend.o(.rodata); + sound/songs/midi/se_orb.o(.rodata); + sound/songs/se_dex_scroll.o(.rodata); + sound/songs/se_dex_page.o(.rodata); + sound/songs/midi/se_pokenav_on.o(.rodata); + sound/songs/midi/se_pokenav_off.o(.rodata); + sound/songs/midi/se_dex_search.o(.rodata); + sound/songs/midi/se_egg_hatch.o(.rodata); + sound/songs/midi/se_ball_tray_enter.o(.rodata); + sound/songs/midi/se_ball_tray_ball.o(.rodata); + sound/songs/midi/se_ball_tray_exit.o(.rodata); + sound/songs/midi/se_glass_flute.o(.rodata); + sound/songs/se_m_thunderbolt.o(.rodata); + sound/songs/se_m_thunderbolt2.o(.rodata); + sound/songs/se_m_harden.o(.rodata); + sound/songs/se_m_nightmare.o(.rodata); + sound/songs/se_m_vital_throw.o(.rodata); + sound/songs/se_m_vital_throw2.o(.rodata); + sound/songs/se_m_bubble.o(.rodata); + sound/songs/se_m_bubble2.o(.rodata); + sound/songs/se_m_bubble3.o(.rodata); + sound/songs/se_m_rain_dance.o(.rodata); + sound/songs/midi/se_m_cut.o(.rodata); + sound/songs/se_m_string_shot.o(.rodata); + sound/songs/se_m_string_shot2.o(.rodata); + sound/songs/se_m_rock_throw.o(.rodata); + sound/songs/midi/se_m_gust.o(.rodata); + sound/songs/midi/se_m_gust2.o(.rodata); + sound/songs/midi/se_m_double_slap.o(.rodata); + sound/songs/se_m_double_team.o(.rodata); + sound/songs/midi/se_m_razor_wind.o(.rodata); + sound/songs/se_m_icy_wind.o(.rodata); + sound/songs/se_m_thunder_wave.o(.rodata); + sound/songs/midi/se_m_comet_punch.o(.rodata); + sound/songs/midi/se_m_mega_kick.o(.rodata); + sound/songs/midi/se_m_mega_kick2.o(.rodata); + sound/songs/se_m_crabhammer.o(.rodata); + sound/songs/midi/se_m_jump_kick.o(.rodata); + sound/songs/se_m_flame_wheel.o(.rodata); + sound/songs/se_m_flame_wheel2.o(.rodata); + sound/songs/se_m_flamethrower.o(.rodata); + sound/songs/midi/se_m_fire_punch.o(.rodata); + sound/songs/se_m_toxic.o(.rodata); + sound/songs/se_m_sacred_fire.o(.rodata); + sound/songs/se_m_sacred_fire2.o(.rodata); + sound/songs/se_m_ember.o(.rodata); + sound/songs/midi/se_m_take_down.o(.rodata); + sound/songs/se_m_blizzard.o(.rodata); + sound/songs/se_m_blizzard2.o(.rodata); + sound/songs/midi/se_m_scratch.o(.rodata); + sound/songs/midi/se_m_vicegrip.o(.rodata); + sound/songs/midi/se_m_wing_attack.o(.rodata); + sound/songs/midi/se_m_fly.o(.rodata); + sound/songs/midi/se_m_sand_attack.o(.rodata); + sound/songs/midi/se_m_razor_wind2.o(.rodata); + sound/songs/se_m_bite.o(.rodata); + sound/songs/midi/se_m_headbutt.o(.rodata); + sound/songs/se_m_surf.o(.rodata); + sound/songs/se_m_hydro_pump.o(.rodata); + sound/songs/se_m_whirlpool.o(.rodata); + sound/songs/midi/se_m_horn_attack.o(.rodata); + sound/songs/midi/se_m_tail_whip.o(.rodata); + sound/songs/se_m_mist.o(.rodata); + sound/songs/se_m_poison_powder.o(.rodata); + sound/songs/midi/se_m_bind.o(.rodata); + sound/songs/se_m_dragon_rage.o(.rodata); + sound/songs/se_m_sing.o(.rodata); + sound/songs/se_m_perish_song.o(.rodata); + sound/songs/midi/se_m_pay_day.o(.rodata); + sound/songs/se_m_dig.o(.rodata); + sound/songs/se_m_dizzy_punch.o(.rodata); + sound/songs/se_m_self_destruct.o(.rodata); + sound/songs/se_m_explosion.o(.rodata); + sound/songs/se_m_absorb_2.o(.rodata); + sound/songs/se_m_absorb.o(.rodata); + sound/songs/se_m_screech.o(.rodata); + sound/songs/se_m_bubble_beam.o(.rodata); + sound/songs/se_m_bubble_beam2.o(.rodata); + sound/songs/se_m_supersonic.o(.rodata); + sound/songs/se_m_belly_drum.o(.rodata); + sound/songs/se_m_metronome.o(.rodata); + sound/songs/se_m_bonemerang.o(.rodata); + sound/songs/se_m_lick.o(.rodata); + sound/songs/se_m_psybeam.o(.rodata); + sound/songs/se_m_faint_attack.o(.rodata); + sound/songs/midi/se_m_swords_dance.o(.rodata); + sound/songs/midi/se_m_leer.o(.rodata); + sound/songs/se_m_swagger.o(.rodata); + sound/songs/se_m_swagger2.o(.rodata); + sound/songs/se_m_heal_bell.o(.rodata); + sound/songs/se_m_confuse_ray.o(.rodata); + sound/songs/se_m_snore.o(.rodata); + sound/songs/se_m_brick_break.o(.rodata); + sound/songs/se_m_giga_drain.o(.rodata); + sound/songs/se_m_psybeam2.o(.rodata); + sound/songs/se_m_solar_beam.o(.rodata); + sound/songs/se_m_petal_dance.o(.rodata); + sound/songs/se_m_teleport.o(.rodata); + sound/songs/se_m_minimize.o(.rodata); + sound/songs/se_m_sketch.o(.rodata); + sound/songs/se_m_swift.o(.rodata); + sound/songs/se_m_reflect.o(.rodata); + sound/songs/se_m_barrier.o(.rodata); + sound/songs/se_m_detect.o(.rodata); + sound/songs/se_m_lock_on.o(.rodata); + sound/songs/se_m_moonlight.o(.rodata); + sound/songs/se_m_charm.o(.rodata); + sound/songs/se_m_charge.o(.rodata); + sound/songs/se_m_strength.o(.rodata); + sound/songs/se_m_hyper_beam.o(.rodata); + sound/songs/se_m_waterfall.o(.rodata); + sound/songs/se_m_reversal.o(.rodata); + sound/songs/se_m_acid_armor.o(.rodata); + sound/songs/se_m_sandstorm.o(.rodata); + sound/songs/se_m_tri_attack.o(.rodata); + sound/songs/se_m_tri_attack2.o(.rodata); + sound/songs/se_m_encore.o(.rodata); + sound/songs/se_m_encore2.o(.rodata); + sound/songs/se_m_baton_pass.o(.rodata); + sound/songs/se_m_milk_drink.o(.rodata); + sound/songs/se_m_attract.o(.rodata); + sound/songs/se_m_attract2.o(.rodata); + sound/songs/se_m_morning_sun.o(.rodata); + sound/songs/se_m_flatter.o(.rodata); + sound/songs/se_m_sand_tomb.o(.rodata); + sound/songs/se_m_grasswhistle.o(.rodata); + sound/songs/se_m_spit_up.o(.rodata); + sound/songs/se_m_dive.o(.rodata); + sound/songs/se_m_earthquake.o(.rodata); + sound/songs/se_m_twister.o(.rodata); + sound/songs/se_m_sweet_scent.o(.rodata); + sound/songs/se_m_yawn.o(.rodata); + sound/songs/se_m_sky_uppercut.o(.rodata); + sound/songs/se_m_stat_increase.o(.rodata); + sound/songs/se_m_heat_wave.o(.rodata); + sound/songs/se_m_uproar.o(.rodata); + sound/songs/se_m_hail.o(.rodata); + sound/songs/se_m_cosmic_power.o(.rodata); + sound/songs/se_m_teeter_dance.o(.rodata); + sound/songs/se_m_stat_decrease.o(.rodata); + sound/songs/se_m_haze.o(.rodata); + sound/songs/se_m_hyper_beam2.o(.rodata); + sound/songs/midi/se_rg_door.o(.rodata); + sound/songs/midi/se_rg_card_flip.o(.rodata); + sound/songs/midi/se_rg_card_flipping.o(.rodata); + sound/songs/midi/se_rg_card_open.o(.rodata); + sound/songs/midi/se_rg_bag_cursor.o(.rodata); + sound/songs/midi/se_rg_bag_pocket.o(.rodata); + sound/songs/midi/se_rg_ball_click.o(.rodata); sound/songs/midi/se_rg_shop.o(.rodata); - sound/songs/midi/se_rg_kiteki.o(.rodata); - sound/songs/midi/se_rg_help_op.o(.rodata); - sound/songs/midi/se_rg_help_cl.o(.rodata); - sound/songs/midi/se_rg_help_ng.o(.rodata); - sound/songs/midi/se_rg_deomov.o(.rodata); - sound/songs/midi/se_rg_excellent.o(.rodata); - sound/songs/midi/se_rg_nawamiss.o(.rodata); - sound/songs/midi/se_toreeye.o(.rodata); - sound/songs/midi/se_toreoff.o(.rodata); - sound/songs/midi/se_hantei1.o(.rodata); - sound/songs/midi/se_hantei2.o(.rodata); - sound/songs/midi/se_curtain.o(.rodata); - sound/songs/midi/se_curtain1.o(.rodata); - sound/songs/midi/se_ussoki.o(.rodata); - sound/songs/midi/mus_tetsuji.o(.rodata); - sound/songs/midi/mus_field13.o(.rodata); - sound/songs/midi/mus_kachi22.o(.rodata); - sound/songs/midi/mus_kachi2.o(.rodata); - sound/songs/midi/mus_kachi3.o(.rodata); - sound/songs/midi/mus_kachi5.o(.rodata); - sound/songs/midi/mus_pcc.o(.rodata); - sound/songs/midi/mus_nibi.o(.rodata); - sound/songs/midi/mus_suikun.o(.rodata); - sound/songs/midi/mus_dooro1.o(.rodata); - sound/songs/midi/mus_dooro_x1.o(.rodata); - sound/songs/midi/mus_dooro_x3.o(.rodata); - sound/songs/midi/mus_machi_s2.o(.rodata); - sound/songs/midi/mus_machi_s4.o(.rodata); - sound/songs/midi/mus_gim.o(.rodata); - sound/songs/midi/mus_naminori.o(.rodata); - sound/songs/midi/mus_dan01.o(.rodata); - sound/songs/midi/mus_fanfa1.o(.rodata); - sound/songs/midi/mus_me_asa.o(.rodata); - sound/songs/midi/mus_me_bachi.o(.rodata); - sound/songs/midi/mus_fanfa4.o(.rodata); - sound/songs/midi/mus_fanfa5.o(.rodata); - sound/songs/midi/mus_me_waza.o(.rodata); - sound/songs/midi/mus_bijyutu.o(.rodata); - sound/songs/midi/mus_dooro_x4.o(.rodata); - sound/songs/midi/mus_fune_kan.o(.rodata); - sound/songs/midi/mus_me_shinka.o(.rodata); - sound/songs/midi/mus_shinka.o(.rodata); - sound/songs/midi/mus_me_wasure.o(.rodata); - sound/songs/midi/mus_syoujoeye.o(.rodata); - sound/songs/midi/mus_boyeye.o(.rodata); - sound/songs/midi/mus_dan02.o(.rodata); - sound/songs/midi/mus_machi_s3.o(.rodata); - sound/songs/midi/mus_odamaki.o(.rodata); - sound/songs/midi/mus_b_tower.o(.rodata); - sound/songs/midi/mus_swimeye.o(.rodata); - sound/songs/midi/mus_dan03.o(.rodata); - sound/songs/midi/mus_me_kinomi.o(.rodata); - sound/songs/midi/mus_me_tama.o(.rodata); - sound/songs/midi/mus_me_b_big.o(.rodata); - sound/songs/midi/mus_me_b_small.o(.rodata); - sound/songs/midi/mus_me_zannen.o(.rodata); - sound/songs/midi/mus_bd_time.o(.rodata); - sound/songs/midi/mus_test1.o(.rodata); - sound/songs/midi/mus_test2.o(.rodata); - sound/songs/midi/mus_test3.o(.rodata); - sound/songs/midi/mus_test4.o(.rodata); - sound/songs/midi/mus_test.o(.rodata); - sound/songs/midi/mus_gomachi0.o(.rodata); - sound/songs/midi/mus_gotown.o(.rodata); - sound/songs/midi/mus_pokecen.o(.rodata); - sound/songs/midi/mus_nextroad.o(.rodata); - sound/songs/midi/mus_granroad.o(.rodata); + sound/songs/midi/se_rg_ss_anne_horn.o(.rodata); + sound/songs/midi/se_rg_help_open.o(.rodata); + sound/songs/midi/se_rg_help_close.o(.rodata); + sound/songs/midi/se_rg_help_error.o(.rodata); + sound/songs/midi/se_rg_deoxys_move.o(.rodata); + sound/songs/midi/se_rg_poke_jump_success.o(.rodata); + sound/songs/midi/se_rg_poke_jump_failure.o(.rodata); + sound/songs/midi/se_pokenav_call.o(.rodata); + sound/songs/midi/se_pokenav_hang_up.o(.rodata); + sound/songs/midi/se_arena_timeup1.o(.rodata); + sound/songs/midi/se_arena_timeup2.o(.rodata); + sound/songs/midi/se_pike_curtain_close.o(.rodata); + sound/songs/midi/se_pike_curtain_open.o(.rodata); + sound/songs/midi/se_sudowoodo_shake.o(.rodata); + sound/songs/midi/mus_littleroot_test.o(.rodata); + sound/songs/midi/mus_gsc_route38.o(.rodata); + sound/songs/midi/mus_caught.o(.rodata); + sound/songs/midi/mus_victory_wild.o(.rodata); + sound/songs/midi/mus_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_victory_league.o(.rodata); + sound/songs/midi/mus_c_comm_center.o(.rodata); + sound/songs/midi/mus_gsc_pewter.o(.rodata); + sound/songs/midi/mus_c_vs_legend_beast.o(.rodata); + sound/songs/midi/mus_route101.o(.rodata); + sound/songs/midi/mus_route110.o(.rodata); + sound/songs/midi/mus_route120.o(.rodata); + sound/songs/midi/mus_petalburg.o(.rodata); + sound/songs/midi/mus_oldale.o(.rodata); + sound/songs/midi/mus_gym.o(.rodata); + sound/songs/midi/mus_surf.o(.rodata); + sound/songs/midi/mus_petalburg_woods.o(.rodata); + sound/songs/midi/mus_level_up.o(.rodata); + sound/songs/midi/mus_heal.o(.rodata); + sound/songs/midi/mus_obtain_badge.o(.rodata); + sound/songs/midi/mus_obtain_item.o(.rodata); + sound/songs/midi/mus_evolved.o(.rodata); + sound/songs/midi/mus_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_lilycove_museum.o(.rodata); + sound/songs/midi/mus_route122.o(.rodata); + sound/songs/midi/mus_oceanic_museum.o(.rodata); + sound/songs/midi/mus_evolution_intro.o(.rodata); + sound/songs/midi/mus_evolution.o(.rodata); + sound/songs/midi/mus_move_deleted.o(.rodata); + sound/songs/midi/mus_encounter_girl.o(.rodata); + sound/songs/midi/mus_encounter_male.o(.rodata); + sound/songs/midi/mus_abandoned_ship.o(.rodata); + sound/songs/midi/mus_fortree.o(.rodata); + sound/songs/midi/mus_birch_lab.o(.rodata); + sound/songs/midi/mus_b_tower_rs.o(.rodata); + sound/songs/midi/mus_encounter_swimmer.o(.rodata); + sound/songs/midi/mus_cave_of_origin.o(.rodata); + sound/songs/midi/mus_obtain_berry.o(.rodata); + sound/songs/midi/mus_awaken_legend.o(.rodata); + sound/songs/midi/mus_slots_jackpot.o(.rodata); + sound/songs/midi/mus_slots_win.o(.rodata); + sound/songs/midi/mus_too_bad.o(.rodata); + sound/songs/midi/mus_roulette.o(.rodata); + sound/songs/midi/mus_link_contest_p1.o(.rodata); + sound/songs/midi/mus_link_contest_p2.o(.rodata); + sound/songs/midi/mus_link_contest_p3.o(.rodata); + sound/songs/midi/mus_link_contest_p4.o(.rodata); + sound/songs/midi/mus_encounter_rich.o(.rodata); + sound/songs/midi/mus_verdanturf.o(.rodata); + sound/songs/midi/mus_rustboro.o(.rodata); + sound/songs/midi/mus_poke_center.o(.rodata); + sound/songs/midi/mus_route104.o(.rodata); + sound/songs/midi/mus_route119.o(.rodata); sound/songs/midi/mus_cycling.o(.rodata); - sound/songs/midi/mus_friendly.o(.rodata); - sound/songs/midi/mus_mishiro.o(.rodata); - sound/songs/midi/mus_tozan.o(.rodata); - sound/songs/midi/mus_girleye.o(.rodata); - sound/songs/midi/mus_minamo.o(.rodata); - sound/songs/midi/mus_ashroad.o(.rodata); - sound/songs/midi/mus_event0.o(.rodata); - sound/songs/midi/mus_deepdeep.o(.rodata); - sound/songs/midi/mus_kachi1.o(.rodata); - sound/songs/midi/mus_title3.o(.rodata); - sound/songs/midi/mus_demo1.o(.rodata); - sound/songs/midi/mus_girl_sup.o(.rodata); - sound/songs/midi/mus_hageshii.o(.rodata); - sound/songs/midi/mus_kakkoii.o(.rodata); - sound/songs/midi/mus_kazanbai.o(.rodata); - sound/songs/midi/mus_aqa_0.o(.rodata); - sound/songs/midi/mus_tsuretek.o(.rodata); - sound/songs/midi/mus_boy_sup.o(.rodata); - sound/songs/midi/mus_rainbow.o(.rodata); - sound/songs/midi/mus_ayasii.o(.rodata); - sound/songs/midi/mus_kachi4.o(.rodata); - sound/songs/midi/mus_ropeway.o(.rodata); - sound/songs/midi/mus_casino.o(.rodata); - sound/songs/midi/mus_hightown.o(.rodata); - sound/songs/midi/mus_safari.o(.rodata); - sound/songs/midi/mus_c_road.o(.rodata); - sound/songs/midi/mus_ajito.o(.rodata); - sound/songs/midi/mus_m_boat.o(.rodata); - sound/songs/midi/mus_m_dungon.o(.rodata); - sound/songs/midi/mus_finecity.o(.rodata); - sound/songs/midi/mus_machupi.o(.rodata); - sound/songs/midi/mus_p_school.o(.rodata); - sound/songs/midi/mus_dendou.o(.rodata); - sound/songs/midi/mus_tonekusa.o(.rodata); - sound/songs/midi/mus_maborosi.o(.rodata); - sound/songs/midi/mus_con_fan.o(.rodata); - sound/songs/midi/mus_contest0.o(.rodata); - sound/songs/midi/mus_mgm0.o(.rodata); - sound/songs/midi/mus_t_battle.o(.rodata); - sound/songs/midi/mus_ooame.o(.rodata); - sound/songs/midi/mus_hideri.o(.rodata); - sound/songs/midi/mus_runecity.o(.rodata); - sound/songs/midi/mus_con_k.o(.rodata); - sound/songs/midi/mus_eikou_r.o(.rodata); - sound/songs/midi/mus_karakuri.o(.rodata); - sound/songs/midi/mus_hutago.o(.rodata); - sound/songs/midi/mus_sitennou.o(.rodata); - sound/songs/midi/mus_yama_eye.o(.rodata); - sound/songs/midi/mus_conlobby.o(.rodata); - sound/songs/midi/mus_inter_v.o(.rodata); - sound/songs/midi/mus_daigo.o(.rodata); - sound/songs/midi/mus_thankfor.o(.rodata); + sound/songs/midi/mus_poke_mart.o(.rodata); + sound/songs/midi/mus_littleroot.o(.rodata); + sound/songs/midi/mus_mt_chimney.o(.rodata); + sound/songs/midi/mus_encounter_female.o(.rodata); + sound/songs/midi/mus_lilycove.o(.rodata); + sound/songs/midi/mus_route111.o(.rodata); + sound/songs/midi/mus_help.o(.rodata); + sound/songs/midi/mus_underwater.o(.rodata); + sound/songs/midi/mus_victory_trainer.o(.rodata); + sound/songs/midi/mus_title.o(.rodata); + sound/songs/midi/mus_intro.o(.rodata); + sound/songs/midi/mus_encounter_may.o(.rodata); + sound/songs/midi/mus_encounter_intense.o(.rodata); + sound/songs/midi/mus_encounter_cool.o(.rodata); + sound/songs/midi/mus_route113.o(.rodata); + sound/songs/midi/mus_encounter_aqua.o(.rodata); + sound/songs/midi/mus_follow_me.o(.rodata); + sound/songs/midi/mus_encounter_brendan.o(.rodata); + sound/songs/midi/mus_ever_grande.o(.rodata); + sound/songs/midi/mus_encounter_suspicious.o(.rodata); + sound/songs/midi/mus_victory_aqua_magma.o(.rodata); + sound/songs/midi/mus_cable_car.o(.rodata); + sound/songs/midi/mus_game_corner.o(.rodata); + sound/songs/midi/mus_dewford.o(.rodata); + sound/songs/midi/mus_safari_zone.o(.rodata); + sound/songs/midi/mus_victory_road.o(.rodata); + sound/songs/midi/mus_aqua_magma_hideout.o(.rodata); + sound/songs/midi/mus_sailing.o(.rodata); + sound/songs/midi/mus_mt_pyre.o(.rodata); + sound/songs/midi/mus_slateport.o(.rodata); + sound/songs/midi/mus_mt_pyre_exterior.o(.rodata); + sound/songs/midi/mus_school.o(.rodata); + sound/songs/midi/mus_hall_of_fame.o(.rodata); + sound/songs/midi/mus_fallarbor.o(.rodata); + sound/songs/midi/mus_sealed_chamber.o(.rodata); + sound/songs/midi/mus_contest_winner.o(.rodata); + sound/songs/midi/mus_contest.o(.rodata); + sound/songs/midi/mus_encounter_magma.o(.rodata); + sound/songs/midi/mus_intro_battle.o(.rodata); + sound/songs/midi/mus_abnormal_weather.o(.rodata); + sound/songs/midi/mus_weather_groudon.o(.rodata); + sound/songs/midi/mus_sootopolis.o(.rodata); + sound/songs/midi/mus_contest_results.o(.rodata); + sound/songs/midi/mus_hall_of_fame_room.o(.rodata); + sound/songs/midi/mus_trick_house.o(.rodata); + sound/songs/midi/mus_encounter_twins.o(.rodata); + sound/songs/midi/mus_encounter_elite_four.o(.rodata); + sound/songs/midi/mus_encounter_hiker.o(.rodata); + sound/songs/midi/mus_contest_lobby.o(.rodata); + sound/songs/midi/mus_encounter_interviewer.o(.rodata); + sound/songs/midi/mus_encounter_champion.o(.rodata); + sound/songs/midi/mus_credits.o(.rodata); sound/songs/midi/mus_end.o(.rodata); sound/songs/midi/mus_b_frontier.o(.rodata); sound/songs/midi/mus_b_arena.o(.rodata); - sound/songs/midi/mus_me_pointget.o(.rodata); - sound/songs/midi/mus_me_tore_eye.o(.rodata); - sound/songs/midi/mus_pyramid.o(.rodata); - sound/songs/midi/mus_pyramid_top.o(.rodata); + sound/songs/midi/mus_obtain_b_points.o(.rodata); + sound/songs/midi/mus_register_match_call.o(.rodata); + sound/songs/midi/mus_b_pyramid.o(.rodata); + sound/songs/midi/mus_b_pyramid_top.o(.rodata); sound/songs/midi/mus_b_palace.o(.rodata); - sound/songs/midi/mus_rekkuu_kourin.o(.rodata); - sound/songs/midi/mus_sattower.o(.rodata); - sound/songs/midi/mus_me_symbolget.o(.rodata); + sound/songs/midi/mus_rayquaza_appears.o(.rodata); + sound/songs/midi/mus_b_tower.o(.rodata); + sound/songs/midi/mus_obtain_symbol.o(.rodata); sound/songs/midi/mus_b_dome.o(.rodata); - sound/songs/midi/mus_b_tube.o(.rodata); + sound/songs/midi/mus_b_pike.o(.rodata); sound/songs/midi/mus_b_factory.o(.rodata); - sound/songs/midi/mus_vs_rekku.o(.rodata); - sound/songs/midi/mus_vs_front.o(.rodata); + sound/songs/midi/mus_vs_rayquaza.o(.rodata); + sound/songs/midi/mus_vs_frontier_brain.o(.rodata); sound/songs/midi/mus_vs_mew.o(.rodata); - sound/songs/midi/mus_b_dome1.o(.rodata); - sound/songs/midi/mus_battle27.o(.rodata); - sound/songs/midi/mus_battle31.o(.rodata); - sound/songs/midi/mus_battle20.o(.rodata); - sound/songs/midi/mus_battle32.o(.rodata); - sound/songs/midi/mus_battle33.o(.rodata); - sound/songs/midi/mus_battle36.o(.rodata); - sound/songs/midi/mus_battle34.o(.rodata); - sound/songs/midi/mus_battle35.o(.rodata); - sound/songs/midi/mus_battle38.o(.rodata); - sound/songs/midi/mus_battle30.o(.rodata); - sound/songs/midi/mus_rg_annai.o(.rodata); - sound/songs/midi/mus_rg_slot.o(.rodata); - sound/songs/midi/mus_rg_ajito.o(.rodata); + sound/songs/midi/mus_b_dome_lobby.o(.rodata); + sound/songs/midi/mus_vs_wild.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma.o(.rodata); + sound/songs/midi/mus_vs_trainer.o(.rodata); + sound/songs/midi/mus_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_vs_champion.o(.rodata); + sound/songs/midi/mus_vs_regi.o(.rodata); + sound/songs/midi/mus_vs_kyogre_groudon.o(.rodata); + sound/songs/midi/mus_vs_rival.o(.rodata); + sound/songs/midi/mus_vs_elite_four.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma_leader.o(.rodata); + sound/songs/midi/mus_rg_follow_me.o(.rodata); + sound/songs/midi/mus_rg_game_corner.o(.rodata); + sound/songs/midi/mus_rg_rocket_hideout.o(.rodata); sound/songs/midi/mus_rg_gym.o(.rodata); - sound/songs/midi/mus_rg_purin.o(.rodata); - sound/songs/midi/mus_rg_demo.o(.rodata); + sound/songs/midi/mus_rg_jigglypuff.o(.rodata); + sound/songs/midi/mus_rg_intro_fight.o(.rodata); sound/songs/midi/mus_rg_title.o(.rodata); - sound/songs/midi/mus_rg_guren.o(.rodata); - sound/songs/midi/mus_rg_shion.o(.rodata); - sound/songs/midi/mus_rg_kaihuku.o(.rodata); + sound/songs/midi/mus_rg_cinnabar.o(.rodata); + sound/songs/midi/mus_rg_lavender.o(.rodata); + sound/songs/midi/mus_rg_heal.o(.rodata); sound/songs/midi/mus_rg_cycling.o(.rodata); - sound/songs/midi/mus_rg_rocket.o(.rodata); - sound/songs/midi/mus_rg_shoujo.o(.rodata); - sound/songs/midi/mus_rg_shounen.o(.rodata); - sound/songs/midi/mus_rg_dendou.o(.rodata); - sound/songs/midi/mus_rg_t_mori.o(.rodata); - sound/songs/midi/mus_rg_otsukimi.o(.rodata); - sound/songs/midi/mus_rg_pokeyashi.o(.rodata); - sound/songs/midi/mus_rg_ending.o(.rodata); - sound/songs/midi/mus_rg_load01.o(.rodata); - sound/songs/midi/mus_rg_opening.o(.rodata); - sound/songs/midi/mus_rg_load02.o(.rodata); - sound/songs/midi/mus_rg_load03.o(.rodata); - sound/songs/midi/mus_rg_champ_r.o(.rodata); - sound/songs/midi/mus_rg_vs_gym.o(.rodata); - sound/songs/midi/mus_rg_vs_tore.o(.rodata); - sound/songs/midi/mus_rg_vs_yasei.o(.rodata); - sound/songs/midi/mus_rg_vs_last.o(.rodata); - sound/songs/midi/mus_rg_masara.o(.rodata); - sound/songs/midi/mus_rg_kenkyu.o(.rodata); - sound/songs/midi/mus_rg_ohkido.o(.rodata); - sound/songs/midi/mus_rg_pokecen.o(.rodata); - sound/songs/midi/mus_rg_santoan.o(.rodata); - sound/songs/midi/mus_rg_naminori.o(.rodata); - sound/songs/midi/mus_rg_p_tower.o(.rodata); - sound/songs/midi/mus_rg_shiruhu.o(.rodata); - sound/songs/midi/mus_rg_hanada.o(.rodata); - sound/songs/midi/mus_rg_tamamusi.o(.rodata); - sound/songs/midi/mus_rg_win_tre.o(.rodata); - sound/songs/midi/mus_rg_win_yasei.o(.rodata); - sound/songs/midi/mus_rg_win_gym.o(.rodata); - sound/songs/midi/mus_rg_kuchiba.o(.rodata); - sound/songs/midi/mus_rg_nibi.o(.rodata); - sound/songs/midi/mus_rg_rival1.o(.rodata); - sound/songs/midi/mus_rg_rival2.o(.rodata); - sound/songs/midi/mus_rg_fan2.o(.rodata); - sound/songs/midi/mus_rg_fan5.o(.rodata); - sound/songs/midi/mus_rg_fan6.o(.rodata); - sound/songs/midi/mus_me_rg_photo.o(.rodata); - sound/songs/midi/mus_rg_titlerog.o(.rodata); - sound/songs/midi/mus_rg_get_yasei.o(.rodata); - sound/songs/midi/mus_rg_sousa.o(.rodata); - sound/songs/midi/mus_rg_sekaikan.o(.rodata); - sound/songs/midi/mus_rg_seibetu.o(.rodata); - sound/songs/midi/mus_rg_jump.o(.rodata); - sound/songs/midi/mus_rg_union.o(.rodata); - sound/songs/midi/mus_rg_network.o(.rodata); - sound/songs/midi/mus_rg_okurimono.o(.rodata); - sound/songs/midi/mus_rg_kinomikui.o(.rodata); - sound/songs/midi/mus_rg_nanadungeon.o(.rodata); - sound/songs/midi/mus_rg_oshie_tv.o(.rodata); - sound/songs/midi/mus_rg_nanashima.o(.rodata); - sound/songs/midi/mus_rg_nanaiseki.o(.rodata); - sound/songs/midi/mus_rg_nana123.o(.rodata); - sound/songs/midi/mus_rg_nana45.o(.rodata); - sound/songs/midi/mus_rg_nana67.o(.rodata); - sound/songs/midi/mus_rg_pokefue.o(.rodata); - sound/songs/midi/mus_rg_vs_deo.o(.rodata); - sound/songs/midi/mus_rg_vs_myu2.o(.rodata); - sound/songs/midi/mus_rg_vs_den.o(.rodata); - sound/songs/midi/mus_rg_exeye.o(.rodata); - sound/songs/midi/mus_rg_deoeye.o(.rodata); - sound/songs/midi/mus_rg_t_tower.o(.rodata); - sound/songs/midi/mus_rg_slowmasara.o(.rodata); - sound/songs/midi/mus_rg_tvnoize.o(.rodata); + sound/songs/midi/mus_rg_encounter_rocket.o(.rodata); + sound/songs/midi/mus_rg_encounter_girl.o(.rodata); + sound/songs/midi/mus_rg_encounter_boy.o(.rodata); + sound/songs/midi/mus_rg_hall_of_fame.o(.rodata); + sound/songs/midi/mus_rg_viridian_forest.o(.rodata); + sound/songs/midi/mus_rg_mt_moon.o(.rodata); + sound/songs/midi/mus_rg_poke_mansion.o(.rodata); + sound/songs/midi/mus_rg_credits.o(.rodata); + sound/songs/midi/mus_rg_route1.o(.rodata); + sound/songs/midi/mus_rg_route24.o(.rodata); + sound/songs/midi/mus_rg_route3.o(.rodata); + sound/songs/midi/mus_rg_route11.o(.rodata); + sound/songs/midi/mus_rg_victory_road.o(.rodata); + sound/songs/midi/mus_rg_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_vs_trainer.o(.rodata); + sound/songs/midi/mus_rg_vs_wild.o(.rodata); + sound/songs/midi/mus_rg_vs_champion.o(.rodata); + sound/songs/midi/mus_rg_pallet.o(.rodata); + sound/songs/midi/mus_rg_oak_lab.o(.rodata); + sound/songs/midi/mus_rg_oak.o(.rodata); + sound/songs/midi/mus_rg_poke_center.o(.rodata); + sound/songs/midi/mus_rg_ss_anne.o(.rodata); + sound/songs/midi/mus_rg_surf.o(.rodata); + sound/songs/midi/mus_rg_poke_tower.o(.rodata); + sound/songs/midi/mus_rg_silph.o(.rodata); + sound/songs/midi/mus_rg_fuchsia.o(.rodata); + sound/songs/midi/mus_rg_celadon.o(.rodata); + sound/songs/midi/mus_rg_victory_trainer.o(.rodata); + sound/songs/midi/mus_rg_victory_wild.o(.rodata); + sound/songs/midi/mus_rg_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_vermillion.o(.rodata); + sound/songs/midi/mus_rg_pewter.o(.rodata); + sound/songs/midi/mus_rg_encounter_rival.o(.rodata); + sound/songs/midi/mus_rg_rival_exit.o(.rodata); + sound/songs/midi/mus_rg_dex_rating.o(.rodata); + sound/songs/midi/mus_rg_obtain_key_item.o(.rodata); + sound/songs/midi/mus_rg_caught_intro.o(.rodata); + sound/songs/midi/mus_rg_photo.o(.rodata); + sound/songs/midi/mus_rg_game_freak.o(.rodata); + sound/songs/midi/mus_rg_caught.o(.rodata); + sound/songs/midi/mus_rg_new_game_instruct.o(.rodata); + sound/songs/midi/mus_rg_new_game_intro.o(.rodata); + sound/songs/midi/mus_rg_new_game_exit.o(.rodata); + sound/songs/midi/mus_rg_poke_jump.o(.rodata); + sound/songs/midi/mus_rg_union_room.o(.rodata); + sound/songs/midi/mus_rg_net_center.o(.rodata); + sound/songs/midi/mus_rg_mystery_gift.o(.rodata); + sound/songs/midi/mus_rg_berry_pick.o(.rodata); + sound/songs/midi/mus_rg_sevii_cave.o(.rodata); + sound/songs/midi/mus_rg_teachy_tv_show.o(.rodata); + sound/songs/midi/mus_rg_sevii_route.o(.rodata); + sound/songs/midi/mus_rg_sevii_dungeon.o(.rodata); + sound/songs/midi/mus_rg_sevii_123.o(.rodata); + sound/songs/midi/mus_rg_sevii_45.o(.rodata); + sound/songs/midi/mus_rg_sevii_67.o(.rodata); + sound/songs/midi/mus_rg_poke_flute.o(.rodata); + sound/songs/midi/mus_rg_vs_deoxys.o(.rodata); + sound/songs/midi/mus_rg_vs_mewtwo.o(.rodata); + sound/songs/midi/mus_rg_vs_legend.o(.rodata); + sound/songs/midi/mus_rg_encounter_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_encounter_deoxys.o(.rodata); + sound/songs/midi/mus_rg_trainer_tower.o(.rodata); + sound/songs/midi/mus_rg_slow_pallet.o(.rodata); + sound/songs/midi/mus_rg_teachy_tv_menu.o(.rodata); sound/songs/midi/ph_trap_blend.o(.rodata); sound/songs/midi/ph_trap_held.o(.rodata); sound/songs/midi/ph_trap_solo.o(.rodata); @@ -3,16 +3,16 @@ STD_REVERB = 50 $(MID_BUILDDIR)/%.o: $(MID_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< -$(MID_SUBDIR)/mus_ajito.s: %.s: %.mid +$(MID_SUBDIR)/mus_aqua_magma_hideout.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G076 -V084 -$(MID_SUBDIR)/mus_aqa_0.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_aqua.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G065 -V086 -$(MID_SUBDIR)/mus_ashroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route111.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G055 -V076 -$(MID_SUBDIR)/mus_ayasii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_suspicious.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G069 -V078 $(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid @@ -21,7 +21,7 @@ $(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid $(MID_SUBDIR)/mus_b_dome.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V090 -$(MID_SUBDIR)/mus_b_dome1.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_dome_lobby.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V056 $(MID_SUBDIR)/mus_b_factory.s: %.s: %.mid @@ -33,604 +33,604 @@ $(MID_SUBDIR)/mus_b_frontier.s: %.s: %.mid $(MID_SUBDIR)/mus_b_palace.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G108 -V105 -$(MID_SUBDIR)/mus_b_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_tower_rs.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G035 -V080 -$(MID_SUBDIR)/mus_b_tube.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pike.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G112 -V092 -$(MID_SUBDIR)/mus_battle20.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G119 -V080 -P1 -$(MID_SUBDIR)/mus_battle27.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G117 -V080 -P1 -$(MID_SUBDIR)/mus_battle30.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_aqua_magma_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G126 -V080 -P1 -$(MID_SUBDIR)/mus_battle31.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_aqua_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G118 -V080 -P1 -$(MID_SUBDIR)/mus_battle32.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G120 -V080 -P1 -$(MID_SUBDIR)/mus_battle33.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G121 -V080 -P1 -$(MID_SUBDIR)/mus_battle34.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_kyogre_groudon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G123 -V080 -P1 -$(MID_SUBDIR)/mus_battle35.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_rival.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G124 -V080 -P1 -$(MID_SUBDIR)/mus_battle36.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_regi.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G122 -V080 -P1 -$(MID_SUBDIR)/mus_battle38.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_elite_four.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G125 -V080 -P1 -$(MID_SUBDIR)/mus_bd_time.s: %.s: %.mid +$(MID_SUBDIR)/mus_roulette.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G038 -V080 -$(MID_SUBDIR)/mus_bijyutu.s: %.s: %.mid +$(MID_SUBDIR)/mus_lilycove_museum.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G020 -V080 -$(MID_SUBDIR)/mus_boy_sup.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_brendan.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G067 -V078 -$(MID_SUBDIR)/mus_boyeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_male.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G028 -V080 -$(MID_SUBDIR)/mus_c_road.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_road.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G075 -V076 -$(MID_SUBDIR)/mus_casino.s: %.s: %.mid +$(MID_SUBDIR)/mus_game_corner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G072 -V072 -$(MID_SUBDIR)/mus_con_fan.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_winner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G085 -V100 -$(MID_SUBDIR)/mus_con_k.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_results.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G092 -V080 -$(MID_SUBDIR)/mus_conlobby.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_lobby.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G098 -V060 -$(MID_SUBDIR)/mus_contest0.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G086 -V088 $(MID_SUBDIR)/mus_cycling.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G049 -V083 -$(MID_SUBDIR)/mus_daigo.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G100 -V076 -$(MID_SUBDIR)/mus_dan01.s: %.s: %.mid +$(MID_SUBDIR)/mus_petalburg_woods.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G018 -V080 -$(MID_SUBDIR)/mus_dan02.s: %.s: %.mid +$(MID_SUBDIR)/mus_abandoned_ship.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G030 -V080 -$(MID_SUBDIR)/mus_dan03.s: %.s: %.mid +$(MID_SUBDIR)/mus_cave_of_origin.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G037 -V080 -$(MID_SUBDIR)/mus_deepdeep.s: %.s: %.mid +$(MID_SUBDIR)/mus_underwater.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G057 -V094 -$(MID_SUBDIR)/mus_demo1.s: %.s: %.mid +$(MID_SUBDIR)/mus_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G060 -V090 -$(MID_SUBDIR)/mus_dendou.s: %.s: %.mid +$(MID_SUBDIR)/mus_hall_of_fame.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G082 -V078 -$(MID_SUBDIR)/mus_dooro_x1.s: %.s: %.mid +$(MID_SUBDIR)/mus_route110.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G010 -V080 -$(MID_SUBDIR)/mus_dooro_x3.s: %.s: %.mid +$(MID_SUBDIR)/mus_route120.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G014 -V080 -$(MID_SUBDIR)/mus_dooro_x4.s: %.s: %.mid +$(MID_SUBDIR)/mus_route122.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G021 -V080 -$(MID_SUBDIR)/mus_dooro1.s: %.s: %.mid +$(MID_SUBDIR)/mus_route101.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G011 -V080 $(MID_SUBDIR)/mus_dummy.s: %.s: %.mid $(MID) $< $@ -E -R40 -$(MID_SUBDIR)/mus_eikou_r.s: %.s: %.mid +$(MID_SUBDIR)/mus_hall_of_fame_room.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G093 -V080 $(MID_SUBDIR)/mus_end.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G102 -V036 -$(MID_SUBDIR)/mus_event0.s: %.s: %.mid +$(MID_SUBDIR)/mus_help.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G056 -V078 -$(MID_SUBDIR)/mus_fanfa1.s: %.s: %.mid +$(MID_SUBDIR)/mus_level_up.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_fanfa4.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_fanfa5.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolved.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_field13.s: %.s: %.mid +$(MID_SUBDIR)/mus_gsc_route38.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_finecity.s: %.s: %.mid +$(MID_SUBDIR)/mus_slateport.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G079 -V070 -$(MID_SUBDIR)/mus_friendly.s: %.s: %.mid +$(MID_SUBDIR)/mus_poke_mart.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G050 -V085 -$(MID_SUBDIR)/mus_fune_kan.s: %.s: %.mid +$(MID_SUBDIR)/mus_oceanic_museum.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G023 -V080 -$(MID_SUBDIR)/mus_gim.s: %.s: %.mid +$(MID_SUBDIR)/mus_gym.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G013 -V080 -$(MID_SUBDIR)/mus_girl_sup.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_may.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G061 -V078 -$(MID_SUBDIR)/mus_girleye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_female.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G053 -V072 -$(MID_SUBDIR)/mus_gomachi0.s: %.s: %.mid +$(MID_SUBDIR)/mus_verdanturf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G044 -V090 -$(MID_SUBDIR)/mus_gotown.s: %.s: %.mid +$(MID_SUBDIR)/mus_rustboro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G045 -V085 -$(MID_SUBDIR)/mus_granroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route119.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G048 -V096 -$(MID_SUBDIR)/mus_hageshii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_intense.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G062 -V078 -$(MID_SUBDIR)/mus_hideri.s: %.s: %.mid +$(MID_SUBDIR)/mus_weather_groudon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G090 -V050 -$(MID_SUBDIR)/mus_hightown.s: %.s: %.mid +$(MID_SUBDIR)/mus_dewford.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G073 -V078 -$(MID_SUBDIR)/mus_hutago.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_twins.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G095 -V075 -$(MID_SUBDIR)/mus_inter_v.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_interviewer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G099 -V062 -$(MID_SUBDIR)/mus_kachi1.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G058 -V091 -$(MID_SUBDIR)/mus_kachi2.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 -$(MID_SUBDIR)/mus_kachi3.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G024 -V080 -$(MID_SUBDIR)/mus_kachi4.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_aqua_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G070 -V088 -$(MID_SUBDIR)/mus_kachi5.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_league.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G029 -V080 -$(MID_SUBDIR)/mus_kachi22.s: %.s: %.mid +$(MID_SUBDIR)/mus_caught.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 -$(MID_SUBDIR)/mus_kakkoii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_cool.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G063 -V086 -$(MID_SUBDIR)/mus_karakuri.s: %.s: %.mid +$(MID_SUBDIR)/mus_trick_house.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G094 -V070 -$(MID_SUBDIR)/mus_kazanbai.s: %.s: %.mid +$(MID_SUBDIR)/mus_route113.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G064 -V084 -$(MID_SUBDIR)/mus_m_boat.s: %.s: %.mid +$(MID_SUBDIR)/mus_sailing.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G077 -V086 -$(MID_SUBDIR)/mus_m_dungon.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_pyre.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G078 -V088 -$(MID_SUBDIR)/mus_maborosi.s: %.s: %.mid +$(MID_SUBDIR)/mus_sealed_chamber.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G084 -V100 -$(MID_SUBDIR)/mus_machi_s2.s: %.s: %.mid +$(MID_SUBDIR)/mus_petalburg.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G015 -V080 -$(MID_SUBDIR)/mus_machi_s3.s: %.s: %.mid +$(MID_SUBDIR)/mus_fortree.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G032 -V080 -$(MID_SUBDIR)/mus_machi_s4.s: %.s: %.mid +$(MID_SUBDIR)/mus_oldale.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G019 -V080 -$(MID_SUBDIR)/mus_machupi.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_pyre_exterior.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G080 -V080 -$(MID_SUBDIR)/mus_me_asa.s: %.s: %.mid +$(MID_SUBDIR)/mus_heal.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_b_big.s: %.s: %.mid +$(MID_SUBDIR)/mus_slots_jackpot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_b_small.s: %.s: %.mid +$(MID_SUBDIR)/mus_slots_win.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_bachi.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_badge.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_kinomi.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_berry.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_pointget.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_b_points.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V090 -P5 -$(MID_SUBDIR)/mus_me_rg_photo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_photo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G180 -V100 -P5 -$(MID_SUBDIR)/mus_me_shinka.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolution_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 -$(MID_SUBDIR)/mus_me_symbolget.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_symbol.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V100 -P5 -$(MID_SUBDIR)/mus_me_tama.s: %.s: %.mid +$(MID_SUBDIR)/mus_awaken_legend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_tore_eye.s: %.s: %.mid +$(MID_SUBDIR)/mus_register_match_call.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G105 -V090 -P5 -$(MID_SUBDIR)/mus_me_wasure.s: %.s: %.mid +$(MID_SUBDIR)/mus_move_deleted.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_waza.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_tmhm.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_zannen.s: %.s: %.mid +$(MID_SUBDIR)/mus_too_bad.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_mgm0.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G087 -V072 -$(MID_SUBDIR)/mus_minamo.s: %.s: %.mid +$(MID_SUBDIR)/mus_lilycove.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G054 -V085 -$(MID_SUBDIR)/mus_mishiro.s: %.s: %.mid +$(MID_SUBDIR)/mus_littleroot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G051 -V100 -$(MID_SUBDIR)/mus_naminori.s: %.s: %.mid +$(MID_SUBDIR)/mus_surf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G017 -V080 -$(MID_SUBDIR)/mus_nextroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route104.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G047 -V097 -$(MID_SUBDIR)/mus_nibi.s: %.s: %.mid +$(MID_SUBDIR)/mus_gsc_pewter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_odamaki.s: %.s: %.mid +$(MID_SUBDIR)/mus_birch_lab.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G033 -V080 -$(MID_SUBDIR)/mus_ooame.s: %.s: %.mid +$(MID_SUBDIR)/mus_abnormal_weather.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G089 -V080 -$(MID_SUBDIR)/mus_p_school.s: %.s: %.mid +$(MID_SUBDIR)/mus_school.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G081 -V100 -$(MID_SUBDIR)/mus_pcc.s: %.s: %.mid +$(MID_SUBDIR)/mus_c_comm_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_pokecen.s: %.s: %.mid +$(MID_SUBDIR)/mus_poke_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G046 -V092 -$(MID_SUBDIR)/mus_pyramid.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pyramid.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G106 -V079 -$(MID_SUBDIR)/mus_pyramid_top.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pyramid_top.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G107 -V077 -$(MID_SUBDIR)/mus_rainbow.s: %.s: %.mid +$(MID_SUBDIR)/mus_ever_grande.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G068 -V086 -$(MID_SUBDIR)/mus_rekkuu_kourin.s: %.s: %.mid +$(MID_SUBDIR)/mus_rayquaza_appears.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G109 -V090 -$(MID_SUBDIR)/mus_rg_ajito.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_rocket_hideout.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G133 -V090 -$(MID_SUBDIR)/mus_rg_annai.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_follow_me.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 -$(MID_SUBDIR)/mus_rg_champ_r.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_road.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G154 -V090 $(MID_SUBDIR)/mus_rg_cycling.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G141 -V090 -$(MID_SUBDIR)/mus_rg_demo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_intro_fight.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G136 -V090 -$(MID_SUBDIR)/mus_rg_dendou.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_hall_of_fame.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G145 -V079 -$(MID_SUBDIR)/mus_rg_deoeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_deoxys.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G184 -V079 -$(MID_SUBDIR)/mus_rg_ending.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_credits.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G149 -V090 -$(MID_SUBDIR)/mus_rg_exeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 -$(MID_SUBDIR)/mus_rg_fan2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_dex_rating.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G175 -V070 -P5 -$(MID_SUBDIR)/mus_rg_fan5.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_obtain_key_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G178 -V077 -P5 -$(MID_SUBDIR)/mus_rg_fan6.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_caught_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G179 -V094 -P5 -$(MID_SUBDIR)/mus_rg_get_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_caught.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V100 -$(MID_SUBDIR)/mus_rg_guren.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_cinnabar.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G138 -V090 $(MID_SUBDIR)/mus_rg_gym.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 -$(MID_SUBDIR)/mus_rg_hanada.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_fuchsia.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G167 -V090 -$(MID_SUBDIR)/mus_rg_jump.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_jump.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_kaihuku.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_heal.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G140 -V090 -$(MID_SUBDIR)/mus_rg_kenkyu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_oak_lab.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G160 -V075 -$(MID_SUBDIR)/mus_rg_kinomikui.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_berry_pick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_kuchiba.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vermillion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G172 -V090 -$(MID_SUBDIR)/mus_rg_load01.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G150 -V079 -$(MID_SUBDIR)/mus_rg_load02.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G152 -V083 -$(MID_SUBDIR)/mus_rg_load03.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route11.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G153 -V090 -$(MID_SUBDIR)/mus_rg_masara.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_pallet.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V100 -$(MID_SUBDIR)/mus_rg_naminori.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_surf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G164 -V071 -$(MID_SUBDIR)/mus_rg_nana45.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_45.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G188 -V084 -$(MID_SUBDIR)/mus_rg_nana67.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_67.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G189 -V084 -$(MID_SUBDIR)/mus_rg_nana123.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_123.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 -$(MID_SUBDIR)/mus_rg_nanadungeon.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_cave.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 -$(MID_SUBDIR)/mus_rg_nanaiseki.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_dungeon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 -$(MID_SUBDIR)/mus_rg_nanashima.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_route.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G187 -V080 -$(MID_SUBDIR)/mus_rg_network.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_net_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 -$(MID_SUBDIR)/mus_rg_nibi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_pewter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 -$(MID_SUBDIR)/mus_rg_ohkido.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_oak.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G161 -V086 -$(MID_SUBDIR)/mus_rg_okurimono.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_mystery_gift.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G183 -V100 -$(MID_SUBDIR)/mus_rg_opening.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route24.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G151 -V086 -$(MID_SUBDIR)/mus_rg_oshie_tv.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_teachy_tv_show.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 -$(MID_SUBDIR)/mus_rg_otsukimi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_mt_moon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 -$(MID_SUBDIR)/mus_rg_p_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V090 -$(MID_SUBDIR)/mus_rg_pokecen.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 -$(MID_SUBDIR)/mus_rg_pokefue.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_flute.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V048 -P5 -$(MID_SUBDIR)/mus_rg_pokeyashi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_mansion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G148 -V090 -$(MID_SUBDIR)/mus_rg_purin.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_jigglypuff.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G135 -V068 -P5 -$(MID_SUBDIR)/mus_rg_rival1.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_rival.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 -$(MID_SUBDIR)/mus_rg_rival2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_rival_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 -$(MID_SUBDIR)/mus_rg_rocket.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_rocket.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G142 -V096 -$(MID_SUBDIR)/mus_rg_santoan.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_ss_anne.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G163 -V090 -$(MID_SUBDIR)/mus_rg_seibetu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 -$(MID_SUBDIR)/mus_rg_sekaikan.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 -$(MID_SUBDIR)/mus_rg_shion.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_lavender.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G139 -V090 -$(MID_SUBDIR)/mus_rg_shiruhu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_silph.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G166 -V076 -$(MID_SUBDIR)/mus_rg_shoujo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_girl.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G143 -V051 -$(MID_SUBDIR)/mus_rg_shounen.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_boy.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 -$(MID_SUBDIR)/mus_rg_slot.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_game_corner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_slowmasara.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_slow_pallet.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V092 -$(MID_SUBDIR)/mus_rg_sousa.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_instruct.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V085 -$(MID_SUBDIR)/mus_rg_t_mori.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_viridian_forest.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 -$(MID_SUBDIR)/mus_rg_t_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_trainer_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 -$(MID_SUBDIR)/mus_rg_tamamusi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_celadon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G168 -V070 $(MID_SUBDIR)/mus_rg_title.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G137 -V090 -$(MID_SUBDIR)/mus_rg_titlerog.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_game_freak.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G181 -V075 -$(MID_SUBDIR)/mus_rg_tvnoize.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_teachy_tv_menu.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G186 -V059 -$(MID_SUBDIR)/mus_rg_union.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_union_room.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_vs_den.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_legend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_vs_deo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_deoxys.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G185 -V080 -$(MID_SUBDIR)/mus_rg_vs_gym.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G155 -V090 -$(MID_SUBDIR)/mus_rg_vs_last.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G158 -V090 -$(MID_SUBDIR)/mus_rg_vs_myu2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_mewtwo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_vs_tore.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G156 -V090 -$(MID_SUBDIR)/mus_rg_vs_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_win_gym.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G171 -V090 -$(MID_SUBDIR)/mus_rg_win_tre.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G169 -V089 -$(MID_SUBDIR)/mus_rg_win_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V090 -$(MID_SUBDIR)/mus_ropeway.s: %.s: %.mid +$(MID_SUBDIR)/mus_cable_car.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G071 -V078 -$(MID_SUBDIR)/mus_runecity.s: %.s: %.mid +$(MID_SUBDIR)/mus_sootopolis.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G091 -V062 -$(MID_SUBDIR)/mus_safari.s: %.s: %.mid +$(MID_SUBDIR)/mus_safari_zone.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G074 -V082 -$(MID_SUBDIR)/mus_sattower.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G110 -V100 -$(MID_SUBDIR)/mus_shinka.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolution.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 -$(MID_SUBDIR)/mus_sitennou.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_elite_four.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G096 -V078 -$(MID_SUBDIR)/mus_suikun.s: %.s: %.mid +$(MID_SUBDIR)/mus_c_vs_legend_beast.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_swimeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_swimmer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G036 -V080 -$(MID_SUBDIR)/mus_syoujoeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_girl.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G027 -V080 -$(MID_SUBDIR)/mus_t_battle.s: %.s: %.mid +$(MID_SUBDIR)/mus_intro_battle.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G088 -V088 -$(MID_SUBDIR)/mus_test.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_rich.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G043 -V094 -$(MID_SUBDIR)/mus_test1.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G039 -V079 -$(MID_SUBDIR)/mus_test2.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G040 -V090 -$(MID_SUBDIR)/mus_test3.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G041 -V075 -$(MID_SUBDIR)/mus_test4.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p4.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G042 -V090 -$(MID_SUBDIR)/mus_tetsuji.s: %.s: %.mid +$(MID_SUBDIR)/mus_littleroot_test.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G034 -V099 -$(MID_SUBDIR)/mus_thankfor.s: %.s: %.mid +$(MID_SUBDIR)/mus_credits.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G101 -V100 -$(MID_SUBDIR)/mus_title3.s: %.s: %.mid +$(MID_SUBDIR)/mus_title.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G059 -V090 -$(MID_SUBDIR)/mus_tonekusa.s: %.s: %.mid +$(MID_SUBDIR)/mus_fallarbor.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G083 -V100 -$(MID_SUBDIR)/mus_tozan.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_chimney.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G052 -V078 -$(MID_SUBDIR)/mus_tsuretek.s: %.s: %.mid +$(MID_SUBDIR)/mus_follow_me.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G066 -V074 -$(MID_SUBDIR)/mus_vs_front.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_frontier_brain.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G115 -V090 -P1 $(MID_SUBDIR)/mus_vs_mew.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G116 -V090 -$(MID_SUBDIR)/mus_vs_rekku.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_rayquaza.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G114 -V080 -P1 -$(MID_SUBDIR)/mus_yama_eye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_hiker.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G097 -V076 $(MID_SUBDIR)/ph_choice_blend.s: %.s: %.mid @@ -789,64 +789,64 @@ $(MID_SUBDIR)/ph_trap_solo.s: %.s: %.mid $(MID_SUBDIR)/se_a.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_ban.s: %.s: %.mid +$(MID_SUBDIR)/se_bang.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_basabasa.s: %.s: %.mid +$(MID_SUBDIR)/se_taillow_wing_flap.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 -$(MID_SUBDIR)/se_bidoro.s: %.s: %.mid +$(MID_SUBDIR)/se_glass_flute.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 $(MID_SUBDIR)/se_boo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_bowa.s: %.s: %.mid +$(MID_SUBDIR)/se_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V070 -P4 -$(MID_SUBDIR)/se_bowa2.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_bt_start.s: %.s: %.mid +$(MID_SUBDIR)/se_mugshot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_gaji.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_heart.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_maku_d.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_curtain_fall.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 -$(MID_SUBDIR)/se_c_maku_u.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_curtain_rise.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 -$(MID_SUBDIR)/se_c_pasi.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_icon_change.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_c_pikon.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_mons_turn.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_syu.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_icon_clear.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 $(MID_SUBDIR)/se_card.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_curtain.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_close.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_curtain1.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_dansa.s: %.s: %.mid +$(MID_SUBDIR)/se_ledge.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_daugi.s: %.s: %.mid +$(MID_SUBDIR)/se_itemfinder.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_dendou.s: %.s: %.mid +$(MID_SUBDIR)/se_applause.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 -$(MID_SUBDIR)/se_doku.s: %.s: %.mid +$(MID_SUBDIR)/se_field_poison.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 $(MID_SUBDIR)/se_door.s: %.s: %.mid @@ -855,127 +855,127 @@ $(MID_SUBDIR)/se_door.s: %.s: %.mid $(MID_SUBDIR)/se_e.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_elebeta.s: %.s: %.mid +$(MID_SUBDIR)/se_elevator.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_esuka.s: %.s: %.mid +$(MID_SUBDIR)/se_escalator.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 $(MID_SUBDIR)/se_exp.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 -$(MID_SUBDIR)/se_expmax.s: %.s: %.mid +$(MID_SUBDIR)/se_exp_max.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V094 -P5 $(MID_SUBDIR)/se_fu_zaku.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 -$(MID_SUBDIR)/se_fu_zaku2.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_condition_lose.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_fu_zuzuzu.s: %.s: %.mid +$(MID_SUBDIR)/se_lavaridge_fall_warp.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 -$(MID_SUBDIR)/se_fuusen1.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_red.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_fuusen2.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_blue.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_fuusen3.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_yellow.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_hantei1.s: %.s: %.mid +$(MID_SUBDIR)/se_arena_timeup1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_hantei2.s: %.s: %.mid +$(MID_SUBDIR)/se_arena_timeup2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_hashi.s: %.s: %.mid +$(MID_SUBDIR)/se_bridge_walk.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_hazure.s: %.s: %.mid +$(MID_SUBDIR)/se_failure.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 -$(MID_SUBDIR)/se_hi_turun.s: %.s: %.mid +$(MID_SUBDIR)/se_rotating_gate.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_hinsi.s: %.s: %.mid +$(MID_SUBDIR)/se_low_health.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P3 $(MID_SUBDIR)/se_i.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_jido_doa.s: %.s: %.mid +$(MID_SUBDIR)/se_sliding_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_jihanki.s: %.s: %.mid +$(MID_SUBDIR)/se_vend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_jite_pyoko.s: %.s: %.mid +$(MID_SUBDIR)/se_bike_hop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_jitensya.s: %.s: %.mid +$(MID_SUBDIR)/se_bike_bell.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_jyuni.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_place.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_kaidan.s: %.s: %.mid +$(MID_SUBDIR)/se_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P5 -$(MID_SUBDIR)/se_kaifuku.s: %.s: %.mid +$(MID_SUBDIR)/se_use_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_ki_gasyan.s: %.s: %.mid +$(MID_SUBDIR)/se_unlock.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon2.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon3.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon4.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_4.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kouka_h.s: %.s: %.mid +$(MID_SUBDIR)/se_super_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_kouka_l.s: %.s: %.mid +$(MID_SUBDIR)/se_not_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_kouka_m.s: %.s: %.mid +$(MID_SUBDIR)/se_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_mizu.s: %.s: %.mid +$(MID_SUBDIR)/se_puddle.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V020 -P4 -$(MID_SUBDIR)/se_moter.s: %.s: %.mid +$(MID_SUBDIR)/se_berry_blender.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_mu_pachi.s: %.s: %.mid +$(MID_SUBDIR)/se_switch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 $(MID_SUBDIR)/se_n.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_nageru.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_throw.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 -$(MID_SUBDIR)/se_naminori.s: %.s: %.mid +$(MID_SUBDIR)/se_ship.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V075 -P4 -$(MID_SUBDIR)/se_nigeru.s: %.s: %.mid +$(MID_SUBDIR)/se_flee.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 $(MID_SUBDIR)/se_o.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_op_basyu.s: %.s: %.mid +$(MID_SUBDIR)/se_intro_blast.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 $(MID_SUBDIR)/se_pc_login.s: %.s: %.mid @@ -990,275 +990,275 @@ $(MID_SUBDIR)/se_pc_on.s: %.s: %.mid $(MID_SUBDIR)/se_pin.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V060 -P4 -$(MID_SUBDIR)/se_pinpon.s: %.s: %.mid +$(MID_SUBDIR)/se_ding_dong.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_pn_off.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_off.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_pn_on.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_on.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_poke_dead.s: %.s: %.mid +$(MID_SUBDIR)/se_faint.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_reapoke.s: %.s: %.mid +$(MID_SUBDIR)/se_shiny.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P5 -$(MID_SUBDIR)/se_regi.s: %.s: %.mid +$(MID_SUBDIR)/se_shop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_rg_bag1.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_bag_cursor.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_bag2.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_bag_pocket.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card1.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_flip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card2.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_flipping.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card3.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V112 -P5 -$(MID_SUBDIR)/se_rg_deomov.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_deoxys_move.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 -$(MID_SUBDIR)/se_rg_excellent.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_poke_jump_success.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_rg_getting.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_ball_click.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 -$(MID_SUBDIR)/se_rg_help_cl.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_close.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V095 -P5 -$(MID_SUBDIR)/se_rg_help_ng.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_error.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V125 -P5 -$(MID_SUBDIR)/se_rg_help_op.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 -$(MID_SUBDIR)/se_rg_kiteki.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_ss_anne_horn.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 -$(MID_SUBDIR)/se_rg_nawamiss.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_poke_jump_failure.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P5 $(MID_SUBDIR)/se_rg_shop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 -$(MID_SUBDIR)/se_rg_w_door.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 -$(MID_SUBDIR)/se_ru_bari.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_crack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_ru_gashin.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_stairs.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_ru_gasyan.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_break.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_ru_hyuu.s: %.s: %.mid +$(MID_SUBDIR)/se_fall.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 $(MID_SUBDIR)/se_save.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P5 -$(MID_SUBDIR)/se_seikai.s: %.s: %.mid +$(MID_SUBDIR)/se_success.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P4 $(MID_SUBDIR)/se_select.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 -$(MID_SUBDIR)/se_suikomu.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_trade.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_t_ame.s: %.s: %.mid +$(MID_SUBDIR)/se_thunderstorm.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_ame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_thunderstorm_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_kami.s: %.s: %.mid +$(MID_SUBDIR)/se_thunder.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 -$(MID_SUBDIR)/se_t_kami2.s: %.s: %.mid +$(MID_SUBDIR)/se_thunder2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 -$(MID_SUBDIR)/se_t_koame.s: %.s: %.mid +$(MID_SUBDIR)/se_rain.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_koame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_rain_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_ooame.s: %.s: %.mid +$(MID_SUBDIR)/se_downpour.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 -$(MID_SUBDIR)/se_t_ooame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_downpour_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 -$(MID_SUBDIR)/se_tama.s: %.s: %.mid +$(MID_SUBDIR)/se_orb.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 -$(MID_SUBDIR)/se_tamago.s: %.s: %.mid +$(MID_SUBDIR)/se_egg_hatch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 -$(MID_SUBDIR)/se_tamakoro.s: %.s: %.mid +$(MID_SUBDIR)/se_roulette_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 -$(MID_SUBDIR)/se_tamakoro_e.s: %.s: %.mid +$(MID_SUBDIR)/se_roulette_ball2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 -$(MID_SUBDIR)/se_tb_kara.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_tb_kon.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_tb_start.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_enter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_tk_kasya.s: %.s: %.mid +$(MID_SUBDIR)/se_click.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_tk_warpin.s: %.s: %.mid +$(MID_SUBDIR)/se_warp_in.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_tk_warpout.s: %.s: %.mid +$(MID_SUBDIR)/se_warp_out.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_toreeye.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_call.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V120 -P5 -$(MID_SUBDIR)/se_toreoff.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_hang_up.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V110 -P5 -$(MID_SUBDIR)/se_toy_a.s: %.s: %.mid +$(MID_SUBDIR)/se_note_a.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_b.s: %.s: %.mid +$(MID_SUBDIR)/se_note_b.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_c.s: %.s: %.mid +$(MID_SUBDIR)/se_note_c.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_c1.s: %.s: %.mid +$(MID_SUBDIR)/se_note_c_high.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_d.s: %.s: %.mid +$(MID_SUBDIR)/se_note_d.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_dango.s: %.s: %.mid +$(MID_SUBDIR)/se_mud_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_e.s: %.s: %.mid +$(MID_SUBDIR)/se_note_e.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_f.s: %.s: %.mid +$(MID_SUBDIR)/se_note_f.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_g.s: %.s: %.mid +$(MID_SUBDIR)/se_note_g.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_kabe.s: %.s: %.mid +$(MID_SUBDIR)/se_breakable_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_track_door.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_track_haiki.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_unload.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 -$(MID_SUBDIR)/se_track_move.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_move.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_track_stop.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_tu_saa.s: %.s: %.mid +$(MID_SUBDIR)/se_repel.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 $(MID_SUBDIR)/se_u.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_ussoki.s: %.s: %.mid +$(MID_SUBDIR)/se_sudowoodo_shake.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V077 -P5 -$(MID_SUBDIR)/se_w003.s: %.s: %.mid +$(MID_SUBDIR)/se_m_double_slap.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w004.s: %.s: %.mid +$(MID_SUBDIR)/se_m_comet_punch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_w006.s: %.s: %.mid +$(MID_SUBDIR)/se_m_pay_day.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_w007.s: %.s: %.mid +$(MID_SUBDIR)/se_m_fire_punch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w010.s: %.s: %.mid +$(MID_SUBDIR)/se_m_scratch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w011.s: %.s: %.mid +$(MID_SUBDIR)/se_m_vicegrip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w013.s: %.s: %.mid +$(MID_SUBDIR)/se_m_razor_wind.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w013b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_razor_wind2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_w014.s: %.s: %.mid +$(MID_SUBDIR)/se_m_swords_dance.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_w015.s: %.s: %.mid +$(MID_SUBDIR)/se_m_cut.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_w016.s: %.s: %.mid +$(MID_SUBDIR)/se_m_gust.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w016b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_gust2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w017.s: %.s: %.mid +$(MID_SUBDIR)/se_m_wing_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_w019.s: %.s: %.mid +$(MID_SUBDIR)/se_m_fly.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w020.s: %.s: %.mid +$(MID_SUBDIR)/se_m_bind.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_w025.s: %.s: %.mid +$(MID_SUBDIR)/se_m_mega_kick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_w025b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_mega_kick2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w026.s: %.s: %.mid +$(MID_SUBDIR)/se_m_jump_kick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w028.s: %.s: %.mid +$(MID_SUBDIR)/se_m_sand_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w029.s: %.s: %.mid +$(MID_SUBDIR)/se_m_headbutt.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w030.s: %.s: %.mid +$(MID_SUBDIR)/se_m_horn_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w036.s: %.s: %.mid +$(MID_SUBDIR)/se_m_take_down.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_w039.s: %.s: %.mid +$(MID_SUBDIR)/se_m_tail_whip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w043.s: %.s: %.mid +$(MID_SUBDIR)/se_m_leer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_z_search.s: %.s: %.mid +$(MID_SUBDIR)/se_dex_search.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -v100 -P5 diff --git a/sound/song_table.inc b/sound/song_table.inc index 42e62b832..ef5b4b48e 100644 --- a/sound/song_table.inc +++ b/sound/song_table.inc @@ -2,275 +2,275 @@ gSongTable:: @ 86B49F0 song mus_dummy, 0, 0 - song se_kaifuku, 1, 1 @ Healing Item - song se_pc_login, 1, 1 @ PC Login - song se_pc_off, 1, 1 @ PC Shutdown - song se_pc_on, 1, 1 @ PC Startup - song se_select, 2, 2 @ Cursor Selection - song se_win_open, 1, 1 @ Start Menu - song se_wall_hit, 2, 2 @ Wall Bump - song se_door, 1, 1 @ Opening Door - song se_kaidan, 1, 1 @ Stairs - song se_dansa, 1, 1 @ Ledge - song se_jitensya, 1, 1 @ Bicycle Bell - song se_kouka_l, 1, 1 @ Not Very Effective - song se_kouka_m, 1, 1 @ Normal Effectiveness - song se_kouka_h, 1, 1 @ Super Effective - song se_bowa2, 1, 1 @ Pokémon Withdrawal - song se_poke_dead, 1, 1 @ Pokémon Fainted - song se_nigeru, 1, 1 @ Flee from Wild Battle - song se_jido_doa, 1, 1 @ Pokémon Center Door - song se_naminori, 1, 1 @ Briney's Ship - song se_ban, 1, 1 @ Bang - song se_pin, 1, 1 @ Exclamation Bubble - song se_boo, 1, 1 @ Contest Jam - song se_bowa, 1, 1 @ Giving Poké Ball to Nurse, Poké Ball Wiggle - song se_jyuni, 2, 2 @ Contest - Rankings Revealed - song se_a, 1, 1 @ Bard A - song se_i, 1, 1 @ Bard I - song se_u, 1, 1 @ Bard U - song se_e, 1, 1 @ Bard E - song se_o, 1, 1 @ Bard O - song se_n, 1, 1 @ Bard N - song se_seikai, 1, 1 @ Success - song se_hazure, 1, 1 @ Failure - song se_exp, 1, 1 @ Exp. Bar - song se_jite_pyoko, 1, 1 @ Bunny Hop - song se_mu_pachi, 1, 1 @ Toggle Switch - song se_tk_kasya, 1, 1 @ Mossdeep Gym/Trick House Switch + song se_use_item, 1, 1 + song se_pc_login, 1, 1 + song se_pc_off, 1, 1 + song se_pc_on, 1, 1 + song se_select, 2, 2 + song se_win_open, 1, 1 + song se_wall_hit, 2, 2 + song se_door, 1, 1 + song se_exit, 1, 1 + song se_ledge, 1, 1 + song se_bike_bell, 1, 1 + song se_not_effective, 1, 1 + song se_effective, 1, 1 + song se_super_effective, 1, 1 + song se_ball_open, 1, 1 + song se_faint, 1, 1 + song se_flee, 1, 1 + song se_sliding_door, 1, 1 + song se_ship, 1, 1 + song se_bang, 1, 1 + song se_pin, 1, 1 + song se_boo, 1, 1 + song se_ball, 1, 1 + song se_contest_place, 2, 2 + song se_a, 1, 1 + song se_i, 1, 1 + song se_u, 1, 1 + song se_e, 1, 1 + song se_o, 1, 1 + song se_n, 1, 1 + song se_success, 1, 1 + song se_failure, 1, 1 + song se_exp, 1, 1 + song se_bike_hop, 1, 1 + song se_switch, 1, 1 + song se_click, 1, 1 song se_fu_zaku, 1, 1 - song se_fu_zaku2, 1, 1 - song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym - Warp - song se_ru_gashin, 1, 1 @ Sootopolis Gym - Stairs Appear - song se_ru_gasyan, 1, 1 @ Sootopolis Gym - Ice Breaking - song se_ru_bari, 1, 1 @ Sootopolis Gym - Walking on Ice - song se_ru_hyuu, 1, 1 @ Falling Down a Hole - song se_ki_gasyan, 2, 2 - song se_tk_warpin, 1, 1 @ Warp In - song se_tk_warpout, 1, 1 @ Warp Out - song se_tu_saa, 1, 1 @ Repel - song se_hi_turun, 1, 1 @ Fortree Gym - Obstacle - song se_track_move, 1, 1 @ Moving Truck - song se_track_stop, 1, 1 @ Moving Truck Stop - song se_track_haiki, 2, 2 @ Moving Truck Unload - song se_track_door, 1, 1 @ Moving Truck Door - song se_moter, 2, 2 + song se_contest_condition_lose, 1, 1 + song se_lavaridge_fall_warp, 1, 1 + song se_ice_stairs, 1, 1 + song se_ice_break, 1, 1 + song se_ice_crack, 1, 1 + song se_fall, 1, 1 + song se_unlock, 2, 2 + song se_warp_in, 1, 1 + song se_warp_out, 1, 1 + song se_repel, 1, 1 + song se_rotating_gate, 1, 1 + song se_truck_move, 1, 1 + song se_truck_stop, 1, 1 + song se_truck_unload, 2, 2 + song se_truck_door, 1, 1 + song se_berry_blender, 2, 2 song se_card, 1, 1 - song se_save, 1, 1 @ Save - song se_kon, 1, 1 @ Poké Ball Bounce 1 - song se_kon2, 1, 1 @ Poké Ball Bounce 2 - song se_kon3, 1, 1 @ Poké Ball Bounce 3 - song se_kon4, 1, 1 @ Poké Ball Bounce 4 - song se_suikomu, 2, 2 @ Poké Ball Trade - song se_nageru, 1, 1 @ Poké Ball Throw - song se_toy_c, 2, 2 @ Note C - song se_toy_d, 2, 2 @ Note D - song se_toy_e, 2, 2 @ Note E - song se_toy_f, 2, 2 @ Note F - song se_toy_g, 2, 2 @ Note G - song se_toy_a, 2, 2 @ Note A - song se_toy_b, 2, 2 @ Note B - song se_toy_c1, 2, 2 @ Note High C - song se_mizu, 2, 2 @ Puddle - song se_hashi, 2, 2 @ Fortree Walkways - song se_daugi, 1, 1 @ Slots - Credits - song se_pinpon, 1, 1 @ Elevator - Reached Destination - song se_fuusen1, 2, 2 @ Red Balloon - song se_fuusen2, 2, 2 @ Blue Balloon - song se_fuusen3, 2, 2 @ Yellow Balloon - song se_toy_kabe, 2, 2 @ Breakable Door - song se_toy_dango, 2, 2 @ Mud Ball - song se_doku, 1, 1 @ Overworld - Poison Damage - song se_esuka, 1, 1 @ Escalator - song se_t_ame, 3, 3 @ Rain - song se_t_ame_e, 3, 3 @ Rain Stop - song se_t_ooame, 3, 3 @ Heavy Rain - song se_t_ooame_e, 3, 3 @ Heavy Rain Stop - song se_t_koame, 3, 3 @ Light Rain - song se_t_koame_e, 3, 3 @ Light Rain Stop - song se_t_kami, 1, 1 @ Thunder - song se_t_kami2, 1, 1 @ Thunder 2 - song se_elebeta, 1, 1 @ Elevator - song se_hinsi, 3, 3 @ Low Health - song se_expmax, 1, 1 @ Exp. Max - song se_tamakoro, 2, 2 @ Roulette Ball - song se_tamakoro_e, 2, 2 @ Roulette Ball 2 - song se_basabasa, 1, 1 @ Wing Attack - song se_regi, 1, 1 @ Cash Register - song se_c_gaji, 1, 1 @ Contest - Hearts - song se_c_maku_u, 1, 1 @ Contest - Curtain Rises - song se_c_maku_d, 1, 1 @ Contest - Curtain Falls - song se_c_pasi, 1, 1 @ Contest - Inflict Status - song se_c_syu, 1, 1 @ Contest - Pokémon Switches Out - song se_c_pikon, 1, 1 @ Contest - Pokémon Switches In - song se_reapoke, 1, 1 @ Shiny Pokémon - song se_op_basyu, 1, 1 @ Opening Movie -> Title Screen Transition - song se_bt_start, 1, 1 @ Battle Mugshot whoosh - song se_dendou, 1, 1 @ Audience Cheering - song se_jihanki, 1, 1 @ Vending Machine - song se_tama, 1, 1 @ Orb Used - song se_z_scroll, 1, 1 @ Pokédex Scrolling - song se_z_page, 1, 1 @ Pokédex Page - song se_pn_on, 1, 1 @ PokéNav On - song se_pn_off, 1, 1 @ PokéNav Off - song se_z_search, 1, 1 @ Pokédex Search - song se_tamago, 1, 1 @ Egg hatch - song se_tb_start, 1, 1 @ Battle - Poké Ball Tray slide in - song se_tb_kon, 1, 1 @ Battle - Poké Ball Tray ball sound - song se_tb_kara, 2, 2 @ Battle - Poké Ball Tray slide out - song se_bidoro, 1, 1 - song se_w085, 2, 2 @ Thunderbolt - song se_w085b, 1, 1 @ Thunderbolt 2 - song se_w231, 1, 1 @ Harden - song se_w171, 1, 1 @ Nightmare - song se_w233, 1, 1 @ Vital Throw - song se_w233b, 1, 1 @ Vital Throw 2 - song se_w145, 1, 1 @ Bubble - song se_w145b, 1, 1 @ Bubble 2 - song se_w145c, 1, 1 @ Bubble 3 - song se_w240, 1, 1 @ Rain Dance - song se_w015, 1, 1 @ Cut - song se_w081, 1, 1 @ String Shot - song se_w081b, 1, 1 @ String Shot 2 - song se_w088, 1, 1 @ Rock Throw - song se_w016, 2, 2 @ Gust - song se_w016b, 2, 2 @ Gust 2 - song se_w003, 1, 1 @ DoubleSlap - song se_w104, 1, 1 @ Double Team - song se_w013, 1, 1 @ Razor Wind - song se_w196, 1, 1 @ Icy Wind - song se_w086, 1, 1 @ Thunder Wave - song se_w004, 1, 1 @ Comet Punch - song se_w025, 1, 1 @ Mega Kick - song se_w025b, 1, 1 @ Mega Kick 2 - song se_w152, 1, 1 @ Crabhammer - song se_w026, 1, 1 @ Jump Kick - song se_w172, 1, 1 @ Flame Wheel - song se_w172b, 1, 1 @ Flame Wheel 2 - song se_w053, 1, 1 @ Flamethrower - song se_w007, 1, 1 @ Fire Punch - song se_w092, 1, 1 @ Toxic - song se_w221, 1, 1 @ Sacred Fire - song se_w221b, 2, 2 @ Sacred Fire 2 - song se_w052, 1, 1 @ Ember - song se_w036, 2, 2 @ Take Down - song se_w059, 1, 1 @ Blizzard - song se_w059b, 1, 1 @ Blizzard 2 - song se_w010, 1, 1 @ Scratch - song se_w011, 1, 1 @ Vicegrip - song se_w017, 1, 1 @ Wing Attack - song se_w019, 1, 1 @ Fly - song se_w028, 1, 1 @ Sand-Attack - song se_w013b, 1, 1 @ Razor Wind 2 - song se_w044, 1, 1 @ Bite - song se_w029, 1, 1 @ Headbutt - song se_w057, 1, 1 @ Surf - song se_w056, 1, 1 @ Hydro Pump - song se_w250, 1, 1 @ Whirlpool - song se_w030, 1, 1 @ Horn Attack - song se_w039, 2, 2 @ Tail Whip - song se_w054, 1, 1 @ Mist - song se_w077, 1, 1 @ PoisonPowder - song se_w020, 2, 2 @ Bind - song se_w082, 1, 1 @ Dragon Rage - song se_w047, 1, 1 @ Sing - song se_w195, 1, 1 @ Perish Song - song se_w006, 1, 1 @ Pay Day - song se_w091, 1, 1 @ Dig - song se_w146, 1, 1 @ Dizzy Punch - song se_w120, 1, 1 @ Self-Destruct - song se_w153, 1, 1 @ Explosion - song se_w071b, 1, 1 @ Absorb 2 - song se_w071, 1, 1 @ Absorb - song se_w103, 1, 1 @ Screech - song se_w062, 1, 1 @ BubbleBeam - song se_w062b, 1, 1 @ BubbleBeam 2 - song se_w048, 1, 1 @ Supersonic - song se_w187, 1, 1 @ Belly Drum - song se_w118, 1, 1 @ Metronome - song se_w155, 1, 1 @ Bonemerang - song se_w122, 1, 1 @ Lick - song se_w060, 1, 1 @ Psybeam - song se_w185, 1, 1 @ Faint Attack - song se_w014, 1, 1 @ Swords Dance - song se_w043, 1, 1 @ Leer - song se_w207, 1, 1 @ Swagger - song se_w207b, 1, 1 @ Swagger 2 - song se_w215, 1, 1 @ Heal Bell - song se_w109, 1, 1 @ Confuse Ray - song se_w173, 1, 1 @ Snore - song se_w280, 1, 1 @ Brick Break - song se_w202, 1, 1 @ Giga Drain - song se_w060b, 1, 1 @ Psybeam 2 - song se_w076, 2, 2 @ SolarBeam - song se_w080, 1, 1 @ Petal Dance - song se_w100, 1, 1 @ Teleport - song se_w107, 1, 1 @ Minimize - song se_w166, 1, 1 @ Sketch - song se_w129, 1, 1 @ Swift - song se_w115, 1, 1 @ Reflect - song se_w112, 1, 1 @ Barrier - song se_w197, 2, 2 @ Detect - song se_w199, 1, 1 @ Lock-On - song se_w236, 1, 1 @ Moonlight - song se_w204, 1, 1 @ Charm - song se_w268, 1, 1 @ Charge - song se_w070, 1, 1 @ Strength - song se_w063, 1, 1 @ Hyper Beam - song se_w127, 1, 1 @ Waterfall - song se_w179, 1, 1 @ Reversal - song se_w151, 1, 1 @ Acid Armor - song se_w201, 1, 1 @ Sandstorm - song se_w161, 1, 1 @ Tri-Attack - song se_w161b, 1, 1 @ Tri-Attack 2 - song se_w227, 1, 1 @ Encore - song se_w227b, 2, 2 @ Encore 2 - song se_w226, 1, 1 @ Baton Pass - song se_w208, 1, 1 @ Milk Drink - song se_w213, 1, 1 @ Attract - song se_w213b, 1, 1 @ Attract 2 - song se_w234, 1, 1 @ Morning Sun - song se_w260, 1, 1 @ Flatter - song se_w328, 1, 1 @ Sand Tomb - song se_w320, 1, 1 @ GrassWhistle - song se_w255, 1, 1 @ Spit Up - song se_w291, 1, 1 @ Dive - song se_w089, 2, 2 @ Earthquake - song se_w239, 2, 2 @ Twister - song se_w230, 1, 1 @ Sweet Scent - song se_w281, 1, 1 @ Yawn - song se_w327, 2, 2 @ Sky Uppercut - song se_w287, 1, 1 @ Stat Increased - song se_w257, 1, 1 @ Heat Wave - song se_w253, 1, 1 @ Uproar - song se_w258, 1, 1 @ Hail - song se_w322, 2, 2 @ Cosmic Power - song se_w298, 1, 1 @ Teeter Dance - song se_w287b, 1, 1 @ Stat Decreased - song se_w114, 1, 1 @ Haze - song se_w063b, 1, 1 @ Hyper Beam 2 - song se_rg_w_door, 1, 1 @ Door (FRLG) - song se_rg_card1, 1, 1 @ Trainer Card 1 (FRLG) - song se_rg_card2, 1, 1 @ Trainer Card 2 (FRLG) - song se_rg_card3, 1, 1 @ Trainer Card 3 (FRLG) - song se_rg_bag1, 1, 1 @ Bag Scroll (FRLG) - song se_rg_bag2, 1, 1 @ Bag Pocket Change (FRLG) - song se_rg_getting, 1, 1 - song se_rg_shop, 1, 1 @ Cash Register (FRLG) - song se_rg_kiteki, 1, 1 @ S.S. Anne Horn (FRLG) - song se_rg_help_op, 1, 1 @ Help Menu Open (FRLG) - song se_rg_help_cl, 1, 1 @ Help Menu Close (FRLG) - song se_rg_help_ng, 1, 1 @ Help Menu Error (FRLG) - song se_rg_deomov, 1, 1 @ Deoxys Moves - song se_rg_excellent, 1, 1 @ HP Restored (FRLG) - song se_rg_nawamiss, 1, 1 - song se_toreeye, 1, 1 @ Trainer's Eye Call - song se_toreoff, 1, 1 @ Trainer's Eye Hang Up - song se_hantei1, 1, 1 @ Battle Arena - Judgment 1 - song se_hantei2, 1, 1 @ Battle Arena - Judgment 2 - song se_curtain, 1, 1 @ Battle Pike - Curtain Opens - song se_curtain1, 1, 1 @ Battle Pike - Curtain Closes - song se_ussoki, 1, 1 @ Sudowoodo + song se_save, 1, 1 + song se_ball_bounce_1, 1, 1 + song se_ball_bounce_2, 1, 1 + song se_ball_bounce_3, 1, 1 + song se_ball_bounce_4, 1, 1 + song se_ball_trade, 2, 2 + song se_ball_throw, 1, 1 + song se_note_c, 2, 2 + song se_note_d, 2, 2 + song se_note_e, 2, 2 + song se_note_f, 2, 2 + song se_note_g, 2, 2 + song se_note_a, 2, 2 + song se_note_b, 2, 2 + song se_note_c_high, 2, 2 + song se_puddle, 2, 2 + song se_bridge_walk, 2, 2 + song se_itemfinder, 1, 1 + song se_ding_dong, 1, 1 + song se_balloon_red, 2, 2 + song se_balloon_blue, 2, 2 + song se_balloon_yellow, 2, 2 + song se_breakable_door, 2, 2 + song se_mud_ball, 2, 2 + song se_field_poison, 1, 1 + song se_escalator, 1, 1 + song se_thunderstorm, 3, 3 + song se_thunderstorm_stop, 3, 3 + song se_downpour, 3, 3 + song se_downpour_stop, 3, 3 + song se_rain, 3, 3 + song se_rain_stop, 3, 3 + song se_thunder, 1, 1 + song se_thunder2, 1, 1 + song se_elevator, 1, 1 + song se_low_health, 3, 3 + song se_exp_max, 1, 1 + song se_roulette_ball, 2, 2 + song se_roulette_ball2, 2, 2 + song se_taillow_wing_flap, 1, 1 + song se_shop, 1, 1 + song se_contest_heart, 1, 1 + song se_contest_curtain_rise, 1, 1 + song se_contest_curtain_fall, 1, 1 + song se_contest_icon_change, 1, 1 + song se_contest_icon_clear, 1, 1 + song se_contest_mons_turn, 1, 1 + song se_shiny, 1, 1 + song se_intro_blast, 1, 1 + song se_mugshot, 1, 1 + song se_applause, 1, 1 + song se_vend, 1, 1 + song se_orb, 1, 1 + song se_dex_scroll, 1, 1 + song se_dex_page, 1, 1 + song se_pokenav_on, 1, 1 + song se_pokenav_off, 1, 1 + song se_dex_search, 1, 1 + song se_egg_hatch, 1, 1 + song se_ball_tray_enter, 1, 1 + song se_ball_tray_ball, 1, 1 + song se_ball_tray_exit, 2, 2 + song se_glass_flute, 1, 1 + song se_m_thunderbolt, 2, 2 + song se_m_thunderbolt2, 1, 1 + song se_m_harden, 1, 1 + song se_m_nightmare, 1, 1 + song se_m_vital_throw, 1, 1 + song se_m_vital_throw2, 1, 1 + song se_m_bubble, 1, 1 + song se_m_bubble2, 1, 1 + song se_m_bubble3, 1, 1 + song se_m_rain_dance, 1, 1 + song se_m_cut, 1, 1 + song se_m_string_shot, 1, 1 + song se_m_string_shot2, 1, 1 + song se_m_rock_throw, 1, 1 + song se_m_gust, 2, 2 + song se_m_gust2, 2, 2 + song se_m_double_slap, 1, 1 + song se_m_double_team, 1, 1 + song se_m_razor_wind, 1, 1 + song se_m_icy_wind, 1, 1 + song se_m_thunder_wave, 1, 1 + song se_m_comet_punch, 1, 1 + song se_m_mega_kick, 1, 1 + song se_m_mega_kick2, 1, 1 + song se_m_crabhammer, 1, 1 + song se_m_jump_kick, 1, 1 + song se_m_flame_wheel, 1, 1 + song se_m_flame_wheel2, 1, 1 + song se_m_flamethrower, 1, 1 + song se_m_fire_punch, 1, 1 + song se_m_toxic, 1, 1 + song se_m_sacred_fire, 1, 1 + song se_m_sacred_fire2, 2, 2 + song se_m_ember, 1, 1 + song se_m_take_down, 2, 2 + song se_m_blizzard, 1, 1 + song se_m_blizzard2, 1, 1 + song se_m_scratch, 1, 1 + song se_m_vicegrip, 1, 1 + song se_m_wing_attack, 1, 1 + song se_m_fly, 1, 1 + song se_m_sand_attack, 1, 1 + song se_m_razor_wind2, 1, 1 + song se_m_bite, 1, 1 + song se_m_headbutt, 1, 1 + song se_m_surf, 1, 1 + song se_m_hydro_pump, 1, 1 + song se_m_whirlpool, 1, 1 + song se_m_horn_attack, 1, 1 + song se_m_tail_whip, 2, 2 + song se_m_mist, 1, 1 + song se_m_poison_powder, 1, 1 + song se_m_bind, 2, 2 + song se_m_dragon_rage, 1, 1 + song se_m_sing, 1, 1 + song se_m_perish_song, 1, 1 + song se_m_pay_day, 1, 1 + song se_m_dig, 1, 1 + song se_m_dizzy_punch, 1, 1 + song se_m_self_destruct, 1, 1 + song se_m_explosion, 1, 1 + song se_m_absorb_2, 1, 1 + song se_m_absorb, 1, 1 + song se_m_screech, 1, 1 + song se_m_bubble_beam, 1, 1 + song se_m_bubble_beam2, 1, 1 + song se_m_supersonic, 1, 1 + song se_m_belly_drum, 1, 1 + song se_m_metronome, 1, 1 + song se_m_bonemerang, 1, 1 + song se_m_lick, 1, 1 + song se_m_psybeam, 1, 1 + song se_m_faint_attack, 1, 1 + song se_m_swords_dance, 1, 1 + song se_m_leer, 1, 1 + song se_m_swagger, 1, 1 + song se_m_swagger2, 1, 1 + song se_m_heal_bell, 1, 1 + song se_m_confuse_ray, 1, 1 + song se_m_snore, 1, 1 + song se_m_brick_break, 1, 1 + song se_m_giga_drain, 1, 1 + song se_m_psybeam2, 1, 1 + song se_m_solar_beam, 2, 2 + song se_m_petal_dance, 1, 1 + song se_m_teleport, 1, 1 + song se_m_minimize, 1, 1 + song se_m_sketch, 1, 1 + song se_m_swift, 1, 1 + song se_m_reflect, 1, 1 + song se_m_barrier, 1, 1 + song se_m_detect, 2, 2 + song se_m_lock_on, 1, 1 + song se_m_moonlight, 1, 1 + song se_m_charm, 1, 1 + song se_m_charge, 1, 1 + song se_m_strength, 1, 1 + song se_m_hyper_beam, 1, 1 + song se_m_waterfall, 1, 1 + song se_m_reversal, 1, 1 + song se_m_acid_armor, 1, 1 + song se_m_sandstorm, 1, 1 + song se_m_tri_attack, 1, 1 + song se_m_tri_attack2, 1, 1 + song se_m_encore, 1, 1 + song se_m_encore2, 2, 2 + song se_m_baton_pass, 1, 1 + song se_m_milk_drink, 1, 1 + song se_m_attract, 1, 1 + song se_m_attract2, 1, 1 + song se_m_morning_sun, 1, 1 + song se_m_flatter, 1, 1 + song se_m_sand_tomb, 1, 1 + song se_m_grasswhistle, 1, 1 + song se_m_spit_up, 1, 1 + song se_m_dive, 1, 1 + song se_m_earthquake, 2, 2 + song se_m_twister, 2, 2 + song se_m_sweet_scent, 1, 1 + song se_m_yawn, 1, 1 + song se_m_sky_uppercut, 2, 2 + song se_m_stat_increase, 1, 1 + song se_m_heat_wave, 1, 1 + song se_m_uproar, 1, 1 + song se_m_hail, 1, 1 + song se_m_cosmic_power, 2, 2 + song se_m_teeter_dance, 1, 1 + song se_m_stat_decrease, 1, 1 + song se_m_haze, 1, 1 + song se_m_hyper_beam2, 1, 1 + song se_rg_door, 1, 1 + song se_rg_card_flip, 1, 1 + song se_rg_card_flipping, 1, 1 + song se_rg_card_open, 1, 1 + song se_rg_bag_cursor, 1, 1 + song se_rg_bag_pocket, 1, 1 + song se_rg_ball_click, 1, 1 + song se_rg_shop, 1, 1 + song se_rg_ss_anne_horn, 1, 1 + song se_rg_help_open, 1, 1 + song se_rg_help_close, 1, 1 + song se_rg_help_error, 1, 1 + song se_rg_deoxys_move, 1, 1 + song se_rg_poke_jump_success, 1, 1 + song se_rg_poke_jump_failure, 1, 1 + song se_pokenav_call, 1, 1 + song se_pokenav_hang_up, 1, 1 + song se_arena_timeup1, 1, 1 + song se_arena_timeup2, 1, 1 + song se_pike_curtain_close, 1, 1 + song se_pike_curtain_open, 1, 1 + song se_sudowoodo_shake, 1, 1 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 @@ -351,215 +351,215 @@ gSongTable:: @ 86B49F0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 - song mus_tetsuji, 0, 0 @ Unused - TETSUJI - song mus_field13, 0, 0 @ Unused - Route 38 - song mus_kachi22, 0, 0 @ Victory! (Wild Pokémon) (No Intro) - song mus_kachi2, 0, 0 @ Victory! (Wild Pokémon) - song mus_kachi3, 0, 0 @ Victory! (Gym Leader) - song mus_kachi5, 0, 0 @ Victory! (Wallace) - song mus_pcc, 0, 0 @ Unused - Pokémon Center (2) - song mus_nibi, 0, 0 @ Unused - Viridian City - song mus_suikun, 0, 0 @ Unused - Battle! (Entei/Raikou/Suicune) - song mus_dooro1, 0, 0 @ Route 101 - song mus_dooro_x1, 0, 0 @ Route 110 - song mus_dooro_x3, 0, 0 @ Route 120 - song mus_machi_s2, 0, 0 @ Petalburg City - song mus_machi_s4, 0, 0 @ Oldale Town - song mus_gim, 0, 0 @ Pokémon Gym - song mus_naminori, 0, 0 @ Surf - song mus_dan01, 0, 0 @ Petalburg Woods - song mus_fanfa1, 2, 2 @ Level Up! - song mus_me_asa, 2, 2 @ Pokémon Healed - song mus_me_bachi, 2, 2 @ Obtained a Badge! - song mus_fanfa4, 2, 2 @ Obtained an Item! - song mus_fanfa5, 2, 2 @ Congratulations! Your Pokémon Evolved! - song mus_me_waza, 2, 2 @ Obtained a TM! - song mus_bijyutu, 0, 0 @ Museum - song mus_dooro_x4, 0, 0 @ Introductions - song mus_fune_kan, 0, 0 @ Oceanic Museum - song mus_me_shinka, 2, 2 @ Evolution (Intro) - song mus_shinka, 0, 0 @ Evolution - song mus_me_wasure, 2, 2 @ Move Deleted - song mus_syoujoeye, 0, 0 @ Trainers' Eyes Meet (Tuber♀) - song mus_boyeye, 0, 0 @ Trainers' Eyes Meet (Youngster) - song mus_dan02, 0, 0 @ Abandoned Ship - song mus_machi_s3, 0, 0 @ Fortree City - song mus_odamaki, 0, 0 @ Birch Pokémon Lab - song mus_b_tower, 0, 0 @ Battle Tower (RS) - song mus_swimeye, 0, 0 @ Trainers' Eyes Meet (Swimmer♀) - song mus_dan03, 0, 0 @ Cave of Origin - song mus_me_kinomi, 2, 2 @ Obtained a Berry! - song mus_me_tama, 2, 2 @ The Super-Ancient Pokémon Awaken! - song mus_me_b_big, 2, 2 @ Jackpot - song mus_me_b_small, 2, 2 @ Win - song mus_me_zannen, 2, 2 @ Lose - song mus_bd_time, 0, 0 @ Reel Time - song mus_test1, 0, 0 @ Pokémon Contest! (Multiplayer - Player 1) - song mus_test2, 0, 0 @ Pokémon Contest! (Multiplayer - Player 2) - song mus_test3, 0, 0 @ Pokémon Contest! (Multiplayer - Player 3) - song mus_test4, 0, 0 @ Pokémon Contest! (Multiplayer - Player 4) - song mus_test, 0, 0 @ Trainers' Eyes Meet (Gentleman) - song mus_gomachi0, 0, 0 @ Verdanturf Town - song mus_gotown, 0, 0 @ Rustboro City - song mus_pokecen, 0, 0 @ Pokémon Center - song mus_nextroad, 0, 0 @ Route 104 - song mus_granroad, 0, 0 @ Route 119 - song mus_cycling, 0, 0 @ Cycling - song mus_friendly, 0, 0 @ Poké Mart - song mus_mishiro, 0, 0 @ Littleroot Town - song mus_tozan, 0, 0 @ Mt. Chimney - song mus_girleye, 0, 0 @ Trainers' Eyes Meet (Lass) - song mus_minamo, 0, 0 @ Lilycove City - song mus_ashroad, 0, 0 @ Route 111 - song mus_event0, 0, 0 @ H-Help Me! - song mus_deepdeep, 0, 0 @ Dive - song mus_kachi1, 0, 0 @ Victory! (Trainer Battle) - song mus_title3, 0, 0 @ Title Screen - song mus_demo1, 0, 0 @ Opening Movie: Setting out on a Journey in the Hoenn Region - song mus_girl_sup, 0, 0 @ May - song mus_hageshii, 0, 0 @ Trainers' Eyes Meet (Psychic) - song mus_kakkoii, 0, 0 @ Trainers' Eyes Meet (Cooltrainer) - song mus_kazanbai, 0, 0 @ Route 113 - song mus_aqa_0, 0, 0 @ Team Aqua Appears! - song mus_tsuretek, 0, 0 @ Hurry Along - song mus_boy_sup, 0, 0 @ Brendan - song mus_rainbow, 0, 0 @ Evergrande City - song mus_ayasii, 0, 0 @ Trainers' Eyes Meet (Hex Maniac) - song mus_kachi4, 0, 0 @ Victory! (Team Aqua / Team Magma) - song mus_ropeway, 0, 0 @ Cable Car - song mus_casino, 0, 0 @ Game Corner - song mus_hightown, 0, 0 @ Dewford Town - song mus_safari, 0, 0 @ Safari Zone - song mus_c_road, 0, 0 @ Victory Road - song mus_ajito, 0, 0 @ Hideout - song mus_m_boat, 0, 0 @ Crossing the Sea - song mus_m_dungon, 0, 0 @ Mt. Pyre - song mus_finecity, 0, 0 @ Slateport City - song mus_machupi, 0, 0 @ Mt. Pyre Exterior - song mus_p_school, 0, 0 @ Trainers' School - song mus_dendou, 0, 0 @ The Hall of Fame - song mus_tonekusa, 0, 0 @ Fallarbor Town - song mus_maborosi, 0, 0 @ Sealed Chamber - song mus_con_fan, 0, 0 @ Contest Winner - song mus_contest0, 0, 0 @ Pokémon Contest! - song mus_mgm0, 0, 0 @ Team Magma Appears! - song mus_t_battle, 0, 0 @ Opening Movie: Double Battles - song mus_ooame, 0, 0 @ Heavy Rain - song mus_hideri, 0, 0 @ The Drought - song mus_runecity, 0, 0 @ Sootopolis City - song mus_con_k, 0, 0 @ Results Announcement - song mus_eikou_r, 0, 0 @ Room of Glory - song mus_karakuri, 0, 0 @ The Trick House - song mus_hutago, 0, 0 @ Twins - song mus_sitennou, 0, 0 @ The Elite Four Appear! - song mus_yama_eye, 0, 0 @ Trainers' Eyes Meet (Hiker) - song mus_conlobby, 0, 0 @ Contest Lobby - song mus_inter_v, 0, 0 @ Interviewers - song mus_daigo, 0, 0 @ Champion Wallace - song mus_thankfor, 0, 0 @ Ending Theme - song mus_end, 0, 0 @ The End - song mus_b_frontier, 0, 0 @ Battle Frontier - song mus_b_arena, 0, 0 @ Battle Arena - song mus_me_pointget, 2, 2 @ Obtained a Battle Point! - song mus_me_tore_eye, 2, 2 @ Registered Trainer! - song mus_pyramid, 0, 0 @ Battle Pyramid - song mus_pyramid_top, 0, 0 @ Battle Pyramid Summit - song mus_b_palace, 0, 0 @ Battle Palace - song mus_rekkuu_kourin, 0, 0 @ Rayquaza Enters! - song mus_sattower, 0, 0 @ Battle Tower - song mus_me_symbolget, 2, 2 @ Obtained a Frontier Symbol! - song mus_b_dome, 0, 0 @ Battle Dome - song mus_b_tube, 0, 0 @ Battle Pike - song mus_b_factory, 0, 0 @ Battle Factory - song mus_vs_rekku, 0, 0 @ Battle! (Rayquaza) - song mus_vs_front, 0, 0 @ Battle! (Frontier Brain) - song mus_vs_mew, 0, 0 @ Battle! (Mew) - song mus_b_dome1, 0, 0 @ Battle Dome Lobby - song mus_battle27, 0, 0 @ Battle! (Wild Pokémon) - song mus_battle31, 0, 0 @ Battle! (Team Aqua / Team Magma) - song mus_battle20, 0, 0 @ Battle! (Trainer Battle) - song mus_battle32, 0, 0 @ Battle! (Gym Leader) - song mus_battle33, 0, 0 @ Battle! (Champion Wallace) - song mus_battle36, 0, 0 @ Battle! (Regirock/Regice/Registeel) - song mus_battle34, 0, 0 @ Battle! (Groudon/Kyogre) - song mus_battle35, 0, 0 @ Battle! (Brendan/May/Steven) - song mus_battle38, 0, 0 @ Battle! (Elite Four) - song mus_battle30, 0, 0 @ Battle! (Team Aqua/Team Magma Leaders) - song mus_rg_annai, 0, 0 @ Guide (FRLG) - song mus_rg_slot, 0, 0 @ Rocket Game Corner (FRLG) - song mus_rg_ajito, 0, 0 @ Rocket Hideout (FRLG) - song mus_rg_gym, 0, 0 @ Pokémon Gym (FRLG) - song mus_rg_purin, 2, 2 @ Jigglypuff's Song (FRLG) - song mus_rg_demo, 0, 0 @ Opening Movie (FRLG) - song mus_rg_title, 0, 0 @ Title Screen (FRLG) - song mus_rg_guren, 0, 0 @ Cinnabar Island Theme (FRLG) - song mus_rg_shion, 0, 0 @ Lavender Town Theme (FRLG) - song mus_rg_kaihuku, 0, 0 @ Pokémon Healed (FRLG) - song mus_rg_cycling, 0, 0 @ Cycling (FRLG) - song mus_rg_rocket, 0, 0 @ A Trainer Appears (Bad Guy Version) (FRLG) - song mus_rg_shoujo, 0, 0 @ A Trainer Appears (Girl Version) (FRLG) - song mus_rg_shounen, 0, 0 @ A Trainer Appears (Boy Version) (FRLG) - song mus_rg_dendou, 0, 0 @ Hall of Fame (FRLG) - song mus_rg_t_mori, 0, 0 @ Viridian Forest (FRLG) - song mus_rg_otsukimi, 0, 0 @ Navel Rock - song mus_rg_pokeyashi, 0, 0 @ Pokémon Mansion (FRLG) - song mus_rg_ending, 0, 0 @ Ending Theme (FRLG) - song mus_rg_load01, 0, 0 @ Road to Viridian City: Leaving Pallet Town (FRLG) - song mus_rg_opening, 0, 0 @ Welcome to the World of Pokémon! (FRLG) - song mus_rg_load02, 0, 0 @ Road to Cerulean City: Leaving Mt. Moon (FRLG) - song mus_rg_load03, 0, 0 @ Road to Fuchsia City: Leaving Lavender Town (FRLG) - song mus_rg_champ_r, 0, 0 @ The Final Road (FRLG) - song mus_rg_vs_gym, 0, 0 @ Battle! (Gym Leader Battle) (FRLG) - song mus_rg_vs_tore, 0, 0 @ Battle! (Trainer Battle) (FRLG) - song mus_rg_vs_yasei, 0, 0 @ Battle! (Wild Pokémon) (FRLG) - song mus_rg_vs_last, 0, 0 @ Final Battle! (Rival) (FRLG) - song mus_rg_masara, 0, 0 @ Pallet Town Theme (FRLG) - song mus_rg_kenkyu, 0, 0 @ Professor Oak's Laboratory (FRLG) - song mus_rg_ohkido, 0, 0 @ Professor Oak (FRLG) - song mus_rg_pokecen, 0, 0 @ Pokémon Center (FRLG) - song mus_rg_santoan, 0, 0 @ The S.S. Anne (FRLG) - song mus_rg_naminori, 0, 0 @ The Sea (FRLG) - song mus_rg_p_tower, 0, 0 @ Pokémon Tower (FRLG) - song mus_rg_shiruhu, 0, 0 @ Silph Co. (FRLG) - song mus_rg_hanada, 0, 0 @ Fuchsia City Theme (FRLG) - song mus_rg_tamamusi, 0, 0 @ Celadon City Theme (FRLG) - song mus_rg_win_tre, 0, 0 @ Victory! (Trainer Battle) (FRLG) - song mus_rg_win_yasei, 0, 0 @ Victory! (Wild Pokémon) (FRLG) - song mus_rg_win_gym, 0, 0 @ Victory! (Gym Leader Battle) (FRLG) - song mus_rg_kuchiba, 0, 0 @ Vermillion City Theme (FRLG) - song mus_rg_nibi, 0, 0 @ Pewter City Theme (FRLG) - song mus_rg_rival1, 0, 0 @ A Rival Appears (FRLG) - song mus_rg_rival2, 0, 0 @ A Rival Appears (No Intro) (FRLG) - song mus_rg_fan2, 2, 2 @ Fanfare: Professor Oak's Evaluation (FRLG) - song mus_rg_fan5, 2, 2 @ Fanfare: Pokémon Obtained (FRLG) - song mus_rg_fan6, 2, 2 @ Fanfare: Pokémon Caught - song mus_me_rg_photo, 2, 2 @ Pokémon Printer (FRLG) - song mus_rg_titlerog, 0, 0 @ Game Freak Logo (FRLG) - song mus_rg_get_yasei, 0, 0 @ Fanfare: Pokémon Caught (No Intro) (FRLG) - song mus_rg_sousa, 0, 0 @ Game Tutorial (1) (FRLG) - song mus_rg_sekaikan, 0, 0 @ Game Tutorial (2) (FRLG) - song mus_rg_seibetu, 0, 0 @ Game Tutorial (3) (FRLG) - song mus_rg_jump, 0, 0 @ Pokémon Jump (FRLG) - song mus_rg_union, 0, 0 @ The Union Room (FRLG) - song mus_rg_network, 0, 0 @ Pokémon Net Center (FRLG) - song mus_rg_okurimono, 0, 0 @ Mystery Gift (FRLG) - song mus_rg_kinomikui, 0, 0 @ Dodrio Berry Picking (FRLG) - song mus_rg_nanadungeon, 0, 0 @ Mt. Ember (FRLG) - song mus_rg_oshie_tv, 0, 0 @ Teachy TV Lesson (FRLG) - song mus_rg_nanashima, 0, 0 @ Sevii Islands (FRLG) - song mus_rg_nanaiseki, 0, 0 @ Tanoby Chambers (FRLG) - song mus_rg_nana123, 0, 0 @ Sevii Islands: One, Two & Three Islands (FRLG) - song mus_rg_nana45, 0, 0 @ Sevii Islands: Four & Five Islands (FRLG) - song mus_rg_nana67, 0, 0 @ Sevii Islands: Six & Seven Islands (FRLG) - song mus_rg_pokefue, 2, 2 @ The Poké Flute (FRLG) - song mus_rg_vs_deo, 0, 0 @ Battle! (Deoxys) - song mus_rg_vs_myu2, 0, 0 @ Battle! (Mewtwo) (FRLG) - song mus_rg_vs_den, 0, 0 @ Battle! (Ho-Oh/Lugia) - song mus_rg_exeye, 0, 0 @ Tense Battle! (FRLG) - song mus_rg_deoeye, 0, 0 @ Deoxys Appears - song mus_rg_t_tower, 0, 0 @ Trainer Tower (FRLG) - song mus_rg_slowmasara, 0, 0 @ Epilogue (FRLG) - song mus_rg_tvnoize, 0, 0 @ Teachy TV Menu (FRLG) + song mus_littleroot_test, 0, 0 + song mus_gsc_route38, 0, 0 + song mus_caught, 0, 0 + song mus_victory_wild, 0, 0 + song mus_victory_gym_leader, 0, 0 + song mus_victory_league, 0, 0 + song mus_c_comm_center, 0, 0 + song mus_gsc_pewter, 0, 0 + song mus_c_vs_legend_beast, 0, 0 + song mus_route101, 0, 0 + song mus_route110, 0, 0 + song mus_route120, 0, 0 + song mus_petalburg, 0, 0 + song mus_oldale, 0, 0 + song mus_gym, 0, 0 + song mus_surf, 0, 0 + song mus_petalburg_woods, 0, 0 + song mus_level_up, 2, 2 + song mus_heal, 2, 2 + song mus_obtain_badge, 2, 2 + song mus_obtain_item, 2, 2 + song mus_evolved, 2, 2 + song mus_obtain_tmhm, 2, 2 + song mus_lilycove_museum, 0, 0 + song mus_route122, 0, 0 + song mus_oceanic_museum, 0, 0 + song mus_evolution_intro, 2, 2 + song mus_evolution, 0, 0 + song mus_move_deleted, 2, 2 + song mus_encounter_girl, 0, 0 + song mus_encounter_male, 0, 0 + song mus_abandoned_ship, 0, 0 + song mus_fortree, 0, 0 + song mus_birch_lab, 0, 0 + song mus_b_tower_rs, 0, 0 + song mus_encounter_swimmer, 0, 0 + song mus_cave_of_origin, 0, 0 + song mus_obtain_berry, 2, 2 + song mus_awaken_legend, 2, 2 + song mus_slots_jackpot, 2, 2 + song mus_slots_win, 2, 2 + song mus_too_bad, 2, 2 + song mus_roulette, 0, 0 + song mus_link_contest_p1, 0, 0 + song mus_link_contest_p2, 0, 0 + song mus_link_contest_p3, 0, 0 + song mus_link_contest_p4, 0, 0 + song mus_encounter_rich, 0, 0 + song mus_verdanturf, 0, 0 + song mus_rustboro, 0, 0 + song mus_poke_center, 0, 0 + song mus_route104, 0, 0 + song mus_route119, 0, 0 + song mus_cycling, 0, 0 + song mus_poke_mart, 0, 0 + song mus_littleroot, 0, 0 + song mus_mt_chimney, 0, 0 + song mus_encounter_female, 0, 0 + song mus_lilycove, 0, 0 + song mus_route111, 0, 0 + song mus_help, 0, 0 + song mus_underwater, 0, 0 + song mus_victory_trainer, 0, 0 + song mus_title, 0, 0 + song mus_intro, 0, 0 + song mus_encounter_may, 0, 0 + song mus_encounter_intense, 0, 0 + song mus_encounter_cool, 0, 0 + song mus_route113, 0, 0 + song mus_encounter_aqua, 0, 0 + song mus_follow_me, 0, 0 + song mus_encounter_brendan, 0, 0 + song mus_ever_grande, 0, 0 + song mus_encounter_suspicious, 0, 0 + song mus_victory_aqua_magma, 0, 0 + song mus_cable_car, 0, 0 + song mus_game_corner, 0, 0 + song mus_dewford, 0, 0 + song mus_safari_zone, 0, 0 + song mus_victory_road, 0, 0 + song mus_aqua_magma_hideout, 0, 0 + song mus_sailing, 0, 0 + song mus_mt_pyre, 0, 0 + song mus_slateport, 0, 0 + song mus_mt_pyre_exterior, 0, 0 + song mus_school, 0, 0 + song mus_hall_of_fame, 0, 0 + song mus_fallarbor, 0, 0 + song mus_sealed_chamber, 0, 0 + song mus_contest_winner, 0, 0 + song mus_contest, 0, 0 + song mus_encounter_magma, 0, 0 + song mus_intro_battle, 0, 0 + song mus_abnormal_weather, 0, 0 + song mus_weather_groudon, 0, 0 + song mus_sootopolis, 0, 0 + song mus_contest_results, 0, 0 + song mus_hall_of_fame_room, 0, 0 + song mus_trick_house, 0, 0 + song mus_encounter_twins, 0, 0 + song mus_encounter_elite_four, 0, 0 + song mus_encounter_hiker, 0, 0 + song mus_contest_lobby, 0, 0 + song mus_encounter_interviewer, 0, 0 + song mus_encounter_champion, 0, 0 + song mus_credits, 0, 0 + song mus_end, 0, 0 + song mus_b_frontier, 0, 0 + song mus_b_arena, 0, 0 + song mus_obtain_b_points, 2, 2 + song mus_register_match_call, 2, 2 + song mus_b_pyramid, 0, 0 + song mus_b_pyramid_top, 0, 0 + song mus_b_palace, 0, 0 + song mus_rayquaza_appears, 0, 0 + song mus_b_tower, 0, 0 + song mus_obtain_symbol, 2, 2 + song mus_b_dome, 0, 0 + song mus_b_pike, 0, 0 + song mus_b_factory, 0, 0 + song mus_vs_rayquaza, 0, 0 + song mus_vs_frontier_brain, 0, 0 + song mus_vs_mew, 0, 0 + song mus_b_dome_lobby, 0, 0 + song mus_vs_wild, 0, 0 + song mus_vs_aqua_magma, 0, 0 + song mus_vs_trainer, 0, 0 + song mus_vs_gym_leader, 0, 0 + song mus_vs_champion, 0, 0 + song mus_vs_regi, 0, 0 + song mus_vs_kyogre_groudon, 0, 0 + song mus_vs_rival, 0, 0 + song mus_vs_elite_four, 0, 0 + song mus_vs_aqua_magma_leader, 0, 0 + song mus_rg_follow_me, 0, 0 + song mus_rg_game_corner, 0, 0 + song mus_rg_rocket_hideout, 0, 0 + song mus_rg_gym, 0, 0 + song mus_rg_jigglypuff, 2, 2 + song mus_rg_intro_fight, 0, 0 + song mus_rg_title, 0, 0 + song mus_rg_cinnabar, 0, 0 + song mus_rg_lavender, 0, 0 + song mus_rg_heal, 0, 0 + song mus_rg_cycling, 0, 0 + song mus_rg_encounter_rocket, 0, 0 + song mus_rg_encounter_girl, 0, 0 + song mus_rg_encounter_boy, 0, 0 + song mus_rg_hall_of_fame, 0, 0 + song mus_rg_viridian_forest, 0, 0 + song mus_rg_mt_moon, 0, 0 + song mus_rg_poke_mansion, 0, 0 + song mus_rg_credits, 0, 0 + song mus_rg_route1, 0, 0 + song mus_rg_route24, 0, 0 + song mus_rg_route3, 0, 0 + song mus_rg_route11, 0, 0 + song mus_rg_victory_road, 0, 0 + song mus_rg_vs_gym_leader, 0, 0 + song mus_rg_vs_trainer, 0, 0 + song mus_rg_vs_wild, 0, 0 + song mus_rg_vs_champion, 0, 0 + song mus_rg_pallet, 0, 0 + song mus_rg_oak_lab, 0, 0 + song mus_rg_oak, 0, 0 + song mus_rg_poke_center, 0, 0 + song mus_rg_ss_anne, 0, 0 + song mus_rg_surf, 0, 0 + song mus_rg_poke_tower, 0, 0 + song mus_rg_silph, 0, 0 + song mus_rg_fuchsia, 0, 0 + song mus_rg_celadon, 0, 0 + song mus_rg_victory_trainer, 0, 0 + song mus_rg_victory_wild, 0, 0 + song mus_rg_victory_gym_leader, 0, 0 + song mus_rg_vermillion, 0, 0 + song mus_rg_pewter, 0, 0 + song mus_rg_encounter_rival, 0, 0 + song mus_rg_rival_exit, 0, 0 + song mus_rg_dex_rating, 2, 2 + song mus_rg_obtain_key_item, 2, 2 + song mus_rg_caught_intro, 2, 2 + song mus_rg_photo, 2, 2 + song mus_rg_game_freak, 0, 0 + song mus_rg_caught, 0, 0 + song mus_rg_new_game_instruct, 0, 0 + song mus_rg_new_game_intro, 0, 0 + song mus_rg_new_game_exit, 0, 0 + song mus_rg_poke_jump, 0, 0 + song mus_rg_union_room, 0, 0 + song mus_rg_net_center, 0, 0 + song mus_rg_mystery_gift, 0, 0 + song mus_rg_berry_pick, 0, 0 + song mus_rg_sevii_cave, 0, 0 + song mus_rg_teachy_tv_show, 0, 0 + song mus_rg_sevii_route, 0, 0 + song mus_rg_sevii_dungeon, 0, 0 + song mus_rg_sevii_123, 0, 0 + song mus_rg_sevii_45, 0, 0 + song mus_rg_sevii_67, 0, 0 + song mus_rg_poke_flute, 2, 2 + song mus_rg_vs_deoxys, 0, 0 + song mus_rg_vs_mewtwo, 0, 0 + song mus_rg_vs_legend, 0, 0 + song mus_rg_encounter_gym_leader, 0, 0 + song mus_rg_encounter_deoxys, 0, 0 + song mus_rg_trainer_tower, 0, 0 + song mus_rg_slow_pallet, 0, 0 + song mus_rg_teachy_tv_menu, 0, 0 song ph_trap_blend, 2, 2 song ph_trap_held, 2, 2 song ph_trap_solo, 2, 2 diff --git a/sound/songs/midi/mus_dan02.mid b/sound/songs/midi/mus_abandoned_ship.mid Binary files differindex 84d0cd199..84d0cd199 100644 --- a/sound/songs/midi/mus_dan02.mid +++ b/sound/songs/midi/mus_abandoned_ship.mid diff --git a/sound/songs/midi/mus_ooame.mid b/sound/songs/midi/mus_abnormal_weather.mid Binary files differindex be847f6a6..be847f6a6 100644 --- a/sound/songs/midi/mus_ooame.mid +++ b/sound/songs/midi/mus_abnormal_weather.mid diff --git a/sound/songs/midi/mus_ajito.mid b/sound/songs/midi/mus_aqua_magma_hideout.mid Binary files differindex 200fa88dd..200fa88dd 100644 --- a/sound/songs/midi/mus_ajito.mid +++ b/sound/songs/midi/mus_aqua_magma_hideout.mid diff --git a/sound/songs/midi/mus_me_tama.mid b/sound/songs/midi/mus_awaken_legend.mid Binary files differindex 4190733d9..4190733d9 100644 --- a/sound/songs/midi/mus_me_tama.mid +++ b/sound/songs/midi/mus_awaken_legend.mid diff --git a/sound/songs/midi/mus_b_dome1.mid b/sound/songs/midi/mus_b_dome_lobby.mid Binary files differindex 69aefab0a..69aefab0a 100644 --- a/sound/songs/midi/mus_b_dome1.mid +++ b/sound/songs/midi/mus_b_dome_lobby.mid diff --git a/sound/songs/midi/mus_b_tube.mid b/sound/songs/midi/mus_b_pike.mid Binary files differindex 1909543f3..1909543f3 100644 --- a/sound/songs/midi/mus_b_tube.mid +++ b/sound/songs/midi/mus_b_pike.mid diff --git a/sound/songs/midi/mus_pyramid.mid b/sound/songs/midi/mus_b_pyramid.mid Binary files differindex ceb50e667..ceb50e667 100644 --- a/sound/songs/midi/mus_pyramid.mid +++ b/sound/songs/midi/mus_b_pyramid.mid diff --git a/sound/songs/midi/mus_pyramid_top.mid b/sound/songs/midi/mus_b_pyramid_top.mid Binary files differindex 502013243..502013243 100644 --- a/sound/songs/midi/mus_pyramid_top.mid +++ b/sound/songs/midi/mus_b_pyramid_top.mid diff --git a/sound/songs/midi/mus_b_tower.mid b/sound/songs/midi/mus_b_tower.mid Binary files differindex 8e0de8968..a8294614f 100644 --- a/sound/songs/midi/mus_b_tower.mid +++ b/sound/songs/midi/mus_b_tower.mid diff --git a/sound/songs/midi/mus_b_tower_rs.mid b/sound/songs/midi/mus_b_tower_rs.mid Binary files differnew file mode 100644 index 000000000..8e0de8968 --- /dev/null +++ b/sound/songs/midi/mus_b_tower_rs.mid diff --git a/sound/songs/midi/mus_odamaki.mid b/sound/songs/midi/mus_birch_lab.mid Binary files differindex ac4226f98..ac4226f98 100644 --- a/sound/songs/midi/mus_odamaki.mid +++ b/sound/songs/midi/mus_birch_lab.mid diff --git a/sound/songs/midi/mus_pcc.mid b/sound/songs/midi/mus_c_comm_center.mid Binary files differindex 15417549f..15417549f 100644 --- a/sound/songs/midi/mus_pcc.mid +++ b/sound/songs/midi/mus_c_comm_center.mid diff --git a/sound/songs/midi/mus_suikun.mid b/sound/songs/midi/mus_c_vs_legend_beast.mid Binary files differindex afb9742d5..afb9742d5 100644 --- a/sound/songs/midi/mus_suikun.mid +++ b/sound/songs/midi/mus_c_vs_legend_beast.mid diff --git a/sound/songs/midi/mus_ropeway.mid b/sound/songs/midi/mus_cable_car.mid Binary files differindex 5aa3a411a..5aa3a411a 100644 --- a/sound/songs/midi/mus_ropeway.mid +++ b/sound/songs/midi/mus_cable_car.mid diff --git a/sound/songs/midi/mus_kachi22.mid b/sound/songs/midi/mus_caught.mid Binary files differindex 30b40c946..30b40c946 100644 --- a/sound/songs/midi/mus_kachi22.mid +++ b/sound/songs/midi/mus_caught.mid diff --git a/sound/songs/midi/mus_dan03.mid b/sound/songs/midi/mus_cave_of_origin.mid Binary files differindex e0dbcff4b..e0dbcff4b 100644 --- a/sound/songs/midi/mus_dan03.mid +++ b/sound/songs/midi/mus_cave_of_origin.mid diff --git a/sound/songs/midi/mus_contest0.mid b/sound/songs/midi/mus_contest.mid Binary files differindex b2946775b..b2946775b 100644 --- a/sound/songs/midi/mus_contest0.mid +++ b/sound/songs/midi/mus_contest.mid diff --git a/sound/songs/midi/mus_conlobby.mid b/sound/songs/midi/mus_contest_lobby.mid Binary files differindex 680482e0c..680482e0c 100644 --- a/sound/songs/midi/mus_conlobby.mid +++ b/sound/songs/midi/mus_contest_lobby.mid diff --git a/sound/songs/midi/mus_con_k.mid b/sound/songs/midi/mus_contest_results.mid Binary files differindex b45cd3ff5..b45cd3ff5 100644 --- a/sound/songs/midi/mus_con_k.mid +++ b/sound/songs/midi/mus_contest_results.mid diff --git a/sound/songs/midi/mus_con_fan.mid b/sound/songs/midi/mus_contest_winner.mid Binary files differindex 1786fac50..1786fac50 100644 --- a/sound/songs/midi/mus_con_fan.mid +++ b/sound/songs/midi/mus_contest_winner.mid diff --git a/sound/songs/midi/mus_thankfor.mid b/sound/songs/midi/mus_credits.mid Binary files differindex d4f9e1606..d4f9e1606 100644 --- a/sound/songs/midi/mus_thankfor.mid +++ b/sound/songs/midi/mus_credits.mid diff --git a/sound/songs/midi/mus_hightown.mid b/sound/songs/midi/mus_dewford.mid Binary files differindex a437b3c34..a437b3c34 100644 --- a/sound/songs/midi/mus_hightown.mid +++ b/sound/songs/midi/mus_dewford.mid diff --git a/sound/songs/midi/mus_aqa_0.mid b/sound/songs/midi/mus_encounter_aqua.mid Binary files differindex d5a2474bd..d5a2474bd 100644 --- a/sound/songs/midi/mus_aqa_0.mid +++ b/sound/songs/midi/mus_encounter_aqua.mid diff --git a/sound/songs/midi/mus_boy_sup.mid b/sound/songs/midi/mus_encounter_brendan.mid Binary files differindex 366eb1db6..366eb1db6 100644 --- a/sound/songs/midi/mus_boy_sup.mid +++ b/sound/songs/midi/mus_encounter_brendan.mid diff --git a/sound/songs/midi/mus_daigo.mid b/sound/songs/midi/mus_encounter_champion.mid Binary files differindex 750a31fe7..750a31fe7 100644 --- a/sound/songs/midi/mus_daigo.mid +++ b/sound/songs/midi/mus_encounter_champion.mid diff --git a/sound/songs/midi/mus_kakkoii.mid b/sound/songs/midi/mus_encounter_cool.mid Binary files differindex c1a75663b..c1a75663b 100644 --- a/sound/songs/midi/mus_kakkoii.mid +++ b/sound/songs/midi/mus_encounter_cool.mid diff --git a/sound/songs/midi/mus_sitennou.mid b/sound/songs/midi/mus_encounter_elite_four.mid Binary files differindex 21ba64b98..21ba64b98 100644 --- a/sound/songs/midi/mus_sitennou.mid +++ b/sound/songs/midi/mus_encounter_elite_four.mid diff --git a/sound/songs/midi/mus_girleye.mid b/sound/songs/midi/mus_encounter_female.mid Binary files differindex a4015e70d..a4015e70d 100644 --- a/sound/songs/midi/mus_girleye.mid +++ b/sound/songs/midi/mus_encounter_female.mid diff --git a/sound/songs/midi/mus_syoujoeye.mid b/sound/songs/midi/mus_encounter_girl.mid Binary files differindex 00226b287..00226b287 100644 --- a/sound/songs/midi/mus_syoujoeye.mid +++ b/sound/songs/midi/mus_encounter_girl.mid diff --git a/sound/songs/midi/mus_yama_eye.mid b/sound/songs/midi/mus_encounter_hiker.mid Binary files differindex 0b58912f6..0b58912f6 100644 --- a/sound/songs/midi/mus_yama_eye.mid +++ b/sound/songs/midi/mus_encounter_hiker.mid diff --git a/sound/songs/midi/mus_hageshii.mid b/sound/songs/midi/mus_encounter_intense.mid Binary files differindex 6b217a1fa..6b217a1fa 100644 --- a/sound/songs/midi/mus_hageshii.mid +++ b/sound/songs/midi/mus_encounter_intense.mid diff --git a/sound/songs/midi/mus_inter_v.mid b/sound/songs/midi/mus_encounter_interviewer.mid Binary files differindex 504bf3df1..504bf3df1 100644 --- a/sound/songs/midi/mus_inter_v.mid +++ b/sound/songs/midi/mus_encounter_interviewer.mid diff --git a/sound/songs/midi/mus_mgm0.mid b/sound/songs/midi/mus_encounter_magma.mid Binary files differindex 99f5c24a8..99f5c24a8 100644 --- a/sound/songs/midi/mus_mgm0.mid +++ b/sound/songs/midi/mus_encounter_magma.mid diff --git a/sound/songs/midi/mus_boyeye.mid b/sound/songs/midi/mus_encounter_male.mid Binary files differindex bb6dcc0b9..bb6dcc0b9 100644 --- a/sound/songs/midi/mus_boyeye.mid +++ b/sound/songs/midi/mus_encounter_male.mid diff --git a/sound/songs/midi/mus_girl_sup.mid b/sound/songs/midi/mus_encounter_may.mid Binary files differindex 8f05b2b43..8f05b2b43 100644 --- a/sound/songs/midi/mus_girl_sup.mid +++ b/sound/songs/midi/mus_encounter_may.mid diff --git a/sound/songs/midi/mus_test.mid b/sound/songs/midi/mus_encounter_rich.mid Binary files differindex 913a4f89a..913a4f89a 100644 --- a/sound/songs/midi/mus_test.mid +++ b/sound/songs/midi/mus_encounter_rich.mid diff --git a/sound/songs/midi/mus_ayasii.mid b/sound/songs/midi/mus_encounter_suspicious.mid Binary files differindex c9942e907..c9942e907 100644 --- a/sound/songs/midi/mus_ayasii.mid +++ b/sound/songs/midi/mus_encounter_suspicious.mid diff --git a/sound/songs/midi/mus_swimeye.mid b/sound/songs/midi/mus_encounter_swimmer.mid Binary files differindex 4a376a928..4a376a928 100644 --- a/sound/songs/midi/mus_swimeye.mid +++ b/sound/songs/midi/mus_encounter_swimmer.mid diff --git a/sound/songs/midi/mus_hutago.mid b/sound/songs/midi/mus_encounter_twins.mid Binary files differindex bc1b1da05..bc1b1da05 100644 --- a/sound/songs/midi/mus_hutago.mid +++ b/sound/songs/midi/mus_encounter_twins.mid diff --git a/sound/songs/midi/mus_rainbow.mid b/sound/songs/midi/mus_ever_grande.mid Binary files differindex 8c1e20151..8c1e20151 100644 --- a/sound/songs/midi/mus_rainbow.mid +++ b/sound/songs/midi/mus_ever_grande.mid diff --git a/sound/songs/midi/mus_shinka.mid b/sound/songs/midi/mus_evolution.mid Binary files differindex 375e6d5db..375e6d5db 100644 --- a/sound/songs/midi/mus_shinka.mid +++ b/sound/songs/midi/mus_evolution.mid diff --git a/sound/songs/midi/mus_me_shinka.mid b/sound/songs/midi/mus_evolution_intro.mid Binary files differindex 231f25533..231f25533 100644 --- a/sound/songs/midi/mus_me_shinka.mid +++ b/sound/songs/midi/mus_evolution_intro.mid diff --git a/sound/songs/midi/mus_fanfa5.mid b/sound/songs/midi/mus_evolved.mid Binary files differindex 8c94f1178..8c94f1178 100644 --- a/sound/songs/midi/mus_fanfa5.mid +++ b/sound/songs/midi/mus_evolved.mid diff --git a/sound/songs/midi/mus_tonekusa.mid b/sound/songs/midi/mus_fallarbor.mid Binary files differindex ac11b5378..ac11b5378 100644 --- a/sound/songs/midi/mus_tonekusa.mid +++ b/sound/songs/midi/mus_fallarbor.mid diff --git a/sound/songs/midi/mus_tsuretek.mid b/sound/songs/midi/mus_follow_me.mid Binary files differindex 82664c27a..82664c27a 100644 --- a/sound/songs/midi/mus_tsuretek.mid +++ b/sound/songs/midi/mus_follow_me.mid diff --git a/sound/songs/midi/mus_machi_s3.mid b/sound/songs/midi/mus_fortree.mid Binary files differindex 65862625c..65862625c 100644 --- a/sound/songs/midi/mus_machi_s3.mid +++ b/sound/songs/midi/mus_fortree.mid diff --git a/sound/songs/midi/mus_casino.mid b/sound/songs/midi/mus_game_corner.mid Binary files differindex 55548bf94..55548bf94 100644 --- a/sound/songs/midi/mus_casino.mid +++ b/sound/songs/midi/mus_game_corner.mid diff --git a/sound/songs/midi/mus_nibi.mid b/sound/songs/midi/mus_gsc_pewter.mid Binary files differindex dc0df50f2..dc0df50f2 100644 --- a/sound/songs/midi/mus_nibi.mid +++ b/sound/songs/midi/mus_gsc_pewter.mid diff --git a/sound/songs/midi/mus_field13.mid b/sound/songs/midi/mus_gsc_route38.mid Binary files differindex 8adfa4639..8adfa4639 100644 --- a/sound/songs/midi/mus_field13.mid +++ b/sound/songs/midi/mus_gsc_route38.mid diff --git a/sound/songs/midi/mus_gim.mid b/sound/songs/midi/mus_gym.mid Binary files differindex 81db02876..81db02876 100644 --- a/sound/songs/midi/mus_gim.mid +++ b/sound/songs/midi/mus_gym.mid diff --git a/sound/songs/midi/mus_dendou.mid b/sound/songs/midi/mus_hall_of_fame.mid Binary files differindex d743efcfb..d743efcfb 100644 --- a/sound/songs/midi/mus_dendou.mid +++ b/sound/songs/midi/mus_hall_of_fame.mid diff --git a/sound/songs/midi/mus_eikou_r.mid b/sound/songs/midi/mus_hall_of_fame_room.mid Binary files differindex a3cad89cf..a3cad89cf 100644 --- a/sound/songs/midi/mus_eikou_r.mid +++ b/sound/songs/midi/mus_hall_of_fame_room.mid diff --git a/sound/songs/midi/mus_me_asa.mid b/sound/songs/midi/mus_heal.mid Binary files differindex 0606aafa6..0606aafa6 100644 --- a/sound/songs/midi/mus_me_asa.mid +++ b/sound/songs/midi/mus_heal.mid diff --git a/sound/songs/midi/mus_event0.mid b/sound/songs/midi/mus_help.mid Binary files differindex 9292a4ba7..9292a4ba7 100644 --- a/sound/songs/midi/mus_event0.mid +++ b/sound/songs/midi/mus_help.mid diff --git a/sound/songs/midi/mus_demo1.mid b/sound/songs/midi/mus_intro.mid Binary files differindex 66d4e112c..66d4e112c 100644 --- a/sound/songs/midi/mus_demo1.mid +++ b/sound/songs/midi/mus_intro.mid diff --git a/sound/songs/midi/mus_t_battle.mid b/sound/songs/midi/mus_intro_battle.mid Binary files differindex 43d2f4bc3..43d2f4bc3 100644 --- a/sound/songs/midi/mus_t_battle.mid +++ b/sound/songs/midi/mus_intro_battle.mid diff --git a/sound/songs/midi/mus_fanfa1.mid b/sound/songs/midi/mus_level_up.mid Binary files differindex 54d014597..54d014597 100644 --- a/sound/songs/midi/mus_fanfa1.mid +++ b/sound/songs/midi/mus_level_up.mid diff --git a/sound/songs/midi/mus_minamo.mid b/sound/songs/midi/mus_lilycove.mid Binary files differindex 5bcf80645..5bcf80645 100644 --- a/sound/songs/midi/mus_minamo.mid +++ b/sound/songs/midi/mus_lilycove.mid diff --git a/sound/songs/midi/mus_bijyutu.mid b/sound/songs/midi/mus_lilycove_museum.mid Binary files differindex 6aedd3b33..6aedd3b33 100644 --- a/sound/songs/midi/mus_bijyutu.mid +++ b/sound/songs/midi/mus_lilycove_museum.mid diff --git a/sound/songs/midi/mus_test1.mid b/sound/songs/midi/mus_link_contest_p1.mid Binary files differindex 36c297994..36c297994 100644 --- a/sound/songs/midi/mus_test1.mid +++ b/sound/songs/midi/mus_link_contest_p1.mid diff --git a/sound/songs/midi/mus_test2.mid b/sound/songs/midi/mus_link_contest_p2.mid Binary files differindex b09281538..b09281538 100644 --- a/sound/songs/midi/mus_test2.mid +++ b/sound/songs/midi/mus_link_contest_p2.mid diff --git a/sound/songs/midi/mus_test3.mid b/sound/songs/midi/mus_link_contest_p3.mid Binary files differindex 62a18480a..62a18480a 100644 --- a/sound/songs/midi/mus_test3.mid +++ b/sound/songs/midi/mus_link_contest_p3.mid diff --git a/sound/songs/midi/mus_test4.mid b/sound/songs/midi/mus_link_contest_p4.mid Binary files differindex aec8e22ad..aec8e22ad 100644 --- a/sound/songs/midi/mus_test4.mid +++ b/sound/songs/midi/mus_link_contest_p4.mid diff --git a/sound/songs/midi/mus_mishiro.mid b/sound/songs/midi/mus_littleroot.mid Binary files differindex 1fbaa5bfe..1fbaa5bfe 100644 --- a/sound/songs/midi/mus_mishiro.mid +++ b/sound/songs/midi/mus_littleroot.mid diff --git a/sound/songs/midi/mus_tetsuji.mid b/sound/songs/midi/mus_littleroot_test.mid Binary files differindex e29e82560..e29e82560 100644 --- a/sound/songs/midi/mus_tetsuji.mid +++ b/sound/songs/midi/mus_littleroot_test.mid diff --git a/sound/songs/midi/mus_me_wasure.mid b/sound/songs/midi/mus_move_deleted.mid Binary files differindex 16fe3e1a0..16fe3e1a0 100644 --- a/sound/songs/midi/mus_me_wasure.mid +++ b/sound/songs/midi/mus_move_deleted.mid diff --git a/sound/songs/midi/mus_tozan.mid b/sound/songs/midi/mus_mt_chimney.mid Binary files differindex 07d5c9565..07d5c9565 100644 --- a/sound/songs/midi/mus_tozan.mid +++ b/sound/songs/midi/mus_mt_chimney.mid diff --git a/sound/songs/midi/mus_m_dungon.mid b/sound/songs/midi/mus_mt_pyre.mid Binary files differindex 3de0494b3..3de0494b3 100644 --- a/sound/songs/midi/mus_m_dungon.mid +++ b/sound/songs/midi/mus_mt_pyre.mid diff --git a/sound/songs/midi/mus_machupi.mid b/sound/songs/midi/mus_mt_pyre_exterior.mid Binary files differindex 0232634af..0232634af 100644 --- a/sound/songs/midi/mus_machupi.mid +++ b/sound/songs/midi/mus_mt_pyre_exterior.mid diff --git a/sound/songs/midi/mus_me_pointget.mid b/sound/songs/midi/mus_obtain_b_points.mid Binary files differindex 4a3890647..4a3890647 100644 --- a/sound/songs/midi/mus_me_pointget.mid +++ b/sound/songs/midi/mus_obtain_b_points.mid diff --git a/sound/songs/midi/mus_me_bachi.mid b/sound/songs/midi/mus_obtain_badge.mid Binary files differindex 05fe1516a..05fe1516a 100644 --- a/sound/songs/midi/mus_me_bachi.mid +++ b/sound/songs/midi/mus_obtain_badge.mid diff --git a/sound/songs/midi/mus_me_kinomi.mid b/sound/songs/midi/mus_obtain_berry.mid Binary files differindex e7eb4afd1..e7eb4afd1 100644 --- a/sound/songs/midi/mus_me_kinomi.mid +++ b/sound/songs/midi/mus_obtain_berry.mid diff --git a/sound/songs/midi/mus_fanfa4.mid b/sound/songs/midi/mus_obtain_item.mid Binary files differindex 42e617558..42e617558 100644 --- a/sound/songs/midi/mus_fanfa4.mid +++ b/sound/songs/midi/mus_obtain_item.mid diff --git a/sound/songs/midi/mus_me_symbolget.mid b/sound/songs/midi/mus_obtain_symbol.mid Binary files differindex 76b83abcd..76b83abcd 100644 --- a/sound/songs/midi/mus_me_symbolget.mid +++ b/sound/songs/midi/mus_obtain_symbol.mid diff --git a/sound/songs/midi/mus_me_waza.mid b/sound/songs/midi/mus_obtain_tmhm.mid Binary files differindex 40f9c2ed8..40f9c2ed8 100644 --- a/sound/songs/midi/mus_me_waza.mid +++ b/sound/songs/midi/mus_obtain_tmhm.mid diff --git a/sound/songs/midi/mus_fune_kan.mid b/sound/songs/midi/mus_oceanic_museum.mid Binary files differindex c95ab1e8d..c95ab1e8d 100644 --- a/sound/songs/midi/mus_fune_kan.mid +++ b/sound/songs/midi/mus_oceanic_museum.mid diff --git a/sound/songs/midi/mus_machi_s4.mid b/sound/songs/midi/mus_oldale.mid Binary files differindex 2ae43fe7e..2ae43fe7e 100644 --- a/sound/songs/midi/mus_machi_s4.mid +++ b/sound/songs/midi/mus_oldale.mid diff --git a/sound/songs/midi/mus_machi_s2.mid b/sound/songs/midi/mus_petalburg.mid Binary files differindex a3c4a0a6a..a3c4a0a6a 100644 --- a/sound/songs/midi/mus_machi_s2.mid +++ b/sound/songs/midi/mus_petalburg.mid diff --git a/sound/songs/midi/mus_dan01.mid b/sound/songs/midi/mus_petalburg_woods.mid Binary files differindex 96fc4732d..96fc4732d 100644 --- a/sound/songs/midi/mus_dan01.mid +++ b/sound/songs/midi/mus_petalburg_woods.mid diff --git a/sound/songs/midi/mus_pokecen.mid b/sound/songs/midi/mus_poke_center.mid Binary files differindex e8cfb473a..e8cfb473a 100644 --- a/sound/songs/midi/mus_pokecen.mid +++ b/sound/songs/midi/mus_poke_center.mid diff --git a/sound/songs/midi/mus_friendly.mid b/sound/songs/midi/mus_poke_mart.mid Binary files differindex 38567b2bf..38567b2bf 100644 --- a/sound/songs/midi/mus_friendly.mid +++ b/sound/songs/midi/mus_poke_mart.mid diff --git a/sound/songs/midi/mus_rekkuu_kourin.mid b/sound/songs/midi/mus_rayquaza_appears.mid Binary files differindex a16b3f511..a16b3f511 100644 --- a/sound/songs/midi/mus_rekkuu_kourin.mid +++ b/sound/songs/midi/mus_rayquaza_appears.mid diff --git a/sound/songs/midi/mus_me_tore_eye.mid b/sound/songs/midi/mus_register_match_call.mid Binary files differindex f2682bf32..f2682bf32 100644 --- a/sound/songs/midi/mus_me_tore_eye.mid +++ b/sound/songs/midi/mus_register_match_call.mid diff --git a/sound/songs/midi/mus_rg_kinomikui.mid b/sound/songs/midi/mus_rg_berry_pick.mid Binary files differindex 5e16a57cd..5e16a57cd 100644 --- a/sound/songs/midi/mus_rg_kinomikui.mid +++ b/sound/songs/midi/mus_rg_berry_pick.mid diff --git a/sound/songs/midi/mus_rg_get_yasei.mid b/sound/songs/midi/mus_rg_caught.mid Binary files differindex 6599ca6b0..6599ca6b0 100644 --- a/sound/songs/midi/mus_rg_get_yasei.mid +++ b/sound/songs/midi/mus_rg_caught.mid diff --git a/sound/songs/midi/mus_rg_fan6.mid b/sound/songs/midi/mus_rg_caught_intro.mid Binary files differindex d2bc1feb3..d2bc1feb3 100644 --- a/sound/songs/midi/mus_rg_fan6.mid +++ b/sound/songs/midi/mus_rg_caught_intro.mid diff --git a/sound/songs/midi/mus_rg_tamamusi.mid b/sound/songs/midi/mus_rg_celadon.mid Binary files differindex fa0d655eb..fa0d655eb 100644 --- a/sound/songs/midi/mus_rg_tamamusi.mid +++ b/sound/songs/midi/mus_rg_celadon.mid diff --git a/sound/songs/midi/mus_rg_guren.mid b/sound/songs/midi/mus_rg_cinnabar.mid Binary files differindex a5748ac48..a5748ac48 100644 --- a/sound/songs/midi/mus_rg_guren.mid +++ b/sound/songs/midi/mus_rg_cinnabar.mid diff --git a/sound/songs/midi/mus_rg_ending.mid b/sound/songs/midi/mus_rg_credits.mid Binary files differindex 1f5790542..1f5790542 100644 --- a/sound/songs/midi/mus_rg_ending.mid +++ b/sound/songs/midi/mus_rg_credits.mid diff --git a/sound/songs/midi/mus_rg_fan2.mid b/sound/songs/midi/mus_rg_dex_rating.mid Binary files differindex 98300bce1..98300bce1 100644 --- a/sound/songs/midi/mus_rg_fan2.mid +++ b/sound/songs/midi/mus_rg_dex_rating.mid diff --git a/sound/songs/midi/mus_rg_shounen.mid b/sound/songs/midi/mus_rg_encounter_boy.mid Binary files differindex 0820f00ca..0820f00ca 100644 --- a/sound/songs/midi/mus_rg_shounen.mid +++ b/sound/songs/midi/mus_rg_encounter_boy.mid diff --git a/sound/songs/midi/mus_rg_deoeye.mid b/sound/songs/midi/mus_rg_encounter_deoxys.mid Binary files differindex d322b9a1a..d322b9a1a 100644 --- a/sound/songs/midi/mus_rg_deoeye.mid +++ b/sound/songs/midi/mus_rg_encounter_deoxys.mid diff --git a/sound/songs/midi/mus_rg_shoujo.mid b/sound/songs/midi/mus_rg_encounter_girl.mid Binary files differindex 48ede9b4c..48ede9b4c 100644 --- a/sound/songs/midi/mus_rg_shoujo.mid +++ b/sound/songs/midi/mus_rg_encounter_girl.mid diff --git a/sound/songs/midi/mus_rg_exeye.mid b/sound/songs/midi/mus_rg_encounter_gym_leader.mid Binary files differindex cb5fef487..cb5fef487 100644 --- a/sound/songs/midi/mus_rg_exeye.mid +++ b/sound/songs/midi/mus_rg_encounter_gym_leader.mid diff --git a/sound/songs/midi/mus_rg_rival1.mid b/sound/songs/midi/mus_rg_encounter_rival.mid Binary files differindex 41fe40e94..41fe40e94 100644 --- a/sound/songs/midi/mus_rg_rival1.mid +++ b/sound/songs/midi/mus_rg_encounter_rival.mid diff --git a/sound/songs/midi/mus_rg_rocket.mid b/sound/songs/midi/mus_rg_encounter_rocket.mid Binary files differindex 966e56962..966e56962 100644 --- a/sound/songs/midi/mus_rg_rocket.mid +++ b/sound/songs/midi/mus_rg_encounter_rocket.mid diff --git a/sound/songs/midi/mus_rg_annai.mid b/sound/songs/midi/mus_rg_follow_me.mid Binary files differindex efea75d49..efea75d49 100644 --- a/sound/songs/midi/mus_rg_annai.mid +++ b/sound/songs/midi/mus_rg_follow_me.mid diff --git a/sound/songs/midi/mus_rg_hanada.mid b/sound/songs/midi/mus_rg_fuchsia.mid Binary files differindex 4831631fc..4831631fc 100644 --- a/sound/songs/midi/mus_rg_hanada.mid +++ b/sound/songs/midi/mus_rg_fuchsia.mid diff --git a/sound/songs/midi/mus_rg_slot.mid b/sound/songs/midi/mus_rg_game_corner.mid Binary files differindex 24668ec68..24668ec68 100644 --- a/sound/songs/midi/mus_rg_slot.mid +++ b/sound/songs/midi/mus_rg_game_corner.mid diff --git a/sound/songs/midi/mus_rg_titlerog.mid b/sound/songs/midi/mus_rg_game_freak.mid Binary files differindex baef8d1d4..baef8d1d4 100644 --- a/sound/songs/midi/mus_rg_titlerog.mid +++ b/sound/songs/midi/mus_rg_game_freak.mid diff --git a/sound/songs/midi/mus_rg_dendou.mid b/sound/songs/midi/mus_rg_hall_of_fame.mid Binary files differindex 9d7647ccd..9d7647ccd 100644 --- a/sound/songs/midi/mus_rg_dendou.mid +++ b/sound/songs/midi/mus_rg_hall_of_fame.mid diff --git a/sound/songs/midi/mus_rg_kaihuku.mid b/sound/songs/midi/mus_rg_heal.mid Binary files differindex 50c96d7c6..50c96d7c6 100644 --- a/sound/songs/midi/mus_rg_kaihuku.mid +++ b/sound/songs/midi/mus_rg_heal.mid diff --git a/sound/songs/midi/mus_rg_demo.mid b/sound/songs/midi/mus_rg_intro_fight.mid Binary files differindex f5320a273..f5320a273 100644 --- a/sound/songs/midi/mus_rg_demo.mid +++ b/sound/songs/midi/mus_rg_intro_fight.mid diff --git a/sound/songs/midi/mus_rg_purin.mid b/sound/songs/midi/mus_rg_jigglypuff.mid Binary files differindex cc3405f3c..cc3405f3c 100644 --- a/sound/songs/midi/mus_rg_purin.mid +++ b/sound/songs/midi/mus_rg_jigglypuff.mid diff --git a/sound/songs/midi/mus_rg_shion.mid b/sound/songs/midi/mus_rg_lavender.mid Binary files differindex b31831dfa..b31831dfa 100644 --- a/sound/songs/midi/mus_rg_shion.mid +++ b/sound/songs/midi/mus_rg_lavender.mid diff --git a/sound/songs/midi/mus_rg_otsukimi.mid b/sound/songs/midi/mus_rg_mt_moon.mid Binary files differindex c7da3b036..c7da3b036 100644 --- a/sound/songs/midi/mus_rg_otsukimi.mid +++ b/sound/songs/midi/mus_rg_mt_moon.mid diff --git a/sound/songs/midi/mus_rg_okurimono.mid b/sound/songs/midi/mus_rg_mystery_gift.mid Binary files differindex bfde1f175..bfde1f175 100644 --- a/sound/songs/midi/mus_rg_okurimono.mid +++ b/sound/songs/midi/mus_rg_mystery_gift.mid diff --git a/sound/songs/midi/mus_rg_network.mid b/sound/songs/midi/mus_rg_net_center.mid Binary files differindex 292dad852..292dad852 100644 --- a/sound/songs/midi/mus_rg_network.mid +++ b/sound/songs/midi/mus_rg_net_center.mid diff --git a/sound/songs/midi/mus_rg_seibetu.mid b/sound/songs/midi/mus_rg_new_game_exit.mid Binary files differindex 8c0a1d7ea..8c0a1d7ea 100644 --- a/sound/songs/midi/mus_rg_seibetu.mid +++ b/sound/songs/midi/mus_rg_new_game_exit.mid diff --git a/sound/songs/midi/mus_rg_sousa.mid b/sound/songs/midi/mus_rg_new_game_instruct.mid Binary files differindex 0c936e8f6..0c936e8f6 100644 --- a/sound/songs/midi/mus_rg_sousa.mid +++ b/sound/songs/midi/mus_rg_new_game_instruct.mid diff --git a/sound/songs/midi/mus_rg_sekaikan.mid b/sound/songs/midi/mus_rg_new_game_intro.mid Binary files differindex aec6a0240..aec6a0240 100644 --- a/sound/songs/midi/mus_rg_sekaikan.mid +++ b/sound/songs/midi/mus_rg_new_game_intro.mid diff --git a/sound/songs/midi/mus_rg_ohkido.mid b/sound/songs/midi/mus_rg_oak.mid Binary files differindex fa4710a23..fa4710a23 100644 --- a/sound/songs/midi/mus_rg_ohkido.mid +++ b/sound/songs/midi/mus_rg_oak.mid diff --git a/sound/songs/midi/mus_rg_kenkyu.mid b/sound/songs/midi/mus_rg_oak_lab.mid Binary files differindex 471a1baab..471a1baab 100644 --- a/sound/songs/midi/mus_rg_kenkyu.mid +++ b/sound/songs/midi/mus_rg_oak_lab.mid diff --git a/sound/songs/midi/mus_rg_fan5.mid b/sound/songs/midi/mus_rg_obtain_key_item.mid Binary files differindex e9c01b132..e9c01b132 100644 --- a/sound/songs/midi/mus_rg_fan5.mid +++ b/sound/songs/midi/mus_rg_obtain_key_item.mid diff --git a/sound/songs/midi/mus_rg_masara.mid b/sound/songs/midi/mus_rg_pallet.mid Binary files differindex fa5917387..fa5917387 100644 --- a/sound/songs/midi/mus_rg_masara.mid +++ b/sound/songs/midi/mus_rg_pallet.mid diff --git a/sound/songs/midi/mus_rg_nana123.mid b/sound/songs/midi/mus_rg_pewter.mid Binary files differindex dd88863d4..dd88863d4 100644 --- a/sound/songs/midi/mus_rg_nana123.mid +++ b/sound/songs/midi/mus_rg_pewter.mid diff --git a/sound/songs/midi/mus_me_rg_photo.mid b/sound/songs/midi/mus_rg_photo.mid Binary files differindex 76fce4af3..76fce4af3 100644 --- a/sound/songs/midi/mus_me_rg_photo.mid +++ b/sound/songs/midi/mus_rg_photo.mid diff --git a/sound/songs/midi/mus_rg_pokecen.mid b/sound/songs/midi/mus_rg_poke_center.mid Binary files differindex cd905db38..cd905db38 100644 --- a/sound/songs/midi/mus_rg_pokecen.mid +++ b/sound/songs/midi/mus_rg_poke_center.mid diff --git a/sound/songs/midi/mus_rg_pokefue.mid b/sound/songs/midi/mus_rg_poke_flute.mid Binary files differindex 02686a30b..02686a30b 100644 --- a/sound/songs/midi/mus_rg_pokefue.mid +++ b/sound/songs/midi/mus_rg_poke_flute.mid diff --git a/sound/songs/midi/mus_rg_jump.mid b/sound/songs/midi/mus_rg_poke_jump.mid Binary files differindex 6e656a1f0..6e656a1f0 100644 --- a/sound/songs/midi/mus_rg_jump.mid +++ b/sound/songs/midi/mus_rg_poke_jump.mid diff --git a/sound/songs/midi/mus_rg_pokeyashi.mid b/sound/songs/midi/mus_rg_poke_mansion.mid Binary files differindex e5ee78eb0..e5ee78eb0 100644 --- a/sound/songs/midi/mus_rg_pokeyashi.mid +++ b/sound/songs/midi/mus_rg_poke_mansion.mid diff --git a/sound/songs/midi/mus_rg_p_tower.mid b/sound/songs/midi/mus_rg_poke_tower.mid Binary files differindex 0a537d191..0a537d191 100644 --- a/sound/songs/midi/mus_rg_p_tower.mid +++ b/sound/songs/midi/mus_rg_poke_tower.mid diff --git a/sound/songs/midi/mus_rg_rival2.mid b/sound/songs/midi/mus_rg_rival_exit.mid Binary files differindex cae821245..cae821245 100644 --- a/sound/songs/midi/mus_rg_rival2.mid +++ b/sound/songs/midi/mus_rg_rival_exit.mid diff --git a/sound/songs/midi/mus_rg_ajito.mid b/sound/songs/midi/mus_rg_rocket_hideout.mid Binary files differindex 1e1fff0f6..1e1fff0f6 100644 --- a/sound/songs/midi/mus_rg_ajito.mid +++ b/sound/songs/midi/mus_rg_rocket_hideout.mid diff --git a/sound/songs/midi/mus_rg_load01.mid b/sound/songs/midi/mus_rg_route1.mid Binary files differindex 9d0ebcde6..9d0ebcde6 100644 --- a/sound/songs/midi/mus_rg_load01.mid +++ b/sound/songs/midi/mus_rg_route1.mid diff --git a/sound/songs/midi/mus_rg_load03.mid b/sound/songs/midi/mus_rg_route11.mid Binary files differindex 3fe21c381..3fe21c381 100644 --- a/sound/songs/midi/mus_rg_load03.mid +++ b/sound/songs/midi/mus_rg_route11.mid diff --git a/sound/songs/midi/mus_rg_opening.mid b/sound/songs/midi/mus_rg_route24.mid Binary files differindex c15773fff..c15773fff 100644 --- a/sound/songs/midi/mus_rg_opening.mid +++ b/sound/songs/midi/mus_rg_route24.mid diff --git a/sound/songs/midi/mus_rg_load02.mid b/sound/songs/midi/mus_rg_route3.mid Binary files differindex 2af80a5a8..2af80a5a8 100644 --- a/sound/songs/midi/mus_rg_load02.mid +++ b/sound/songs/midi/mus_rg_route3.mid diff --git a/sound/songs/midi/mus_rg_nibi.mid b/sound/songs/midi/mus_rg_sevii_123.mid Binary files differindex dd88863d4..dd88863d4 100644 --- a/sound/songs/midi/mus_rg_nibi.mid +++ b/sound/songs/midi/mus_rg_sevii_123.mid diff --git a/sound/songs/midi/mus_rg_nana45.mid b/sound/songs/midi/mus_rg_sevii_45.mid Binary files differindex 98b581132..98b581132 100644 --- a/sound/songs/midi/mus_rg_nana45.mid +++ b/sound/songs/midi/mus_rg_sevii_45.mid diff --git a/sound/songs/midi/mus_rg_nana67.mid b/sound/songs/midi/mus_rg_sevii_67.mid Binary files differindex 537e59a71..537e59a71 100644 --- a/sound/songs/midi/mus_rg_nana67.mid +++ b/sound/songs/midi/mus_rg_sevii_67.mid diff --git a/sound/songs/midi/mus_rg_nanadungeon.mid b/sound/songs/midi/mus_rg_sevii_cave.mid Binary files differindex 7f32963c9..7f32963c9 100644 --- a/sound/songs/midi/mus_rg_nanadungeon.mid +++ b/sound/songs/midi/mus_rg_sevii_cave.mid diff --git a/sound/songs/midi/mus_rg_nanaiseki.mid b/sound/songs/midi/mus_rg_sevii_dungeon.mid Binary files differindex 76d73039e..76d73039e 100644 --- a/sound/songs/midi/mus_rg_nanaiseki.mid +++ b/sound/songs/midi/mus_rg_sevii_dungeon.mid diff --git a/sound/songs/midi/mus_rg_nanashima.mid b/sound/songs/midi/mus_rg_sevii_route.mid Binary files differindex d215f0122..d215f0122 100644 --- a/sound/songs/midi/mus_rg_nanashima.mid +++ b/sound/songs/midi/mus_rg_sevii_route.mid diff --git a/sound/songs/midi/mus_rg_shiruhu.mid b/sound/songs/midi/mus_rg_silph.mid Binary files differindex 8f66ea874..8f66ea874 100644 --- a/sound/songs/midi/mus_rg_shiruhu.mid +++ b/sound/songs/midi/mus_rg_silph.mid diff --git a/sound/songs/midi/mus_rg_slowmasara.mid b/sound/songs/midi/mus_rg_slow_pallet.mid Binary files differindex 441fb6348..441fb6348 100644 --- a/sound/songs/midi/mus_rg_slowmasara.mid +++ b/sound/songs/midi/mus_rg_slow_pallet.mid diff --git a/sound/songs/midi/mus_rg_santoan.mid b/sound/songs/midi/mus_rg_ss_anne.mid Binary files differindex b843ca364..b843ca364 100644 --- a/sound/songs/midi/mus_rg_santoan.mid +++ b/sound/songs/midi/mus_rg_ss_anne.mid diff --git a/sound/songs/midi/mus_rg_naminori.mid b/sound/songs/midi/mus_rg_surf.mid Binary files differindex 3ac684ac2..3ac684ac2 100644 --- a/sound/songs/midi/mus_rg_naminori.mid +++ b/sound/songs/midi/mus_rg_surf.mid diff --git a/sound/songs/midi/mus_rg_tvnoize.mid b/sound/songs/midi/mus_rg_teachy_tv_menu.mid Binary files differindex b5d446098..b5d446098 100644 --- a/sound/songs/midi/mus_rg_tvnoize.mid +++ b/sound/songs/midi/mus_rg_teachy_tv_menu.mid diff --git a/sound/songs/midi/mus_rg_oshie_tv.mid b/sound/songs/midi/mus_rg_teachy_tv_show.mid Binary files differindex efea75d49..efea75d49 100644 --- a/sound/songs/midi/mus_rg_oshie_tv.mid +++ b/sound/songs/midi/mus_rg_teachy_tv_show.mid diff --git a/sound/songs/midi/mus_rg_t_tower.mid b/sound/songs/midi/mus_rg_trainer_tower.mid Binary files differindex 81db02876..81db02876 100644 --- a/sound/songs/midi/mus_rg_t_tower.mid +++ b/sound/songs/midi/mus_rg_trainer_tower.mid diff --git a/sound/songs/midi/mus_rg_union.mid b/sound/songs/midi/mus_rg_union_room.mid Binary files differindex b484050fa..b484050fa 100644 --- a/sound/songs/midi/mus_rg_union.mid +++ b/sound/songs/midi/mus_rg_union_room.mid diff --git a/sound/songs/midi/mus_rg_kuchiba.mid b/sound/songs/midi/mus_rg_vermillion.mid Binary files differindex 11cb67d1a..11cb67d1a 100644 --- a/sound/songs/midi/mus_rg_kuchiba.mid +++ b/sound/songs/midi/mus_rg_vermillion.mid diff --git a/sound/songs/midi/mus_kachi3.mid b/sound/songs/midi/mus_rg_victory_gym_leader.mid Binary files differindex 1ce5dd13c..1ce5dd13c 100644 --- a/sound/songs/midi/mus_kachi3.mid +++ b/sound/songs/midi/mus_rg_victory_gym_leader.mid diff --git a/sound/songs/midi/mus_rg_champ_r.mid b/sound/songs/midi/mus_rg_victory_road.mid Binary files differindex 6552b65bd..6552b65bd 100644 --- a/sound/songs/midi/mus_rg_champ_r.mid +++ b/sound/songs/midi/mus_rg_victory_road.mid diff --git a/sound/songs/midi/mus_rg_win_tre.mid b/sound/songs/midi/mus_rg_victory_trainer.mid Binary files differindex 26fe06bf0..26fe06bf0 100644 --- a/sound/songs/midi/mus_rg_win_tre.mid +++ b/sound/songs/midi/mus_rg_victory_trainer.mid diff --git a/sound/songs/midi/mus_kachi2.mid b/sound/songs/midi/mus_rg_victory_wild.mid Binary files differindex 51fad46fc..51fad46fc 100644 --- a/sound/songs/midi/mus_kachi2.mid +++ b/sound/songs/midi/mus_rg_victory_wild.mid diff --git a/sound/songs/midi/mus_rg_t_mori.mid b/sound/songs/midi/mus_rg_viridian_forest.mid Binary files differindex 76d73039e..76d73039e 100644 --- a/sound/songs/midi/mus_rg_t_mori.mid +++ b/sound/songs/midi/mus_rg_viridian_forest.mid diff --git a/sound/songs/midi/mus_rg_vs_last.mid b/sound/songs/midi/mus_rg_vs_champion.mid Binary files differindex e63d2eb45..e63d2eb45 100644 --- a/sound/songs/midi/mus_rg_vs_last.mid +++ b/sound/songs/midi/mus_rg_vs_champion.mid diff --git a/sound/songs/midi/mus_rg_vs_deo.mid b/sound/songs/midi/mus_rg_vs_deoxys.mid Binary files differindex 1f9c00bb1..1f9c00bb1 100644 --- a/sound/songs/midi/mus_rg_vs_deo.mid +++ b/sound/songs/midi/mus_rg_vs_deoxys.mid diff --git a/sound/songs/midi/mus_rg_vs_gym.mid b/sound/songs/midi/mus_rg_vs_gym_leader.mid Binary files differindex aa2da087f..aa2da087f 100644 --- a/sound/songs/midi/mus_rg_vs_gym.mid +++ b/sound/songs/midi/mus_rg_vs_gym_leader.mid diff --git a/sound/songs/midi/mus_rg_vs_den.mid b/sound/songs/midi/mus_rg_vs_legend.mid Binary files differindex 93d3785be..93d3785be 100644 --- a/sound/songs/midi/mus_rg_vs_den.mid +++ b/sound/songs/midi/mus_rg_vs_legend.mid diff --git a/sound/songs/midi/mus_rg_vs_myu2.mid b/sound/songs/midi/mus_rg_vs_mewtwo.mid Binary files differindex e6a578320..e6a578320 100644 --- a/sound/songs/midi/mus_rg_vs_myu2.mid +++ b/sound/songs/midi/mus_rg_vs_mewtwo.mid diff --git a/sound/songs/midi/mus_rg_vs_tore.mid b/sound/songs/midi/mus_rg_vs_trainer.mid Binary files differindex 95172f63e..95172f63e 100644 --- a/sound/songs/midi/mus_rg_vs_tore.mid +++ b/sound/songs/midi/mus_rg_vs_trainer.mid diff --git a/sound/songs/midi/mus_rg_vs_yasei.mid b/sound/songs/midi/mus_rg_vs_wild.mid Binary files differindex 835aff19b..835aff19b 100644 --- a/sound/songs/midi/mus_rg_vs_yasei.mid +++ b/sound/songs/midi/mus_rg_vs_wild.mid diff --git a/sound/songs/midi/mus_bd_time.mid b/sound/songs/midi/mus_roulette.mid Binary files differindex 39fb08327..39fb08327 100644 --- a/sound/songs/midi/mus_bd_time.mid +++ b/sound/songs/midi/mus_roulette.mid diff --git a/sound/songs/midi/mus_dooro1.mid b/sound/songs/midi/mus_route101.mid Binary files differindex 5c4f5d76a..5c4f5d76a 100644 --- a/sound/songs/midi/mus_dooro1.mid +++ b/sound/songs/midi/mus_route101.mid diff --git a/sound/songs/midi/mus_nextroad.mid b/sound/songs/midi/mus_route104.mid Binary files differindex 571345f5a..571345f5a 100644 --- a/sound/songs/midi/mus_nextroad.mid +++ b/sound/songs/midi/mus_route104.mid diff --git a/sound/songs/midi/mus_dooro_x1.mid b/sound/songs/midi/mus_route110.mid Binary files differindex 087682996..087682996 100644 --- a/sound/songs/midi/mus_dooro_x1.mid +++ b/sound/songs/midi/mus_route110.mid diff --git a/sound/songs/midi/mus_ashroad.mid b/sound/songs/midi/mus_route111.mid Binary files differindex 4b7f71c09..4b7f71c09 100644 --- a/sound/songs/midi/mus_ashroad.mid +++ b/sound/songs/midi/mus_route111.mid diff --git a/sound/songs/midi/mus_kazanbai.mid b/sound/songs/midi/mus_route113.mid Binary files differindex bddb3947c..bddb3947c 100644 --- a/sound/songs/midi/mus_kazanbai.mid +++ b/sound/songs/midi/mus_route113.mid diff --git a/sound/songs/midi/mus_granroad.mid b/sound/songs/midi/mus_route119.mid Binary files differindex cb286982d..cb286982d 100644 --- a/sound/songs/midi/mus_granroad.mid +++ b/sound/songs/midi/mus_route119.mid diff --git a/sound/songs/midi/mus_dooro_x3.mid b/sound/songs/midi/mus_route120.mid Binary files differindex ac1fef688..ac1fef688 100644 --- a/sound/songs/midi/mus_dooro_x3.mid +++ b/sound/songs/midi/mus_route120.mid diff --git a/sound/songs/midi/mus_dooro_x4.mid b/sound/songs/midi/mus_route122.mid Binary files differindex 14e439359..14e439359 100644 --- a/sound/songs/midi/mus_dooro_x4.mid +++ b/sound/songs/midi/mus_route122.mid diff --git a/sound/songs/midi/mus_gotown.mid b/sound/songs/midi/mus_rustboro.mid Binary files differindex 6a2ab5dea..6a2ab5dea 100644 --- a/sound/songs/midi/mus_gotown.mid +++ b/sound/songs/midi/mus_rustboro.mid diff --git a/sound/songs/midi/mus_safari.mid b/sound/songs/midi/mus_safari_zone.mid Binary files differindex 95fab66a8..95fab66a8 100644 --- a/sound/songs/midi/mus_safari.mid +++ b/sound/songs/midi/mus_safari_zone.mid diff --git a/sound/songs/midi/mus_m_boat.mid b/sound/songs/midi/mus_sailing.mid Binary files differindex 97c539a75..97c539a75 100644 --- a/sound/songs/midi/mus_m_boat.mid +++ b/sound/songs/midi/mus_sailing.mid diff --git a/sound/songs/midi/mus_sattower.mid b/sound/songs/midi/mus_sattower.mid Binary files differdeleted file mode 100644 index a8294614f..000000000 --- a/sound/songs/midi/mus_sattower.mid +++ /dev/null diff --git a/sound/songs/midi/mus_p_school.mid b/sound/songs/midi/mus_school.mid Binary files differindex 4e6fd3340..4e6fd3340 100644 --- a/sound/songs/midi/mus_p_school.mid +++ b/sound/songs/midi/mus_school.mid diff --git a/sound/songs/midi/mus_maborosi.mid b/sound/songs/midi/mus_sealed_chamber.mid Binary files differindex c888c0d54..c888c0d54 100644 --- a/sound/songs/midi/mus_maborosi.mid +++ b/sound/songs/midi/mus_sealed_chamber.mid diff --git a/sound/songs/midi/mus_finecity.mid b/sound/songs/midi/mus_slateport.mid Binary files differindex f83647287..f83647287 100644 --- a/sound/songs/midi/mus_finecity.mid +++ b/sound/songs/midi/mus_slateport.mid diff --git a/sound/songs/midi/mus_me_b_big.mid b/sound/songs/midi/mus_slots_jackpot.mid Binary files differindex 150a669b4..150a669b4 100644 --- a/sound/songs/midi/mus_me_b_big.mid +++ b/sound/songs/midi/mus_slots_jackpot.mid diff --git a/sound/songs/midi/mus_me_b_small.mid b/sound/songs/midi/mus_slots_win.mid Binary files differindex bf7aa33be..bf7aa33be 100644 --- a/sound/songs/midi/mus_me_b_small.mid +++ b/sound/songs/midi/mus_slots_win.mid diff --git a/sound/songs/midi/mus_runecity.mid b/sound/songs/midi/mus_sootopolis.mid Binary files differindex 2e8c49c2f..2e8c49c2f 100644 --- a/sound/songs/midi/mus_runecity.mid +++ b/sound/songs/midi/mus_sootopolis.mid diff --git a/sound/songs/midi/mus_naminori.mid b/sound/songs/midi/mus_surf.mid Binary files differindex 70813e343..70813e343 100644 --- a/sound/songs/midi/mus_naminori.mid +++ b/sound/songs/midi/mus_surf.mid diff --git a/sound/songs/midi/mus_title3.mid b/sound/songs/midi/mus_title.mid Binary files differindex 1664a86b2..1664a86b2 100644 --- a/sound/songs/midi/mus_title3.mid +++ b/sound/songs/midi/mus_title.mid diff --git a/sound/songs/midi/mus_me_zannen.mid b/sound/songs/midi/mus_too_bad.mid Binary files differindex 2d071d524..2d071d524 100644 --- a/sound/songs/midi/mus_me_zannen.mid +++ b/sound/songs/midi/mus_too_bad.mid diff --git a/sound/songs/midi/mus_karakuri.mid b/sound/songs/midi/mus_trick_house.mid Binary files differindex d6c387ee3..d6c387ee3 100644 --- a/sound/songs/midi/mus_karakuri.mid +++ b/sound/songs/midi/mus_trick_house.mid diff --git a/sound/songs/midi/mus_deepdeep.mid b/sound/songs/midi/mus_underwater.mid Binary files differindex 352c80cd7..352c80cd7 100644 --- a/sound/songs/midi/mus_deepdeep.mid +++ b/sound/songs/midi/mus_underwater.mid diff --git a/sound/songs/midi/mus_gomachi0.mid b/sound/songs/midi/mus_verdanturf.mid Binary files differindex b41d157a3..b41d157a3 100644 --- a/sound/songs/midi/mus_gomachi0.mid +++ b/sound/songs/midi/mus_verdanturf.mid diff --git a/sound/songs/midi/mus_kachi4.mid b/sound/songs/midi/mus_victory_aqua_magma.mid Binary files differindex 3b8cc422e..3b8cc422e 100644 --- a/sound/songs/midi/mus_kachi4.mid +++ b/sound/songs/midi/mus_victory_aqua_magma.mid diff --git a/sound/songs/midi/mus_rg_win_gym.mid b/sound/songs/midi/mus_victory_gym_leader.mid Binary files differindex 1ce5dd13c..1ce5dd13c 100644 --- a/sound/songs/midi/mus_rg_win_gym.mid +++ b/sound/songs/midi/mus_victory_gym_leader.mid diff --git a/sound/songs/midi/mus_kachi5.mid b/sound/songs/midi/mus_victory_league.mid Binary files differindex 94be2e4c7..94be2e4c7 100644 --- a/sound/songs/midi/mus_kachi5.mid +++ b/sound/songs/midi/mus_victory_league.mid diff --git a/sound/songs/midi/mus_c_road.mid b/sound/songs/midi/mus_victory_road.mid Binary files differindex f1dfc2a93..f1dfc2a93 100644 --- a/sound/songs/midi/mus_c_road.mid +++ b/sound/songs/midi/mus_victory_road.mid diff --git a/sound/songs/midi/mus_kachi1.mid b/sound/songs/midi/mus_victory_trainer.mid Binary files differindex 7d3f75009..7d3f75009 100644 --- a/sound/songs/midi/mus_kachi1.mid +++ b/sound/songs/midi/mus_victory_trainer.mid diff --git a/sound/songs/midi/mus_rg_win_yasei.mid b/sound/songs/midi/mus_victory_wild.mid Binary files differindex 51fad46fc..51fad46fc 100644 --- a/sound/songs/midi/mus_rg_win_yasei.mid +++ b/sound/songs/midi/mus_victory_wild.mid diff --git a/sound/songs/midi/mus_battle31.mid b/sound/songs/midi/mus_vs_aqua_magma.mid Binary files differindex e38085793..e38085793 100644 --- a/sound/songs/midi/mus_battle31.mid +++ b/sound/songs/midi/mus_vs_aqua_magma.mid diff --git a/sound/songs/midi/mus_battle30.mid b/sound/songs/midi/mus_vs_aqua_magma_leader.mid Binary files differindex 3bd5e9e11..3bd5e9e11 100644 --- a/sound/songs/midi/mus_battle30.mid +++ b/sound/songs/midi/mus_vs_aqua_magma_leader.mid diff --git a/sound/songs/midi/mus_battle33.mid b/sound/songs/midi/mus_vs_champion.mid Binary files differindex b16580d66..b16580d66 100644 --- a/sound/songs/midi/mus_battle33.mid +++ b/sound/songs/midi/mus_vs_champion.mid diff --git a/sound/songs/midi/mus_battle38.mid b/sound/songs/midi/mus_vs_elite_four.mid Binary files differindex e4b1f34b9..e4b1f34b9 100644 --- a/sound/songs/midi/mus_battle38.mid +++ b/sound/songs/midi/mus_vs_elite_four.mid diff --git a/sound/songs/midi/mus_vs_front.mid b/sound/songs/midi/mus_vs_frontier_brain.mid Binary files differindex 7e251430c..7e251430c 100644 --- a/sound/songs/midi/mus_vs_front.mid +++ b/sound/songs/midi/mus_vs_frontier_brain.mid diff --git a/sound/songs/midi/mus_battle32.mid b/sound/songs/midi/mus_vs_gym_leader.mid Binary files differindex 0b7c49bd7..0b7c49bd7 100644 --- a/sound/songs/midi/mus_battle32.mid +++ b/sound/songs/midi/mus_vs_gym_leader.mid diff --git a/sound/songs/midi/mus_battle34.mid b/sound/songs/midi/mus_vs_kyogre_groudon.mid Binary files differindex 2b4aced44..2b4aced44 100644 --- a/sound/songs/midi/mus_battle34.mid +++ b/sound/songs/midi/mus_vs_kyogre_groudon.mid diff --git a/sound/songs/midi/mus_vs_rekku.mid b/sound/songs/midi/mus_vs_rayquaza.mid Binary files differindex 2b4aced44..2b4aced44 100644 --- a/sound/songs/midi/mus_vs_rekku.mid +++ b/sound/songs/midi/mus_vs_rayquaza.mid diff --git a/sound/songs/midi/mus_battle36.mid b/sound/songs/midi/mus_vs_regi.mid Binary files differindex 2aab509a3..2aab509a3 100644 --- a/sound/songs/midi/mus_battle36.mid +++ b/sound/songs/midi/mus_vs_regi.mid diff --git a/sound/songs/midi/mus_battle35.mid b/sound/songs/midi/mus_vs_rival.mid Binary files differindex 2d34a08b9..2d34a08b9 100644 --- a/sound/songs/midi/mus_battle35.mid +++ b/sound/songs/midi/mus_vs_rival.mid diff --git a/sound/songs/midi/mus_battle20.mid b/sound/songs/midi/mus_vs_trainer.mid Binary files differindex 531b5fba1..531b5fba1 100644 --- a/sound/songs/midi/mus_battle20.mid +++ b/sound/songs/midi/mus_vs_trainer.mid diff --git a/sound/songs/midi/mus_battle27.mid b/sound/songs/midi/mus_vs_wild.mid Binary files differindex 3d55c0181..3d55c0181 100644 --- a/sound/songs/midi/mus_battle27.mid +++ b/sound/songs/midi/mus_vs_wild.mid diff --git a/sound/songs/midi/mus_hideri.mid b/sound/songs/midi/mus_weather_groudon.mid Binary files differindex 0ca75c2e9..0ca75c2e9 100644 --- a/sound/songs/midi/mus_hideri.mid +++ b/sound/songs/midi/mus_weather_groudon.mid diff --git a/sound/songs/midi/se_dendou.mid b/sound/songs/midi/se_applause.mid Binary files differindex 4ab2a2212..4ab2a2212 100644 --- a/sound/songs/midi/se_dendou.mid +++ b/sound/songs/midi/se_applause.mid diff --git a/sound/songs/midi/se_hantei1.mid b/sound/songs/midi/se_arena_timeup1.mid Binary files differindex 1f2855420..1f2855420 100644 --- a/sound/songs/midi/se_hantei1.mid +++ b/sound/songs/midi/se_arena_timeup1.mid diff --git a/sound/songs/midi/se_hantei2.mid b/sound/songs/midi/se_arena_timeup2.mid Binary files differindex 06698dde9..06698dde9 100644 --- a/sound/songs/midi/se_hantei2.mid +++ b/sound/songs/midi/se_arena_timeup2.mid diff --git a/sound/songs/midi/se_bowa.mid b/sound/songs/midi/se_ball.mid Binary files differindex 684ea618c..684ea618c 100644 --- a/sound/songs/midi/se_bowa.mid +++ b/sound/songs/midi/se_ball.mid diff --git a/sound/songs/midi/se_kon.mid b/sound/songs/midi/se_ball_bounce_1.mid Binary files differindex 438d4b047..438d4b047 100644 --- a/sound/songs/midi/se_kon.mid +++ b/sound/songs/midi/se_ball_bounce_1.mid diff --git a/sound/songs/midi/se_kon2.mid b/sound/songs/midi/se_ball_bounce_2.mid Binary files differindex 961d82642..961d82642 100644 --- a/sound/songs/midi/se_kon2.mid +++ b/sound/songs/midi/se_ball_bounce_2.mid diff --git a/sound/songs/midi/se_kon3.mid b/sound/songs/midi/se_ball_bounce_3.mid Binary files differindex fc35f1931..fc35f1931 100644 --- a/sound/songs/midi/se_kon3.mid +++ b/sound/songs/midi/se_ball_bounce_3.mid diff --git a/sound/songs/midi/se_kon4.mid b/sound/songs/midi/se_ball_bounce_4.mid Binary files differindex b0f5561b9..b0f5561b9 100644 --- a/sound/songs/midi/se_kon4.mid +++ b/sound/songs/midi/se_ball_bounce_4.mid diff --git a/sound/songs/midi/se_bowa2.mid b/sound/songs/midi/se_ball_open.mid Binary files differindex 669bed700..669bed700 100644 --- a/sound/songs/midi/se_bowa2.mid +++ b/sound/songs/midi/se_ball_open.mid diff --git a/sound/songs/midi/se_nageru.mid b/sound/songs/midi/se_ball_throw.mid Binary files differindex 171f45a5a..171f45a5a 100644 --- a/sound/songs/midi/se_nageru.mid +++ b/sound/songs/midi/se_ball_throw.mid diff --git a/sound/songs/midi/se_suikomu.mid b/sound/songs/midi/se_ball_trade.mid Binary files differindex 871c8e5d3..871c8e5d3 100644 --- a/sound/songs/midi/se_suikomu.mid +++ b/sound/songs/midi/se_ball_trade.mid diff --git a/sound/songs/midi/se_tb_kon.mid b/sound/songs/midi/se_ball_tray_ball.mid Binary files differindex 8526da9c6..8526da9c6 100644 --- a/sound/songs/midi/se_tb_kon.mid +++ b/sound/songs/midi/se_ball_tray_ball.mid diff --git a/sound/songs/midi/se_tb_start.mid b/sound/songs/midi/se_ball_tray_enter.mid Binary files differindex c88e2a8ea..c88e2a8ea 100644 --- a/sound/songs/midi/se_tb_start.mid +++ b/sound/songs/midi/se_ball_tray_enter.mid diff --git a/sound/songs/midi/se_tb_kara.mid b/sound/songs/midi/se_ball_tray_exit.mid Binary files differindex a4c2a51d7..a4c2a51d7 100644 --- a/sound/songs/midi/se_tb_kara.mid +++ b/sound/songs/midi/se_ball_tray_exit.mid diff --git a/sound/songs/midi/se_fuusen2.mid b/sound/songs/midi/se_balloon_blue.mid Binary files differindex 4efc1a525..4efc1a525 100644 --- a/sound/songs/midi/se_fuusen2.mid +++ b/sound/songs/midi/se_balloon_blue.mid diff --git a/sound/songs/midi/se_fuusen1.mid b/sound/songs/midi/se_balloon_red.mid Binary files differindex d22679a86..d22679a86 100644 --- a/sound/songs/midi/se_fuusen1.mid +++ b/sound/songs/midi/se_balloon_red.mid diff --git a/sound/songs/midi/se_fuusen3.mid b/sound/songs/midi/se_balloon_yellow.mid Binary files differindex ae40e0008..ae40e0008 100644 --- a/sound/songs/midi/se_fuusen3.mid +++ b/sound/songs/midi/se_balloon_yellow.mid diff --git a/sound/songs/midi/se_ban.mid b/sound/songs/midi/se_bang.mid Binary files differindex 0722a1c36..0722a1c36 100644 --- a/sound/songs/midi/se_ban.mid +++ b/sound/songs/midi/se_bang.mid diff --git a/sound/songs/midi/se_moter.mid b/sound/songs/midi/se_berry_blender.mid Binary files differindex 8203333e5..8203333e5 100644 --- a/sound/songs/midi/se_moter.mid +++ b/sound/songs/midi/se_berry_blender.mid diff --git a/sound/songs/midi/se_jitensya.mid b/sound/songs/midi/se_bike_bell.mid Binary files differindex 9d5de6cbd..9d5de6cbd 100644 --- a/sound/songs/midi/se_jitensya.mid +++ b/sound/songs/midi/se_bike_bell.mid diff --git a/sound/songs/midi/se_jite_pyoko.mid b/sound/songs/midi/se_bike_hop.mid Binary files differindex 013be8590..013be8590 100644 --- a/sound/songs/midi/se_jite_pyoko.mid +++ b/sound/songs/midi/se_bike_hop.mid diff --git a/sound/songs/midi/se_toy_kabe.mid b/sound/songs/midi/se_breakable_door.mid Binary files differindex c35be0c0d..c35be0c0d 100644 --- a/sound/songs/midi/se_toy_kabe.mid +++ b/sound/songs/midi/se_breakable_door.mid diff --git a/sound/songs/midi/se_hashi.mid b/sound/songs/midi/se_bridge_walk.mid Binary files differindex fdd772c18..fdd772c18 100644 --- a/sound/songs/midi/se_hashi.mid +++ b/sound/songs/midi/se_bridge_walk.mid diff --git a/sound/songs/midi/se_tk_kasya.mid b/sound/songs/midi/se_click.mid Binary files differindex baa73e0c6..baa73e0c6 100644 --- a/sound/songs/midi/se_tk_kasya.mid +++ b/sound/songs/midi/se_click.mid diff --git a/sound/songs/midi/se_fu_zaku2.mid b/sound/songs/midi/se_contest_condition_lose.mid Binary files differindex 3fc903844..3fc903844 100644 --- a/sound/songs/midi/se_fu_zaku2.mid +++ b/sound/songs/midi/se_contest_condition_lose.mid diff --git a/sound/songs/midi/se_c_maku_d.mid b/sound/songs/midi/se_contest_curtain_fall.mid Binary files differindex 04e2bfb11..04e2bfb11 100644 --- a/sound/songs/midi/se_c_maku_d.mid +++ b/sound/songs/midi/se_contest_curtain_fall.mid diff --git a/sound/songs/midi/se_c_maku_u.mid b/sound/songs/midi/se_contest_curtain_rise.mid Binary files differindex 109f92322..109f92322 100644 --- a/sound/songs/midi/se_c_maku_u.mid +++ b/sound/songs/midi/se_contest_curtain_rise.mid diff --git a/sound/songs/midi/se_c_gaji.mid b/sound/songs/midi/se_contest_heart.mid Binary files differindex 94b6389b7..94b6389b7 100644 --- a/sound/songs/midi/se_c_gaji.mid +++ b/sound/songs/midi/se_contest_heart.mid diff --git a/sound/songs/midi/se_c_pasi.mid b/sound/songs/midi/se_contest_icon_change.mid Binary files differindex eea9c5707..eea9c5707 100644 --- a/sound/songs/midi/se_c_pasi.mid +++ b/sound/songs/midi/se_contest_icon_change.mid diff --git a/sound/songs/midi/se_c_syu.mid b/sound/songs/midi/se_contest_icon_clear.mid Binary files differindex 3766d5f51..3766d5f51 100644 --- a/sound/songs/midi/se_c_syu.mid +++ b/sound/songs/midi/se_contest_icon_clear.mid diff --git a/sound/songs/midi/se_c_pikon.mid b/sound/songs/midi/se_contest_mons_turn.mid Binary files differindex 718a61443..718a61443 100644 --- a/sound/songs/midi/se_c_pikon.mid +++ b/sound/songs/midi/se_contest_mons_turn.mid diff --git a/sound/songs/midi/se_jyuni.mid b/sound/songs/midi/se_contest_place.mid Binary files differindex f68a31e46..f68a31e46 100644 --- a/sound/songs/midi/se_jyuni.mid +++ b/sound/songs/midi/se_contest_place.mid diff --git a/sound/songs/midi/se_z_search.mid b/sound/songs/midi/se_dex_search.mid Binary files differindex 1869374af..1869374af 100644 --- a/sound/songs/midi/se_z_search.mid +++ b/sound/songs/midi/se_dex_search.mid diff --git a/sound/songs/midi/se_pinpon.mid b/sound/songs/midi/se_ding_dong.mid Binary files differindex 924dafda5..924dafda5 100644 --- a/sound/songs/midi/se_pinpon.mid +++ b/sound/songs/midi/se_ding_dong.mid diff --git a/sound/songs/midi/se_t_ooame.mid b/sound/songs/midi/se_downpour.mid Binary files differindex 3aedd4404..3aedd4404 100644 --- a/sound/songs/midi/se_t_ooame.mid +++ b/sound/songs/midi/se_downpour.mid diff --git a/sound/songs/midi/se_t_ooame_e.mid b/sound/songs/midi/se_downpour_stop.mid Binary files differindex b73010142..b73010142 100644 --- a/sound/songs/midi/se_t_ooame_e.mid +++ b/sound/songs/midi/se_downpour_stop.mid diff --git a/sound/songs/midi/se_kouka_m.mid b/sound/songs/midi/se_effective.mid Binary files differindex d98bd0027..d98bd0027 100644 --- a/sound/songs/midi/se_kouka_m.mid +++ b/sound/songs/midi/se_effective.mid diff --git a/sound/songs/midi/se_tamago.mid b/sound/songs/midi/se_egg_hatch.mid Binary files differindex 67d3959eb..67d3959eb 100644 --- a/sound/songs/midi/se_tamago.mid +++ b/sound/songs/midi/se_egg_hatch.mid diff --git a/sound/songs/midi/se_elebeta.mid b/sound/songs/midi/se_elevator.mid Binary files differindex 66ee5fd1f..66ee5fd1f 100644 --- a/sound/songs/midi/se_elebeta.mid +++ b/sound/songs/midi/se_elevator.mid diff --git a/sound/songs/midi/se_esuka.mid b/sound/songs/midi/se_escalator.mid Binary files differindex 6a9e22a5b..6a9e22a5b 100644 --- a/sound/songs/midi/se_esuka.mid +++ b/sound/songs/midi/se_escalator.mid diff --git a/sound/songs/midi/se_kaidan.mid b/sound/songs/midi/se_exit.mid Binary files differindex 575307d86..575307d86 100644 --- a/sound/songs/midi/se_kaidan.mid +++ b/sound/songs/midi/se_exit.mid diff --git a/sound/songs/midi/se_expmax.mid b/sound/songs/midi/se_exp_max.mid Binary files differindex 8772e915e..8772e915e 100644 --- a/sound/songs/midi/se_expmax.mid +++ b/sound/songs/midi/se_exp_max.mid diff --git a/sound/songs/midi/se_hazure.mid b/sound/songs/midi/se_failure.mid Binary files differindex c3c52f88f..c3c52f88f 100644 --- a/sound/songs/midi/se_hazure.mid +++ b/sound/songs/midi/se_failure.mid diff --git a/sound/songs/midi/se_poke_dead.mid b/sound/songs/midi/se_faint.mid Binary files differindex b6a0df4c8..b6a0df4c8 100644 --- a/sound/songs/midi/se_poke_dead.mid +++ b/sound/songs/midi/se_faint.mid diff --git a/sound/songs/midi/se_ru_hyuu.mid b/sound/songs/midi/se_fall.mid Binary files differindex 1adfc9268..1adfc9268 100644 --- a/sound/songs/midi/se_ru_hyuu.mid +++ b/sound/songs/midi/se_fall.mid diff --git a/sound/songs/midi/se_doku.mid b/sound/songs/midi/se_field_poison.mid Binary files differindex 83841203a..83841203a 100644 --- a/sound/songs/midi/se_doku.mid +++ b/sound/songs/midi/se_field_poison.mid diff --git a/sound/songs/midi/se_nigeru.mid b/sound/songs/midi/se_flee.mid Binary files differindex faf37d529..faf37d529 100644 --- a/sound/songs/midi/se_nigeru.mid +++ b/sound/songs/midi/se_flee.mid diff --git a/sound/songs/midi/se_bidoro.mid b/sound/songs/midi/se_glass_flute.mid Binary files differindex a0b639ba4..a0b639ba4 100644 --- a/sound/songs/midi/se_bidoro.mid +++ b/sound/songs/midi/se_glass_flute.mid diff --git a/sound/songs/midi/se_ru_gasyan.mid b/sound/songs/midi/se_ice_break.mid Binary files differindex 486eabb9b..486eabb9b 100644 --- a/sound/songs/midi/se_ru_gasyan.mid +++ b/sound/songs/midi/se_ice_break.mid diff --git a/sound/songs/midi/se_ru_bari.mid b/sound/songs/midi/se_ice_crack.mid Binary files differindex 14b1991e6..14b1991e6 100644 --- a/sound/songs/midi/se_ru_bari.mid +++ b/sound/songs/midi/se_ice_crack.mid diff --git a/sound/songs/midi/se_ru_gashin.mid b/sound/songs/midi/se_ice_stairs.mid Binary files differindex ae29a385b..ae29a385b 100644 --- a/sound/songs/midi/se_ru_gashin.mid +++ b/sound/songs/midi/se_ice_stairs.mid diff --git a/sound/songs/midi/se_op_basyu.mid b/sound/songs/midi/se_intro_blast.mid Binary files differindex 4648741c2..4648741c2 100644 --- a/sound/songs/midi/se_op_basyu.mid +++ b/sound/songs/midi/se_intro_blast.mid diff --git a/sound/songs/midi/se_daugi.mid b/sound/songs/midi/se_itemfinder.mid Binary files differindex 9b6538a70..9b6538a70 100644 --- a/sound/songs/midi/se_daugi.mid +++ b/sound/songs/midi/se_itemfinder.mid diff --git a/sound/songs/midi/se_fu_zuzuzu.mid b/sound/songs/midi/se_lavaridge_fall_warp.mid Binary files differindex 962113ad3..962113ad3 100644 --- a/sound/songs/midi/se_fu_zuzuzu.mid +++ b/sound/songs/midi/se_lavaridge_fall_warp.mid diff --git a/sound/songs/midi/se_dansa.mid b/sound/songs/midi/se_ledge.mid Binary files differindex 61eae0318..61eae0318 100644 --- a/sound/songs/midi/se_dansa.mid +++ b/sound/songs/midi/se_ledge.mid diff --git a/sound/songs/midi/se_hinsi.mid b/sound/songs/midi/se_low_health.mid Binary files differindex 3676a4a04..3676a4a04 100644 --- a/sound/songs/midi/se_hinsi.mid +++ b/sound/songs/midi/se_low_health.mid diff --git a/sound/songs/midi/se_w020.mid b/sound/songs/midi/se_m_bind.mid Binary files differindex eec8ccae9..eec8ccae9 100644 --- a/sound/songs/midi/se_w020.mid +++ b/sound/songs/midi/se_m_bind.mid diff --git a/sound/songs/midi/se_w004.mid b/sound/songs/midi/se_m_comet_punch.mid Binary files differindex a27538d81..a27538d81 100644 --- a/sound/songs/midi/se_w004.mid +++ b/sound/songs/midi/se_m_comet_punch.mid diff --git a/sound/songs/midi/se_w015.mid b/sound/songs/midi/se_m_cut.mid Binary files differindex 2f1b4e059..2f1b4e059 100644 --- a/sound/songs/midi/se_w015.mid +++ b/sound/songs/midi/se_m_cut.mid diff --git a/sound/songs/midi/se_w003.mid b/sound/songs/midi/se_m_double_slap.mid Binary files differindex 80e7a52a7..80e7a52a7 100644 --- a/sound/songs/midi/se_w003.mid +++ b/sound/songs/midi/se_m_double_slap.mid diff --git a/sound/songs/midi/se_w007.mid b/sound/songs/midi/se_m_fire_punch.mid Binary files differindex 2f75754f3..2f75754f3 100644 --- a/sound/songs/midi/se_w007.mid +++ b/sound/songs/midi/se_m_fire_punch.mid diff --git a/sound/songs/midi/se_w019.mid b/sound/songs/midi/se_m_fly.mid Binary files differindex 6e63f48cc..6e63f48cc 100644 --- a/sound/songs/midi/se_w019.mid +++ b/sound/songs/midi/se_m_fly.mid diff --git a/sound/songs/midi/se_w016.mid b/sound/songs/midi/se_m_gust.mid Binary files differindex 8bf167109..8bf167109 100644 --- a/sound/songs/midi/se_w016.mid +++ b/sound/songs/midi/se_m_gust.mid diff --git a/sound/songs/midi/se_w016b.mid b/sound/songs/midi/se_m_gust2.mid Binary files differindex 6dd7020f9..6dd7020f9 100644 --- a/sound/songs/midi/se_w016b.mid +++ b/sound/songs/midi/se_m_gust2.mid diff --git a/sound/songs/midi/se_w029.mid b/sound/songs/midi/se_m_headbutt.mid Binary files differindex 4cde4e2d5..4cde4e2d5 100644 --- a/sound/songs/midi/se_w029.mid +++ b/sound/songs/midi/se_m_headbutt.mid diff --git a/sound/songs/midi/se_w030.mid b/sound/songs/midi/se_m_horn_attack.mid Binary files differindex 426cdfea4..426cdfea4 100644 --- a/sound/songs/midi/se_w030.mid +++ b/sound/songs/midi/se_m_horn_attack.mid diff --git a/sound/songs/midi/se_w026.mid b/sound/songs/midi/se_m_jump_kick.mid Binary files differindex d43366801..d43366801 100644 --- a/sound/songs/midi/se_w026.mid +++ b/sound/songs/midi/se_m_jump_kick.mid diff --git a/sound/songs/midi/se_w043.mid b/sound/songs/midi/se_m_leer.mid Binary files differindex b44876722..b44876722 100644 --- a/sound/songs/midi/se_w043.mid +++ b/sound/songs/midi/se_m_leer.mid diff --git a/sound/songs/midi/se_w025.mid b/sound/songs/midi/se_m_mega_kick.mid Binary files differindex bcc9590b4..bcc9590b4 100644 --- a/sound/songs/midi/se_w025.mid +++ b/sound/songs/midi/se_m_mega_kick.mid diff --git a/sound/songs/midi/se_w025b.mid b/sound/songs/midi/se_m_mega_kick2.mid Binary files differindex ac165424b..ac165424b 100644 --- a/sound/songs/midi/se_w025b.mid +++ b/sound/songs/midi/se_m_mega_kick2.mid diff --git a/sound/songs/midi/se_w006.mid b/sound/songs/midi/se_m_pay_day.mid Binary files differindex 5f59591be..5f59591be 100644 --- a/sound/songs/midi/se_w006.mid +++ b/sound/songs/midi/se_m_pay_day.mid diff --git a/sound/songs/midi/se_w013.mid b/sound/songs/midi/se_m_razor_wind.mid Binary files differindex ae94dafa2..ae94dafa2 100644 --- a/sound/songs/midi/se_w013.mid +++ b/sound/songs/midi/se_m_razor_wind.mid diff --git a/sound/songs/midi/se_w013b.mid b/sound/songs/midi/se_m_razor_wind2.mid Binary files differindex 09e8d4c5d..09e8d4c5d 100644 --- a/sound/songs/midi/se_w013b.mid +++ b/sound/songs/midi/se_m_razor_wind2.mid diff --git a/sound/songs/midi/se_w028.mid b/sound/songs/midi/se_m_sand_attack.mid Binary files differindex 7a053f799..7a053f799 100644 --- a/sound/songs/midi/se_w028.mid +++ b/sound/songs/midi/se_m_sand_attack.mid diff --git a/sound/songs/midi/se_w010.mid b/sound/songs/midi/se_m_scratch.mid Binary files differindex 4b3c1cfcf..4b3c1cfcf 100644 --- a/sound/songs/midi/se_w010.mid +++ b/sound/songs/midi/se_m_scratch.mid diff --git a/sound/songs/midi/se_w014.mid b/sound/songs/midi/se_m_swords_dance.mid Binary files differindex 8b17c79a9..8b17c79a9 100644 --- a/sound/songs/midi/se_w014.mid +++ b/sound/songs/midi/se_m_swords_dance.mid diff --git a/sound/songs/midi/se_w039.mid b/sound/songs/midi/se_m_tail_whip.mid Binary files differindex 771581ce0..771581ce0 100644 --- a/sound/songs/midi/se_w039.mid +++ b/sound/songs/midi/se_m_tail_whip.mid diff --git a/sound/songs/midi/se_w036.mid b/sound/songs/midi/se_m_take_down.mid Binary files differindex e5427c8df..e5427c8df 100644 --- a/sound/songs/midi/se_w036.mid +++ b/sound/songs/midi/se_m_take_down.mid diff --git a/sound/songs/midi/se_w011.mid b/sound/songs/midi/se_m_vicegrip.mid Binary files differindex 703ae492b..703ae492b 100644 --- a/sound/songs/midi/se_w011.mid +++ b/sound/songs/midi/se_m_vicegrip.mid diff --git a/sound/songs/midi/se_w017.mid b/sound/songs/midi/se_m_wing_attack.mid Binary files differindex 459e72406..459e72406 100644 --- a/sound/songs/midi/se_w017.mid +++ b/sound/songs/midi/se_m_wing_attack.mid diff --git a/sound/songs/midi/se_toy_dango.mid b/sound/songs/midi/se_mud_ball.mid Binary files differindex baa1ed24e..baa1ed24e 100644 --- a/sound/songs/midi/se_toy_dango.mid +++ b/sound/songs/midi/se_mud_ball.mid diff --git a/sound/songs/midi/se_bt_start.mid b/sound/songs/midi/se_mugshot.mid Binary files differindex 8c13783e9..8c13783e9 100644 --- a/sound/songs/midi/se_bt_start.mid +++ b/sound/songs/midi/se_mugshot.mid diff --git a/sound/songs/midi/se_kouka_l.mid b/sound/songs/midi/se_not_effective.mid Binary files differindex 34aafbb18..34aafbb18 100644 --- a/sound/songs/midi/se_kouka_l.mid +++ b/sound/songs/midi/se_not_effective.mid diff --git a/sound/songs/midi/se_toy_a.mid b/sound/songs/midi/se_note_a.mid Binary files differindex b6d5b6159..b6d5b6159 100644 --- a/sound/songs/midi/se_toy_a.mid +++ b/sound/songs/midi/se_note_a.mid diff --git a/sound/songs/midi/se_toy_b.mid b/sound/songs/midi/se_note_b.mid Binary files differindex 9e27e72e7..9e27e72e7 100644 --- a/sound/songs/midi/se_toy_b.mid +++ b/sound/songs/midi/se_note_b.mid diff --git a/sound/songs/midi/se_toy_c.mid b/sound/songs/midi/se_note_c.mid Binary files differindex 3d10dc6cb..3d10dc6cb 100644 --- a/sound/songs/midi/se_toy_c.mid +++ b/sound/songs/midi/se_note_c.mid diff --git a/sound/songs/midi/se_toy_c1.mid b/sound/songs/midi/se_note_c_high.mid Binary files differindex 345925255..345925255 100644 --- a/sound/songs/midi/se_toy_c1.mid +++ b/sound/songs/midi/se_note_c_high.mid diff --git a/sound/songs/midi/se_toy_d.mid b/sound/songs/midi/se_note_d.mid Binary files differindex 0de257ee5..0de257ee5 100644 --- a/sound/songs/midi/se_toy_d.mid +++ b/sound/songs/midi/se_note_d.mid diff --git a/sound/songs/midi/se_toy_e.mid b/sound/songs/midi/se_note_e.mid Binary files differindex 214b32bca..214b32bca 100644 --- a/sound/songs/midi/se_toy_e.mid +++ b/sound/songs/midi/se_note_e.mid diff --git a/sound/songs/midi/se_toy_f.mid b/sound/songs/midi/se_note_f.mid Binary files differindex 780e162e0..780e162e0 100644 --- a/sound/songs/midi/se_toy_f.mid +++ b/sound/songs/midi/se_note_f.mid diff --git a/sound/songs/midi/se_toy_g.mid b/sound/songs/midi/se_note_g.mid Binary files differindex 73dae55a5..73dae55a5 100644 --- a/sound/songs/midi/se_toy_g.mid +++ b/sound/songs/midi/se_note_g.mid diff --git a/sound/songs/midi/se_tama.mid b/sound/songs/midi/se_orb.mid Binary files differindex aa9fc7889..aa9fc7889 100644 --- a/sound/songs/midi/se_tama.mid +++ b/sound/songs/midi/se_orb.mid diff --git a/sound/songs/midi/se_curtain.mid b/sound/songs/midi/se_pike_curtain_close.mid Binary files differindex 88c684318..88c684318 100644 --- a/sound/songs/midi/se_curtain.mid +++ b/sound/songs/midi/se_pike_curtain_close.mid diff --git a/sound/songs/midi/se_curtain1.mid b/sound/songs/midi/se_pike_curtain_open.mid Binary files differindex 0a40e158e..0a40e158e 100644 --- a/sound/songs/midi/se_curtain1.mid +++ b/sound/songs/midi/se_pike_curtain_open.mid diff --git a/sound/songs/midi/se_toreeye.mid b/sound/songs/midi/se_pokenav_call.mid Binary files differindex e25a9ac74..e25a9ac74 100644 --- a/sound/songs/midi/se_toreeye.mid +++ b/sound/songs/midi/se_pokenav_call.mid diff --git a/sound/songs/midi/se_toreoff.mid b/sound/songs/midi/se_pokenav_hang_up.mid Binary files differindex 391f23a3d..391f23a3d 100644 --- a/sound/songs/midi/se_toreoff.mid +++ b/sound/songs/midi/se_pokenav_hang_up.mid diff --git a/sound/songs/midi/se_pn_off.mid b/sound/songs/midi/se_pokenav_off.mid Binary files differindex 2fba0d159..2fba0d159 100644 --- a/sound/songs/midi/se_pn_off.mid +++ b/sound/songs/midi/se_pokenav_off.mid diff --git a/sound/songs/midi/se_pn_on.mid b/sound/songs/midi/se_pokenav_on.mid Binary files differindex dfe850794..dfe850794 100644 --- a/sound/songs/midi/se_pn_on.mid +++ b/sound/songs/midi/se_pokenav_on.mid diff --git a/sound/songs/midi/se_mizu.mid b/sound/songs/midi/se_puddle.mid Binary files differindex dfdc85619..dfdc85619 100644 --- a/sound/songs/midi/se_mizu.mid +++ b/sound/songs/midi/se_puddle.mid diff --git a/sound/songs/midi/se_t_koame.mid b/sound/songs/midi/se_rain.mid Binary files differindex d8491b293..d8491b293 100644 --- a/sound/songs/midi/se_t_koame.mid +++ b/sound/songs/midi/se_rain.mid diff --git a/sound/songs/midi/se_t_koame_e.mid b/sound/songs/midi/se_rain_stop.mid Binary files differindex 4a04f73f9..4a04f73f9 100644 --- a/sound/songs/midi/se_t_koame_e.mid +++ b/sound/songs/midi/se_rain_stop.mid diff --git a/sound/songs/midi/se_tu_saa.mid b/sound/songs/midi/se_repel.mid Binary files differindex c84b176cb..c84b176cb 100644 --- a/sound/songs/midi/se_tu_saa.mid +++ b/sound/songs/midi/se_repel.mid diff --git a/sound/songs/midi/se_rg_bag1.mid b/sound/songs/midi/se_rg_bag_cursor.mid Binary files differindex ac783bd38..ac783bd38 100644 --- a/sound/songs/midi/se_rg_bag1.mid +++ b/sound/songs/midi/se_rg_bag_cursor.mid diff --git a/sound/songs/midi/se_rg_bag2.mid b/sound/songs/midi/se_rg_bag_pocket.mid Binary files differindex 97a5b32df..97a5b32df 100644 --- a/sound/songs/midi/se_rg_bag2.mid +++ b/sound/songs/midi/se_rg_bag_pocket.mid diff --git a/sound/songs/midi/se_rg_getting.mid b/sound/songs/midi/se_rg_ball_click.mid Binary files differindex f8bf4b38f..f8bf4b38f 100644 --- a/sound/songs/midi/se_rg_getting.mid +++ b/sound/songs/midi/se_rg_ball_click.mid diff --git a/sound/songs/midi/se_rg_card1.mid b/sound/songs/midi/se_rg_card_flip.mid Binary files differindex 22a50e6df..22a50e6df 100644 --- a/sound/songs/midi/se_rg_card1.mid +++ b/sound/songs/midi/se_rg_card_flip.mid diff --git a/sound/songs/midi/se_rg_card2.mid b/sound/songs/midi/se_rg_card_flipping.mid Binary files differindex 02276b2ad..02276b2ad 100644 --- a/sound/songs/midi/se_rg_card2.mid +++ b/sound/songs/midi/se_rg_card_flipping.mid diff --git a/sound/songs/midi/se_rg_card3.mid b/sound/songs/midi/se_rg_card_open.mid Binary files differindex 47cc451d0..47cc451d0 100644 --- a/sound/songs/midi/se_rg_card3.mid +++ b/sound/songs/midi/se_rg_card_open.mid diff --git a/sound/songs/midi/se_rg_deomov.mid b/sound/songs/midi/se_rg_deoxys_move.mid Binary files differindex 0149d29db..0149d29db 100644 --- a/sound/songs/midi/se_rg_deomov.mid +++ b/sound/songs/midi/se_rg_deoxys_move.mid diff --git a/sound/songs/midi/se_rg_w_door.mid b/sound/songs/midi/se_rg_door.mid Binary files differindex e0b6ba957..e0b6ba957 100644 --- a/sound/songs/midi/se_rg_w_door.mid +++ b/sound/songs/midi/se_rg_door.mid diff --git a/sound/songs/midi/se_rg_help_cl.mid b/sound/songs/midi/se_rg_help_close.mid Binary files differindex 09b151631..09b151631 100644 --- a/sound/songs/midi/se_rg_help_cl.mid +++ b/sound/songs/midi/se_rg_help_close.mid diff --git a/sound/songs/midi/se_rg_help_ng.mid b/sound/songs/midi/se_rg_help_error.mid Binary files differindex f9597632a..f9597632a 100644 --- a/sound/songs/midi/se_rg_help_ng.mid +++ b/sound/songs/midi/se_rg_help_error.mid diff --git a/sound/songs/midi/se_rg_help_op.mid b/sound/songs/midi/se_rg_help_open.mid Binary files differindex 79b6c53a8..79b6c53a8 100644 --- a/sound/songs/midi/se_rg_help_op.mid +++ b/sound/songs/midi/se_rg_help_open.mid diff --git a/sound/songs/midi/se_rg_nawamiss.mid b/sound/songs/midi/se_rg_poke_jump_failure.mid Binary files differindex c3c52f88f..c3c52f88f 100644 --- a/sound/songs/midi/se_rg_nawamiss.mid +++ b/sound/songs/midi/se_rg_poke_jump_failure.mid diff --git a/sound/songs/midi/se_rg_excellent.mid b/sound/songs/midi/se_rg_poke_jump_success.mid Binary files differindex 8f7c267c4..8f7c267c4 100644 --- a/sound/songs/midi/se_rg_excellent.mid +++ b/sound/songs/midi/se_rg_poke_jump_success.mid diff --git a/sound/songs/midi/se_rg_kiteki.mid b/sound/songs/midi/se_rg_ss_anne_horn.mid Binary files differindex 07e19663a..07e19663a 100644 --- a/sound/songs/midi/se_rg_kiteki.mid +++ b/sound/songs/midi/se_rg_ss_anne_horn.mid diff --git a/sound/songs/midi/se_hi_turun.mid b/sound/songs/midi/se_rotating_gate.mid Binary files differindex 2a09f6c55..2a09f6c55 100644 --- a/sound/songs/midi/se_hi_turun.mid +++ b/sound/songs/midi/se_rotating_gate.mid diff --git a/sound/songs/midi/se_tamakoro.mid b/sound/songs/midi/se_roulette_ball.mid Binary files differindex c6dce2865..c6dce2865 100644 --- a/sound/songs/midi/se_tamakoro.mid +++ b/sound/songs/midi/se_roulette_ball.mid diff --git a/sound/songs/midi/se_tamakoro_e.mid b/sound/songs/midi/se_roulette_ball2.mid Binary files differindex 13675c690..13675c690 100644 --- a/sound/songs/midi/se_tamakoro_e.mid +++ b/sound/songs/midi/se_roulette_ball2.mid diff --git a/sound/songs/midi/se_reapoke.mid b/sound/songs/midi/se_shiny.mid Binary files differindex b9a4fe810..b9a4fe810 100644 --- a/sound/songs/midi/se_reapoke.mid +++ b/sound/songs/midi/se_shiny.mid diff --git a/sound/songs/midi/se_naminori.mid b/sound/songs/midi/se_ship.mid Binary files differindex ba2aa4931..ba2aa4931 100644 --- a/sound/songs/midi/se_naminori.mid +++ b/sound/songs/midi/se_ship.mid diff --git a/sound/songs/midi/se_regi.mid b/sound/songs/midi/se_shop.mid Binary files differindex 28b727cb5..28b727cb5 100644 --- a/sound/songs/midi/se_regi.mid +++ b/sound/songs/midi/se_shop.mid diff --git a/sound/songs/midi/se_jido_doa.mid b/sound/songs/midi/se_sliding_door.mid Binary files differindex 62fa8c911..62fa8c911 100644 --- a/sound/songs/midi/se_jido_doa.mid +++ b/sound/songs/midi/se_sliding_door.mid diff --git a/sound/songs/midi/se_seikai.mid b/sound/songs/midi/se_success.mid Binary files differindex 32bfa07a8..32bfa07a8 100644 --- a/sound/songs/midi/se_seikai.mid +++ b/sound/songs/midi/se_success.mid diff --git a/sound/songs/midi/se_ussoki.mid b/sound/songs/midi/se_sudowoodo_shake.mid Binary files differindex c5be0de8d..c5be0de8d 100644 --- a/sound/songs/midi/se_ussoki.mid +++ b/sound/songs/midi/se_sudowoodo_shake.mid diff --git a/sound/songs/midi/se_kouka_h.mid b/sound/songs/midi/se_super_effective.mid Binary files differindex e70b12901..e70b12901 100644 --- a/sound/songs/midi/se_kouka_h.mid +++ b/sound/songs/midi/se_super_effective.mid diff --git a/sound/songs/midi/se_mu_pachi.mid b/sound/songs/midi/se_switch.mid Binary files differindex 3d909dadb..3d909dadb 100644 --- a/sound/songs/midi/se_mu_pachi.mid +++ b/sound/songs/midi/se_switch.mid diff --git a/sound/songs/midi/se_basabasa.mid b/sound/songs/midi/se_taillow_wing_flap.mid Binary files differindex 7a965abf5..7a965abf5 100644 --- a/sound/songs/midi/se_basabasa.mid +++ b/sound/songs/midi/se_taillow_wing_flap.mid diff --git a/sound/songs/midi/se_t_kami.mid b/sound/songs/midi/se_thunder.mid Binary files differindex 71d8163bd..71d8163bd 100644 --- a/sound/songs/midi/se_t_kami.mid +++ b/sound/songs/midi/se_thunder.mid diff --git a/sound/songs/midi/se_t_kami2.mid b/sound/songs/midi/se_thunder2.mid Binary files differindex c47731b94..c47731b94 100644 --- a/sound/songs/midi/se_t_kami2.mid +++ b/sound/songs/midi/se_thunder2.mid diff --git a/sound/songs/midi/se_t_ame.mid b/sound/songs/midi/se_thunderstorm.mid Binary files differindex 9e15434cd..9e15434cd 100644 --- a/sound/songs/midi/se_t_ame.mid +++ b/sound/songs/midi/se_thunderstorm.mid diff --git a/sound/songs/midi/se_t_ame_e.mid b/sound/songs/midi/se_thunderstorm_stop.mid Binary files differindex 2397eea64..2397eea64 100644 --- a/sound/songs/midi/se_t_ame_e.mid +++ b/sound/songs/midi/se_thunderstorm_stop.mid diff --git a/sound/songs/midi/se_track_door.mid b/sound/songs/midi/se_truck_door.mid Binary files differindex 5cc1dbad8..5cc1dbad8 100644 --- a/sound/songs/midi/se_track_door.mid +++ b/sound/songs/midi/se_truck_door.mid diff --git a/sound/songs/midi/se_track_move.mid b/sound/songs/midi/se_truck_move.mid Binary files differindex ced96f83a..ced96f83a 100644 --- a/sound/songs/midi/se_track_move.mid +++ b/sound/songs/midi/se_truck_move.mid diff --git a/sound/songs/midi/se_track_stop.mid b/sound/songs/midi/se_truck_stop.mid Binary files differindex 509b2dd8e..509b2dd8e 100644 --- a/sound/songs/midi/se_track_stop.mid +++ b/sound/songs/midi/se_truck_stop.mid diff --git a/sound/songs/midi/se_track_haiki.mid b/sound/songs/midi/se_truck_unload.mid Binary files differindex 42db7fd0e..42db7fd0e 100644 --- a/sound/songs/midi/se_track_haiki.mid +++ b/sound/songs/midi/se_truck_unload.mid diff --git a/sound/songs/midi/se_ki_gasyan.mid b/sound/songs/midi/se_unlock.mid Binary files differindex 8a57132d9..8a57132d9 100644 --- a/sound/songs/midi/se_ki_gasyan.mid +++ b/sound/songs/midi/se_unlock.mid diff --git a/sound/songs/midi/se_kaifuku.mid b/sound/songs/midi/se_use_item.mid Binary files differindex 4375a705d..4375a705d 100644 --- a/sound/songs/midi/se_kaifuku.mid +++ b/sound/songs/midi/se_use_item.mid diff --git a/sound/songs/midi/se_jihanki.mid b/sound/songs/midi/se_vend.mid Binary files differindex ac6436d72..ac6436d72 100644 --- a/sound/songs/midi/se_jihanki.mid +++ b/sound/songs/midi/se_vend.mid diff --git a/sound/songs/midi/se_tk_warpin.mid b/sound/songs/midi/se_warp_in.mid Binary files differindex e47d3df4d..e47d3df4d 100644 --- a/sound/songs/midi/se_tk_warpin.mid +++ b/sound/songs/midi/se_warp_in.mid diff --git a/sound/songs/midi/se_tk_warpout.mid b/sound/songs/midi/se_warp_out.mid Binary files differindex 5072e6448..5072e6448 100644 --- a/sound/songs/midi/se_tk_warpout.mid +++ b/sound/songs/midi/se_warp_out.mid diff --git a/sound/songs/se_z_page.s b/sound/songs/se_dex_page.s index a767bf5ad..884f0d12a 100644 --- a/sound/songs/se_z_page.s +++ b/sound/songs/se_dex_page.s @@ -1,28 +1,28 @@ .include "MPlayDef.s" - .equ se_z_page_grp, voicegroup127 - .equ se_z_page_pri, 5 - .equ se_z_page_rev, reverb_set+50 - .equ se_z_page_mvl, 127 - .equ se_z_page_key, 0 - .equ se_z_page_tbs, 1 - .equ se_z_page_exg, 0 - .equ se_z_page_cmp, 1 + .equ se_dex_page_grp, voicegroup127 + .equ se_dex_page_pri, 5 + .equ se_dex_page_rev, reverb_set+50 + .equ se_dex_page_mvl, 127 + .equ se_dex_page_key, 0 + .equ se_dex_page_tbs, 1 + .equ se_dex_page_exg, 0 + .equ se_dex_page_cmp, 1 .section .rodata - .global se_z_page + .global se_dex_page .align 2 @********************** Track 1 **********************@ -se_z_page_1: - .byte KEYSH , se_z_page_key+0 - .byte TEMPO , 100*se_z_page_tbs/2 +se_dex_page_1: + .byte KEYSH , se_dex_page_key+0 + .byte TEMPO , 100*se_dex_page_tbs/2 .byte VOICE , 4 .byte BENDR , 12 .byte XCMD , xIECV , 10 .byte xIECL , 8 - .byte VOL , 90*se_z_page_mvl/mxv + .byte VOL , 90*se_dex_page_mvl/mxv .byte BEND , c_v+4 .byte N01 , Cn5 , v064 .byte W01 @@ -41,14 +41,14 @@ se_z_page_1: @******************************************************@ .align 2 -se_z_page: +se_dex_page: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_z_page_pri @ Priority - .byte se_z_page_rev @ Reverb. + .byte se_dex_page_pri @ Priority + .byte se_dex_page_rev @ Reverb. - .word se_z_page_grp + .word se_dex_page_grp - .word se_z_page_1 + .word se_dex_page_1 .end diff --git a/sound/songs/se_dex_scroll.s b/sound/songs/se_dex_scroll.s new file mode 100644 index 000000000..6c7ad7746 --- /dev/null +++ b/sound/songs/se_dex_scroll.s @@ -0,0 +1,46 @@ + .include "MPlayDef.s" + + .equ se_dex_scroll_grp, voicegroup127 + .equ se_dex_scroll_pri, 5 + .equ se_dex_scroll_rev, reverb_set+50 + .equ se_dex_scroll_mvl, 127 + .equ se_dex_scroll_key, 0 + .equ se_dex_scroll_tbs, 1 + .equ se_dex_scroll_exg, 0 + .equ se_dex_scroll_cmp, 1 + + .section .rodata + .global se_dex_scroll + .align 2 + +@********************** Track 1 **********************@ + +se_dex_scroll_1: + .byte KEYSH , se_dex_scroll_key+0 + .byte TEMPO , 100*se_dex_scroll_tbs/2 + .byte VOICE , 4 + .byte BENDR , 12 + .byte XCMD , xIECV , 10 + .byte xIECL , 8 + .byte VOL , 40*se_dex_scroll_mvl/mxv + .byte BEND , c_v+4 + .byte N01 , Gn4 , v127 + .byte W01 + .byte Gn4 , v020 + .byte W02 + .byte FINE + +@******************************************************@ + .align 2 + +se_dex_scroll: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_dex_scroll_pri @ Priority + .byte se_dex_scroll_rev @ Reverb. + + .word se_dex_scroll_grp + + .word se_dex_scroll_1 + + .end diff --git a/sound/songs/se_w071.s b/sound/songs/se_m_absorb.s index 3f1e008b9..35213fdaa 100644 --- a/sound/songs/se_w071.s +++ b/sound/songs/se_m_absorb.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w071_grp, voicegroup128 - .equ se_w071_pri, 4 - .equ se_w071_rev, reverb_set+50 - .equ se_w071_mvl, 127 - .equ se_w071_key, 0 - .equ se_w071_tbs, 1 - .equ se_w071_exg, 0 - .equ se_w071_cmp, 1 + .equ se_m_absorb_grp, voicegroup128 + .equ se_m_absorb_pri, 4 + .equ se_m_absorb_rev, reverb_set+50 + .equ se_m_absorb_mvl, 127 + .equ se_m_absorb_key, 0 + .equ se_m_absorb_tbs, 1 + .equ se_m_absorb_exg, 0 + .equ se_m_absorb_cmp, 1 .section .rodata - .global se_w071 + .global se_m_absorb .align 2 @********************** Track 1 **********************@ -se_w071_1: - .byte KEYSH , se_w071_key+0 - .byte TEMPO , 150*se_w071_tbs/2 +se_m_absorb_1: + .byte KEYSH , se_m_absorb_key+0 + .byte TEMPO , 150*se_m_absorb_tbs/2 .byte VOICE , 24 - .byte VOL , 110*se_w071_mvl/mxv + .byte VOL , 110*se_m_absorb_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -28,30 +28,30 @@ se_w071_1: .byte Gn6 , v112 .byte W01 .byte VOICE , 38 - .byte VOL , 58*se_w071_mvl/mxv + .byte VOL , 58*se_m_absorb_mvl/mxv .byte N08 , Gn4 .byte W01 - .byte VOL , 68*se_w071_mvl/mxv + .byte VOL , 68*se_m_absorb_mvl/mxv .byte PAN , c_v+8 .byte BEND , c_v-20 .byte W01 - .byte VOL , 75*se_w071_mvl/mxv + .byte VOL , 75*se_m_absorb_mvl/mxv .byte PAN , c_v-8 .byte BEND , c_v-48 .byte W02 - .byte VOL , 83*se_w071_mvl/mxv + .byte VOL , 83*se_m_absorb_mvl/mxv .byte PAN , c_v+8 .byte BEND , c_v-18 .byte W01 - .byte VOL , 90*se_w071_mvl/mxv + .byte VOL , 90*se_m_absorb_mvl/mxv .byte PAN , c_v-8 .byte BEND , c_v+10 .byte W01 - .byte VOL , 101*se_w071_mvl/mxv + .byte VOL , 101*se_m_absorb_mvl/mxv .byte PAN , c_v+9 .byte BEND , c_v+39 .byte W01 - .byte VOL , 110*se_w071_mvl/mxv + .byte VOL , 110*se_m_absorb_mvl/mxv .byte PAN , c_v-8 .byte BEND , c_v+63 .byte W03 @@ -60,14 +60,14 @@ se_w071_1: @******************************************************@ .align 2 -se_w071: +se_m_absorb: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w071_pri @ Priority - .byte se_w071_rev @ Reverb. + .byte se_m_absorb_pri @ Priority + .byte se_m_absorb_rev @ Reverb. - .word se_w071_grp + .word se_m_absorb_grp - .word se_w071_1 + .word se_m_absorb_1 .end diff --git a/sound/songs/se_w071b.s b/sound/songs/se_m_absorb_2.s index 81d8fe8c7..3f9df6dc4 100644 --- a/sound/songs/se_w071b.s +++ b/sound/songs/se_m_absorb_2.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w071b_grp, voicegroup128 - .equ se_w071b_pri, 4 - .equ se_w071b_rev, reverb_set+50 - .equ se_w071b_mvl, 127 - .equ se_w071b_key, 0 - .equ se_w071b_tbs, 1 - .equ se_w071b_exg, 0 - .equ se_w071b_cmp, 1 + .equ se_m_absorb_2_grp, voicegroup128 + .equ se_m_absorb_2_pri, 4 + .equ se_m_absorb_2_rev, reverb_set+50 + .equ se_m_absorb_2_mvl, 127 + .equ se_m_absorb_2_key, 0 + .equ se_m_absorb_2_tbs, 1 + .equ se_m_absorb_2_exg, 0 + .equ se_m_absorb_2_cmp, 1 .section .rodata - .global se_w071b + .global se_m_absorb_2 .align 2 @********************** Track 1 **********************@ -se_w071b_1: - .byte KEYSH , se_w071b_key+0 - .byte TEMPO , 150*se_w071b_tbs/2 +se_m_absorb_2_1: + .byte KEYSH , se_m_absorb_2_key+0 + .byte TEMPO , 150*se_m_absorb_2_tbs/2 .byte VOICE , 46 - .byte VOL , 110*se_w071b_mvl/mxv + .byte VOL , 110*se_m_absorb_2_mvl/mxv .byte BENDR , 2 .byte PAN , c_v+0 .byte BEND , c_v+15 @@ -81,11 +81,11 @@ se_w071b_1: @********************** Track 2 **********************@ -se_w071b_2: - .byte KEYSH , se_w071b_key+0 +se_m_absorb_2_2: + .byte KEYSH , se_m_absorb_2_key+0 .byte VOICE , 53 .byte BENDR , 2 - .byte VOL , 43*se_w071b_mvl/mxv + .byte VOL , 43*se_m_absorb_2_mvl/mxv .byte BEND , c_v+15 .byte N02 , An6 , v112 .byte W02 @@ -141,15 +141,15 @@ se_w071b_2: @******************************************************@ .align 2 -se_w071b: +se_m_absorb_2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w071b_pri @ Priority - .byte se_w071b_rev @ Reverb. + .byte se_m_absorb_2_pri @ Priority + .byte se_m_absorb_2_rev @ Reverb. - .word se_w071b_grp + .word se_m_absorb_2_grp - .word se_w071b_1 - .word se_w071b_2 + .word se_m_absorb_2_1 + .word se_m_absorb_2_2 .end diff --git a/sound/songs/se_w151.s b/sound/songs/se_m_acid_armor.s index c012b2d5f..c7f350a9b 100644 --- a/sound/songs/se_w151.s +++ b/sound/songs/se_m_acid_armor.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w151_grp, voicegroup128 - .equ se_w151_pri, 4 - .equ se_w151_rev, reverb_set+50 - .equ se_w151_mvl, 127 - .equ se_w151_key, 0 - .equ se_w151_tbs, 1 - .equ se_w151_exg, 0 - .equ se_w151_cmp, 1 + .equ se_m_acid_armor_grp, voicegroup128 + .equ se_m_acid_armor_pri, 4 + .equ se_m_acid_armor_rev, reverb_set+50 + .equ se_m_acid_armor_mvl, 127 + .equ se_m_acid_armor_key, 0 + .equ se_m_acid_armor_tbs, 1 + .equ se_m_acid_armor_exg, 0 + .equ se_m_acid_armor_cmp, 1 .section .rodata - .global se_w151 + .global se_m_acid_armor .align 2 @********************** Track 1 **********************@ -se_w151_1: - .byte KEYSH , se_w151_key+0 - .byte TEMPO , 150*se_w151_tbs/2 +se_m_acid_armor_1: + .byte KEYSH , se_m_acid_armor_key+0 + .byte TEMPO , 150*se_m_acid_armor_tbs/2 .byte VOICE , 31 - .byte VOL , 110*se_w151_mvl/mxv + .byte VOL , 110*se_m_acid_armor_mvl/mxv .byte BENDR , 24 .byte PAN , c_v+0 .byte BEND , c_v-37 @@ -189,14 +189,14 @@ se_w151_1: @******************************************************@ .align 2 -se_w151: +se_m_acid_armor: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w151_pri @ Priority - .byte se_w151_rev @ Reverb. + .byte se_m_acid_armor_pri @ Priority + .byte se_m_acid_armor_rev @ Reverb. - .word se_w151_grp + .word se_m_acid_armor_grp - .word se_w151_1 + .word se_m_acid_armor_1 .end diff --git a/sound/songs/se_w213.s b/sound/songs/se_m_attract.s index b35e17038..8e18c16dc 100644 --- a/sound/songs/se_w213.s +++ b/sound/songs/se_m_attract.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w213_grp, voicegroup128 - .equ se_w213_pri, 4 - .equ se_w213_rev, reverb_set+50 - .equ se_w213_mvl, 127 - .equ se_w213_key, 0 - .equ se_w213_tbs, 1 - .equ se_w213_exg, 0 - .equ se_w213_cmp, 1 + .equ se_m_attract_grp, voicegroup128 + .equ se_m_attract_pri, 4 + .equ se_m_attract_rev, reverb_set+50 + .equ se_m_attract_mvl, 127 + .equ se_m_attract_key, 0 + .equ se_m_attract_tbs, 1 + .equ se_m_attract_exg, 0 + .equ se_m_attract_cmp, 1 .section .rodata - .global se_w213 + .global se_m_attract .align 2 @********************** Track 1 **********************@ -se_w213_1: - .byte KEYSH , se_w213_key+0 - .byte TEMPO , 210*se_w213_tbs/2 +se_m_attract_1: + .byte KEYSH , se_m_attract_key+0 + .byte TEMPO , 210*se_m_attract_tbs/2 .byte VOICE , 46 - .byte VOL , 95*se_w213_mvl/mxv + .byte VOL , 95*se_m_attract_mvl/mxv .byte BENDR , 2 .byte PAN , c_v+0 .byte BEND , c_v+15 @@ -67,11 +67,11 @@ se_w213_1: @********************** Track 2 **********************@ -se_w213_2: - .byte KEYSH , se_w213_key+0 +se_m_attract_2: + .byte KEYSH , se_m_attract_key+0 .byte VOICE , 53 .byte BENDR , 2 - .byte VOL , 43*se_w213_mvl/mxv + .byte VOL , 43*se_m_attract_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+15 .byte N06 , Cn5 , v120 @@ -112,15 +112,15 @@ se_w213_2: @******************************************************@ .align 2 -se_w213: +se_m_attract: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w213_pri @ Priority - .byte se_w213_rev @ Reverb. + .byte se_m_attract_pri @ Priority + .byte se_m_attract_rev @ Reverb. - .word se_w213_grp + .word se_m_attract_grp - .word se_w213_1 - .word se_w213_2 + .word se_m_attract_1 + .word se_m_attract_2 .end diff --git a/sound/songs/se_w213b.s b/sound/songs/se_m_attract2.s index b7da4378e..7d3d6f3c5 100644 --- a/sound/songs/se_w213b.s +++ b/sound/songs/se_m_attract2.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w213b_grp, voicegroup128 - .equ se_w213b_pri, 4 - .equ se_w213b_rev, reverb_set+50 - .equ se_w213b_mvl, 127 - .equ se_w213b_key, 0 - .equ se_w213b_tbs, 1 - .equ se_w213b_exg, 0 - .equ se_w213b_cmp, 1 + .equ se_m_attract2_grp, voicegroup128 + .equ se_m_attract2_pri, 4 + .equ se_m_attract2_rev, reverb_set+50 + .equ se_m_attract2_mvl, 127 + .equ se_m_attract2_key, 0 + .equ se_m_attract2_tbs, 1 + .equ se_m_attract2_exg, 0 + .equ se_m_attract2_cmp, 1 .section .rodata - .global se_w213b + .global se_m_attract2 .align 2 @********************** Track 1 **********************@ -se_w213b_1: - .byte KEYSH , se_w213b_key+0 - .byte TEMPO , 150*se_w213b_tbs/2 +se_m_attract2_1: + .byte KEYSH , se_m_attract2_key+0 + .byte TEMPO , 150*se_m_attract2_tbs/2 .byte VOICE , 61 .byte BENDR , 44 .byte PAN , c_v+0 - .byte VOL , 110*se_w213b_mvl/mxv + .byte VOL , 110*se_m_attract2_mvl/mxv .byte MOD , 30 .byte BEND , c_v+2 .byte N54 , Dn4 , v080 @@ -69,11 +69,11 @@ se_w213b_1: @********************** Track 2 **********************@ -se_w213b_2: - .byte KEYSH , se_w213b_key+0 +se_m_attract2_2: + .byte KEYSH , se_m_attract2_key+0 .byte VOICE , 62 .byte BENDR , 44 - .byte VOL , 110*se_w213b_mvl/mxv + .byte VOL , 110*se_m_attract2_mvl/mxv .byte MOD , 30 .byte PAN , c_v+1 .byte BEND , c_v+1 @@ -113,15 +113,15 @@ se_w213b_2: @******************************************************@ .align 2 -se_w213b: +se_m_attract2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w213b_pri @ Priority - .byte se_w213b_rev @ Reverb. + .byte se_m_attract2_pri @ Priority + .byte se_m_attract2_rev @ Reverb. - .word se_w213b_grp + .word se_m_attract2_grp - .word se_w213b_1 - .word se_w213b_2 + .word se_m_attract2_1 + .word se_m_attract2_2 .end diff --git a/sound/songs/se_m_barrier.s b/sound/songs/se_m_barrier.s new file mode 100644 index 000000000..54d57700f --- /dev/null +++ b/sound/songs/se_m_barrier.s @@ -0,0 +1,276 @@ + .include "MPlayDef.s" + + .equ se_m_barrier_grp, voicegroup128 + .equ se_m_barrier_pri, 4 + .equ se_m_barrier_rev, reverb_set+50 + .equ se_m_barrier_mvl, 127 + .equ se_m_barrier_key, 0 + .equ se_m_barrier_tbs, 1 + .equ se_m_barrier_exg, 0 + .equ se_m_barrier_cmp, 1 + + .section .rodata + .global se_m_barrier + .align 2 + +@********************** Track 1 **********************@ + +se_m_barrier_1: + .byte KEYSH , se_m_barrier_key+0 + .byte TEMPO , 150*se_m_barrier_tbs/2 + .byte VOICE , 19 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v+3 + .byte N06 , Cn6 , v088 + .byte W01 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-8 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-17 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-34 + .byte W01 + .byte PAN , c_v+0 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-45 + .byte W02 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v+0 + .byte N06 , Cn6 , v084 + .byte W01 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-11 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-20 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-37 + .byte W01 + .byte PAN , c_v+0 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-47 + .byte W02 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-1 + .byte N06 , Cn6 , v076 + .byte W01 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-11 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-21 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-38 + .byte W01 + .byte PAN , c_v+0 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-48 + .byte W02 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-1 + .byte N06 , Cn6 , v064 + .byte W01 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-11 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-21 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-38 + .byte W01 + .byte PAN , c_v+0 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-48 + .byte W02 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-2 + .byte N06 , Cn6 , v056 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-12 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-22 + .byte W01 + .byte PAN , c_v+8 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-39 + .byte W01 + .byte PAN , c_v-10 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-49 + .byte W02 + .byte PAN , c_v+0 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-2 + .byte N06 , Cn6 , v044 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-12 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-22 + .byte W01 + .byte PAN , c_v+8 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-39 + .byte W01 + .byte PAN , c_v-10 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-49 + .byte W02 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-2 + .byte N06 , Cn6 , v036 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-13 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-22 + .byte W01 + .byte PAN , c_v+8 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-39 + .byte W01 + .byte PAN , c_v-10 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-49 + .byte W02 + .byte PAN , c_v+0 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-2 + .byte N06 , Cn6 , v028 + .byte W01 + .byte PAN , c_v+5 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte BEND , c_v-13 + .byte W01 + .byte PAN , c_v-6 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte BEND , c_v-22 + .byte W01 + .byte PAN , c_v+8 + .byte VOL , 24*se_m_barrier_mvl/mxv + .byte BEND , c_v-39 + .byte W01 + .byte PAN , c_v-10 + .byte VOL , 11*se_m_barrier_mvl/mxv + .byte BEND , c_v-49 + .byte W02 + .byte W06 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_barrier_2: + .byte KEYSH , se_m_barrier_key+0 + .byte VOICE , 53 + .byte PAN , c_v+0 + .byte VOL , 95*se_m_barrier_mvl/mxv + .byte BEND , c_v-5 + .byte W02 + .byte N06 , An5 , v064 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v056 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 +se_m_barrier_2_000: + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v052 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte PEND + .byte PATT + .word se_m_barrier_2_000 + .byte VOL , 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v048 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v044 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v040 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W01 + .byte 95*se_m_barrier_mvl/mxv + .byte N06 , An5 , v036 + .byte W02 + .byte VOL , 88*se_m_barrier_mvl/mxv + .byte W02 + .byte 56*se_m_barrier_mvl/mxv + .byte W01 + .byte 24*se_m_barrier_mvl/mxv + .byte W05 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_barrier: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_barrier_pri @ Priority + .byte se_m_barrier_rev @ Reverb. + + .word se_m_barrier_grp + + .word se_m_barrier_1 + .word se_m_barrier_2 + + .end diff --git a/sound/songs/se_w226.s b/sound/songs/se_m_baton_pass.s index fe6c6d05e..30027e5b6 100644 --- a/sound/songs/se_w226.s +++ b/sound/songs/se_m_baton_pass.s @@ -1,43 +1,43 @@ .include "MPlayDef.s" - .equ se_w226_grp, voicegroup128 - .equ se_w226_pri, 4 - .equ se_w226_rev, reverb_set+50 - .equ se_w226_mvl, 127 - .equ se_w226_key, 0 - .equ se_w226_tbs, 1 - .equ se_w226_exg, 0 - .equ se_w226_cmp, 1 + .equ se_m_baton_pass_grp, voicegroup128 + .equ se_m_baton_pass_pri, 4 + .equ se_m_baton_pass_rev, reverb_set+50 + .equ se_m_baton_pass_mvl, 127 + .equ se_m_baton_pass_key, 0 + .equ se_m_baton_pass_tbs, 1 + .equ se_m_baton_pass_exg, 0 + .equ se_m_baton_pass_cmp, 1 .section .rodata - .global se_w226 + .global se_m_baton_pass .align 2 @********************** Track 1 **********************@ -se_w226_1: - .byte KEYSH , se_w226_key+0 +se_m_baton_pass_1: + .byte KEYSH , se_m_baton_pass_key+0 .byte VOICE , 19 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 12*se_w226_mvl/mxv + .byte VOL , 12*se_m_baton_pass_mvl/mxv .byte BEND , c_v+49 .byte N06 , Gn4 , v080 .byte W01 - .byte VOL , 44*se_w226_mvl/mxv + .byte VOL , 44*se_m_baton_pass_mvl/mxv .byte BEND , c_v+22 .byte W01 - .byte VOL , 62*se_w226_mvl/mxv + .byte VOL , 62*se_m_baton_pass_mvl/mxv .byte PAN , c_v+8 - .byte VOL , 75*se_w226_mvl/mxv + .byte VOL , 75*se_m_baton_pass_mvl/mxv .byte BEND , c_v+20 .byte W01 - .byte VOL , 87*se_w226_mvl/mxv + .byte VOL , 87*se_m_baton_pass_mvl/mxv .byte BEND , c_v+33 .byte W01 - .byte VOL , 96*se_w226_mvl/mxv + .byte VOL , 96*se_m_baton_pass_mvl/mxv .byte PAN , c_v-7 - .byte VOL , 100*se_w226_mvl/mxv + .byte VOL , 100*se_m_baton_pass_mvl/mxv .byte BEND , c_v+54 .byte W01 .byte c_v+63 @@ -51,18 +51,18 @@ se_w226_1: .byte VOICE , 45 .byte MOD , 30 .byte BENDR , 24 - .byte VOL , 54*se_w226_mvl/mxv + .byte VOL , 54*se_m_baton_pass_mvl/mxv .byte BEND , c_v+0 .byte N06 , Gn3 , v108 .byte W01 - .byte VOL , 70*se_w226_mvl/mxv + .byte VOL , 70*se_m_baton_pass_mvl/mxv .byte BEND , c_v+4 .byte W01 .byte PAN , c_v+5 - .byte VOL , 80*se_w226_mvl/mxv + .byte VOL , 80*se_m_baton_pass_mvl/mxv .byte BEND , c_v+9 .byte W01 - .byte VOL , 100*se_w226_mvl/mxv + .byte VOL , 100*se_m_baton_pass_mvl/mxv .byte BEND , c_v+16 .byte W01 .byte c_v+24 @@ -123,17 +123,17 @@ se_w226_1: @********************** Track 2 **********************@ -se_w226_2: - .byte KEYSH , se_w226_key+0 +se_m_baton_pass_2: + .byte KEYSH , se_m_baton_pass_key+0 .byte VOICE , 57 - .byte VOL , 59*se_w226_mvl/mxv + .byte VOL , 59*se_m_baton_pass_mvl/mxv .byte N06 , Gs4 , v052 .byte W01 - .byte VOL , 72*se_w226_mvl/mxv + .byte VOL , 72*se_m_baton_pass_mvl/mxv .byte W01 - .byte 90*se_w226_mvl/mxv + .byte 90*se_m_baton_pass_mvl/mxv .byte W01 - .byte 100*se_w226_mvl/mxv + .byte 100*se_m_baton_pass_mvl/mxv .byte W03 .byte W02 .byte N04 , Gs4 , v024 @@ -155,15 +155,15 @@ se_w226_2: @******************************************************@ .align 2 -se_w226: +se_m_baton_pass: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w226_pri @ Priority - .byte se_w226_rev @ Reverb. + .byte se_m_baton_pass_pri @ Priority + .byte se_m_baton_pass_rev @ Reverb. - .word se_w226_grp + .word se_m_baton_pass_grp - .word se_w226_1 - .word se_w226_2 + .word se_m_baton_pass_1 + .word se_m_baton_pass_2 .end diff --git a/sound/songs/se_m_belly_drum.s b/sound/songs/se_m_belly_drum.s new file mode 100644 index 000000000..919c02b16 --- /dev/null +++ b/sound/songs/se_m_belly_drum.s @@ -0,0 +1,72 @@ + .include "MPlayDef.s" + + .equ se_m_belly_drum_grp, voicegroup128 + .equ se_m_belly_drum_pri, 4 + .equ se_m_belly_drum_rev, reverb_set+50 + .equ se_m_belly_drum_mvl, 127 + .equ se_m_belly_drum_key, 0 + .equ se_m_belly_drum_tbs, 1 + .equ se_m_belly_drum_exg, 0 + .equ se_m_belly_drum_cmp, 1 + + .section .rodata + .global se_m_belly_drum + .align 2 + +@********************** Track 1 **********************@ + +se_m_belly_drum_1: + .byte KEYSH , se_m_belly_drum_key+0 + .byte TEMPO , 150*se_m_belly_drum_tbs/2 + .byte VOICE , 6 + .byte BENDR , 12 + .byte VOL , 115*se_m_belly_drum_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+0 + .byte N19 , An2 , v127 + .byte W01 + .byte BEND , c_v-6 + .byte W01 + .byte c_v-10 + .byte W01 + .byte c_v-14 + .byte W01 + .byte c_v-12 + .byte W02 + .byte c_v-14 + .byte W01 + .byte c_v-18 + .byte W01 + .byte VOL , 108*se_m_belly_drum_mvl/mxv + .byte BEND , c_v-20 + .byte W01 + .byte c_v-22 + .byte W01 + .byte VOL , 94*se_m_belly_drum_mvl/mxv + .byte W03 + .byte 78*se_m_belly_drum_mvl/mxv + .byte W01 + .byte 62*se_m_belly_drum_mvl/mxv + .byte W01 + .byte 40*se_m_belly_drum_mvl/mxv + .byte W01 + .byte 27*se_m_belly_drum_mvl/mxv + .byte W02 + .byte 12*se_m_belly_drum_mvl/mxv + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_belly_drum: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_belly_drum_pri @ Priority + .byte se_m_belly_drum_rev @ Reverb. + + .word se_m_belly_drum_grp + + .word se_m_belly_drum_1 + + .end diff --git a/sound/songs/se_w044.s b/sound/songs/se_m_bite.s index ad706d93f..3c51a8f2f 100644 --- a/sound/songs/se_w044.s +++ b/sound/songs/se_m_bite.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w044_grp, voicegroup128 - .equ se_w044_pri, 4 - .equ se_w044_rev, reverb_set+50 - .equ se_w044_mvl, 127 - .equ se_w044_key, 0 - .equ se_w044_tbs, 1 - .equ se_w044_exg, 0 - .equ se_w044_cmp, 1 + .equ se_m_bite_grp, voicegroup128 + .equ se_m_bite_pri, 4 + .equ se_m_bite_rev, reverb_set+50 + .equ se_m_bite_mvl, 127 + .equ se_m_bite_key, 0 + .equ se_m_bite_tbs, 1 + .equ se_m_bite_exg, 0 + .equ se_m_bite_cmp, 1 .section .rodata - .global se_w044 + .global se_m_bite .align 2 @********************** Track 1 **********************@ -se_w044_1: - .byte KEYSH , se_w044_key+0 - .byte TEMPO , 220*se_w044_tbs/2 +se_m_bite_1: + .byte KEYSH , se_m_bite_key+0 + .byte TEMPO , 220*se_m_bite_tbs/2 .byte VOICE , 26 .byte BENDR , 12 .byte PAN , c_v+6 - .byte VOL , 110*se_w044_mvl/mxv + .byte VOL , 110*se_m_bite_mvl/mxv .byte BEND , c_v+0 .byte N02 , Gn3 , v112 .byte W02 @@ -70,10 +70,10 @@ se_w044_1: @********************** Track 2 **********************@ -se_w044_2: - .byte KEYSH , se_w044_key+0 +se_m_bite_2: + .byte KEYSH , se_m_bite_key+0 .byte VOICE , 27 - .byte VOL , 110*se_w044_mvl/mxv + .byte VOL , 110*se_m_bite_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte W10 @@ -86,15 +86,15 @@ se_w044_2: @******************************************************@ .align 2 -se_w044: +se_m_bite: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w044_pri @ Priority - .byte se_w044_rev @ Reverb. + .byte se_m_bite_pri @ Priority + .byte se_m_bite_rev @ Reverb. - .word se_w044_grp + .word se_m_bite_grp - .word se_w044_1 - .word se_w044_2 + .word se_m_bite_1 + .word se_m_bite_2 .end diff --git a/sound/songs/se_w059.s b/sound/songs/se_m_blizzard.s index 6b163ef7e..6bce3c987 100644 --- a/sound/songs/se_w059.s +++ b/sound/songs/se_m_blizzard.s @@ -1,49 +1,49 @@ .include "MPlayDef.s" - .equ se_w059_grp, voicegroup128 - .equ se_w059_pri, 4 - .equ se_w059_rev, reverb_set+50 - .equ se_w059_mvl, 127 - .equ se_w059_key, 0 - .equ se_w059_tbs, 1 - .equ se_w059_exg, 0 - .equ se_w059_cmp, 1 + .equ se_m_blizzard_grp, voicegroup128 + .equ se_m_blizzard_pri, 4 + .equ se_m_blizzard_rev, reverb_set+50 + .equ se_m_blizzard_mvl, 127 + .equ se_m_blizzard_key, 0 + .equ se_m_blizzard_tbs, 1 + .equ se_m_blizzard_exg, 0 + .equ se_m_blizzard_cmp, 1 .section .rodata - .global se_w059 + .global se_m_blizzard .align 2 @********************** Track 1 **********************@ -se_w059_1: - .byte KEYSH , se_w059_key+0 - .byte TEMPO , 150*se_w059_tbs/2 +se_m_blizzard_1: + .byte KEYSH , se_m_blizzard_key+0 + .byte TEMPO , 150*se_m_blizzard_tbs/2 .byte VOICE , 22 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 64*se_w059_mvl/mxv + .byte VOL , 64*se_m_blizzard_mvl/mxv .byte BEND , c_v+0 .byte N24 , Gn3 , v108 .byte W03 - .byte VOL , 79*se_w059_mvl/mxv + .byte VOL , 79*se_m_blizzard_mvl/mxv .byte BEND , c_v+22 .byte W02 .byte c_v+8 .byte W01 - .byte VOL , 84*se_w059_mvl/mxv + .byte VOL , 84*se_m_blizzard_mvl/mxv .byte PAN , c_v-4 .byte W03 - .byte VOL , 91*se_w059_mvl/mxv + .byte VOL , 91*se_m_blizzard_mvl/mxv .byte BEND , c_v+0 .byte W03 - .byte VOL , 100*se_w059_mvl/mxv + .byte VOL , 100*se_m_blizzard_mvl/mxv .byte PAN , c_v-8 .byte W03 - .byte VOL , 110*se_w059_mvl/mxv + .byte VOL , 110*se_m_blizzard_mvl/mxv .byte W03 .byte PAN , c_v-12 .byte W06 -se_w059_1_B1: +se_m_blizzard_1_B1: .byte PAN , c_v-17 .byte BEND , c_v+0 .byte N48 , Gn3 , v108 @@ -84,20 +84,20 @@ se_w059_1_B1: .byte PAN , c_v-11 .byte W03 .byte GOTO - .word se_w059_1_B1 + .word se_m_blizzard_1_B1 .byte FINE @******************************************************@ .align 2 -se_w059: +se_m_blizzard: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w059_pri @ Priority - .byte se_w059_rev @ Reverb. + .byte se_m_blizzard_pri @ Priority + .byte se_m_blizzard_rev @ Reverb. - .word se_w059_grp + .word se_m_blizzard_grp - .word se_w059_1 + .word se_m_blizzard_1 .end diff --git a/sound/songs/se_m_blizzard2.s b/sound/songs/se_m_blizzard2.s new file mode 100644 index 000000000..8c1518e63 --- /dev/null +++ b/sound/songs/se_m_blizzard2.s @@ -0,0 +1,72 @@ + .include "MPlayDef.s" + + .equ se_m_blizzard2_grp, voicegroup128 + .equ se_m_blizzard2_pri, 4 + .equ se_m_blizzard2_rev, reverb_set+50 + .equ se_m_blizzard2_mvl, 127 + .equ se_m_blizzard2_key, 0 + .equ se_m_blizzard2_tbs, 1 + .equ se_m_blizzard2_exg, 0 + .equ se_m_blizzard2_cmp, 1 + + .section .rodata + .global se_m_blizzard2 + .align 2 + +@********************** Track 1 **********************@ + +se_m_blizzard2_1: + .byte KEYSH , se_m_blizzard2_key+0 + .byte TEMPO , 150*se_m_blizzard2_tbs/2 + .byte VOICE , 22 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_blizzard2_mvl/mxv + .byte BEND , c_v+0 + .byte N24 , Gn3 , v108 + .byte W02 + .byte PAN , c_v-19 + .byte W04 + .byte c_v+0 + .byte W01 + .byte VOL , 97*se_m_blizzard2_mvl/mxv + .byte W01 + .byte PAN , c_v+16 + .byte W01 + .byte VOL , 84*se_m_blizzard2_mvl/mxv + .byte W03 + .byte 76*se_m_blizzard2_mvl/mxv + .byte PAN , c_v+2 + .byte W02 + .byte VOL , 55*se_m_blizzard2_mvl/mxv + .byte PAN , c_v-8 + .byte W02 + .byte VOL , 39*se_m_blizzard2_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 25*se_m_blizzard2_mvl/mxv + .byte W01 + .byte PAN , c_v+8 + .byte W01 + .byte VOL , 13*se_m_blizzard2_mvl/mxv + .byte W03 + .byte 7*se_m_blizzard2_mvl/mxv + .byte PAN , c_v+0 + .byte W24 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_blizzard2: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_blizzard2_pri @ Priority + .byte se_m_blizzard2_rev @ Reverb. + + .word se_m_blizzard2_grp + + .word se_m_blizzard2_1 + + .end diff --git a/sound/songs/se_w155.s b/sound/songs/se_m_bonemerang.s index 29508b608..11f035347 100644 --- a/sound/songs/se_w155.s +++ b/sound/songs/se_m_bonemerang.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w155_grp, voicegroup128 - .equ se_w155_pri, 4 - .equ se_w155_rev, reverb_set+50 - .equ se_w155_mvl, 127 - .equ se_w155_key, 0 - .equ se_w155_tbs, 1 - .equ se_w155_exg, 0 - .equ se_w155_cmp, 1 + .equ se_m_bonemerang_grp, voicegroup128 + .equ se_m_bonemerang_pri, 4 + .equ se_m_bonemerang_rev, reverb_set+50 + .equ se_m_bonemerang_mvl, 127 + .equ se_m_bonemerang_key, 0 + .equ se_m_bonemerang_tbs, 1 + .equ se_m_bonemerang_exg, 0 + .equ se_m_bonemerang_cmp, 1 .section .rodata - .global se_w155 + .global se_m_bonemerang .align 2 @********************** Track 1 **********************@ -se_w155_1: - .byte KEYSH , se_w155_key+0 - .byte TEMPO , 150*se_w155_tbs/2 +se_m_bonemerang_1: + .byte KEYSH , se_m_bonemerang_key+0 + .byte TEMPO , 150*se_m_bonemerang_tbs/2 .byte VOICE , 24 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w155_mvl/mxv + .byte VOL , 110*se_m_bonemerang_mvl/mxv .byte BEND , c_v+0 .byte N01 , Cn5 , v127 .byte W01 @@ -44,14 +44,14 @@ se_w155_1: @******************************************************@ .align 2 -se_w155: +se_m_bonemerang: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w155_pri @ Priority - .byte se_w155_rev @ Reverb. + .byte se_m_bonemerang_pri @ Priority + .byte se_m_bonemerang_rev @ Reverb. - .word se_w155_grp + .word se_m_bonemerang_grp - .word se_w155_1 + .word se_m_bonemerang_1 .end diff --git a/sound/songs/se_w280.s b/sound/songs/se_m_brick_break.s index 19d383176..08058089f 100644 --- a/sound/songs/se_w280.s +++ b/sound/songs/se_m_brick_break.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w280_grp, voicegroup128 - .equ se_w280_pri, 4 - .equ se_w280_rev, reverb_set+50 - .equ se_w280_mvl, 127 - .equ se_w280_key, 0 - .equ se_w280_tbs, 1 - .equ se_w280_exg, 0 - .equ se_w280_cmp, 1 + .equ se_m_brick_break_grp, voicegroup128 + .equ se_m_brick_break_pri, 4 + .equ se_m_brick_break_rev, reverb_set+50 + .equ se_m_brick_break_mvl, 127 + .equ se_m_brick_break_key, 0 + .equ se_m_brick_break_tbs, 1 + .equ se_m_brick_break_exg, 0 + .equ se_m_brick_break_cmp, 1 .section .rodata - .global se_w280 + .global se_m_brick_break .align 2 @********************** Track 1 **********************@ -se_w280_1: - .byte KEYSH , se_w280_key+0 - .byte TEMPO , 150*se_w280_tbs/2 +se_m_brick_break_1: + .byte KEYSH , se_m_brick_break_key+0 + .byte TEMPO , 150*se_m_brick_break_tbs/2 .byte VOICE , 41 - .byte VOL , 110*se_w280_mvl/mxv + .byte VOL , 110*se_m_brick_break_mvl/mxv .byte PAN , c_v+0 .byte N01 , Cn4 , v127 .byte W01 @@ -56,10 +56,10 @@ se_w280_1: @********************** Track 2 **********************@ -se_w280_2: - .byte KEYSH , se_w280_key+0 +se_m_brick_break_2: + .byte KEYSH , se_m_brick_break_key+0 .byte VOICE , 4 - .byte VOL , 110*se_w280_mvl/mxv + .byte VOL , 110*se_m_brick_break_mvl/mxv .byte PAN , c_v+0 .byte N01 , Cn3 , v064 .byte W01 @@ -86,15 +86,15 @@ se_w280_2: @******************************************************@ .align 2 -se_w280: +se_m_brick_break: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w280_pri @ Priority - .byte se_w280_rev @ Reverb. + .byte se_m_brick_break_pri @ Priority + .byte se_m_brick_break_rev @ Reverb. - .word se_w280_grp + .word se_m_brick_break_grp - .word se_w280_1 - .word se_w280_2 + .word se_m_brick_break_1 + .word se_m_brick_break_2 .end diff --git a/sound/songs/se_w145.s b/sound/songs/se_m_bubble.s index bb7d87a2d..ee31a176b 100644 --- a/sound/songs/se_w145.s +++ b/sound/songs/se_m_bubble.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w145_grp, voicegroup128 - .equ se_w145_pri, 4 - .equ se_w145_rev, reverb_set+50 - .equ se_w145_mvl, 127 - .equ se_w145_key, 0 - .equ se_w145_tbs, 1 - .equ se_w145_exg, 0 - .equ se_w145_cmp, 1 + .equ se_m_bubble_grp, voicegroup128 + .equ se_m_bubble_pri, 4 + .equ se_m_bubble_rev, reverb_set+50 + .equ se_m_bubble_mvl, 127 + .equ se_m_bubble_key, 0 + .equ se_m_bubble_tbs, 1 + .equ se_m_bubble_exg, 0 + .equ se_m_bubble_cmp, 1 .section .rodata - .global se_w145 + .global se_m_bubble .align 2 @********************** Track 1 **********************@ -se_w145_1: - .byte KEYSH , se_w145_key+0 - .byte TEMPO , 220*se_w145_tbs/2 +se_m_bubble_1: + .byte KEYSH , se_m_bubble_key+0 + .byte TEMPO , 220*se_m_bubble_tbs/2 .byte VOICE , 23 - .byte VOL , 95*se_w145_mvl/mxv + .byte VOL , 95*se_m_bubble_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -44,14 +44,14 @@ se_w145_1: @******************************************************@ .align 2 -se_w145: +se_m_bubble: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w145_pri @ Priority - .byte se_w145_rev @ Reverb. + .byte se_m_bubble_pri @ Priority + .byte se_m_bubble_rev @ Reverb. - .word se_w145_grp + .word se_m_bubble_grp - .word se_w145_1 + .word se_m_bubble_1 .end diff --git a/sound/songs/se_m_bubble2.s b/sound/songs/se_m_bubble2.s new file mode 100644 index 000000000..97e7cbbf8 --- /dev/null +++ b/sound/songs/se_m_bubble2.s @@ -0,0 +1,60 @@ + .include "MPlayDef.s" + + .equ se_m_bubble2_grp, voicegroup128 + .equ se_m_bubble2_pri, 4 + .equ se_m_bubble2_rev, reverb_set+50 + .equ se_m_bubble2_mvl, 127 + .equ se_m_bubble2_key, 0 + .equ se_m_bubble2_tbs, 1 + .equ se_m_bubble2_exg, 0 + .equ se_m_bubble2_cmp, 1 + + .section .rodata + .global se_m_bubble2 + .align 2 + +@********************** Track 1 **********************@ + +se_m_bubble2_1: + .byte KEYSH , se_m_bubble2_key+0 + .byte TEMPO , 220*se_m_bubble2_tbs/2 + .byte VOICE , 24 + .byte VOL , 110*se_m_bubble2_mvl/mxv + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte BEND , c_v+0 + .byte W03 + .byte N09 , Gn4 , v127 + .byte W02 + .byte BEND , c_v+31 + .byte W02 + .byte c_v-34 + .byte W17 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_bubble2_2: + .byte KEYSH , se_m_bubble2_key+0 + .byte VOICE , 4 + .byte VOL , 110*se_m_bubble2_mvl/mxv + .byte PAN , c_v+0 + .byte N01 , Cn4 , v044 + .byte W24 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_bubble2: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_bubble2_pri @ Priority + .byte se_m_bubble2_rev @ Reverb. + + .word se_m_bubble2_grp + + .word se_m_bubble2_1 + .word se_m_bubble2_2 + + .end diff --git a/sound/songs/se_w145c.s b/sound/songs/se_m_bubble3.s index 61bf7fa0d..c14badb5a 100644 --- a/sound/songs/se_w145c.s +++ b/sound/songs/se_m_bubble3.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w145c_grp, voicegroup128 - .equ se_w145c_pri, 4 - .equ se_w145c_rev, reverb_set+50 - .equ se_w145c_mvl, 127 - .equ se_w145c_key, 0 - .equ se_w145c_tbs, 1 - .equ se_w145c_exg, 0 - .equ se_w145c_cmp, 1 + .equ se_m_bubble3_grp, voicegroup128 + .equ se_m_bubble3_pri, 4 + .equ se_m_bubble3_rev, reverb_set+50 + .equ se_m_bubble3_mvl, 127 + .equ se_m_bubble3_key, 0 + .equ se_m_bubble3_tbs, 1 + .equ se_m_bubble3_exg, 0 + .equ se_m_bubble3_cmp, 1 .section .rodata - .global se_w145c + .global se_m_bubble3 .align 2 @********************** Track 1 **********************@ -se_w145c_1: - .byte KEYSH , se_w145c_key+0 - .byte TEMPO , 220*se_w145c_tbs/2 +se_m_bubble3_1: + .byte KEYSH , se_m_bubble3_key+0 + .byte TEMPO , 220*se_m_bubble3_tbs/2 .byte VOICE , 23 - .byte VOL , 95*se_w145c_mvl/mxv + .byte VOL , 95*se_m_bubble3_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -49,14 +49,14 @@ se_w145c_1: @******************************************************@ .align 2 -se_w145c: +se_m_bubble3: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w145c_pri @ Priority - .byte se_w145c_rev @ Reverb. + .byte se_m_bubble3_pri @ Priority + .byte se_m_bubble3_rev @ Reverb. - .word se_w145c_grp + .word se_m_bubble3_grp - .word se_w145c_1 + .word se_m_bubble3_1 .end diff --git a/sound/songs/se_w062.s b/sound/songs/se_m_bubble_beam.s index 58de81e57..621882b03 100644 --- a/sound/songs/se_w062.s +++ b/sound/songs/se_m_bubble_beam.s @@ -1,56 +1,56 @@ .include "MPlayDef.s" - .equ se_w062_grp, voicegroup128 - .equ se_w062_pri, 4 - .equ se_w062_rev, reverb_set+50 - .equ se_w062_mvl, 127 - .equ se_w062_key, 0 - .equ se_w062_tbs, 1 - .equ se_w062_exg, 0 - .equ se_w062_cmp, 1 + .equ se_m_bubble_beam_grp, voicegroup128 + .equ se_m_bubble_beam_pri, 4 + .equ se_m_bubble_beam_rev, reverb_set+50 + .equ se_m_bubble_beam_mvl, 127 + .equ se_m_bubble_beam_key, 0 + .equ se_m_bubble_beam_tbs, 1 + .equ se_m_bubble_beam_exg, 0 + .equ se_m_bubble_beam_cmp, 1 .section .rodata - .global se_w062 + .global se_m_bubble_beam .align 2 @********************** Track 1 **********************@ -se_w062_1: - .byte KEYSH , se_w062_key+0 - .byte TEMPO , 150*se_w062_tbs/2 +se_m_bubble_beam_1: + .byte KEYSH , se_m_bubble_beam_key+0 + .byte TEMPO , 150*se_m_bubble_beam_tbs/2 .byte VOICE , 9 .byte BENDR , 2 .byte PAN , c_v+0 - .byte VOL , 24*se_w062_mvl/mxv + .byte VOL , 24*se_m_bubble_beam_mvl/mxv .byte BEND , c_v-17 .byte N78 , Bn4 , v080 .byte W01 - .byte VOL , 32*se_w062_mvl/mxv + .byte VOL , 32*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+6 .byte W01 - .byte VOL , 38*se_w062_mvl/mxv + .byte VOL , 38*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-7 .byte W01 - .byte VOL , 48*se_w062_mvl/mxv + .byte VOL , 48*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+9 .byte W01 - .byte VOL , 66*se_w062_mvl/mxv + .byte VOL , 66*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-13 .byte W02 - .byte VOL , 78*se_w062_mvl/mxv + .byte VOL , 78*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+6 .byte W01 - .byte VOL , 94*se_w062_mvl/mxv + .byte VOL , 94*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-6 .byte W01 - .byte VOL , 110*se_w062_mvl/mxv + .byte VOL , 110*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+6 .byte W01 .byte c_v-7 .byte W02 -se_w062_1_000: +se_m_bubble_beam_1_000: .byte PAN , c_v+9 .byte W01 .byte c_v-13 @@ -62,7 +62,7 @@ se_w062_1_000: .byte c_v+0 .byte W02 .byte PEND -se_w062_1_001: +se_m_bubble_beam_1_001: .byte PAN , c_v+6 .byte W01 .byte c_v-7 @@ -125,34 +125,34 @@ se_w062_1_001: .byte c_v-7 .byte W02 .byte PATT - .word se_w062_1_000 + .word se_m_bubble_beam_1_000 .byte PATT - .word se_w062_1_001 + .word se_m_bubble_beam_1_001 .byte PAN , c_v-6 .byte W01 .byte c_v+0 .byte W01 .byte c_v+6 .byte W01 - .byte VOL , 103*se_w062_mvl/mxv + .byte VOL , 103*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-7 .byte W01 - .byte VOL , 91*se_w062_mvl/mxv + .byte VOL , 91*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+9 .byte W02 - .byte VOL , 72*se_w062_mvl/mxv + .byte VOL , 72*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-13 .byte W01 - .byte VOL , 58*se_w062_mvl/mxv + .byte VOL , 58*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+6 .byte W01 - .byte VOL , 38*se_w062_mvl/mxv + .byte VOL , 38*se_m_bubble_beam_mvl/mxv .byte PAN , c_v-6 .byte W01 - .byte VOL , 15*se_w062_mvl/mxv + .byte VOL , 15*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+0 .byte W01 - .byte VOL , 7*se_w062_mvl/mxv + .byte VOL , 7*se_m_bubble_beam_mvl/mxv .byte PAN , c_v+6 .byte W02 .byte FINE @@ -160,14 +160,14 @@ se_w062_1_001: @******************************************************@ .align 2 -se_w062: +se_m_bubble_beam: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w062_pri @ Priority - .byte se_w062_rev @ Reverb. + .byte se_m_bubble_beam_pri @ Priority + .byte se_m_bubble_beam_rev @ Reverb. - .word se_w062_grp + .word se_m_bubble_beam_grp - .word se_w062_1 + .word se_m_bubble_beam_1 .end diff --git a/sound/songs/se_m_bubble_beam2.s b/sound/songs/se_m_bubble_beam2.s new file mode 100644 index 000000000..0e8cbf5e4 --- /dev/null +++ b/sound/songs/se_m_bubble_beam2.s @@ -0,0 +1,131 @@ + .include "MPlayDef.s" + + .equ se_m_bubble_beam2_grp, voicegroup128 + .equ se_m_bubble_beam2_pri, 4 + .equ se_m_bubble_beam2_rev, reverb_set+50 + .equ se_m_bubble_beam2_mvl, 127 + .equ se_m_bubble_beam2_key, 0 + .equ se_m_bubble_beam2_tbs, 1 + .equ se_m_bubble_beam2_exg, 0 + .equ se_m_bubble_beam2_cmp, 1 + + .section .rodata + .global se_m_bubble_beam2 + .align 2 + +@********************** Track 1 **********************@ + +se_m_bubble_beam2_1: + .byte KEYSH , se_m_bubble_beam2_key+0 + .byte TEMPO , 150*se_m_bubble_beam2_tbs/2 + .byte VOICE , 9 + .byte BENDR , 2 + .byte PAN , c_v+0 + .byte VOL , 26*se_m_bubble_beam2_mvl/mxv + .byte BEND , c_v-23 + .byte N09 , Dn5 , v127 + .byte W01 + .byte VOL , 34*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-20 + .byte W01 + .byte VOL , 42*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-7 + .byte BEND , c_v-16 + .byte W01 + .byte VOL , 52*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+9 + .byte W01 + .byte VOL , 72*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-13 + .byte BEND , c_v-18 + .byte W02 + .byte VOL , 85*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-21 + .byte W01 + .byte VOL , 102*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-6 + .byte BEND , c_v-23 + .byte W01 + .byte VOL , 120*se_m_bubble_beam2_mvl/mxv + .byte BEND , c_v-24 + .byte W02 + .byte VOL , 26*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v-23 + .byte N09 , Dn5 , v100 + .byte W02 + .byte VOL , 34*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-20 + .byte W01 + .byte VOL , 42*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-7 + .byte BEND , c_v-16 + .byte W01 + .byte VOL , 52*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+9 + .byte W01 + .byte VOL , 72*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-13 + .byte BEND , c_v-18 + .byte W01 + .byte VOL , 85*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-21 + .byte W02 + .byte VOL , 102*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-6 + .byte BEND , c_v-23 + .byte W01 + .byte VOL , 120*se_m_bubble_beam2_mvl/mxv + .byte BEND , c_v-24 + .byte W02 + .byte VOL , 26*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v-23 + .byte N09 , Dn5 , v080 + .byte W01 + .byte VOL , 34*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-20 + .byte W02 + .byte VOL , 42*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-7 + .byte BEND , c_v-16 + .byte W01 + .byte VOL , 52*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+9 + .byte W01 + .byte VOL , 72*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-13 + .byte BEND , c_v-18 + .byte W01 + .byte VOL , 85*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v+6 + .byte BEND , c_v-21 + .byte W01 + .byte VOL , 102*se_m_bubble_beam2_mvl/mxv + .byte PAN , c_v-6 + .byte BEND , c_v-23 + .byte W02 + .byte VOL , 120*se_m_bubble_beam2_mvl/mxv + .byte BEND , c_v-24 + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_bubble_beam2: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_bubble_beam2_pri @ Priority + .byte se_m_bubble_beam2_rev @ Reverb. + + .word se_m_bubble_beam2_grp + + .word se_m_bubble_beam2_1 + + .end diff --git a/sound/songs/se_w268.s b/sound/songs/se_m_charge.s index c2c9ee9f7..47d70a4bf 100644 --- a/sound/songs/se_w268.s +++ b/sound/songs/se_m_charge.s @@ -1,56 +1,56 @@ .include "MPlayDef.s" - .equ se_w268_grp, voicegroup128 - .equ se_w268_pri, 4 - .equ se_w268_rev, reverb_set+50 - .equ se_w268_mvl, 127 - .equ se_w268_key, 0 - .equ se_w268_tbs, 1 - .equ se_w268_exg, 0 - .equ se_w268_cmp, 1 + .equ se_m_charge_grp, voicegroup128 + .equ se_m_charge_pri, 4 + .equ se_m_charge_rev, reverb_set+50 + .equ se_m_charge_mvl, 127 + .equ se_m_charge_key, 0 + .equ se_m_charge_tbs, 1 + .equ se_m_charge_exg, 0 + .equ se_m_charge_cmp, 1 .section .rodata - .global se_w268 + .global se_m_charge .align 2 @********************** Track 1 **********************@ -se_w268_1: - .byte KEYSH , se_w268_key+0 - .byte TEMPO , 150*se_w268_tbs/2 +se_m_charge_1: + .byte KEYSH , se_m_charge_key+0 + .byte TEMPO , 150*se_m_charge_tbs/2 .byte VOICE , 18 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 34*se_w268_mvl/mxv + .byte VOL , 34*se_m_charge_mvl/mxv .byte BEND , c_v+0 .byte N66 , Cn5 , v127 .byte W01 .byte PAN , c_v-2 .byte W01 - .byte VOL , 43*se_w268_mvl/mxv + .byte VOL , 43*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+2 .byte BEND , c_v-2 .byte W01 - .byte VOL , 58*se_w268_mvl/mxv + .byte VOL , 58*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte W02 .byte c_v-2 .byte W01 - .byte VOL , 70*se_w268_mvl/mxv + .byte VOL , 70*se_m_charge_mvl/mxv .byte PAN , c_v-4 .byte BEND , c_v-4 .byte W01 .byte PAN , c_v-2 .byte W01 - .byte VOL , 76*se_w268_mvl/mxv + .byte VOL , 76*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+2 .byte BEND , c_v-6 .byte W02 - .byte VOL , 90*se_w268_mvl/mxv + .byte VOL , 90*se_m_charge_mvl/mxv .byte PAN , c_v+4 .byte W01 .byte c_v+2 @@ -118,14 +118,14 @@ se_w268_1: .byte W01 .byte PAN , c_v+2 .byte W01 - .byte VOL , 84*se_w268_mvl/mxv + .byte VOL , 84*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+0 .byte W02 .byte c_v-2 .byte W01 - .byte VOL , 78*se_w268_mvl/mxv + .byte VOL , 78*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+2 @@ -133,39 +133,39 @@ se_w268_1: .byte W01 .byte PAN , c_v+0 .byte W01 - .byte VOL , 70*se_w268_mvl/mxv + .byte VOL , 70*se_m_charge_mvl/mxv .byte PAN , c_v-2 .byte W02 .byte c_v-4 .byte W01 - .byte VOL , 55*se_w268_mvl/mxv + .byte VOL , 55*se_m_charge_mvl/mxv .byte PAN , c_v-2 .byte BEND , c_v-29 .byte W01 .byte PAN , c_v+0 .byte W01 - .byte VOL , 46*se_w268_mvl/mxv + .byte VOL , 46*se_m_charge_mvl/mxv .byte PAN , c_v+2 .byte W01 .byte c_v+4 .byte BEND , c_v-31 .byte W02 - .byte VOL , 36*se_w268_mvl/mxv + .byte VOL , 36*se_m_charge_mvl/mxv .byte PAN , c_v+2 .byte W01 .byte c_v+0 .byte W01 - .byte VOL , 24*se_w268_mvl/mxv + .byte VOL , 24*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-36 .byte W01 .byte PAN , c_v-2 .byte W01 - .byte VOL , 13*se_w268_mvl/mxv + .byte VOL , 13*se_m_charge_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-42 .byte W02 - .byte VOL , 5*se_w268_mvl/mxv + .byte VOL , 5*se_m_charge_mvl/mxv .byte PAN , c_v+2 .byte W06 .byte FINE @@ -173,14 +173,14 @@ se_w268_1: @******************************************************@ .align 2 -se_w268: +se_m_charge: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w268_pri @ Priority - .byte se_w268_rev @ Reverb. + .byte se_m_charge_pri @ Priority + .byte se_m_charge_rev @ Reverb. - .word se_w268_grp + .word se_m_charge_grp - .word se_w268_1 + .word se_m_charge_1 .end diff --git a/sound/songs/se_w204.s b/sound/songs/se_m_charm.s index 1e66392ac..ef10cb3e3 100644 --- a/sound/songs/se_w204.s +++ b/sound/songs/se_m_charm.s @@ -1,52 +1,52 @@ .include "MPlayDef.s" - .equ se_w204_grp, voicegroup128 - .equ se_w204_pri, 4 - .equ se_w204_rev, reverb_set+50 - .equ se_w204_mvl, 127 - .equ se_w204_key, 0 - .equ se_w204_tbs, 1 - .equ se_w204_exg, 0 - .equ se_w204_cmp, 1 + .equ se_m_charm_grp, voicegroup128 + .equ se_m_charm_pri, 4 + .equ se_m_charm_rev, reverb_set+50 + .equ se_m_charm_mvl, 127 + .equ se_m_charm_key, 0 + .equ se_m_charm_tbs, 1 + .equ se_m_charm_exg, 0 + .equ se_m_charm_cmp, 1 .section .rodata - .global se_w204 + .global se_m_charm .align 2 @********************** Track 1 **********************@ -se_w204_1: - .byte KEYSH , se_w204_key+0 - .byte TEMPO , 150*se_w204_tbs/2 +se_m_charm_1: + .byte KEYSH , se_m_charm_key+0 + .byte TEMPO , 150*se_m_charm_tbs/2 .byte VOICE , 37 .byte BENDR , 24 .byte PAN , c_v+0 - .byte VOL , 25*se_w204_mvl/mxv + .byte VOL , 25*se_m_charm_mvl/mxv .byte BEND , c_v+11 .byte N02 , Fn4 , v127 .byte W01 - .byte VOL , 42*se_w204_mvl/mxv + .byte VOL , 42*se_m_charm_mvl/mxv .byte PAN , c_v+4 .byte BEND , c_v+5 .byte W01 - .byte VOL , 62*se_w204_mvl/mxv + .byte VOL , 62*se_m_charm_mvl/mxv .byte PAN , c_v-4 .byte BEND , c_v+0 .byte N15 .byte W01 - .byte VOL , 77*se_w204_mvl/mxv + .byte VOL , 77*se_m_charm_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+5 .byte W01 - .byte VOL , 84*se_w204_mvl/mxv + .byte VOL , 84*se_m_charm_mvl/mxv .byte PAN , c_v+4 .byte BEND , c_v+12 .byte W02 - .byte VOL , 96*se_w204_mvl/mxv + .byte VOL , 96*se_m_charm_mvl/mxv .byte PAN , c_v-4 .byte BEND , c_v+20 .byte W01 - .byte VOL , 100*se_w204_mvl/mxv + .byte VOL , 100*se_m_charm_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+25 .byte W01 @@ -59,22 +59,22 @@ se_w204_1: .byte PAN , c_v+0 .byte BEND , c_v+40 .byte W02 - .byte VOL , 94*se_w204_mvl/mxv + .byte VOL , 94*se_m_charm_mvl/mxv .byte PAN , c_v+4 .byte W01 - .byte VOL , 85*se_w204_mvl/mxv + .byte VOL , 85*se_m_charm_mvl/mxv .byte PAN , c_v-4 .byte BEND , c_v+37 .byte W01 - .byte VOL , 66*se_w204_mvl/mxv + .byte VOL , 66*se_m_charm_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+36 .byte W01 - .byte VOL , 49*se_w204_mvl/mxv + .byte VOL , 49*se_m_charm_mvl/mxv .byte PAN , c_v+4 .byte BEND , c_v+34 .byte W01 - .byte VOL , 32*se_w204_mvl/mxv + .byte VOL , 32*se_m_charm_mvl/mxv .byte PAN , c_v-4 .byte BEND , c_v+32 .byte W02 @@ -83,14 +83,14 @@ se_w204_1: @******************************************************@ .align 2 -se_w204: +se_m_charm: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w204_pri @ Priority - .byte se_w204_rev @ Reverb. + .byte se_m_charm_pri @ Priority + .byte se_m_charm_rev @ Reverb. - .word se_w204_grp + .word se_m_charm_grp - .word se_w204_1 + .word se_m_charm_1 .end diff --git a/sound/songs/se_w109.s b/sound/songs/se_m_confuse_ray.s index 1f43988eb..12aea8ab8 100644 --- a/sound/songs/se_w109.s +++ b/sound/songs/se_m_confuse_ray.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w109_grp, voicegroup128 - .equ se_w109_pri, 4 - .equ se_w109_rev, reverb_set+50 - .equ se_w109_mvl, 127 - .equ se_w109_key, 0 - .equ se_w109_tbs, 1 - .equ se_w109_exg, 0 - .equ se_w109_cmp, 1 + .equ se_m_confuse_ray_grp, voicegroup128 + .equ se_m_confuse_ray_pri, 4 + .equ se_m_confuse_ray_rev, reverb_set+50 + .equ se_m_confuse_ray_mvl, 127 + .equ se_m_confuse_ray_key, 0 + .equ se_m_confuse_ray_tbs, 1 + .equ se_m_confuse_ray_exg, 0 + .equ se_m_confuse_ray_cmp, 1 .section .rodata - .global se_w109 + .global se_m_confuse_ray .align 2 @********************** Track 1 **********************@ -se_w109_1: - .byte KEYSH , se_w109_key+0 - .byte TEMPO , 220*se_w109_tbs/2 +se_m_confuse_ray_1: + .byte KEYSH , se_m_confuse_ray_key+0 + .byte TEMPO , 220*se_m_confuse_ray_tbs/2 .byte VOICE , 52 - .byte VOL , 127*se_w109_mvl/mxv + .byte VOL , 127*se_m_confuse_ray_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -104,14 +104,14 @@ se_w109_1: @******************************************************@ .align 2 -se_w109: +se_m_confuse_ray: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w109_pri @ Priority - .byte se_w109_rev @ Reverb. + .byte se_m_confuse_ray_pri @ Priority + .byte se_m_confuse_ray_rev @ Reverb. - .word se_w109_grp + .word se_m_confuse_ray_grp - .word se_w109_1 + .word se_m_confuse_ray_1 .end diff --git a/sound/songs/se_w322.s b/sound/songs/se_m_cosmic_power.s index 2f48ff968..76812478b 100644 --- a/sound/songs/se_w322.s +++ b/sound/songs/se_m_cosmic_power.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w322_grp, voicegroup128 - .equ se_w322_pri, 4 - .equ se_w322_rev, reverb_set+50 - .equ se_w322_mvl, 127 - .equ se_w322_key, 0 - .equ se_w322_tbs, 1 - .equ se_w322_exg, 0 - .equ se_w322_cmp, 1 + .equ se_m_cosmic_power_grp, voicegroup128 + .equ se_m_cosmic_power_pri, 4 + .equ se_m_cosmic_power_rev, reverb_set+50 + .equ se_m_cosmic_power_mvl, 127 + .equ se_m_cosmic_power_key, 0 + .equ se_m_cosmic_power_tbs, 1 + .equ se_m_cosmic_power_exg, 0 + .equ se_m_cosmic_power_cmp, 1 .section .rodata - .global se_w322 + .global se_m_cosmic_power .align 2 @********************** Track 1 **********************@ -se_w322_1: - .byte KEYSH , se_w322_key+0 - .byte TEMPO , 150*se_w322_tbs/2 +se_m_cosmic_power_1: + .byte KEYSH , se_m_cosmic_power_key+0 + .byte TEMPO , 150*se_m_cosmic_power_tbs/2 .byte VOICE , 46 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w322_mvl/mxv + .byte VOL , 110*se_m_cosmic_power_mvl/mxv .byte BEND , c_v-4 .byte N09 , As5 , v112 .byte W06 @@ -117,12 +117,12 @@ se_w322_1: @********************** Track 2 **********************@ -se_w322_2: - .byte KEYSH , se_w322_key+0 +se_m_cosmic_power_2: + .byte KEYSH , se_m_cosmic_power_key+0 .byte VOICE , 53 .byte XCMD , xIECV , 9 .byte xIECL , 8 - .byte VOL , 43*se_w322_mvl/mxv + .byte VOL , 43*se_m_cosmic_power_mvl/mxv .byte BEND , c_v-2 .byte W04 .byte N08 , Fn5 , v112 @@ -194,15 +194,15 @@ se_w322_2: @******************************************************@ .align 2 -se_w322: +se_m_cosmic_power: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w322_pri @ Priority - .byte se_w322_rev @ Reverb. + .byte se_m_cosmic_power_pri @ Priority + .byte se_m_cosmic_power_rev @ Reverb. - .word se_w322_grp + .word se_m_cosmic_power_grp - .word se_w322_1 - .word se_w322_2 + .word se_m_cosmic_power_1 + .word se_m_cosmic_power_2 .end diff --git a/sound/songs/se_w152.s b/sound/songs/se_m_crabhammer.s index dc03fe76c..6333150dc 100644 --- a/sound/songs/se_w152.s +++ b/sound/songs/se_m_crabhammer.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w152_grp, voicegroup128 - .equ se_w152_pri, 4 - .equ se_w152_rev, reverb_set+50 - .equ se_w152_mvl, 127 - .equ se_w152_key, 0 - .equ se_w152_tbs, 1 - .equ se_w152_exg, 0 - .equ se_w152_cmp, 1 + .equ se_m_crabhammer_grp, voicegroup128 + .equ se_m_crabhammer_pri, 4 + .equ se_m_crabhammer_rev, reverb_set+50 + .equ se_m_crabhammer_mvl, 127 + .equ se_m_crabhammer_key, 0 + .equ se_m_crabhammer_tbs, 1 + .equ se_m_crabhammer_exg, 0 + .equ se_m_crabhammer_cmp, 1 .section .rodata - .global se_w152 + .global se_m_crabhammer .align 2 @********************** Track 1 **********************@ -se_w152_1: - .byte KEYSH , se_w152_key+0 - .byte TEMPO , 150*se_w152_tbs/2 +se_m_crabhammer_1: + .byte KEYSH , se_m_crabhammer_key+0 + .byte TEMPO , 150*se_m_crabhammer_tbs/2 .byte VOICE , 23 - .byte VOL , 100*se_w152_mvl/mxv + .byte VOL , 100*se_m_crabhammer_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+2 @@ -45,14 +45,14 @@ se_w152_1: @******************************************************@ .align 2 -se_w152: +se_m_crabhammer: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w152_pri @ Priority - .byte se_w152_rev @ Reverb. + .byte se_m_crabhammer_pri @ Priority + .byte se_m_crabhammer_rev @ Reverb. - .word se_w152_grp + .word se_m_crabhammer_grp - .word se_w152_1 + .word se_m_crabhammer_1 .end diff --git a/sound/songs/se_w197.s b/sound/songs/se_m_detect.s index 619b81b40..181fb4079 100644 --- a/sound/songs/se_w197.s +++ b/sound/songs/se_m_detect.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w197_grp, voicegroup128 - .equ se_w197_pri, 4 - .equ se_w197_rev, reverb_set+50 - .equ se_w197_mvl, 127 - .equ se_w197_key, 0 - .equ se_w197_tbs, 1 - .equ se_w197_exg, 0 - .equ se_w197_cmp, 1 + .equ se_m_detect_grp, voicegroup128 + .equ se_m_detect_pri, 4 + .equ se_m_detect_rev, reverb_set+50 + .equ se_m_detect_mvl, 127 + .equ se_m_detect_key, 0 + .equ se_m_detect_tbs, 1 + .equ se_m_detect_exg, 0 + .equ se_m_detect_cmp, 1 .section .rodata - .global se_w197 + .global se_m_detect .align 2 @********************** Track 1 **********************@ -se_w197_1: - .byte KEYSH , se_w197_key+0 - .byte TEMPO , 220*se_w197_tbs/2 +se_m_detect_1: + .byte KEYSH , se_m_detect_key+0 + .byte TEMPO , 220*se_m_detect_tbs/2 .byte VOICE , 54 - .byte VOL , 100*se_w197_mvl/mxv + .byte VOL , 100*se_m_detect_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+1 @@ -82,14 +82,14 @@ se_w197_1: @******************************************************@ .align 2 -se_w197: +se_m_detect: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w197_pri @ Priority - .byte se_w197_rev @ Reverb. + .byte se_m_detect_pri @ Priority + .byte se_m_detect_rev @ Reverb. - .word se_w197_grp + .word se_m_detect_grp - .word se_w197_1 + .word se_m_detect_1 .end diff --git a/sound/songs/se_w091.s b/sound/songs/se_m_dig.s index 953edf429..42fed8ab5 100644 --- a/sound/songs/se_w091.s +++ b/sound/songs/se_m_dig.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w091_grp, voicegroup128 - .equ se_w091_pri, 4 - .equ se_w091_rev, reverb_set+50 - .equ se_w091_mvl, 127 - .equ se_w091_key, 0 - .equ se_w091_tbs, 1 - .equ se_w091_exg, 0 - .equ se_w091_cmp, 1 + .equ se_m_dig_grp, voicegroup128 + .equ se_m_dig_pri, 4 + .equ se_m_dig_rev, reverb_set+50 + .equ se_m_dig_mvl, 127 + .equ se_m_dig_key, 0 + .equ se_m_dig_tbs, 1 + .equ se_m_dig_exg, 0 + .equ se_m_dig_cmp, 1 .section .rodata - .global se_w091 + .global se_m_dig .align 2 @********************** Track 1 **********************@ -se_w091_1: - .byte KEYSH , se_w091_key+0 - .byte TEMPO , 150*se_w091_tbs/2 +se_m_dig_1: + .byte KEYSH , se_m_dig_key+0 + .byte TEMPO , 150*se_m_dig_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 115*se_w091_mvl/mxv + .byte VOL , 115*se_m_dig_mvl/mxv .byte BEND , c_v+0 .byte N01 , Cn2 , v112 .byte W01 @@ -53,14 +53,14 @@ se_w091_1: @******************************************************@ .align 2 -se_w091: +se_m_dig: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w091_pri @ Priority - .byte se_w091_rev @ Reverb. + .byte se_m_dig_pri @ Priority + .byte se_m_dig_rev @ Reverb. - .word se_w091_grp + .word se_m_dig_grp - .word se_w091_1 + .word se_m_dig_1 .end diff --git a/sound/songs/se_w291.s b/sound/songs/se_m_dive.s index ae8d11134..2313667fc 100644 --- a/sound/songs/se_w291.s +++ b/sound/songs/se_m_dive.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w291_grp, voicegroup128 - .equ se_w291_pri, 4 - .equ se_w291_rev, reverb_set+50 - .equ se_w291_mvl, 127 - .equ se_w291_key, 0 - .equ se_w291_tbs, 1 - .equ se_w291_exg, 0 - .equ se_w291_cmp, 1 + .equ se_m_dive_grp, voicegroup128 + .equ se_m_dive_pri, 4 + .equ se_m_dive_rev, reverb_set+50 + .equ se_m_dive_mvl, 127 + .equ se_m_dive_key, 0 + .equ se_m_dive_tbs, 1 + .equ se_m_dive_exg, 0 + .equ se_m_dive_cmp, 1 .section .rodata - .global se_w291 + .global se_m_dive .align 2 @********************** Track 1 **********************@ -se_w291_1: - .byte KEYSH , se_w291_key+0 - .byte TEMPO , 150*se_w291_tbs/2 +se_m_dive_1: + .byte KEYSH , se_m_dive_key+0 + .byte TEMPO , 150*se_m_dive_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 105*se_w291_mvl/mxv + .byte VOL , 105*se_m_dive_mvl/mxv .byte BEND , c_v-18 .byte N06 , Fn2 , v127 .byte W03 @@ -43,39 +43,39 @@ se_w291_1: .byte PAN , c_v-3 .byte BEND , c_v-5 .byte W02 - .byte VOL , 100*se_w291_mvl/mxv + .byte VOL , 100*se_m_dive_mvl/mxv .byte W01 .byte PAN , c_v-6 .byte BEND , c_v-2 .byte W03 - .byte VOL , 94*se_w291_mvl/mxv + .byte VOL , 94*se_m_dive_mvl/mxv .byte W01 .byte PAN , c_v-3 .byte BEND , c_v+1 .byte W02 - .byte VOL , 84*se_w291_mvl/mxv + .byte VOL , 84*se_m_dive_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte BEND , c_v+4 .byte W04 .byte PAN , c_v+3 - .byte VOL , 72*se_w291_mvl/mxv + .byte VOL , 72*se_m_dive_mvl/mxv .byte BEND , c_v+2 .byte W04 .byte PAN , c_v+6 - .byte VOL , 57*se_w291_mvl/mxv + .byte VOL , 57*se_m_dive_mvl/mxv .byte BEND , c_v-3 .byte W03 .byte PAN , c_v+3 - .byte VOL , 37*se_w291_mvl/mxv + .byte VOL , 37*se_m_dive_mvl/mxv .byte BEND , c_v-7 .byte W03 - .byte VOL , 20*se_w291_mvl/mxv + .byte VOL , 20*se_m_dive_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte BEND , c_v-11 .byte W01 - .byte VOL , 7*se_w291_mvl/mxv + .byte VOL , 7*se_m_dive_mvl/mxv .byte W02 .byte PAN , c_v-3 .byte BEND , c_v-16 @@ -84,10 +84,10 @@ se_w291_1: @********************** Track 2 **********************@ -se_w291_2: - .byte KEYSH , se_w291_key+0 +se_m_dive_2: + .byte KEYSH , se_m_dive_key+0 .byte VOICE , 25 - .byte VOL , 105*se_w291_mvl/mxv + .byte VOL , 105*se_m_dive_mvl/mxv .byte N06 , An2 , v040 .byte W06 .byte Gn2 @@ -109,15 +109,15 @@ se_w291_2: @******************************************************@ .align 2 -se_w291: +se_m_dive: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w291_pri @ Priority - .byte se_w291_rev @ Reverb. + .byte se_m_dive_pri @ Priority + .byte se_m_dive_rev @ Reverb. - .word se_w291_grp + .word se_m_dive_grp - .word se_w291_1 - .word se_w291_2 + .word se_m_dive_1 + .word se_m_dive_2 .end diff --git a/sound/songs/se_m_dizzy_punch.s b/sound/songs/se_m_dizzy_punch.s new file mode 100644 index 000000000..886a4bc4e --- /dev/null +++ b/sound/songs/se_m_dizzy_punch.s @@ -0,0 +1,79 @@ + .include "MPlayDef.s" + + .equ se_m_dizzy_punch_grp, voicegroup128 + .equ se_m_dizzy_punch_pri, 4 + .equ se_m_dizzy_punch_rev, reverb_set+50 + .equ se_m_dizzy_punch_mvl, 127 + .equ se_m_dizzy_punch_key, 0 + .equ se_m_dizzy_punch_tbs, 1 + .equ se_m_dizzy_punch_exg, 0 + .equ se_m_dizzy_punch_cmp, 1 + + .section .rodata + .global se_m_dizzy_punch + .align 2 + +@********************** Track 1 **********************@ + +se_m_dizzy_punch_1: + .byte KEYSH , se_m_dizzy_punch_key+0 + .byte TEMPO , 150*se_m_dizzy_punch_tbs/2 + .byte VOICE , 19 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 5*se_m_dizzy_punch_mvl/mxv + .byte BEND , c_v+0 + .byte N07 , Bn5 , v080 + .byte W01 + .byte VOL , 55*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+11 + .byte BEND , c_v+3 + .byte W01 + .byte VOL , 67*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+22 + .byte BEND , c_v+0 + .byte W01 + .byte VOL , 90*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v-6 + .byte W01 + .byte PAN , c_v-12 + .byte BEND , c_v-14 + .byte W02 + .byte VOL , 4*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v-22 + .byte BEND , c_v-23 + .byte W01 + .byte PAN , c_v-13 + .byte BEND , c_v+0 + .byte N04 , Cn6 + .byte W01 + .byte VOL , 66*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+1 + .byte W01 + .byte VOL , 90*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+11 + .byte BEND , c_v+3 + .byte W01 + .byte VOL , 4*se_m_dizzy_punch_mvl/mxv + .byte PAN , c_v+21 + .byte BEND , c_v+5 + .byte W14 + .byte VOL , 90*se_m_dizzy_punch_mvl/mxv + .byte FINE + +@******************************************************@ + .align 2 + +se_m_dizzy_punch: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_dizzy_punch_pri @ Priority + .byte se_m_dizzy_punch_rev @ Reverb. + + .word se_m_dizzy_punch_grp + + .word se_m_dizzy_punch_1 + + .end diff --git a/sound/songs/se_m_double_team.s b/sound/songs/se_m_double_team.s new file mode 100644 index 000000000..49bcfb13d --- /dev/null +++ b/sound/songs/se_m_double_team.s @@ -0,0 +1,71 @@ + .include "MPlayDef.s" + + .equ se_m_double_team_grp, voicegroup128 + .equ se_m_double_team_pri, 4 + .equ se_m_double_team_rev, reverb_set+50 + .equ se_m_double_team_mvl, 127 + .equ se_m_double_team_key, 0 + .equ se_m_double_team_tbs, 1 + .equ se_m_double_team_exg, 0 + .equ se_m_double_team_cmp, 1 + + .section .rodata + .global se_m_double_team + .align 2 + +@********************** Track 1 **********************@ + +se_m_double_team_1: + .byte KEYSH , se_m_double_team_key+0 + .byte TEMPO , 150*se_m_double_team_tbs/2 + .byte VOICE , 22 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_double_team_mvl/mxv + .byte BEND , c_v-18 + .byte N19 , Dn3 , v108 + .byte W02 + .byte BEND , c_v-7 + .byte W01 + .byte VOL , 101*se_m_double_team_mvl/mxv + .byte W01 + .byte PAN , c_v-9 + .byte BEND , c_v+8 + .byte W02 + .byte VOL , 84*se_m_double_team_mvl/mxv + .byte BEND , c_v+4 + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 64*se_m_double_team_mvl/mxv + .byte BEND , c_v-13 + .byte W01 + .byte PAN , c_v+8 + .byte W02 + .byte VOL , 45*se_m_double_team_mvl/mxv + .byte BEND , c_v-31 + .byte W02 + .byte VOL , 32*se_m_double_team_mvl/mxv + .byte PAN , c_v+0 + .byte W01 + .byte VOICE , 2 + .byte W01 + .byte VOL , 13*se_m_double_team_mvl/mxv + .byte BEND , c_v-52 + .byte W08 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_double_team: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_double_team_pri @ Priority + .byte se_m_double_team_rev @ Reverb. + + .word se_m_double_team_grp + + .word se_m_double_team_1 + + .end diff --git a/sound/songs/se_m_dragon_rage.s b/sound/songs/se_m_dragon_rage.s new file mode 100644 index 000000000..e9eaefca0 --- /dev/null +++ b/sound/songs/se_m_dragon_rage.s @@ -0,0 +1,150 @@ + .include "MPlayDef.s" + + .equ se_m_dragon_rage_grp, voicegroup128 + .equ se_m_dragon_rage_pri, 4 + .equ se_m_dragon_rage_rev, reverb_set+50 + .equ se_m_dragon_rage_mvl, 127 + .equ se_m_dragon_rage_key, 0 + .equ se_m_dragon_rage_tbs, 1 + .equ se_m_dragon_rage_exg, 0 + .equ se_m_dragon_rage_cmp, 1 + + .section .rodata + .global se_m_dragon_rage + .align 2 + +@********************** Track 1 **********************@ + +se_m_dragon_rage_1: + .byte KEYSH , se_m_dragon_rage_key+0 + .byte TEMPO , 150*se_m_dragon_rage_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte PAN , c_v+5 + .byte VOL , 21*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+0 + .byte N10 , An2 , v127 + .byte W02 + .byte VOL , 47*se_m_dragon_rage_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 88*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v-5 + .byte W01 + .byte VOL , 120*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 21*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+10 + .byte N10 , Bn2 + .byte W02 + .byte PAN , c_v+5 + .byte W01 + .byte VOL , 47*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte VOL , 88*se_m_dragon_rage_mvl/mxv + .byte W03 + .byte PAN , c_v-5 + .byte VOL , 120*se_m_dragon_rage_mvl/mxv + .byte W03 + .byte PAN , c_v-2 + .byte VOL , 21*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+18 + .byte N10 , Cs3 + .byte W03 + .byte PAN , c_v+5 + .byte VOL , 47*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte 88*se_m_dragon_rage_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 120*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v-5 + .byte W02 + .byte VOL , 20*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+29 + .byte N10 , Dn3 + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 47*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+5 + .byte W01 + .byte VOL , 88*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte VOL , 120*se_m_dragon_rage_mvl/mxv + .byte W03 + .byte PAN , c_v-5 + .byte W01 + .byte VOL , 21*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+37 + .byte N10 , En3 + .byte W02 + .byte PAN , c_v-2 + .byte VOL , 46*se_m_dragon_rage_mvl/mxv + .byte W03 + .byte PAN , c_v+5 + .byte VOL , 102*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte 120*se_m_dragon_rage_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W03 + .byte c_v-5 + .byte VOL , 20*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+42 + .byte N20 , Fs3 + .byte W02 + .byte VOL , 47*se_m_dragon_rage_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 88*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+5 + .byte W01 + .byte VOL , 120*se_m_dragon_rage_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 99*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+50 + .byte W02 + .byte PAN , c_v-5 + .byte W01 + .byte VOL , 74*se_m_dragon_rage_mvl/mxv + .byte W01 + .byte BEND , c_v+56 + .byte W01 + .byte PAN , c_v-2 + .byte VOL , 53*se_m_dragon_rage_mvl/mxv + .byte W03 + .byte 34*se_m_dragon_rage_mvl/mxv + .byte BEND , c_v+63 + .byte W01 + .byte VOL , 15*se_m_dragon_rage_mvl/mxv + .byte W23 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_dragon_rage: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_dragon_rage_pri @ Priority + .byte se_m_dragon_rage_rev @ Reverb. + + .word se_m_dragon_rage_grp + + .word se_m_dragon_rage_1 + + .end diff --git a/sound/songs/se_w089.s b/sound/songs/se_m_earthquake.s index 081988ee9..104eb1bef 100644 --- a/sound/songs/se_w089.s +++ b/sound/songs/se_m_earthquake.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w089_grp, voicegroup128 - .equ se_w089_pri, 4 - .equ se_w089_rev, reverb_set+50 - .equ se_w089_mvl, 127 - .equ se_w089_key, 0 - .equ se_w089_tbs, 1 - .equ se_w089_exg, 0 - .equ se_w089_cmp, 1 + .equ se_m_earthquake_grp, voicegroup128 + .equ se_m_earthquake_pri, 4 + .equ se_m_earthquake_rev, reverb_set+50 + .equ se_m_earthquake_mvl, 127 + .equ se_m_earthquake_key, 0 + .equ se_m_earthquake_tbs, 1 + .equ se_m_earthquake_exg, 0 + .equ se_m_earthquake_cmp, 1 .section .rodata - .global se_w089 + .global se_m_earthquake .align 2 @********************** Track 1 **********************@ -se_w089_1: - .byte KEYSH , se_w089_key+0 - .byte TEMPO , 150*se_w089_tbs/2 +se_m_earthquake_1: + .byte KEYSH , se_m_earthquake_key+0 + .byte TEMPO , 150*se_m_earthquake_tbs/2 .byte VOICE , 26 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w089_mvl/mxv + .byte VOL , 110*se_m_earthquake_mvl/mxv .byte BEND , c_v+0 .byte N03 , Cs2 , v127 .byte W03 @@ -35,13 +35,13 @@ se_w089_1: .byte PAN , c_v+11 .byte N03 , Cn2 , v112 .byte W02 -se_w089_1_000: +se_m_earthquake_1_000: .byte W02 .byte PAN , c_v-11 .byte N03 , Cs2 , v108 .byte W04 .byte PEND -se_w089_1_001: +se_m_earthquake_1_001: .byte PAN , c_v+0 .byte N03 , Cn2 , v100 .byte W03 @@ -49,7 +49,7 @@ se_w089_1_001: .byte N03 , Cs2 , v116 .byte W03 .byte PEND -se_w089_1_002: +se_m_earthquake_1_002: .byte W01 .byte PAN , c_v-6 .byte N03 , Cn2 , v112 @@ -58,13 +58,13 @@ se_w089_1_002: .byte N03 , Cs2 , v108 .byte W02 .byte PEND -se_w089_1_003: +se_m_earthquake_1_003: .byte W02 .byte PAN , c_v-11 .byte N03 , Cn2 , v100 .byte W04 .byte PEND -se_w089_1_004: +se_m_earthquake_1_004: .byte PAN , c_v+0 .byte N03 , Cs2 , v116 .byte W03 @@ -72,7 +72,7 @@ se_w089_1_004: .byte N03 , Cn2 , v112 .byte W03 .byte PEND -se_w089_1_005: +se_m_earthquake_1_005: .byte W01 .byte PAN , c_v-6 .byte N03 , Cs2 , v108 @@ -81,7 +81,7 @@ se_w089_1_005: .byte N03 , Cn2 , v100 .byte W02 .byte PEND -se_w089_1_006: +se_m_earthquake_1_006: .byte W02 .byte PAN , c_v-11 .byte N03 , Cs2 , v116 @@ -104,7 +104,7 @@ se_w089_1_006: .byte PAN , c_v-11 .byte N03 , Cn2 , v112 .byte W04 -se_w089_1_007: +se_m_earthquake_1_007: .byte PAN , c_v+0 .byte N03 , Cs2 , v108 .byte W03 @@ -112,7 +112,7 @@ se_w089_1_007: .byte N03 , Cn2 , v100 .byte W03 .byte PEND -se_w089_1_008: +se_m_earthquake_1_008: .byte W01 .byte PAN , c_v-6 .byte N03 , Cs2 , v116 @@ -122,91 +122,91 @@ se_w089_1_008: .byte W02 .byte PEND .byte PATT - .word se_w089_1_000 + .word se_m_earthquake_1_000 .byte PATT - .word se_w089_1_001 + .word se_m_earthquake_1_001 .byte PATT - .word se_w089_1_002 + .word se_m_earthquake_1_002 .byte PATT - .word se_w089_1_003 + .word se_m_earthquake_1_003 .byte PATT - .word se_w089_1_007 + .word se_m_earthquake_1_007 .byte PATT - .word se_w089_1_008 + .word se_m_earthquake_1_008 .byte PATT - .word se_w089_1_000 + .word se_m_earthquake_1_000 .byte PATT - .word se_w089_1_001 + .word se_m_earthquake_1_001 .byte PATT - .word se_w089_1_002 + .word se_m_earthquake_1_002 .byte PATT - .word se_w089_1_003 + .word se_m_earthquake_1_003 .byte PATT - .word se_w089_1_004 + .word se_m_earthquake_1_004 .byte PATT - .word se_w089_1_005 + .word se_m_earthquake_1_005 .byte PATT - .word se_w089_1_006 - .byte VOL , 106*se_w089_mvl/mxv + .word se_m_earthquake_1_006 + .byte VOL , 106*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N03 , Cn2 , v112 .byte W03 - .byte VOL , 103*se_w089_mvl/mxv + .byte VOL , 103*se_m_earthquake_mvl/mxv .byte PAN , c_v+6 .byte N03 , Cs2 , v108 .byte W03 .byte W01 - .byte VOL , 97*se_w089_mvl/mxv + .byte VOL , 97*se_m_earthquake_mvl/mxv .byte PAN , c_v-6 .byte N03 , Cn2 , v100 .byte W03 - .byte VOL , 89*se_w089_mvl/mxv + .byte VOL , 89*se_m_earthquake_mvl/mxv .byte PAN , c_v+11 .byte N03 , Cs2 , v116 .byte W02 .byte W02 - .byte VOL , 85*se_w089_mvl/mxv + .byte VOL , 85*se_m_earthquake_mvl/mxv .byte PAN , c_v-11 .byte N03 , Cn2 , v112 .byte W04 - .byte VOL , 78*se_w089_mvl/mxv + .byte VOL , 78*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N03 , Cs2 , v108 .byte W03 - .byte VOL , 72*se_w089_mvl/mxv + .byte VOL , 72*se_m_earthquake_mvl/mxv .byte PAN , c_v+6 .byte N03 , Cn2 , v100 .byte W03 .byte W01 - .byte VOL , 66*se_w089_mvl/mxv + .byte VOL , 66*se_m_earthquake_mvl/mxv .byte PAN , c_v-6 .byte N03 , Cs2 , v116 .byte W03 - .byte VOL , 58*se_w089_mvl/mxv + .byte VOL , 58*se_m_earthquake_mvl/mxv .byte PAN , c_v+11 .byte N03 , Cn2 , v112 .byte W02 .byte W02 - .byte VOL , 46*se_w089_mvl/mxv + .byte VOL , 46*se_m_earthquake_mvl/mxv .byte PAN , c_v-11 .byte N03 , Cs2 , v108 .byte W04 - .byte VOL , 30*se_w089_mvl/mxv + .byte VOL , 30*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N03 , Cn2 , v100 .byte W03 - .byte VOL , 12*se_w089_mvl/mxv + .byte VOL , 12*se_m_earthquake_mvl/mxv .byte PAN , c_v+6 .byte W03 .byte FINE @********************** Track 2 **********************@ -se_w089_2: - .byte KEYSH , se_w089_key+0 +se_m_earthquake_2: + .byte KEYSH , se_m_earthquake_key+0 .byte VOICE , 5 .byte PAN , c_v+0 - .byte VOL , 110*se_w089_mvl/mxv + .byte VOL , 110*se_m_earthquake_mvl/mxv .byte N02 , Fn2 , v072 .byte W02 .byte N01 @@ -218,7 +218,7 @@ se_w089_2: .byte VOICE , 27 .byte N06 , Bn1 , v080 .byte W06 -se_w089_2_000: +se_m_earthquake_2_000: .byte PAN , c_v+0 .byte N06 , Bn1 , v080 .byte W06 @@ -228,99 +228,99 @@ se_w089_2_000: .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 .byte PATT - .word se_w089_2_000 + .word se_m_earthquake_2_000 .byte N06 , Bn1 , v080 .byte W06 .byte N06 .byte W06 - .byte VOL , 106*se_w089_mvl/mxv + .byte VOL , 106*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N06 .byte W03 - .byte VOL , 103*se_w089_mvl/mxv + .byte VOL , 103*se_m_earthquake_mvl/mxv .byte W03 .byte N06 .byte W01 - .byte VOL , 97*se_w089_mvl/mxv + .byte VOL , 97*se_m_earthquake_mvl/mxv .byte W03 - .byte 89*se_w089_mvl/mxv + .byte 89*se_m_earthquake_mvl/mxv .byte W02 .byte N06 .byte W02 - .byte VOL , 85*se_w089_mvl/mxv + .byte VOL , 85*se_m_earthquake_mvl/mxv .byte W04 - .byte 78*se_w089_mvl/mxv + .byte 78*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N06 .byte W03 - .byte VOL , 72*se_w089_mvl/mxv + .byte VOL , 72*se_m_earthquake_mvl/mxv .byte W03 .byte N06 .byte W01 - .byte VOL , 66*se_w089_mvl/mxv + .byte VOL , 66*se_m_earthquake_mvl/mxv .byte W03 - .byte 58*se_w089_mvl/mxv + .byte 58*se_m_earthquake_mvl/mxv .byte W02 .byte N06 .byte W02 - .byte VOL , 46*se_w089_mvl/mxv + .byte VOL , 46*se_m_earthquake_mvl/mxv .byte W04 - .byte 30*se_w089_mvl/mxv + .byte 30*se_m_earthquake_mvl/mxv .byte PAN , c_v+0 .byte N06 .byte W03 - .byte VOL , 12*se_w089_mvl/mxv + .byte VOL , 12*se_m_earthquake_mvl/mxv .byte W03 .byte FINE @******************************************************@ .align 2 -se_w089: +se_m_earthquake: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w089_pri @ Priority - .byte se_w089_rev @ Reverb. + .byte se_m_earthquake_pri @ Priority + .byte se_m_earthquake_rev @ Reverb. - .word se_w089_grp + .word se_m_earthquake_grp - .word se_w089_1 - .word se_w089_2 + .word se_m_earthquake_1 + .word se_m_earthquake_2 .end diff --git a/sound/songs/se_m_ember.s b/sound/songs/se_m_ember.s new file mode 100644 index 000000000..a685ca24c --- /dev/null +++ b/sound/songs/se_m_ember.s @@ -0,0 +1,61 @@ + .include "MPlayDef.s" + + .equ se_m_ember_grp, voicegroup128 + .equ se_m_ember_pri, 4 + .equ se_m_ember_rev, reverb_set+50 + .equ se_m_ember_mvl, 127 + .equ se_m_ember_key, 0 + .equ se_m_ember_tbs, 1 + .equ se_m_ember_exg, 0 + .equ se_m_ember_cmp, 1 + + .section .rodata + .global se_m_ember + .align 2 + +@********************** Track 1 **********************@ + +se_m_ember_1: + .byte KEYSH , se_m_ember_key+0 + .byte TEMPO , 150*se_m_ember_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 61*se_m_ember_mvl/mxv + .byte BEND , c_v+8 + .byte N10 , Gn3 , v127 + .byte W01 + .byte VOL , 84*se_m_ember_mvl/mxv + .byte W01 + .byte 97*se_m_ember_mvl/mxv + .byte BEND , c_v+16 + .byte W01 + .byte VOL , 110*se_m_ember_mvl/mxv + .byte W01 + .byte BEND , c_v+7 + .byte W02 + .byte c_v-12 + .byte W01 + .byte VOL , 89*se_m_ember_mvl/mxv + .byte W01 + .byte 64*se_m_ember_mvl/mxv + .byte BEND , c_v-42 + .byte W01 + .byte VOL , 34*se_m_ember_mvl/mxv + .byte W15 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_ember: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_ember_pri @ Priority + .byte se_m_ember_rev @ Reverb. + + .word se_m_ember_grp + + .word se_m_ember_1 + + .end diff --git a/sound/songs/se_w227.s b/sound/songs/se_m_encore.s index 7a6f87abc..cf13ab761 100644 --- a/sound/songs/se_w227.s +++ b/sound/songs/se_m_encore.s @@ -1,26 +1,26 @@ .include "MPlayDef.s" - .equ se_w227_grp, voicegroup128 - .equ se_w227_pri, 4 - .equ se_w227_rev, reverb_set+50 - .equ se_w227_mvl, 127 - .equ se_w227_key, 0 - .equ se_w227_tbs, 1 - .equ se_w227_exg, 0 - .equ se_w227_cmp, 1 + .equ se_m_encore_grp, voicegroup128 + .equ se_m_encore_pri, 4 + .equ se_m_encore_rev, reverb_set+50 + .equ se_m_encore_mvl, 127 + .equ se_m_encore_key, 0 + .equ se_m_encore_tbs, 1 + .equ se_m_encore_exg, 0 + .equ se_m_encore_cmp, 1 .section .rodata - .global se_w227 + .global se_m_encore .align 2 @********************** Track 1 **********************@ -se_w227_1: - .byte KEYSH , se_w227_key+0 - .byte TEMPO , 150*se_w227_tbs/2 +se_m_encore_1: + .byte KEYSH , se_m_encore_key+0 + .byte TEMPO , 150*se_m_encore_tbs/2 .byte VOICE , 59 .byte BENDR , 12 - .byte VOL , 110*se_w227_mvl/mxv + .byte VOL , 110*se_m_encore_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte N06 , En3 , v127 @@ -45,14 +45,14 @@ se_w227_1: @******************************************************@ .align 2 -se_w227: +se_m_encore: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w227_pri @ Priority - .byte se_w227_rev @ Reverb. + .byte se_m_encore_pri @ Priority + .byte se_m_encore_rev @ Reverb. - .word se_w227_grp + .word se_m_encore_grp - .word se_w227_1 + .word se_m_encore_1 .end diff --git a/sound/songs/se_w227b.s b/sound/songs/se_m_encore2.s index a3fa4adfe..9c53cdfe3 100644 --- a/sound/songs/se_w227b.s +++ b/sound/songs/se_m_encore2.s @@ -1,26 +1,26 @@ .include "MPlayDef.s" - .equ se_w227b_grp, voicegroup128 - .equ se_w227b_pri, 4 - .equ se_w227b_rev, reverb_set+50 - .equ se_w227b_mvl, 127 - .equ se_w227b_key, 0 - .equ se_w227b_tbs, 1 - .equ se_w227b_exg, 0 - .equ se_w227b_cmp, 1 + .equ se_m_encore2_grp, voicegroup128 + .equ se_m_encore2_pri, 4 + .equ se_m_encore2_rev, reverb_set+50 + .equ se_m_encore2_mvl, 127 + .equ se_m_encore2_key, 0 + .equ se_m_encore2_tbs, 1 + .equ se_m_encore2_exg, 0 + .equ se_m_encore2_cmp, 1 .section .rodata - .global se_w227b + .global se_m_encore2 .align 2 @********************** Track 1 **********************@ -se_w227b_1: - .byte KEYSH , se_w227b_key+0 - .byte TEMPO , 150*se_w227b_tbs/2 +se_m_encore2_1: + .byte KEYSH , se_m_encore2_key+0 + .byte TEMPO , 150*se_m_encore2_tbs/2 .byte VOICE , 60 .byte BENDR , 12 - .byte VOL , 25*se_w227b_mvl/mxv + .byte VOL , 25*se_m_encore2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte TIE , Cn3 , v127 @@ -29,18 +29,18 @@ se_w227b_1: .byte W01 .byte c_v+5 .byte W01 - .byte VOL , 34*se_w227b_mvl/mxv + .byte VOL , 34*se_m_encore2_mvl/mxv .byte W01 .byte PAN , c_v+2 .byte W02 .byte c_v+0 .byte W01 - .byte VOL , 46*se_w227b_mvl/mxv + .byte VOL , 46*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W01 .byte c_v-4 .byte W02 - .byte VOL , 56*se_w227b_mvl/mxv + .byte VOL , 56*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W02 .byte c_v+0 @@ -49,30 +49,30 @@ se_w227b_1: .byte W01 .byte c_v+5 .byte W01 - .byte VOL , 70*se_w227b_mvl/mxv + .byte VOL , 70*se_m_encore2_mvl/mxv .byte W01 .byte PAN , c_v+2 .byte W02 .byte c_v+0 .byte W01 - .byte VOL , 80*se_w227b_mvl/mxv + .byte VOL , 80*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W01 .byte c_v-4 .byte W02 - .byte VOL , 88*se_w227b_mvl/mxv + .byte VOL , 88*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W02 .byte c_v+0 .byte W01 .byte c_v+2 .byte W01 - .byte VOL , 96*se_w227b_mvl/mxv + .byte VOL , 96*se_m_encore2_mvl/mxv .byte PAN , c_v+5 .byte W02 .byte c_v+2 .byte W02 - .byte VOL , 100*se_w227b_mvl/mxv + .byte VOL , 100*se_m_encore2_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v-2 @@ -81,7 +81,7 @@ se_w227b_1: .byte W02 .byte c_v-2 .byte W02 -se_w227b_1_000: +se_m_encore2_1_000: .byte PAN , c_v+0 .byte W01 .byte c_v+2 @@ -100,58 +100,58 @@ se_w227b_1_000: .byte W02 .byte PEND .byte PATT - .word se_w227b_1_000 + .word se_m_encore2_1_000 .byte PATT - .word se_w227b_1_000 + .word se_m_encore2_1_000 .byte PATT - .word se_w227b_1_000 + .word se_m_encore2_1_000 .byte PATT - .word se_w227b_1_000 + .word se_m_encore2_1_000 .byte PATT - .word se_w227b_1_000 + .word se_m_encore2_1_000 .byte PATT - .word se_w227b_1_000 - .byte VOL , 96*se_w227b_mvl/mxv + .word se_m_encore2_1_000 + .byte VOL , 96*se_m_encore2_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v+2 .byte W01 .byte c_v+5 .byte W01 - .byte VOL , 92*se_w227b_mvl/mxv + .byte VOL , 92*se_m_encore2_mvl/mxv .byte W01 .byte PAN , c_v+2 .byte W02 .byte c_v+0 .byte W01 - .byte VOL , 84*se_w227b_mvl/mxv + .byte VOL , 84*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W01 .byte c_v-4 .byte W02 - .byte VOL , 72*se_w227b_mvl/mxv + .byte VOL , 72*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W02 .byte c_v+0 .byte W01 .byte c_v+2 .byte W01 - .byte VOL , 63*se_w227b_mvl/mxv + .byte VOL , 63*se_m_encore2_mvl/mxv .byte PAN , c_v+5 .byte W02 - .byte VOL , 52*se_w227b_mvl/mxv + .byte VOL , 52*se_m_encore2_mvl/mxv .byte PAN , c_v+2 .byte W02 .byte c_v+0 .byte W01 - .byte VOL , 37*se_w227b_mvl/mxv + .byte VOL , 37*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W01 .byte c_v-4 .byte W01 - .byte VOL , 22*se_w227b_mvl/mxv + .byte VOL , 22*se_m_encore2_mvl/mxv .byte W01 - .byte 12*se_w227b_mvl/mxv + .byte 12*se_m_encore2_mvl/mxv .byte PAN , c_v-2 .byte W02 .byte EOT , Cn3 @@ -160,14 +160,14 @@ se_w227b_1_000: @******************************************************@ .align 2 -se_w227b: +se_m_encore2: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w227b_pri @ Priority - .byte se_w227b_rev @ Reverb. + .byte se_m_encore2_pri @ Priority + .byte se_m_encore2_rev @ Reverb. - .word se_w227b_grp + .word se_m_encore2_grp - .word se_w227b_1 + .word se_m_encore2_1 .end diff --git a/sound/songs/se_w153.s b/sound/songs/se_m_explosion.s index fe4e25a9e..c93f485b8 100644 --- a/sound/songs/se_w153.s +++ b/sound/songs/se_m_explosion.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w153_grp, voicegroup128 - .equ se_w153_pri, 4 - .equ se_w153_rev, reverb_set+50 - .equ se_w153_mvl, 127 - .equ se_w153_key, 0 - .equ se_w153_tbs, 1 - .equ se_w153_exg, 0 - .equ se_w153_cmp, 1 + .equ se_m_explosion_grp, voicegroup128 + .equ se_m_explosion_pri, 4 + .equ se_m_explosion_rev, reverb_set+50 + .equ se_m_explosion_mvl, 127 + .equ se_m_explosion_key, 0 + .equ se_m_explosion_tbs, 1 + .equ se_m_explosion_exg, 0 + .equ se_m_explosion_cmp, 1 .section .rodata - .global se_w153 + .global se_m_explosion .align 2 @********************** Track 1 **********************@ -se_w153_1: - .byte KEYSH , se_w153_key+0 - .byte TEMPO , 150*se_w153_tbs/2 +se_m_explosion_1: + .byte KEYSH , se_m_explosion_key+0 + .byte TEMPO , 150*se_m_explosion_tbs/2 .byte VOICE , 41 - .byte VOL , 125*se_w153_mvl/mxv + .byte VOL , 125*se_m_explosion_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -82,20 +82,20 @@ se_w153_1: @********************** Track 2 **********************@ -se_w153_2: - .byte KEYSH , se_w153_key+0 +se_m_explosion_2: + .byte KEYSH , se_m_explosion_key+0 .byte VOICE , 4 - .byte VOL , 125*se_w153_mvl/mxv + .byte VOL , 125*se_m_explosion_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+1 .byte N02 , Cn3 , v052 .byte W01 - .byte VOL , 74*se_w153_mvl/mxv + .byte VOL , 74*se_m_explosion_mvl/mxv .byte W06 - .byte 125*se_w153_mvl/mxv + .byte 125*se_m_explosion_mvl/mxv .byte N02 .byte W01 - .byte VOL , 74*se_w153_mvl/mxv + .byte VOL , 74*se_m_explosion_mvl/mxv .byte W16 .byte W24 .byte W24 @@ -104,15 +104,15 @@ se_w153_2: @******************************************************@ .align 2 -se_w153: +se_m_explosion: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w153_pri @ Priority - .byte se_w153_rev @ Reverb. + .byte se_m_explosion_pri @ Priority + .byte se_m_explosion_rev @ Reverb. - .word se_w153_grp + .word se_m_explosion_grp - .word se_w153_1 - .word se_w153_2 + .word se_m_explosion_1 + .word se_m_explosion_2 .end diff --git a/sound/songs/se_w185.s b/sound/songs/se_m_faint_attack.s index 8ec9ebfe8..ce53c7173 100644 --- a/sound/songs/se_w185.s +++ b/sound/songs/se_m_faint_attack.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w185_grp, voicegroup128 - .equ se_w185_pri, 4 - .equ se_w185_rev, reverb_set+50 - .equ se_w185_mvl, 127 - .equ se_w185_key, 0 - .equ se_w185_tbs, 1 - .equ se_w185_exg, 0 - .equ se_w185_cmp, 1 + .equ se_m_faint_attack_grp, voicegroup128 + .equ se_m_faint_attack_pri, 4 + .equ se_m_faint_attack_rev, reverb_set+50 + .equ se_m_faint_attack_mvl, 127 + .equ se_m_faint_attack_key, 0 + .equ se_m_faint_attack_tbs, 1 + .equ se_m_faint_attack_exg, 0 + .equ se_m_faint_attack_cmp, 1 .section .rodata - .global se_w185 + .global se_m_faint_attack .align 2 @********************** Track 1 **********************@ -se_w185_1: - .byte KEYSH , se_w185_key+0 - .byte TEMPO , 150*se_w185_tbs/2 +se_m_faint_attack_1: + .byte KEYSH , se_m_faint_attack_key+0 + .byte TEMPO , 150*se_m_faint_attack_tbs/2 .byte VOICE , 45 - .byte VOL , 100*se_w185_mvl/mxv + .byte VOL , 100*se_m_faint_attack_mvl/mxv .byte BENDR , 2 .byte PAN , c_v+0 .byte BEND , c_v-5 @@ -76,14 +76,14 @@ se_w185_1: @******************************************************@ .align 2 -se_w185: +se_m_faint_attack: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w185_pri @ Priority - .byte se_w185_rev @ Reverb. + .byte se_m_faint_attack_pri @ Priority + .byte se_m_faint_attack_rev @ Reverb. - .word se_w185_grp + .word se_m_faint_attack_grp - .word se_w185_1 + .word se_m_faint_attack_1 .end diff --git a/sound/songs/se_m_flame_wheel.s b/sound/songs/se_m_flame_wheel.s new file mode 100644 index 000000000..797073466 --- /dev/null +++ b/sound/songs/se_m_flame_wheel.s @@ -0,0 +1,124 @@ + .include "MPlayDef.s" + + .equ se_m_flame_wheel_grp, voicegroup128 + .equ se_m_flame_wheel_pri, 4 + .equ se_m_flame_wheel_rev, reverb_set+50 + .equ se_m_flame_wheel_mvl, 127 + .equ se_m_flame_wheel_key, 0 + .equ se_m_flame_wheel_tbs, 1 + .equ se_m_flame_wheel_exg, 0 + .equ se_m_flame_wheel_cmp, 1 + + .section .rodata + .global se_m_flame_wheel + .align 2 + +@********************** Track 1 **********************@ + +se_m_flame_wheel_1: + .byte KEYSH , se_m_flame_wheel_key+0 + .byte TEMPO , 150*se_m_flame_wheel_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 22*se_m_flame_wheel_mvl/mxv + .byte BEND , c_v+0 + .byte N30 , Dn4 , v127 + .byte W01 + .byte VOL , 49*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 71*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 95*se_m_flame_wheel_mvl/mxv + .byte BEND , c_v+8 + .byte W01 + .byte VOL , 110*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte PAN , c_v+5 + .byte BEND , c_v+16 + .byte W01 + .byte VOL , 95*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 88*se_m_flame_wheel_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+7 + .byte W01 + .byte VOL , 93*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 110*se_m_flame_wheel_mvl/mxv + .byte PAN , c_v-5 + .byte BEND , c_v+0 + .byte W02 + .byte VOL , 86*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte BEND , c_v-9 + .byte W01 + .byte VOL , 63*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 37*se_m_flame_wheel_mvl/mxv + .byte BEND , c_v-24 + .byte W03 + .byte VOL , 13*se_m_flame_wheel_mvl/mxv + .byte BEND , c_v-46 + .byte W03 + .byte W03 + .byte W03 + .byte W03 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_flame_wheel_2: + .byte KEYSH , se_m_flame_wheel_key+0 + .byte VOICE , 27 + .byte PAN , c_v+0 + .byte VOL , 22*se_m_flame_wheel_mvl/mxv + .byte N30 , Gn2 , v032 + .byte W01 + .byte VOL , 49*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 71*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 95*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 110*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte W01 + .byte 95*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 88*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte 93*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 110*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 86*se_m_flame_wheel_mvl/mxv + .byte W01 + .byte W01 + .byte 63*se_m_flame_wheel_mvl/mxv + .byte W02 + .byte 37*se_m_flame_wheel_mvl/mxv + .byte W03 + .byte 13*se_m_flame_wheel_mvl/mxv + .byte W03 + .byte W03 + .byte W03 + .byte W03 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_flame_wheel: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_flame_wheel_pri @ Priority + .byte se_m_flame_wheel_rev @ Reverb. + + .word se_m_flame_wheel_grp + + .word se_m_flame_wheel_1 + .word se_m_flame_wheel_2 + + .end diff --git a/sound/songs/se_m_flame_wheel2.s b/sound/songs/se_m_flame_wheel2.s new file mode 100644 index 000000000..21f911b0b --- /dev/null +++ b/sound/songs/se_m_flame_wheel2.s @@ -0,0 +1,99 @@ + .include "MPlayDef.s" + + .equ se_m_flame_wheel2_grp, voicegroup128 + .equ se_m_flame_wheel2_pri, 4 + .equ se_m_flame_wheel2_rev, reverb_set+50 + .equ se_m_flame_wheel2_mvl, 127 + .equ se_m_flame_wheel2_key, 0 + .equ se_m_flame_wheel2_tbs, 1 + .equ se_m_flame_wheel2_exg, 0 + .equ se_m_flame_wheel2_cmp, 1 + + .section .rodata + .global se_m_flame_wheel2 + .align 2 + +@********************** Track 1 **********************@ + +se_m_flame_wheel2_1: + .byte KEYSH , se_m_flame_wheel2_key+0 + .byte TEMPO , 150*se_m_flame_wheel2_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_flame_wheel2_mvl/mxv + .byte BEND , c_v+0 + .byte N48 , Cn4 , v127 + .byte W06 + .byte PAN , c_v+4 + .byte W03 + .byte BEND , c_v+2 + .byte W03 + .byte PAN , c_v+10 + .byte W03 + .byte BEND , c_v+5 + .byte W03 + .byte VOL , 98*se_m_flame_wheel2_mvl/mxv + .byte PAN , c_v+4 + .byte W03 + .byte BEND , c_v+3 + .byte W03 + .byte VOL , 88*se_m_flame_wheel2_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte BEND , c_v-5 + .byte W03 + .byte VOL , 68*se_m_flame_wheel2_mvl/mxv + .byte PAN , c_v-5 + .byte W03 + .byte c_v+7 + .byte BEND , c_v-9 + .byte W03 + .byte VOL , 44*se_m_flame_wheel2_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte BEND , c_v-15 + .byte W03 + .byte VOL , 13*se_m_flame_wheel2_mvl/mxv + .byte BEND , c_v-24 + .byte W03 + .byte c_v-40 + .byte W03 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_flame_wheel2_2: + .byte KEYSH , se_m_flame_wheel2_key+0 + .byte VOICE , 27 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_flame_wheel2_mvl/mxv + .byte N48 , Gn2 , v032 + .byte W18 + .byte VOL , 98*se_m_flame_wheel2_mvl/mxv + .byte W06 + .byte 88*se_m_flame_wheel2_mvl/mxv + .byte W06 + .byte 68*se_m_flame_wheel2_mvl/mxv + .byte W06 + .byte 44*se_m_flame_wheel2_mvl/mxv + .byte W06 + .byte 13*se_m_flame_wheel2_mvl/mxv + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_flame_wheel2: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_flame_wheel2_pri @ Priority + .byte se_m_flame_wheel2_rev @ Reverb. + + .word se_m_flame_wheel2_grp + + .word se_m_flame_wheel2_1 + .word se_m_flame_wheel2_2 + + .end diff --git a/sound/songs/se_w053.s b/sound/songs/se_m_flamethrower.s index 7c414896a..29438337f 100644 --- a/sound/songs/se_w053.s +++ b/sound/songs/se_m_flamethrower.s @@ -1,26 +1,26 @@ .include "MPlayDef.s" - .equ se_w053_grp, voicegroup128 - .equ se_w053_pri, 4 - .equ se_w053_rev, reverb_set+50 - .equ se_w053_mvl, 127 - .equ se_w053_key, 0 - .equ se_w053_tbs, 1 - .equ se_w053_exg, 0 - .equ se_w053_cmp, 1 + .equ se_m_flamethrower_grp, voicegroup128 + .equ se_m_flamethrower_pri, 4 + .equ se_m_flamethrower_rev, reverb_set+50 + .equ se_m_flamethrower_mvl, 127 + .equ se_m_flamethrower_key, 0 + .equ se_m_flamethrower_tbs, 1 + .equ se_m_flamethrower_exg, 0 + .equ se_m_flamethrower_cmp, 1 .section .rodata - .global se_w053 + .global se_m_flamethrower .align 2 @********************** Track 1 **********************@ -se_w053_1: - .byte KEYSH , se_w053_key+0 - .byte TEMPO , 150*se_w053_tbs/2 +se_m_flamethrower_1: + .byte KEYSH , se_m_flamethrower_key+0 + .byte TEMPO , 150*se_m_flamethrower_tbs/2 .byte VOICE , 29 .byte BENDR , 12 - .byte VOL , 110*se_w053_mvl/mxv + .byte VOL , 110*se_m_flamethrower_mvl/mxv .byte PAN , c_v+4 .byte BEND , c_v+50 .byte TIE , Cn3 , v127 @@ -66,7 +66,7 @@ se_w053_1: .byte W03 .byte c_v+0 .byte W03 -se_w053_1_000: +se_m_flamethrower_1_000: .byte PAN , c_v+4 .byte W03 .byte c_v-5 @@ -83,48 +83,48 @@ se_w053_1_000: .byte W03 .byte PEND .byte PATT - .word se_w053_1_000 + .word se_m_flamethrower_1_000 .byte PATT - .word se_w053_1_000 + .word se_m_flamethrower_1_000 .byte PATT - .word se_w053_1_000 + .word se_m_flamethrower_1_000 .byte PAN , c_v+4 .byte W03 .byte c_v-5 .byte W03 - .byte VOL , 103*se_w053_mvl/mxv + .byte VOL , 103*se_m_flamethrower_mvl/mxv .byte W01 .byte PAN , c_v+8 .byte W03 - .byte VOL , 96*se_w053_mvl/mxv + .byte VOL , 96*se_m_flamethrower_mvl/mxv .byte PAN , c_v-9 .byte W04 .byte c_v+4 .byte W02 - .byte VOL , 88*se_w053_mvl/mxv + .byte VOL , 88*se_m_flamethrower_mvl/mxv .byte W02 .byte PAN , c_v-5 .byte W03 .byte c_v+0 .byte W01 - .byte VOL , 73*se_w053_mvl/mxv + .byte VOL , 73*se_m_flamethrower_mvl/mxv .byte W02 .byte PAN , c_v+4 .byte W03 - .byte VOL , 62*se_w053_mvl/mxv + .byte VOL , 62*se_m_flamethrower_mvl/mxv .byte PAN , c_v-5 .byte W04 .byte c_v+8 .byte W01 - .byte VOL , 47*se_w053_mvl/mxv + .byte VOL , 47*se_m_flamethrower_mvl/mxv .byte W02 .byte PAN , c_v-9 .byte W03 - .byte VOL , 27*se_w053_mvl/mxv + .byte VOL , 27*se_m_flamethrower_mvl/mxv .byte W01 .byte PAN , c_v+4 .byte W04 - .byte VOL , 10*se_w053_mvl/mxv + .byte VOL , 10*se_m_flamethrower_mvl/mxv .byte PAN , c_v-5 .byte W03 .byte c_v+0 @@ -134,20 +134,20 @@ se_w053_1_000: @********************** Track 2 **********************@ -se_w053_2: - .byte KEYSH , se_w053_key+0 +se_m_flamethrower_2: + .byte KEYSH , se_m_flamethrower_key+0 .byte VOICE , 27 .byte PAN , c_v+0 - .byte VOL , 110*se_w053_mvl/mxv + .byte VOL , 110*se_m_flamethrower_mvl/mxv .byte N24 , Fn2 , v060 .byte W10 - .byte VOL , 99*se_w053_mvl/mxv + .byte VOL , 99*se_m_flamethrower_mvl/mxv .byte W05 - .byte 82*se_w053_mvl/mxv + .byte 82*se_m_flamethrower_mvl/mxv .byte W04 - .byte 54*se_w053_mvl/mxv + .byte 54*se_m_flamethrower_mvl/mxv .byte W02 - .byte 25*se_w053_mvl/mxv + .byte 25*se_m_flamethrower_mvl/mxv .byte W03 .byte W24 .byte W24 @@ -161,15 +161,15 @@ se_w053_2: @******************************************************@ .align 2 -se_w053: +se_m_flamethrower: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w053_pri @ Priority - .byte se_w053_rev @ Reverb. + .byte se_m_flamethrower_pri @ Priority + .byte se_m_flamethrower_rev @ Reverb. - .word se_w053_grp + .word se_m_flamethrower_grp - .word se_w053_1 - .word se_w053_2 + .word se_m_flamethrower_1 + .word se_m_flamethrower_2 .end diff --git a/sound/songs/se_m_flatter.s b/sound/songs/se_m_flatter.s new file mode 100644 index 000000000..e3746c990 --- /dev/null +++ b/sound/songs/se_m_flatter.s @@ -0,0 +1,67 @@ + .include "MPlayDef.s" + + .equ se_m_flatter_grp, voicegroup128 + .equ se_m_flatter_pri, 4 + .equ se_m_flatter_rev, reverb_set+50 + .equ se_m_flatter_mvl, 127 + .equ se_m_flatter_key, 0 + .equ se_m_flatter_tbs, 1 + .equ se_m_flatter_exg, 0 + .equ se_m_flatter_cmp, 1 + + .section .rodata + .global se_m_flatter + .align 2 + +@********************** Track 1 **********************@ + +se_m_flatter_1: + .byte KEYSH , se_m_flatter_key+0 + .byte TEMPO , 150*se_m_flatter_tbs/2 + .byte VOICE , 41 + .byte VOL , 100*se_m_flatter_mvl/mxv + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte BEND , c_v+0 + .byte N01 , Dn5 , v127 + .byte W01 + .byte Gn4 + .byte W01 + .byte N09 , En5 + .byte W02 + .byte PAN , c_v+6 + .byte W02 + .byte VOL , 92*se_m_flatter_mvl/mxv + .byte PAN , c_v-8 + .byte W01 + .byte VOL , 83*se_m_flatter_mvl/mxv + .byte PAN , c_v+6 + .byte W01 + .byte VOL , 71*se_m_flatter_mvl/mxv + .byte PAN , c_v-8 + .byte BEND , c_v-4 + .byte W01 + .byte VOL , 46*se_m_flatter_mvl/mxv + .byte PAN , c_v+11 + .byte BEND , c_v-8 + .byte W01 + .byte VOL , 22*se_m_flatter_mvl/mxv + .byte PAN , c_v-12 + .byte BEND , c_v-15 + .byte W02 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_flatter: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_flatter_pri @ Priority + .byte se_m_flatter_rev @ Reverb. + + .word se_m_flatter_grp + + .word se_m_flatter_1 + + .end diff --git a/sound/songs/se_w202.s b/sound/songs/se_m_giga_drain.s index 6149a878d..4596a0252 100644 --- a/sound/songs/se_w202.s +++ b/sound/songs/se_m_giga_drain.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w202_grp, voicegroup128 - .equ se_w202_pri, 4 - .equ se_w202_rev, reverb_set+50 - .equ se_w202_mvl, 127 - .equ se_w202_key, 0 - .equ se_w202_tbs, 1 - .equ se_w202_exg, 0 - .equ se_w202_cmp, 1 + .equ se_m_giga_drain_grp, voicegroup128 + .equ se_m_giga_drain_pri, 4 + .equ se_m_giga_drain_rev, reverb_set+50 + .equ se_m_giga_drain_mvl, 127 + .equ se_m_giga_drain_key, 0 + .equ se_m_giga_drain_tbs, 1 + .equ se_m_giga_drain_exg, 0 + .equ se_m_giga_drain_cmp, 1 .section .rodata - .global se_w202 + .global se_m_giga_drain .align 2 @********************** Track 1 **********************@ -se_w202_1: - .byte KEYSH , se_w202_key+0 - .byte TEMPO , 150*se_w202_tbs/2 +se_m_giga_drain_1: + .byte KEYSH , se_m_giga_drain_key+0 + .byte TEMPO , 150*se_m_giga_drain_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w202_mvl/mxv + .byte VOL , 110*se_m_giga_drain_mvl/mxv .byte BEND , c_v+0 .byte N03 , Gn2 , v127 .byte W02 @@ -68,14 +68,14 @@ se_w202_1: @******************************************************@ .align 2 -se_w202: +se_m_giga_drain: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w202_pri @ Priority - .byte se_w202_rev @ Reverb. + .byte se_m_giga_drain_pri @ Priority + .byte se_m_giga_drain_rev @ Reverb. - .word se_w202_grp + .word se_m_giga_drain_grp - .word se_w202_1 + .word se_m_giga_drain_1 .end diff --git a/sound/songs/se_w320.s b/sound/songs/se_m_grasswhistle.s index 82d93b571..111bc2166 100644 --- a/sound/songs/se_w320.s +++ b/sound/songs/se_m_grasswhistle.s @@ -1,28 +1,28 @@ .include "MPlayDef.s" - .equ se_w320_grp, voicegroup128 - .equ se_w320_pri, 4 - .equ se_w320_rev, reverb_set+50 - .equ se_w320_mvl, 127 - .equ se_w320_key, 0 - .equ se_w320_tbs, 1 - .equ se_w320_exg, 0 - .equ se_w320_cmp, 1 + .equ se_m_grasswhistle_grp, voicegroup128 + .equ se_m_grasswhistle_pri, 4 + .equ se_m_grasswhistle_rev, reverb_set+50 + .equ se_m_grasswhistle_mvl, 127 + .equ se_m_grasswhistle_key, 0 + .equ se_m_grasswhistle_tbs, 1 + .equ se_m_grasswhistle_exg, 0 + .equ se_m_grasswhistle_cmp, 1 .section .rodata - .global se_w320 + .global se_m_grasswhistle .align 2 @********************** Track 1 **********************@ -se_w320_1: - .byte KEYSH , se_w320_key+0 - .byte TEMPO , 100*se_w320_tbs/2 +se_m_grasswhistle_1: + .byte KEYSH , se_m_grasswhistle_key+0 + .byte TEMPO , 100*se_m_grasswhistle_tbs/2 .byte VOICE , 64 .byte BENDR , 2 .byte LFOS , 40 .byte PAN , c_v+0 - .byte VOL , 70*se_w320_mvl/mxv + .byte VOL , 70*se_m_grasswhistle_mvl/mxv .byte BEND , c_v-16 .byte N21 , Gn5 , v112 .byte W03 @@ -52,24 +52,24 @@ se_w320_1: .byte W12 .byte W12 .byte W06 - .byte VOL , 61*se_w320_mvl/mxv + .byte VOL , 61*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 51*se_w320_mvl/mxv + .byte 51*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 36*se_w320_mvl/mxv + .byte 36*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 18*se_w320_mvl/mxv + .byte 18*se_m_grasswhistle_mvl/mxv .byte W12 .byte FINE @********************** Track 2 **********************@ -se_w320_2: - .byte KEYSH , se_w320_key+0 +se_m_grasswhistle_2: + .byte KEYSH , se_m_grasswhistle_key+0 .byte VOICE , 64 .byte BENDR , 2 .byte LFOS , 40 - .byte VOL , 70*se_w320_mvl/mxv + .byte VOL , 70*se_m_grasswhistle_mvl/mxv .byte W12 .byte PAN , c_v+12 .byte BEND , c_v-16 @@ -103,28 +103,28 @@ se_w320_2: .byte MOD , 10 .byte W12 .byte W06 - .byte VOL , 61*se_w320_mvl/mxv + .byte VOL , 61*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 51*se_w320_mvl/mxv + .byte 51*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 36*se_w320_mvl/mxv + .byte 36*se_m_grasswhistle_mvl/mxv .byte W06 - .byte 18*se_w320_mvl/mxv + .byte 18*se_m_grasswhistle_mvl/mxv .byte W12 .byte FINE @******************************************************@ .align 2 -se_w320: +se_m_grasswhistle: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w320_pri @ Priority - .byte se_w320_rev @ Reverb. + .byte se_m_grasswhistle_pri @ Priority + .byte se_m_grasswhistle_rev @ Reverb. - .word se_w320_grp + .word se_m_grasswhistle_grp - .word se_w320_1 - .word se_w320_2 + .word se_m_grasswhistle_1 + .word se_m_grasswhistle_2 .end diff --git a/sound/songs/se_w258.s b/sound/songs/se_m_hail.s index e2b1a531f..0c04af212 100644 --- a/sound/songs/se_w258.s +++ b/sound/songs/se_m_hail.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w258_grp, voicegroup128 - .equ se_w258_pri, 4 - .equ se_w258_rev, reverb_set+50 - .equ se_w258_mvl, 127 - .equ se_w258_key, 0 - .equ se_w258_tbs, 1 - .equ se_w258_exg, 0 - .equ se_w258_cmp, 1 + .equ se_m_hail_grp, voicegroup128 + .equ se_m_hail_pri, 4 + .equ se_m_hail_rev, reverb_set+50 + .equ se_m_hail_mvl, 127 + .equ se_m_hail_key, 0 + .equ se_m_hail_tbs, 1 + .equ se_m_hail_exg, 0 + .equ se_m_hail_cmp, 1 .section .rodata - .global se_w258 + .global se_m_hail .align 2 @********************** Track 1 **********************@ -se_w258_1: - .byte KEYSH , se_w258_key+0 - .byte TEMPO , 150*se_w258_tbs/2 +se_m_hail_1: + .byte KEYSH , se_m_hail_key+0 + .byte TEMPO , 150*se_m_hail_tbs/2 .byte VOICE , 3 - .byte VOL , 100*se_w258_mvl/mxv + .byte VOL , 100*se_m_hail_mvl/mxv .byte PAN , c_v+0 .byte N01 , Fn4 , v112 .byte W04 @@ -57,10 +57,10 @@ se_w258_1: @********************** Track 2 **********************@ -se_w258_2: - .byte KEYSH , se_w258_key+0 +se_m_hail_2: + .byte KEYSH , se_m_hail_key+0 .byte VOICE , 4 - .byte VOL , 100*se_w258_mvl/mxv + .byte VOL , 100*se_m_hail_mvl/mxv .byte PAN , c_v+0 .byte N01 , Dn4 , v040 .byte W04 @@ -84,15 +84,15 @@ se_w258_2: @******************************************************@ .align 2 -se_w258: +se_m_hail: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w258_pri @ Priority - .byte se_w258_rev @ Reverb. + .byte se_m_hail_pri @ Priority + .byte se_m_hail_rev @ Reverb. - .word se_w258_grp + .word se_m_hail_grp - .word se_w258_1 - .word se_w258_2 + .word se_m_hail_1 + .word se_m_hail_2 .end diff --git a/sound/songs/se_w231.s b/sound/songs/se_m_harden.s index 46e5ba938..e9bd888de 100644 --- a/sound/songs/se_w231.s +++ b/sound/songs/se_m_harden.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w231_grp, voicegroup128 - .equ se_w231_pri, 4 - .equ se_w231_rev, reverb_set+50 - .equ se_w231_mvl, 127 - .equ se_w231_key, 0 - .equ se_w231_tbs, 1 - .equ se_w231_exg, 0 - .equ se_w231_cmp, 1 + .equ se_m_harden_grp, voicegroup128 + .equ se_m_harden_pri, 4 + .equ se_m_harden_rev, reverb_set+50 + .equ se_m_harden_mvl, 127 + .equ se_m_harden_key, 0 + .equ se_m_harden_tbs, 1 + .equ se_m_harden_exg, 0 + .equ se_m_harden_cmp, 1 .section .rodata - .global se_w231 + .global se_m_harden .align 2 @********************** Track 1 **********************@ -se_w231_1: - .byte KEYSH , se_w231_key+0 - .byte TEMPO , 150*se_w231_tbs/2 +se_m_harden_1: + .byte KEYSH , se_m_harden_key+0 + .byte TEMPO , 150*se_m_harden_tbs/2 .byte VOICE , 28 - .byte VOL , 100*se_w231_mvl/mxv + .byte VOL , 100*se_m_harden_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+16 .byte N03 , Gs3 , v080 @@ -46,10 +46,10 @@ se_w231_1: @********************** Track 2 **********************@ -se_w231_2: - .byte KEYSH , se_w231_key+0 +se_m_harden_2: + .byte KEYSH , se_m_harden_key+0 .byte VOICE , 4 - .byte VOL , 100*se_w231_mvl/mxv + .byte VOL , 100*se_m_harden_mvl/mxv .byte PAN , c_v+0 .byte N01 , En4 , v060 .byte W04 @@ -60,15 +60,15 @@ se_w231_2: @******************************************************@ .align 2 -se_w231: +se_m_harden: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w231_pri @ Priority - .byte se_w231_rev @ Reverb. + .byte se_m_harden_pri @ Priority + .byte se_m_harden_rev @ Reverb. - .word se_w231_grp + .word se_m_harden_grp - .word se_w231_1 - .word se_w231_2 + .word se_m_harden_1 + .word se_m_harden_2 .end diff --git a/sound/songs/se_w114.s b/sound/songs/se_m_haze.s index 4de8c4ed8..4bf61faa6 100644 --- a/sound/songs/se_w114.s +++ b/sound/songs/se_m_haze.s @@ -1,191 +1,191 @@ .include "MPlayDef.s" - .equ se_w114_grp, voicegroup128 - .equ se_w114_pri, 4 - .equ se_w114_rev, reverb_set+50 - .equ se_w114_mvl, 127 - .equ se_w114_key, 0 - .equ se_w114_tbs, 1 - .equ se_w114_exg, 0 - .equ se_w114_cmp, 1 + .equ se_m_haze_grp, voicegroup128 + .equ se_m_haze_pri, 4 + .equ se_m_haze_rev, reverb_set+50 + .equ se_m_haze_mvl, 127 + .equ se_m_haze_key, 0 + .equ se_m_haze_tbs, 1 + .equ se_m_haze_exg, 0 + .equ se_m_haze_cmp, 1 .section .rodata - .global se_w114 + .global se_m_haze .align 2 @********************** Track 1 **********************@ -se_w114_1: - .byte KEYSH , se_w114_key+0 - .byte TEMPO , 190*se_w114_tbs/2 +se_m_haze_1: + .byte KEYSH , se_m_haze_key+0 + .byte TEMPO , 190*se_m_haze_tbs/2 .byte VOICE , 45 .byte BENDR , 8 .byte PAN , c_v-47 - .byte VOL , 10*se_w114_mvl/mxv + .byte VOL , 10*se_m_haze_mvl/mxv .byte MOD , 30 .byte BEND , c_v+1 .byte TIE , As2 , v100 .byte W03 - .byte VOL , 14*se_w114_mvl/mxv + .byte VOL , 14*se_m_haze_mvl/mxv .byte W03 - .byte 22*se_w114_mvl/mxv + .byte 22*se_m_haze_mvl/mxv .byte PAN , c_v-45 .byte W02 - .byte VOL , 31*se_w114_mvl/mxv + .byte VOL , 31*se_m_haze_mvl/mxv .byte W02 - .byte 39*se_w114_mvl/mxv + .byte 39*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v-43 .byte W02 - .byte VOL , 45*se_w114_mvl/mxv + .byte VOL , 45*se_m_haze_mvl/mxv .byte W02 - .byte 50*se_w114_mvl/mxv + .byte 50*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v-41 .byte W01 - .byte VOL , 61*se_w114_mvl/mxv + .byte VOL , 61*se_m_haze_mvl/mxv .byte W02 - .byte 66*se_w114_mvl/mxv + .byte 66*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v-39 - .byte VOL , 73*se_w114_mvl/mxv + .byte VOL , 73*se_m_haze_mvl/mxv .byte W02 - .byte 78*se_w114_mvl/mxv + .byte 78*se_m_haze_mvl/mxv .byte W04 - .byte 84*se_w114_mvl/mxv + .byte 84*se_m_haze_mvl/mxv .byte PAN , c_v-37 .byte W03 - .byte VOL , 91*se_w114_mvl/mxv + .byte VOL , 91*se_m_haze_mvl/mxv .byte W03 - .byte 98*se_w114_mvl/mxv + .byte 98*se_m_haze_mvl/mxv .byte PAN , c_v-35 .byte W02 - .byte VOL , 104*se_w114_mvl/mxv + .byte VOL , 104*se_m_haze_mvl/mxv .byte W04 - .byte 110*se_w114_mvl/mxv + .byte 110*se_m_haze_mvl/mxv .byte PAN , c_v-32 .byte W06 .byte c_v-28 .byte W06 .byte c_v-25 - .byte VOL , 106*se_w114_mvl/mxv + .byte VOL , 106*se_m_haze_mvl/mxv .byte W04 - .byte 104*se_w114_mvl/mxv + .byte 104*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v-23 .byte W03 - .byte VOL , 101*se_w114_mvl/mxv + .byte VOL , 101*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v-20 .byte W03 - .byte VOL , 97*se_w114_mvl/mxv + .byte VOL , 97*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v-17 .byte W02 - .byte VOL , 91*se_w114_mvl/mxv + .byte VOL , 91*se_m_haze_mvl/mxv .byte W04 .byte PAN , c_v-13 .byte W03 - .byte VOL , 88*se_w114_mvl/mxv + .byte VOL , 88*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v-10 .byte W03 - .byte VOL , 81*se_w114_mvl/mxv + .byte VOL , 81*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v-7 .byte W04 - .byte VOL , 75*se_w114_mvl/mxv + .byte VOL , 75*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v-3 .byte W02 - .byte VOL , 74*se_w114_mvl/mxv + .byte VOL , 74*se_m_haze_mvl/mxv .byte W02 - .byte 76*se_w114_mvl/mxv + .byte 76*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v+0 .byte W01 - .byte VOL , 79*se_w114_mvl/mxv + .byte VOL , 79*se_m_haze_mvl/mxv .byte W02 - .byte 83*se_w114_mvl/mxv + .byte 83*se_m_haze_mvl/mxv .byte W03 .byte W01 - .byte 86*se_w114_mvl/mxv + .byte 86*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v+2 - .byte VOL , 90*se_w114_mvl/mxv + .byte VOL , 90*se_m_haze_mvl/mxv .byte W03 - .byte 95*se_w114_mvl/mxv + .byte 95*se_m_haze_mvl/mxv .byte W03 - .byte 98*se_w114_mvl/mxv + .byte 98*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v+7 - .byte VOL , 102*se_w114_mvl/mxv + .byte VOL , 102*se_m_haze_mvl/mxv .byte W02 - .byte 104*se_w114_mvl/mxv + .byte 104*se_m_haze_mvl/mxv .byte W04 .byte PAN , c_v+10 - .byte VOL , 110*se_w114_mvl/mxv + .byte VOL , 110*se_m_haze_mvl/mxv .byte W06 .byte PAN , c_v+14 .byte W06 .byte c_v+16 .byte W02 - .byte VOL , 106*se_w114_mvl/mxv + .byte VOL , 106*se_m_haze_mvl/mxv .byte W04 .byte PAN , c_v+19 .byte W01 - .byte VOL , 100*se_w114_mvl/mxv + .byte VOL , 100*se_m_haze_mvl/mxv .byte W05 .byte PAN , c_v+22 - .byte VOL , 94*se_w114_mvl/mxv + .byte VOL , 94*se_m_haze_mvl/mxv .byte W06 .byte PAN , c_v+25 - .byte VOL , 88*se_w114_mvl/mxv + .byte VOL , 88*se_m_haze_mvl/mxv .byte W04 - .byte 83*se_w114_mvl/mxv + .byte 83*se_m_haze_mvl/mxv .byte W02 .byte PAN , c_v+27 .byte W06 .byte c_v+29 - .byte VOL , 75*se_w114_mvl/mxv + .byte VOL , 75*se_m_haze_mvl/mxv .byte W06 .byte PAN , c_v+32 - .byte VOL , 64*se_w114_mvl/mxv + .byte VOL , 64*se_m_haze_mvl/mxv .byte W06 .byte PAN , c_v+34 .byte W01 - .byte VOL , 55*se_w114_mvl/mxv + .byte VOL , 55*se_m_haze_mvl/mxv .byte W05 .byte PAN , c_v+38 .byte W01 - .byte VOL , 47*se_w114_mvl/mxv + .byte VOL , 47*se_m_haze_mvl/mxv .byte W05 .byte PAN , c_v+41 .byte W01 - .byte VOL , 41*se_w114_mvl/mxv + .byte VOL , 41*se_m_haze_mvl/mxv .byte W05 .byte PAN , c_v+44 - .byte VOL , 32*se_w114_mvl/mxv + .byte VOL , 32*se_m_haze_mvl/mxv .byte W03 - .byte 25*se_w114_mvl/mxv + .byte 25*se_m_haze_mvl/mxv .byte W03 .byte PAN , c_v+47 .byte W01 - .byte VOL , 12*se_w114_mvl/mxv + .byte VOL , 12*se_m_haze_mvl/mxv .byte W03 - .byte 6*se_w114_mvl/mxv + .byte 6*se_m_haze_mvl/mxv .byte W02 .byte EOT .byte FINE @********************** Track 2 **********************@ -se_w114_2: - .byte KEYSH , se_w114_key+0 +se_m_haze_2: + .byte KEYSH , se_m_haze_key+0 .byte VOICE , 70 .byte BENDR , 8 .byte PAN , c_v+0 - .byte VOL , 110*se_w114_mvl/mxv + .byte VOL , 110*se_m_haze_mvl/mxv .byte BEND , c_v+0 .byte N24 , Fn4 , v020 .byte W06 @@ -236,15 +236,15 @@ se_w114_2: @******************************************************@ .align 2 -se_w114: +se_m_haze: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w114_pri @ Priority - .byte se_w114_rev @ Reverb. + .byte se_m_haze_pri @ Priority + .byte se_m_haze_rev @ Reverb. - .word se_w114_grp + .word se_m_haze_grp - .word se_w114_1 - .word se_w114_2 + .word se_m_haze_1 + .word se_m_haze_2 .end diff --git a/sound/songs/se_w215.s b/sound/songs/se_m_heal_bell.s index 196686fbd..b2b17f7d8 100644 --- a/sound/songs/se_w215.s +++ b/sound/songs/se_m_heal_bell.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w215_grp, voicegroup128 - .equ se_w215_pri, 4 - .equ se_w215_rev, reverb_set+50 - .equ se_w215_mvl, 127 - .equ se_w215_key, 0 - .equ se_w215_tbs, 1 - .equ se_w215_exg, 0 - .equ se_w215_cmp, 1 + .equ se_m_heal_bell_grp, voicegroup128 + .equ se_m_heal_bell_pri, 4 + .equ se_m_heal_bell_rev, reverb_set+50 + .equ se_m_heal_bell_mvl, 127 + .equ se_m_heal_bell_key, 0 + .equ se_m_heal_bell_tbs, 1 + .equ se_m_heal_bell_exg, 0 + .equ se_m_heal_bell_cmp, 1 .section .rodata - .global se_w215 + .global se_m_heal_bell .align 2 @********************** Track 1 **********************@ -se_w215_1: - .byte KEYSH , se_w215_key+0 - .byte TEMPO , 150*se_w215_tbs/2 +se_m_heal_bell_1: + .byte KEYSH , se_m_heal_bell_key+0 + .byte TEMPO , 150*se_m_heal_bell_tbs/2 .byte VOICE , 51 .byte BENDR , 2 .byte PAN , c_v+0 - .byte VOL , 90*se_w215_mvl/mxv + .byte VOL , 90*se_m_heal_bell_mvl/mxv .byte BEND , c_v+4 .byte N03 , As5 , v100 .byte W01 @@ -70,14 +70,14 @@ se_w215_1: @******************************************************@ .align 2 -se_w215: +se_m_heal_bell: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w215_pri @ Priority - .byte se_w215_rev @ Reverb. + .byte se_m_heal_bell_pri @ Priority + .byte se_m_heal_bell_rev @ Reverb. - .word se_w215_grp + .word se_m_heal_bell_grp - .word se_w215_1 + .word se_m_heal_bell_1 .end diff --git a/sound/songs/se_w257.s b/sound/songs/se_m_heat_wave.s index 5e9b6d06d..a4b5cc896 100644 --- a/sound/songs/se_w257.s +++ b/sound/songs/se_m_heat_wave.s @@ -1,60 +1,60 @@ .include "MPlayDef.s" - .equ se_w257_grp, voicegroup128 - .equ se_w257_pri, 4 - .equ se_w257_rev, reverb_set+50 - .equ se_w257_mvl, 127 - .equ se_w257_key, 0 - .equ se_w257_tbs, 1 - .equ se_w257_exg, 0 - .equ se_w257_cmp, 1 + .equ se_m_heat_wave_grp, voicegroup128 + .equ se_m_heat_wave_pri, 4 + .equ se_m_heat_wave_rev, reverb_set+50 + .equ se_m_heat_wave_mvl, 127 + .equ se_m_heat_wave_key, 0 + .equ se_m_heat_wave_tbs, 1 + .equ se_m_heat_wave_exg, 0 + .equ se_m_heat_wave_cmp, 1 .section .rodata - .global se_w257 + .global se_m_heat_wave .align 2 @********************** Track 1 **********************@ -se_w257_1: - .byte KEYSH , se_w257_key+0 - .byte TEMPO , 150*se_w257_tbs/2 +se_m_heat_wave_1: + .byte KEYSH , se_m_heat_wave_key+0 + .byte TEMPO , 150*se_m_heat_wave_tbs/2 .byte VOICE , 29 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 23*se_w257_mvl/mxv + .byte VOL , 23*se_m_heat_wave_mvl/mxv .byte BEND , c_v+0 .byte TIE , Fn4 , v127 .byte W01 - .byte VOL , 51*se_w257_mvl/mxv + .byte VOL , 51*se_m_heat_wave_mvl/mxv .byte W01 - .byte 75*se_w257_mvl/mxv + .byte 75*se_m_heat_wave_mvl/mxv .byte W01 - .byte 99*se_w257_mvl/mxv + .byte 99*se_m_heat_wave_mvl/mxv .byte BEND , c_v+8 .byte W01 - .byte VOL , 115*se_w257_mvl/mxv + .byte VOL , 115*se_m_heat_wave_mvl/mxv .byte W02 .byte PAN , c_v+6 .byte BEND , c_v+16 .byte W01 - .byte VOL , 99*se_w257_mvl/mxv + .byte VOL , 99*se_m_heat_wave_mvl/mxv .byte W02 - .byte 92*se_w257_mvl/mxv + .byte 92*se_m_heat_wave_mvl/mxv .byte BEND , c_v+7 .byte W01 - .byte VOL , 97*se_w257_mvl/mxv + .byte VOL , 97*se_m_heat_wave_mvl/mxv .byte W02 - .byte 105*se_w257_mvl/mxv + .byte 105*se_m_heat_wave_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte W03 - .byte VOL , 110*se_w257_mvl/mxv + .byte VOL , 110*se_m_heat_wave_mvl/mxv .byte BEND , c_v-9 .byte W03 .byte PAN , c_v-8 .byte BEND , c_v-24 .byte W03 - .byte VOL , 115*se_w257_mvl/mxv + .byte VOL , 115*se_m_heat_wave_mvl/mxv .byte BEND , c_v-38 .byte W03 .byte PAN , c_v+0 @@ -100,78 +100,78 @@ se_w257_1: .byte BEND , c_v-3 .byte W02 .byte PAN , c_v-8 - .byte VOL , 113*se_w257_mvl/mxv + .byte VOL , 113*se_m_heat_wave_mvl/mxv .byte W04 - .byte 110*se_w257_mvl/mxv + .byte 110*se_m_heat_wave_mvl/mxv .byte W02 .byte PAN , c_v+0 .byte W02 .byte BEND , c_v-7 .byte W02 - .byte VOL , 105*se_w257_mvl/mxv + .byte VOL , 105*se_m_heat_wave_mvl/mxv .byte W02 .byte PAN , c_v+6 .byte W03 - .byte VOL , 98*se_w257_mvl/mxv + .byte VOL , 98*se_m_heat_wave_mvl/mxv .byte BEND , c_v-11 .byte W03 .byte PAN , c_v+0 .byte W01 - .byte VOL , 91*se_w257_mvl/mxv + .byte VOL , 91*se_m_heat_wave_mvl/mxv .byte W03 - .byte 81*se_w257_mvl/mxv + .byte 81*se_m_heat_wave_mvl/mxv .byte BEND , c_v-15 .byte W02 .byte PAN , c_v-8 .byte W02 - .byte VOL , 74*se_w257_mvl/mxv + .byte VOL , 74*se_m_heat_wave_mvl/mxv .byte W01 .byte BEND , c_v-22 .byte W03 .byte PAN , c_v+0 - .byte VOL , 63*se_w257_mvl/mxv + .byte VOL , 63*se_m_heat_wave_mvl/mxv .byte W01 .byte BEND , c_v-30 .byte W01 - .byte VOL , 50*se_w257_mvl/mxv + .byte VOL , 50*se_m_heat_wave_mvl/mxv .byte W02 - .byte 40*se_w257_mvl/mxv + .byte 40*se_m_heat_wave_mvl/mxv .byte BEND , c_v-39 .byte W02 .byte PAN , c_v+6 .byte W01 - .byte VOL , 28*se_w257_mvl/mxv + .byte VOL , 28*se_m_heat_wave_mvl/mxv .byte BEND , c_v-52 .byte W02 - .byte VOL , 17*se_w257_mvl/mxv + .byte VOL , 17*se_m_heat_wave_mvl/mxv .byte W03 .byte EOT .byte FINE @********************** Track 2 **********************@ -se_w257_2: - .byte KEYSH , se_w257_key+0 +se_m_heat_wave_2: + .byte KEYSH , se_m_heat_wave_key+0 .byte VOICE , 27 .byte PAN , c_v+0 - .byte VOL , 23*se_w257_mvl/mxv + .byte VOL , 23*se_m_heat_wave_mvl/mxv .byte N30 , Gn2 , v032 .byte W01 - .byte VOL , 51*se_w257_mvl/mxv + .byte VOL , 51*se_m_heat_wave_mvl/mxv .byte W01 - .byte 75*se_w257_mvl/mxv + .byte 75*se_m_heat_wave_mvl/mxv .byte W01 - .byte 99*se_w257_mvl/mxv + .byte 99*se_m_heat_wave_mvl/mxv .byte W01 - .byte 115*se_w257_mvl/mxv + .byte 115*se_m_heat_wave_mvl/mxv .byte W03 - .byte 99*se_w257_mvl/mxv + .byte 99*se_m_heat_wave_mvl/mxv .byte W02 - .byte 92*se_w257_mvl/mxv + .byte 92*se_m_heat_wave_mvl/mxv .byte W01 - .byte 97*se_w257_mvl/mxv + .byte 97*se_m_heat_wave_mvl/mxv .byte W02 - .byte 115*se_w257_mvl/mxv + .byte 115*se_m_heat_wave_mvl/mxv .byte W12 .byte PAN , c_v+0 .byte W12 @@ -192,15 +192,15 @@ se_w257_2: @******************************************************@ .align 2 -se_w257: +se_m_heat_wave: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w257_pri @ Priority - .byte se_w257_rev @ Reverb. + .byte se_m_heat_wave_pri @ Priority + .byte se_m_heat_wave_rev @ Reverb. - .word se_w257_grp + .word se_m_heat_wave_grp - .word se_w257_1 - .word se_w257_2 + .word se_m_heat_wave_1 + .word se_m_heat_wave_2 .end diff --git a/sound/songs/se_w056.s b/sound/songs/se_m_hydro_pump.s index d553f418f..050f6281b 100644 --- a/sound/songs/se_w056.s +++ b/sound/songs/se_m_hydro_pump.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w056_grp, voicegroup128 - .equ se_w056_pri, 4 - .equ se_w056_rev, reverb_set+50 - .equ se_w056_mvl, 127 - .equ se_w056_key, 0 - .equ se_w056_tbs, 1 - .equ se_w056_exg, 0 - .equ se_w056_cmp, 1 + .equ se_m_hydro_pump_grp, voicegroup128 + .equ se_m_hydro_pump_pri, 4 + .equ se_m_hydro_pump_rev, reverb_set+50 + .equ se_m_hydro_pump_mvl, 127 + .equ se_m_hydro_pump_key, 0 + .equ se_m_hydro_pump_tbs, 1 + .equ se_m_hydro_pump_exg, 0 + .equ se_m_hydro_pump_cmp, 1 .section .rodata - .global se_w056 + .global se_m_hydro_pump .align 2 @********************** Track 1 **********************@ -se_w056_1: - .byte KEYSH , se_w056_key+0 - .byte TEMPO , 150*se_w056_tbs/2 +se_m_hydro_pump_1: + .byte KEYSH , se_m_hydro_pump_key+0 + .byte TEMPO , 150*se_m_hydro_pump_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 115*se_w056_mvl/mxv + .byte VOL , 115*se_m_hydro_pump_mvl/mxv .byte BEND , c_v+0 .byte TIE , Gn2 , v127 .byte W06 @@ -53,53 +53,53 @@ se_w056_1: .byte W06 .byte c_v+11 .byte W02 - .byte VOL , 103*se_w056_mvl/mxv + .byte VOL , 103*se_m_hydro_pump_mvl/mxv .byte W04 .byte PAN , c_v+4 .byte W01 - .byte VOL , 85*se_w056_mvl/mxv + .byte VOL , 85*se_m_hydro_pump_mvl/mxv .byte W05 .byte PAN , c_v+0 .byte W01 - .byte VOL , 71*se_w056_mvl/mxv + .byte VOL , 71*se_m_hydro_pump_mvl/mxv .byte W05 - .byte 52*se_w056_mvl/mxv + .byte 52*se_m_hydro_pump_mvl/mxv .byte PAN , c_v-4 .byte W04 - .byte VOL , 32*se_w056_mvl/mxv + .byte VOL , 32*se_m_hydro_pump_mvl/mxv .byte W02 .byte PAN , c_v-10 .byte W03 - .byte VOL , 11*se_w056_mvl/mxv + .byte VOL , 11*se_m_hydro_pump_mvl/mxv .byte W03 .byte PAN , c_v-5 .byte W01 - .byte VOL , 6*se_w056_mvl/mxv + .byte VOL , 6*se_m_hydro_pump_mvl/mxv .byte W05 .byte EOT .byte FINE @********************** Track 2 **********************@ -se_w056_2: - .byte KEYSH , se_w056_key+0 - .byte VOL , 58*se_w056_mvl/mxv +se_m_hydro_pump_2: + .byte KEYSH , se_m_hydro_pump_key+0 + .byte VOL , 58*se_m_hydro_pump_mvl/mxv .byte N14 , Gn3 , v080 .byte W01 .byte VOICE , 25 - .byte VOL , 76*se_w056_mvl/mxv + .byte VOL , 76*se_m_hydro_pump_mvl/mxv .byte W01 - .byte 89*se_w056_mvl/mxv + .byte 89*se_m_hydro_pump_mvl/mxv .byte W01 - .byte 100*se_w056_mvl/mxv + .byte 100*se_m_hydro_pump_mvl/mxv .byte W01 - .byte 115*se_w056_mvl/mxv + .byte 115*se_m_hydro_pump_mvl/mxv .byte W06 - .byte 90*se_w056_mvl/mxv + .byte 90*se_m_hydro_pump_mvl/mxv .byte W02 - .byte 76*se_w056_mvl/mxv + .byte 76*se_m_hydro_pump_mvl/mxv .byte W01 - .byte 58*se_w056_mvl/mxv + .byte 58*se_m_hydro_pump_mvl/mxv .byte W11 .byte W24 .byte W24 @@ -110,15 +110,15 @@ se_w056_2: @******************************************************@ .align 2 -se_w056: +se_m_hydro_pump: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w056_pri @ Priority - .byte se_w056_rev @ Reverb. + .byte se_m_hydro_pump_pri @ Priority + .byte se_m_hydro_pump_rev @ Reverb. - .word se_w056_grp + .word se_m_hydro_pump_grp - .word se_w056_1 - .word se_w056_2 + .word se_m_hydro_pump_1 + .word se_m_hydro_pump_2 .end diff --git a/sound/songs/se_w063.s b/sound/songs/se_m_hyper_beam.s index e2db381bd..bce85a21a 100644 --- a/sound/songs/se_w063.s +++ b/sound/songs/se_m_hyper_beam.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w063_grp, voicegroup128 - .equ se_w063_pri, 4 - .equ se_w063_rev, reverb_set+50 - .equ se_w063_mvl, 127 - .equ se_w063_key, 0 - .equ se_w063_tbs, 1 - .equ se_w063_exg, 0 - .equ se_w063_cmp, 1 + .equ se_m_hyper_beam_grp, voicegroup128 + .equ se_m_hyper_beam_pri, 4 + .equ se_m_hyper_beam_rev, reverb_set+50 + .equ se_m_hyper_beam_mvl, 127 + .equ se_m_hyper_beam_key, 0 + .equ se_m_hyper_beam_tbs, 1 + .equ se_m_hyper_beam_exg, 0 + .equ se_m_hyper_beam_cmp, 1 .section .rodata - .global se_w063 + .global se_m_hyper_beam .align 2 @********************** Track 1 **********************@ -se_w063_1: - .byte KEYSH , se_w063_key+0 - .byte TEMPO , 150*se_w063_tbs/2 +se_m_hyper_beam_1: + .byte KEYSH , se_m_hyper_beam_key+0 + .byte TEMPO , 150*se_m_hyper_beam_tbs/2 .byte VOICE , 18 - .byte VOL , 110*se_w063_mvl/mxv + .byte VOL , 110*se_m_hyper_beam_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -45,10 +45,10 @@ se_w063_1: @********************** Track 2 **********************@ -se_w063_2: - .byte KEYSH , se_w063_key+0 +se_m_hyper_beam_2: + .byte KEYSH , se_m_hyper_beam_key+0 .byte VOICE , 5 - .byte VOL , 110*se_w063_mvl/mxv + .byte VOL , 110*se_m_hyper_beam_mvl/mxv .byte N01 , Cn3 , v040 .byte W02 .byte N01 @@ -57,28 +57,28 @@ se_w063_2: .byte W02 .byte N01 .byte W04 -se_w063_2_000: +se_m_hyper_beam_2_000: .byte N01 , Cn3 , v020 .byte W02 .byte N01 .byte W04 .byte PEND .byte PATT - .word se_w063_2_000 + .word se_m_hyper_beam_2_000 .byte FINE @******************************************************@ .align 2 -se_w063: +se_m_hyper_beam: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w063_pri @ Priority - .byte se_w063_rev @ Reverb. + .byte se_m_hyper_beam_pri @ Priority + .byte se_m_hyper_beam_rev @ Reverb. - .word se_w063_grp + .word se_m_hyper_beam_grp - .word se_w063_1 - .word se_w063_2 + .word se_m_hyper_beam_1 + .word se_m_hyper_beam_2 .end diff --git a/sound/songs/se_w063b.s b/sound/songs/se_m_hyper_beam2.s index eef257849..304fa7b3f 100644 --- a/sound/songs/se_w063b.s +++ b/sound/songs/se_m_hyper_beam2.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w063b_grp, voicegroup128 - .equ se_w063b_pri, 4 - .equ se_w063b_rev, reverb_set+50 - .equ se_w063b_mvl, 127 - .equ se_w063b_key, 0 - .equ se_w063b_tbs, 1 - .equ se_w063b_exg, 0 - .equ se_w063b_cmp, 1 + .equ se_m_hyper_beam2_grp, voicegroup128 + .equ se_m_hyper_beam2_pri, 4 + .equ se_m_hyper_beam2_rev, reverb_set+50 + .equ se_m_hyper_beam2_mvl, 127 + .equ se_m_hyper_beam2_key, 0 + .equ se_m_hyper_beam2_tbs, 1 + .equ se_m_hyper_beam2_exg, 0 + .equ se_m_hyper_beam2_cmp, 1 .section .rodata - .global se_w063b + .global se_m_hyper_beam2 .align 2 @********************** Track 1 **********************@ -se_w063b_1: - .byte KEYSH , se_w063b_key+0 - .byte TEMPO , 150*se_w063b_tbs/2 +se_m_hyper_beam2_1: + .byte KEYSH , se_m_hyper_beam2_key+0 + .byte TEMPO , 150*se_m_hyper_beam2_tbs/2 .byte VOICE , 45 - .byte VOL , 110*se_w063b_mvl/mxv + .byte VOL , 110*se_m_hyper_beam2_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -76,10 +76,10 @@ se_w063b_1: @********************** Track 2 **********************@ -se_w063b_2: - .byte KEYSH , se_w063b_key+0 +se_m_hyper_beam2_2: + .byte KEYSH , se_m_hyper_beam2_key+0 .byte VOICE , 5 - .byte VOL , 110*se_w063b_mvl/mxv + .byte VOL , 110*se_m_hyper_beam2_mvl/mxv .byte N01 , Cn3 , v032 .byte W02 .byte N01 @@ -88,28 +88,28 @@ se_w063b_2: .byte W02 .byte N01 .byte W04 -se_w063b_2_000: +se_m_hyper_beam2_2_000: .byte N01 , Cn3 , v020 .byte W02 .byte N01 .byte W04 .byte PEND .byte PATT - .word se_w063b_2_000 + .word se_m_hyper_beam2_2_000 .byte FINE @******************************************************@ .align 2 -se_w063b: +se_m_hyper_beam2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w063b_pri @ Priority - .byte se_w063b_rev @ Reverb. + .byte se_m_hyper_beam2_pri @ Priority + .byte se_m_hyper_beam2_rev @ Reverb. - .word se_w063b_grp + .word se_m_hyper_beam2_grp - .word se_w063b_1 - .word se_w063b_2 + .word se_m_hyper_beam2_1 + .word se_m_hyper_beam2_2 .end diff --git a/sound/songs/se_w196.s b/sound/songs/se_m_icy_wind.s index 8a47a8c1b..d15350525 100644 --- a/sound/songs/se_w196.s +++ b/sound/songs/se_m_icy_wind.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w196_grp, voicegroup128 - .equ se_w196_pri, 4 - .equ se_w196_rev, reverb_set+50 - .equ se_w196_mvl, 127 - .equ se_w196_key, 0 - .equ se_w196_tbs, 1 - .equ se_w196_exg, 0 - .equ se_w196_cmp, 1 + .equ se_m_icy_wind_grp, voicegroup128 + .equ se_m_icy_wind_pri, 4 + .equ se_m_icy_wind_rev, reverb_set+50 + .equ se_m_icy_wind_mvl, 127 + .equ se_m_icy_wind_key, 0 + .equ se_m_icy_wind_tbs, 1 + .equ se_m_icy_wind_exg, 0 + .equ se_m_icy_wind_cmp, 1 .section .rodata - .global se_w196 + .global se_m_icy_wind .align 2 @********************** Track 1 **********************@ -se_w196_1: - .byte KEYSH , se_w196_key+0 - .byte TEMPO , 150*se_w196_tbs/2 +se_m_icy_wind_1: + .byte KEYSH , se_m_icy_wind_key+0 + .byte TEMPO , 150*se_m_icy_wind_tbs/2 .byte VOICE , 3 - .byte VOL , 100*se_w196_mvl/mxv + .byte VOL , 100*se_m_icy_wind_mvl/mxv .byte PAN , c_v+0 .byte N01 , Ds4 , v112 .byte W04 @@ -36,10 +36,10 @@ se_w196_1: @********************** Track 2 **********************@ -se_w196_2: - .byte KEYSH , se_w196_key+0 +se_m_icy_wind_2: + .byte KEYSH , se_m_icy_wind_key+0 .byte VOICE , 5 - .byte VOL , 100*se_w196_mvl/mxv + .byte VOL , 100*se_m_icy_wind_mvl/mxv .byte PAN , c_v+0 .byte N01 , Dn4 , v040 .byte W04 @@ -58,15 +58,15 @@ se_w196_2: @******************************************************@ .align 2 -se_w196: +se_m_icy_wind: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w196_pri @ Priority - .byte se_w196_rev @ Reverb. + .byte se_m_icy_wind_pri @ Priority + .byte se_m_icy_wind_rev @ Reverb. - .word se_w196_grp + .word se_m_icy_wind_grp - .word se_w196_1 - .word se_w196_2 + .word se_m_icy_wind_1 + .word se_m_icy_wind_2 .end diff --git a/sound/songs/se_w122.s b/sound/songs/se_m_lick.s index 95eb26ead..1aa0c35a2 100644 --- a/sound/songs/se_w122.s +++ b/sound/songs/se_m_lick.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w122_grp, voicegroup128 - .equ se_w122_pri, 4 - .equ se_w122_rev, reverb_set+50 - .equ se_w122_mvl, 127 - .equ se_w122_key, 0 - .equ se_w122_tbs, 1 - .equ se_w122_exg, 0 - .equ se_w122_cmp, 1 + .equ se_m_lick_grp, voicegroup128 + .equ se_m_lick_pri, 4 + .equ se_m_lick_rev, reverb_set+50 + .equ se_m_lick_mvl, 127 + .equ se_m_lick_key, 0 + .equ se_m_lick_tbs, 1 + .equ se_m_lick_exg, 0 + .equ se_m_lick_cmp, 1 .section .rodata - .global se_w122 + .global se_m_lick .align 2 @********************** Track 1 **********************@ -se_w122_1: - .byte KEYSH , se_w122_key+0 - .byte TEMPO , 150*se_w122_tbs/2 +se_m_lick_1: + .byte KEYSH , se_m_lick_key+0 + .byte TEMPO , 150*se_m_lick_tbs/2 .byte VOICE , 31 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w122_mvl/mxv + .byte VOL , 110*se_m_lick_mvl/mxv .byte BEND , c_v-5 .byte N32 , Cn3 , v127 .byte W01 @@ -68,47 +68,47 @@ se_w122_1: .byte BEND , c_v+16 .byte W02 .byte PAN , c_v-4 - .byte VOL , 102*se_w122_mvl/mxv + .byte VOL , 102*se_m_lick_mvl/mxv .byte BEND , c_v+12 .byte W01 .byte PAN , c_v+0 .byte BEND , c_v+16 .byte W01 .byte PAN , c_v+4 - .byte VOL , 97*se_w122_mvl/mxv + .byte VOL , 97*se_m_lick_mvl/mxv .byte BEND , c_v+18 .byte W01 .byte PAN , c_v+0 .byte BEND , c_v+14 .byte W01 .byte PAN , c_v-4 - .byte VOL , 92*se_w122_mvl/mxv + .byte VOL , 92*se_m_lick_mvl/mxv .byte BEND , c_v+18 .byte W02 .byte PAN , c_v+0 .byte BEND , c_v+20 .byte W01 .byte PAN , c_v+4 - .byte VOL , 88*se_w122_mvl/mxv + .byte VOL , 88*se_m_lick_mvl/mxv .byte BEND , c_v+17 .byte W01 .byte PAN , c_v+0 .byte BEND , c_v+12 .byte W01 .byte PAN , c_v-4 - .byte VOL , 81*se_w122_mvl/mxv + .byte VOL , 81*se_m_lick_mvl/mxv .byte BEND , c_v+16 .byte W01 .byte PAN , c_v+0 - .byte VOL , 64*se_w122_mvl/mxv + .byte VOL , 64*se_m_lick_mvl/mxv .byte BEND , c_v+12 .byte W02 .byte PAN , c_v+4 - .byte VOL , 49*se_w122_mvl/mxv + .byte VOL , 49*se_m_lick_mvl/mxv .byte BEND , c_v+14 .byte W01 .byte PAN , c_v+0 - .byte VOL , 25*se_w122_mvl/mxv + .byte VOL , 25*se_m_lick_mvl/mxv .byte BEND , c_v+11 .byte W05 .byte FINE @@ -116,14 +116,14 @@ se_w122_1: @******************************************************@ .align 2 -se_w122: +se_m_lick: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w122_pri @ Priority - .byte se_w122_rev @ Reverb. + .byte se_m_lick_pri @ Priority + .byte se_m_lick_rev @ Reverb. - .word se_w122_grp + .word se_m_lick_grp - .word se_w122_1 + .word se_m_lick_1 .end diff --git a/sound/songs/se_w199.s b/sound/songs/se_m_lock_on.s index 26ffc82b7..d8e1de5b0 100644 --- a/sound/songs/se_w199.s +++ b/sound/songs/se_m_lock_on.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w199_grp, voicegroup128 - .equ se_w199_pri, 4 - .equ se_w199_rev, reverb_set+50 - .equ se_w199_mvl, 127 - .equ se_w199_key, 0 - .equ se_w199_tbs, 1 - .equ se_w199_exg, 0 - .equ se_w199_cmp, 1 + .equ se_m_lock_on_grp, voicegroup128 + .equ se_m_lock_on_pri, 4 + .equ se_m_lock_on_rev, reverb_set+50 + .equ se_m_lock_on_mvl, 127 + .equ se_m_lock_on_key, 0 + .equ se_m_lock_on_tbs, 1 + .equ se_m_lock_on_exg, 0 + .equ se_m_lock_on_cmp, 1 .section .rodata - .global se_w199 + .global se_m_lock_on .align 2 @********************** Track 1 **********************@ -se_w199_1: - .byte KEYSH , se_w199_key+0 - .byte TEMPO , 150*se_w199_tbs/2 +se_m_lock_on_1: + .byte KEYSH , se_m_lock_on_key+0 + .byte TEMPO , 150*se_m_lock_on_tbs/2 .byte VOICE , 40 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w199_mvl/mxv + .byte VOL , 110*se_m_lock_on_mvl/mxv .byte BEND , c_v+0 .byte N01 , Cn4 , v100 .byte W01 @@ -56,14 +56,14 @@ se_w199_1: @******************************************************@ .align 2 -se_w199: +se_m_lock_on: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w199_pri @ Priority - .byte se_w199_rev @ Reverb. + .byte se_m_lock_on_pri @ Priority + .byte se_m_lock_on_rev @ Reverb. - .word se_w199_grp + .word se_m_lock_on_grp - .word se_w199_1 + .word se_m_lock_on_1 .end diff --git a/sound/songs/se_w118.s b/sound/songs/se_m_metronome.s index 3c4d1404c..ba0a55d8b 100644 --- a/sound/songs/se_w118.s +++ b/sound/songs/se_m_metronome.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w118_grp, voicegroup128 - .equ se_w118_pri, 4 - .equ se_w118_rev, reverb_set+50 - .equ se_w118_mvl, 127 - .equ se_w118_key, 0 - .equ se_w118_tbs, 1 - .equ se_w118_exg, 0 - .equ se_w118_cmp, 1 + .equ se_m_metronome_grp, voicegroup128 + .equ se_m_metronome_pri, 4 + .equ se_m_metronome_rev, reverb_set+50 + .equ se_m_metronome_mvl, 127 + .equ se_m_metronome_key, 0 + .equ se_m_metronome_tbs, 1 + .equ se_m_metronome_exg, 0 + .equ se_m_metronome_cmp, 1 .section .rodata - .global se_w118 + .global se_m_metronome .align 2 @********************** Track 1 **********************@ -se_w118_1: - .byte KEYSH , se_w118_key+0 - .byte TEMPO , 150*se_w118_tbs/2 +se_m_metronome_1: + .byte KEYSH , se_m_metronome_key+0 + .byte TEMPO , 150*se_m_metronome_tbs/2 .byte VOICE , 37 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 115*se_w118_mvl/mxv + .byte VOL , 115*se_m_metronome_mvl/mxv .byte BEND , c_v+0 .byte N15 , En3 , v127 .byte W01 @@ -66,14 +66,14 @@ se_w118_1: @******************************************************@ .align 2 -se_w118: +se_m_metronome: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w118_pri @ Priority - .byte se_w118_rev @ Reverb. + .byte se_m_metronome_pri @ Priority + .byte se_m_metronome_rev @ Reverb. - .word se_w118_grp + .word se_m_metronome_grp - .word se_w118_1 + .word se_m_metronome_1 .end diff --git a/sound/songs/se_w208.s b/sound/songs/se_m_milk_drink.s index b26ce23d7..30a051540 100644 --- a/sound/songs/se_w208.s +++ b/sound/songs/se_m_milk_drink.s @@ -1,42 +1,42 @@ .include "MPlayDef.s" - .equ se_w208_grp, voicegroup128 - .equ se_w208_pri, 4 - .equ se_w208_rev, reverb_set+50 - .equ se_w208_mvl, 127 - .equ se_w208_key, 0 - .equ se_w208_tbs, 1 - .equ se_w208_exg, 0 - .equ se_w208_cmp, 1 + .equ se_m_milk_drink_grp, voicegroup128 + .equ se_m_milk_drink_pri, 4 + .equ se_m_milk_drink_rev, reverb_set+50 + .equ se_m_milk_drink_mvl, 127 + .equ se_m_milk_drink_key, 0 + .equ se_m_milk_drink_tbs, 1 + .equ se_m_milk_drink_exg, 0 + .equ se_m_milk_drink_cmp, 1 .section .rodata - .global se_w208 + .global se_m_milk_drink .align 2 @********************** Track 1 **********************@ -se_w208_1: - .byte KEYSH , se_w208_key+0 - .byte TEMPO , 180*se_w208_tbs/2 +se_m_milk_drink_1: + .byte KEYSH , se_m_milk_drink_key+0 + .byte TEMPO , 180*se_m_milk_drink_tbs/2 .byte VOICE , 16 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 100*se_w208_mvl/mxv + .byte VOL , 100*se_m_milk_drink_mvl/mxv .byte BEND , c_v+0 .byte N06 , An6 , v100 .byte W01 .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 90*se_w208_mvl/mxv + .byte VOL , 90*se_m_milk_drink_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v-6 - .byte VOL , 77*se_w208_mvl/mxv + .byte VOL , 77*se_m_milk_drink_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v+0 - .byte VOL , 37*se_w208_mvl/mxv + .byte VOL , 37*se_m_milk_drink_mvl/mxv .byte BEND , c_v-47 .byte W02 .byte N02 , An6 , v056 @@ -44,7 +44,7 @@ se_w208_1: .byte PAN , c_v+5 .byte W01 .byte c_v-6 - .byte VOL , 100*se_w208_mvl/mxv + .byte VOL , 100*se_m_milk_drink_mvl/mxv .byte BEND , c_v+0 .byte N06 , An6 , v100 .byte W01 @@ -52,15 +52,15 @@ se_w208_1: .byte BEND , c_v-11 .byte W01 .byte PAN , c_v-10 - .byte VOL , 90*se_w208_mvl/mxv + .byte VOL , 90*se_m_milk_drink_mvl/mxv .byte BEND , c_v-20 .byte W02 .byte PAN , c_v+1 - .byte VOL , 77*se_w208_mvl/mxv + .byte VOL , 77*se_m_milk_drink_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v+5 - .byte VOL , 37*se_w208_mvl/mxv + .byte VOL , 37*se_m_milk_drink_mvl/mxv .byte BEND , c_v-47 .byte W01 .byte PAN , c_v-6 @@ -69,7 +69,7 @@ se_w208_1: .byte PAN , c_v+8 .byte W01 .byte c_v-10 - .byte VOL , 100*se_w208_mvl/mxv + .byte VOL , 100*se_m_milk_drink_mvl/mxv .byte BEND , c_v+0 .byte N06 , An6 , v072 .byte W02 @@ -77,15 +77,15 @@ se_w208_1: .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 90*se_w208_mvl/mxv + .byte VOL , 90*se_m_milk_drink_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v-6 - .byte VOL , 77*se_w208_mvl/mxv + .byte VOL , 77*se_m_milk_drink_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v+8 - .byte VOL , 37*se_w208_mvl/mxv + .byte VOL , 37*se_m_milk_drink_mvl/mxv .byte BEND , c_v-47 .byte W01 .byte PAN , c_v-10 @@ -95,10 +95,10 @@ se_w208_1: @********************** Track 2 **********************@ -se_w208_2: - .byte KEYSH , se_w208_key+0 +se_m_milk_drink_2: + .byte KEYSH , se_m_milk_drink_key+0 .byte VOICE , 53 - .byte VOL , 100*se_w208_mvl/mxv + .byte VOL , 100*se_m_milk_drink_mvl/mxv .byte W02 .byte N06 , Fs6 , v040 .byte W04 @@ -115,15 +115,15 @@ se_w208_2: @******************************************************@ .align 2 -se_w208: +se_m_milk_drink: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w208_pri @ Priority - .byte se_w208_rev @ Reverb. + .byte se_m_milk_drink_pri @ Priority + .byte se_m_milk_drink_rev @ Reverb. - .word se_w208_grp + .word se_m_milk_drink_grp - .word se_w208_1 - .word se_w208_2 + .word se_m_milk_drink_1 + .word se_m_milk_drink_2 .end diff --git a/sound/songs/se_w107.s b/sound/songs/se_m_minimize.s index da7bc3d39..565450b2b 100644 --- a/sound/songs/se_w107.s +++ b/sound/songs/se_m_minimize.s @@ -1,58 +1,58 @@ .include "MPlayDef.s" - .equ se_w107_grp, voicegroup128 - .equ se_w107_pri, 4 - .equ se_w107_rev, reverb_set+50 - .equ se_w107_mvl, 127 - .equ se_w107_key, 0 - .equ se_w107_tbs, 1 - .equ se_w107_exg, 0 - .equ se_w107_cmp, 1 + .equ se_m_minimize_grp, voicegroup128 + .equ se_m_minimize_pri, 4 + .equ se_m_minimize_rev, reverb_set+50 + .equ se_m_minimize_mvl, 127 + .equ se_m_minimize_key, 0 + .equ se_m_minimize_tbs, 1 + .equ se_m_minimize_exg, 0 + .equ se_m_minimize_cmp, 1 .section .rodata - .global se_w107 + .global se_m_minimize .align 2 @********************** Track 1 **********************@ -se_w107_1: - .byte KEYSH , se_w107_key+0 - .byte TEMPO , 150*se_w107_tbs/2 +se_m_minimize_1: + .byte KEYSH , se_m_minimize_key+0 + .byte TEMPO , 150*se_m_minimize_tbs/2 .byte VOICE , 45 .byte BENDR , 24 .byte PAN , c_v+0 - .byte VOL , 32*se_w107_mvl/mxv + .byte VOL , 32*se_m_minimize_mvl/mxv .byte MOD , 30 .byte BEND , c_v+39 .byte N06 , Dn4 , v127 .byte W01 .byte BEND , c_v+31 .byte W01 - .byte VOL , 49*se_w107_mvl/mxv + .byte VOL , 49*se_m_minimize_mvl/mxv .byte PAN , c_v+5 .byte BEND , c_v+23 .byte W01 .byte c_v+15 .byte W01 - .byte VOL , 61*se_w107_mvl/mxv + .byte VOL , 61*se_m_minimize_mvl/mxv .byte BEND , c_v+8 .byte W02 .byte PAN , c_v+0 .byte BEND , c_v+35 .byte N06 , Cn4 , v116 .byte W01 - .byte VOL , 71*se_w107_mvl/mxv + .byte VOL , 71*se_m_minimize_mvl/mxv .byte BEND , c_v+27 .byte W01 .byte PAN , c_v-4 .byte BEND , c_v+19 .byte W01 - .byte VOL , 81*se_w107_mvl/mxv + .byte VOL , 81*se_m_minimize_mvl/mxv .byte BEND , c_v+12 .byte W01 .byte c_v+5 .byte W02 - .byte VOL , 95*se_w107_mvl/mxv + .byte VOL , 95*se_m_minimize_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+32 .byte N06 , Bn3 , v112 @@ -92,20 +92,20 @@ se_w107_1: .byte W01 .byte c_v-6 .byte W02 - .byte VOL , 82*se_w107_mvl/mxv + .byte VOL , 82*se_m_minimize_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+21 .byte N06 , Fn3 , v100 .byte W01 .byte BEND , c_v+13 .byte W01 - .byte VOL , 71*se_w107_mvl/mxv + .byte VOL , 71*se_m_minimize_mvl/mxv .byte PAN , c_v-8 .byte BEND , c_v+5 .byte W01 .byte c_v-2 .byte W01 - .byte VOL , 61*se_w107_mvl/mxv + .byte VOL , 61*se_m_minimize_mvl/mxv .byte BEND , c_v-10 .byte W02 .byte PAN , c_v+0 @@ -152,14 +152,14 @@ se_w107_1: @******************************************************@ .align 2 -se_w107: +se_m_minimize: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w107_pri @ Priority - .byte se_w107_rev @ Reverb. + .byte se_m_minimize_pri @ Priority + .byte se_m_minimize_rev @ Reverb. - .word se_w107_grp + .word se_m_minimize_grp - .word se_w107_1 + .word se_m_minimize_1 .end diff --git a/sound/songs/se_w054.s b/sound/songs/se_m_mist.s index 712dc3338..f46eb130a 100644 --- a/sound/songs/se_w054.s +++ b/sound/songs/se_m_mist.s @@ -1,48 +1,48 @@ .include "MPlayDef.s" - .equ se_w054_grp, voicegroup128 - .equ se_w054_pri, 4 - .equ se_w054_rev, reverb_set+50 - .equ se_w054_mvl, 127 - .equ se_w054_key, 0 - .equ se_w054_tbs, 1 - .equ se_w054_exg, 0 - .equ se_w054_cmp, 1 + .equ se_m_mist_grp, voicegroup128 + .equ se_m_mist_pri, 4 + .equ se_m_mist_rev, reverb_set+50 + .equ se_m_mist_mvl, 127 + .equ se_m_mist_key, 0 + .equ se_m_mist_tbs, 1 + .equ se_m_mist_exg, 0 + .equ se_m_mist_cmp, 1 .section .rodata - .global se_w054 + .global se_m_mist .align 2 @********************** Track 1 **********************@ -se_w054_1: - .byte KEYSH , se_w054_key+0 - .byte TEMPO , 150*se_w054_tbs/2 +se_m_mist_1: + .byte KEYSH , se_m_mist_key+0 + .byte TEMPO , 150*se_m_mist_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 7*se_w054_mvl/mxv + .byte VOL , 7*se_m_mist_mvl/mxv .byte BEND , c_v+1 .byte N18 , Cn5 , v052 .byte W01 - .byte VOL , 20*se_w054_mvl/mxv + .byte VOL , 20*se_m_mist_mvl/mxv .byte PAN , c_v+16 .byte BEND , c_v-8 .byte W01 - .byte VOL , 41*se_w054_mvl/mxv + .byte VOL , 41*se_m_mist_mvl/mxv .byte PAN , c_v-14 .byte BEND , c_v-16 .byte W01 - .byte VOL , 70*se_w054_mvl/mxv + .byte VOL , 70*se_m_mist_mvl/mxv .byte PAN , c_v+16 .byte BEND , c_v-8 .byte W01 - .byte VOL , 93*se_w054_mvl/mxv + .byte VOL , 93*se_m_mist_mvl/mxv .byte PAN , c_v-14 .byte BEND , c_v+0 .byte W02 .byte PAN , c_v+0 - .byte VOL , 110*se_w054_mvl/mxv + .byte VOL , 110*se_m_mist_mvl/mxv .byte BEND , c_v+8 .byte W01 .byte PAN , c_v+16 @@ -50,30 +50,30 @@ se_w054_1: .byte W01 .byte PAN , c_v-14 .byte W01 - .byte VOL , 98*se_w054_mvl/mxv + .byte VOL , 98*se_m_mist_mvl/mxv .byte PAN , c_v+16 .byte BEND , c_v+10 .byte W01 - .byte VOL , 85*se_w054_mvl/mxv + .byte VOL , 85*se_m_mist_mvl/mxv .byte PAN , c_v-14 .byte BEND , c_v+4 .byte W02 - .byte VOL , 69*se_w054_mvl/mxv + .byte VOL , 69*se_m_mist_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-7 .byte W01 - .byte VOL , 51*se_w054_mvl/mxv + .byte VOL , 51*se_m_mist_mvl/mxv .byte PAN , c_v+16 .byte BEND , c_v-22 .byte W01 .byte PAN , c_v-14 - .byte VOL , 38*se_w054_mvl/mxv + .byte VOL , 38*se_m_mist_mvl/mxv .byte BEND , c_v-28 .byte W01 - .byte VOL , 17*se_w054_mvl/mxv + .byte VOL , 17*se_m_mist_mvl/mxv .byte BEND , c_v-32 .byte W01 - .byte VOL , 4*se_w054_mvl/mxv + .byte VOL , 4*se_m_mist_mvl/mxv .byte BEND , c_v-38 .byte W08 .byte FINE @@ -81,14 +81,14 @@ se_w054_1: @******************************************************@ .align 2 -se_w054: +se_m_mist: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w054_pri @ Priority - .byte se_w054_rev @ Reverb. + .byte se_m_mist_pri @ Priority + .byte se_m_mist_rev @ Reverb. - .word se_w054_grp + .word se_m_mist_grp - .word se_w054_1 + .word se_m_mist_1 .end diff --git a/sound/songs/se_w236.s b/sound/songs/se_m_moonlight.s index c3bb3d90f..bd4410b32 100644 --- a/sound/songs/se_w236.s +++ b/sound/songs/se_m_moonlight.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w236_grp, voicegroup128 - .equ se_w236_pri, 4 - .equ se_w236_rev, reverb_set+50 - .equ se_w236_mvl, 127 - .equ se_w236_key, 0 - .equ se_w236_tbs, 1 - .equ se_w236_exg, 0 - .equ se_w236_cmp, 1 + .equ se_m_moonlight_grp, voicegroup128 + .equ se_m_moonlight_pri, 4 + .equ se_m_moonlight_rev, reverb_set+50 + .equ se_m_moonlight_mvl, 127 + .equ se_m_moonlight_key, 0 + .equ se_m_moonlight_tbs, 1 + .equ se_m_moonlight_exg, 0 + .equ se_m_moonlight_cmp, 1 .section .rodata - .global se_w236 + .global se_m_moonlight .align 2 @********************** Track 1 **********************@ -se_w236_1: - .byte KEYSH , se_w236_key+0 - .byte TEMPO , 150*se_w236_tbs/2 +se_m_moonlight_1: + .byte KEYSH , se_m_moonlight_key+0 + .byte TEMPO , 150*se_m_moonlight_tbs/2 .byte VOICE , 46 - .byte VOL , 100*se_w236_mvl/mxv + .byte VOL , 100*se_m_moonlight_mvl/mxv .byte BENDR , 4 .byte PAN , c_v+0 .byte MOD , 6 @@ -32,7 +32,7 @@ se_w236_1: .byte W01 .byte N20 , Gn6 , v100 .byte W21 -se_w236_1_000: +se_m_moonlight_1_000: .byte N01 , Ds6 , v056 .byte W01 .byte Dn6 @@ -50,7 +50,7 @@ se_w236_1_000: .byte c_v-4 .byte W04 .byte PEND -se_w236_1_001: +se_m_moonlight_1_001: .byte PAN , c_v+0 .byte N01 , Gs5 , v092 .byte W01 @@ -61,7 +61,7 @@ se_w236_1_001: .byte N20 , Cn6 , v100 .byte W21 .byte PEND -se_w236_1_002: +se_m_moonlight_1_002: .byte PAN , c_v+16 .byte N01 , Gs5 , v056 .byte W01 @@ -72,7 +72,7 @@ se_w236_1_002: .byte N20 , Cn6 , v064 .byte W21 .byte PEND -se_w236_1_003: +se_m_moonlight_1_003: .byte PAN , c_v-16 .byte N01 , Gs5 , v040 .byte W01 @@ -83,7 +83,7 @@ se_w236_1_003: .byte N20 , Cn6 .byte W21 .byte PEND -se_w236_1_004: +se_m_moonlight_1_004: .byte PAN , c_v+32 .byte N01 , Gs5 , v020 .byte W01 @@ -105,24 +105,24 @@ se_w236_1_004: .byte N20 , Gn6 , v100 .byte W21 .byte PATT - .word se_w236_1_000 + .word se_m_moonlight_1_000 .byte PATT - .word se_w236_1_001 + .word se_m_moonlight_1_001 .byte PATT - .word se_w236_1_002 + .word se_m_moonlight_1_002 .byte PATT - .word se_w236_1_003 + .word se_m_moonlight_1_003 .byte PATT - .word se_w236_1_004 + .word se_m_moonlight_1_004 .byte FINE @********************** Track 2 **********************@ -se_w236_2: - .byte KEYSH , se_w236_key+0 +se_m_moonlight_2: + .byte KEYSH , se_m_moonlight_key+0 .byte VOICE , 55 .byte PAN , c_v+0 - .byte VOL , 39*se_w236_mvl/mxv + .byte VOL , 39*se_m_moonlight_mvl/mxv .byte BEND , c_v-4 .byte W10 .byte N01 , Ds6 , v112 @@ -135,7 +135,7 @@ se_w236_2: .byte W05 .byte Gn6 , v096 .byte W05 -se_w236_2_000: +se_m_moonlight_2_000: .byte PAN , c_v+50 .byte N04 , Gn6 , v080 .byte W04 @@ -149,7 +149,7 @@ se_w236_2_000: .byte N04 , Gn6 , v032 .byte W10 .byte PEND -se_w236_2_001: +se_m_moonlight_2_001: .byte PAN , c_v+0 .byte W10 .byte N01 , Gs5 , v112 @@ -163,7 +163,7 @@ se_w236_2_001: .byte Cn6 , v096 .byte W05 .byte PEND -se_w236_2_002: +se_m_moonlight_2_002: .byte PAN , c_v+50 .byte N04 , Cn6 , v080 .byte W04 @@ -192,11 +192,11 @@ se_w236_2_002: .byte Gn6 , v096 .byte W05 .byte PATT - .word se_w236_2_000 + .word se_m_moonlight_2_000 .byte PATT - .word se_w236_2_001 + .word se_m_moonlight_2_001 .byte PATT - .word se_w236_2_002 + .word se_m_moonlight_2_002 .byte W24 .byte W24 .byte FINE @@ -204,15 +204,15 @@ se_w236_2_002: @******************************************************@ .align 2 -se_w236: +se_m_moonlight: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w236_pri @ Priority - .byte se_w236_rev @ Reverb. + .byte se_m_moonlight_pri @ Priority + .byte se_m_moonlight_rev @ Reverb. - .word se_w236_grp + .word se_m_moonlight_grp - .word se_w236_1 - .word se_w236_2 + .word se_m_moonlight_1 + .word se_m_moonlight_2 .end diff --git a/sound/songs/se_w234.s b/sound/songs/se_m_morning_sun.s index 4f07ef30a..ac7667246 100644 --- a/sound/songs/se_w234.s +++ b/sound/songs/se_m_morning_sun.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w234_grp, voicegroup128 - .equ se_w234_pri, 5 - .equ se_w234_rev, reverb_set+50 - .equ se_w234_mvl, 127 - .equ se_w234_key, 0 - .equ se_w234_tbs, 1 - .equ se_w234_exg, 0 - .equ se_w234_cmp, 1 + .equ se_m_morning_sun_grp, voicegroup128 + .equ se_m_morning_sun_pri, 5 + .equ se_m_morning_sun_rev, reverb_set+50 + .equ se_m_morning_sun_mvl, 127 + .equ se_m_morning_sun_key, 0 + .equ se_m_morning_sun_tbs, 1 + .equ se_m_morning_sun_exg, 0 + .equ se_m_morning_sun_cmp, 1 .section .rodata - .global se_w234 + .global se_m_morning_sun .align 2 @********************** Track 1 **********************@ -se_w234_1: - .byte KEYSH , se_w234_key+0 - .byte TEMPO , 150*se_w234_tbs/2 +se_m_morning_sun_1: + .byte KEYSH , se_m_morning_sun_key+0 + .byte TEMPO , 150*se_m_morning_sun_tbs/2 .byte VOICE , 46 - .byte VOL , 95*se_w234_mvl/mxv + .byte VOL , 95*se_m_morning_sun_mvl/mxv .byte BENDR , 2 .byte PAN , c_v+0 .byte BEND , c_v+15 @@ -72,11 +72,11 @@ se_w234_1: @********************** Track 2 **********************@ -se_w234_2: - .byte KEYSH , se_w234_key+0 +se_m_morning_sun_2: + .byte KEYSH , se_m_morning_sun_key+0 .byte VOICE , 53 .byte BENDR , 2 - .byte VOL , 43*se_w234_mvl/mxv + .byte VOL , 43*se_m_morning_sun_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+15 .byte N06 , Gs6 , v108 @@ -121,15 +121,15 @@ se_w234_2: @******************************************************@ .align 2 -se_w234: +se_m_morning_sun: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w234_pri @ Priority - .byte se_w234_rev @ Reverb. + .byte se_m_morning_sun_pri @ Priority + .byte se_m_morning_sun_rev @ Reverb. - .word se_w234_grp + .word se_m_morning_sun_grp - .word se_w234_1 - .word se_w234_2 + .word se_m_morning_sun_1 + .word se_m_morning_sun_2 .end diff --git a/sound/songs/se_w171.s b/sound/songs/se_m_nightmare.s index a953faa50..825bfaea2 100644 --- a/sound/songs/se_w171.s +++ b/sound/songs/se_m_nightmare.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w171_grp, voicegroup128 - .equ se_w171_pri, 4 - .equ se_w171_rev, reverb_set+50 - .equ se_w171_mvl, 127 - .equ se_w171_key, 0 - .equ se_w171_tbs, 1 - .equ se_w171_exg, 0 - .equ se_w171_cmp, 1 + .equ se_m_nightmare_grp, voicegroup128 + .equ se_m_nightmare_pri, 4 + .equ se_m_nightmare_rev, reverb_set+50 + .equ se_m_nightmare_mvl, 127 + .equ se_m_nightmare_key, 0 + .equ se_m_nightmare_tbs, 1 + .equ se_m_nightmare_exg, 0 + .equ se_m_nightmare_cmp, 1 .section .rodata - .global se_w171 + .global se_m_nightmare .align 2 @********************** Track 1 **********************@ -se_w171_1: - .byte KEYSH , se_w171_key+0 - .byte TEMPO , 220*se_w171_tbs/2 +se_m_nightmare_1: + .byte KEYSH , se_m_nightmare_key+0 + .byte TEMPO , 220*se_m_nightmare_tbs/2 .byte VOICE , 3 - .byte VOL , 110*se_w171_mvl/mxv + .byte VOL , 110*se_m_nightmare_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -65,12 +65,12 @@ se_w171_1: @********************** Track 2 **********************@ -se_w171_2: - .byte KEYSH , se_w171_key+0 +se_m_nightmare_2: + .byte KEYSH , se_m_nightmare_key+0 .byte VOICE , 20 .byte XCMD , xIECV , 10 .byte xIECL , 8 - .byte VOL , 110*se_w171_mvl/mxv + .byte VOL , 110*se_m_nightmare_mvl/mxv .byte PAN , c_v-7 .byte BEND , c_v+55 .byte N03 , Cn2 , v100 @@ -132,15 +132,15 @@ se_w171_2: @******************************************************@ .align 2 -se_w171: +se_m_nightmare: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w171_pri @ Priority - .byte se_w171_rev @ Reverb. + .byte se_m_nightmare_pri @ Priority + .byte se_m_nightmare_rev @ Reverb. - .word se_w171_grp + .word se_m_nightmare_grp - .word se_w171_1 - .word se_w171_2 + .word se_m_nightmare_1 + .word se_m_nightmare_2 .end diff --git a/sound/songs/se_m_perish_song.s b/sound/songs/se_m_perish_song.s new file mode 100644 index 000000000..af30e2457 --- /dev/null +++ b/sound/songs/se_m_perish_song.s @@ -0,0 +1,221 @@ + .include "MPlayDef.s" + + .equ se_m_perish_song_grp, voicegroup128 + .equ se_m_perish_song_pri, 4 + .equ se_m_perish_song_rev, reverb_set+50 + .equ se_m_perish_song_mvl, 127 + .equ se_m_perish_song_key, 0 + .equ se_m_perish_song_tbs, 1 + .equ se_m_perish_song_exg, 0 + .equ se_m_perish_song_cmp, 1 + + .section .rodata + .global se_m_perish_song + .align 2 + +@********************** Track 1 **********************@ + +se_m_perish_song_1: + .byte KEYSH , se_m_perish_song_key+0 + .byte TEMPO , 100*se_m_perish_song_tbs/2 + .byte VOICE , 73 + .byte BENDR , 12 + .byte LFOS , 40 + .byte PAN , c_v+7 + .byte VOL , 25*se_m_perish_song_mvl/mxv + .byte BEND , c_v+0 + .byte W03 + .byte VOL , 29*se_m_perish_song_mvl/mxv + .byte W03 + .byte 33*se_m_perish_song_mvl/mxv + .byte N48 , An3 , v112 + .byte W03 + .byte VOL , 40*se_m_perish_song_mvl/mxv + .byte W01 + .byte PAN , c_v+4 + .byte W02 +se_m_perish_song_1_000: + .byte VOL , 45*se_m_perish_song_mvl/mxv + .byte MOD , 8 + .byte W03 + .byte VOL , 51*se_m_perish_song_mvl/mxv + .byte W03 + .byte PEND +se_m_perish_song_1_001: + .byte VOL , 56*se_m_perish_song_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte VOL , 62*se_m_perish_song_mvl/mxv + .byte W03 + .byte PEND +se_m_perish_song_1_002: + .byte VOL , 72*se_m_perish_song_mvl/mxv + .byte PAN , c_v-4 + .byte W03 + .byte VOL , 81*se_m_perish_song_mvl/mxv + .byte W03 + .byte PEND +se_m_perish_song_1_003: + .byte VOL , 92*se_m_perish_song_mvl/mxv + .byte PAN , c_v-8 + .byte W03 + .byte VOL , 100*se_m_perish_song_mvl/mxv + .byte W03 + .byte PEND + .byte PAN , c_v-4 + .byte W06 + .byte VOL , 82*se_m_perish_song_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte VOL , 52*se_m_perish_song_mvl/mxv + .byte W03 + .byte 25*se_m_perish_song_mvl/mxv + .byte MOD , 0 + .byte PAN , c_v+4 + .byte W03 + .byte VOL , 29*se_m_perish_song_mvl/mxv + .byte W01 + .byte PAN , c_v+7 + .byte W02 + .byte VOL , 33*se_m_perish_song_mvl/mxv + .byte N72 , Gs3 , v112 + .byte W03 + .byte VOL , 40*se_m_perish_song_mvl/mxv + .byte W01 + .byte PAN , c_v+4 + .byte W02 + .byte PATT + .word se_m_perish_song_1_000 + .byte PATT + .word se_m_perish_song_1_001 + .byte PATT + .word se_m_perish_song_1_002 + .byte PATT + .word se_m_perish_song_1_003 + .byte PAN , c_v-4 + .byte W06 + .byte c_v+0 + .byte W06 + .byte c_v+4 + .byte W03 + .byte VOL , 87*se_m_perish_song_mvl/mxv + .byte W03 + .byte 75*se_m_perish_song_mvl/mxv + .byte PAN , c_v+7 + .byte W03 + .byte VOL , 62*se_m_perish_song_mvl/mxv + .byte W03 + .byte 48*se_m_perish_song_mvl/mxv + .byte PAN , c_v+4 + .byte W03 + .byte VOL , 33*se_m_perish_song_mvl/mxv + .byte W03 + .byte 25*se_m_perish_song_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W02 + .byte VOL , 10*se_m_perish_song_mvl/mxv + .byte W03 + .byte W01 + .byte PAN , c_v-4 + .byte W05 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_perish_song_2: + .byte KEYSH , se_m_perish_song_key+0 + .byte VOICE , 73 + .byte VOL , 25*se_m_perish_song_mvl/mxv + .byte PAN , c_v-17 + .byte N48 , Cn4 , v100 + .byte W03 + .byte VOL , 29*se_m_perish_song_mvl/mxv + .byte W03 + .byte 33*se_m_perish_song_mvl/mxv + .byte W03 + .byte 40*se_m_perish_song_mvl/mxv + .byte W03 +se_m_perish_song_2_000: + .byte VOL , 45*se_m_perish_song_mvl/mxv + .byte MOD , 8 + .byte W03 + .byte VOL , 51*se_m_perish_song_mvl/mxv + .byte W03 + .byte PEND + .byte 56*se_m_perish_song_mvl/mxv + .byte W03 + .byte 62*se_m_perish_song_mvl/mxv + .byte W03 + .byte 72*se_m_perish_song_mvl/mxv + .byte W03 + .byte 81*se_m_perish_song_mvl/mxv + .byte W03 + .byte 92*se_m_perish_song_mvl/mxv + .byte W03 + .byte 100*se_m_perish_song_mvl/mxv + .byte W03 + .byte W06 + .byte 82*se_m_perish_song_mvl/mxv + .byte W03 + .byte 52*se_m_perish_song_mvl/mxv + .byte W03 + .byte 25*se_m_perish_song_mvl/mxv + .byte MOD , 0 + .byte N72 , Bn3 , v100 + .byte W03 + .byte VOL , 29*se_m_perish_song_mvl/mxv + .byte W03 + .byte 33*se_m_perish_song_mvl/mxv + .byte W03 + .byte 40*se_m_perish_song_mvl/mxv + .byte W03 + .byte PATT + .word se_m_perish_song_2_000 + .byte VOL , 56*se_m_perish_song_mvl/mxv + .byte W03 + .byte 62*se_m_perish_song_mvl/mxv + .byte W03 + .byte 72*se_m_perish_song_mvl/mxv + .byte W03 + .byte 81*se_m_perish_song_mvl/mxv + .byte W03 + .byte 92*se_m_perish_song_mvl/mxv + .byte W03 + .byte 100*se_m_perish_song_mvl/mxv + .byte W03 + .byte W06 + .byte W06 + .byte W03 + .byte 87*se_m_perish_song_mvl/mxv + .byte W03 + .byte 75*se_m_perish_song_mvl/mxv + .byte W03 + .byte 62*se_m_perish_song_mvl/mxv + .byte W03 + .byte 48*se_m_perish_song_mvl/mxv + .byte W03 + .byte 33*se_m_perish_song_mvl/mxv + .byte W03 + .byte 25*se_m_perish_song_mvl/mxv + .byte W03 + .byte 10*se_m_perish_song_mvl/mxv + .byte W03 + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_perish_song: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_perish_song_pri @ Priority + .byte se_m_perish_song_rev @ Reverb. + + .word se_m_perish_song_grp + + .word se_m_perish_song_1 + .word se_m_perish_song_2 + + .end diff --git a/sound/songs/se_w080.s b/sound/songs/se_m_petal_dance.s index 0027a0d65..c8ad2810d 100644 --- a/sound/songs/se_w080.s +++ b/sound/songs/se_m_petal_dance.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w080_grp, voicegroup128 - .equ se_w080_pri, 4 - .equ se_w080_rev, reverb_set+50 - .equ se_w080_mvl, 127 - .equ se_w080_key, 0 - .equ se_w080_tbs, 1 - .equ se_w080_exg, 0 - .equ se_w080_cmp, 1 + .equ se_m_petal_dance_grp, voicegroup128 + .equ se_m_petal_dance_pri, 4 + .equ se_m_petal_dance_rev, reverb_set+50 + .equ se_m_petal_dance_mvl, 127 + .equ se_m_petal_dance_key, 0 + .equ se_m_petal_dance_tbs, 1 + .equ se_m_petal_dance_exg, 0 + .equ se_m_petal_dance_cmp, 1 .section .rodata - .global se_w080 + .global se_m_petal_dance .align 2 @********************** Track 1 **********************@ -se_w080_1: - .byte KEYSH , se_w080_key+0 - .byte TEMPO , 150*se_w080_tbs/2 +se_m_petal_dance_1: + .byte KEYSH , se_m_petal_dance_key+0 + .byte TEMPO , 150*se_m_petal_dance_tbs/2 .byte VOICE , 46 - .byte VOL , 95*se_w080_mvl/mxv + .byte VOL , 95*se_m_petal_dance_mvl/mxv .byte BENDR , 2 .byte PAN , c_v+0 .byte BEND , c_v+15 @@ -112,11 +112,11 @@ se_w080_1: @********************** Track 2 **********************@ -se_w080_2: - .byte KEYSH , se_w080_key+0 +se_m_petal_dance_2: + .byte KEYSH , se_m_petal_dance_key+0 .byte VOICE , 53 .byte BENDR , 2 - .byte VOL , 43*se_w080_mvl/mxv + .byte VOL , 43*se_m_petal_dance_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+15 .byte N06 , En6 , v108 @@ -191,15 +191,15 @@ se_w080_2: @******************************************************@ .align 2 -se_w080: +se_m_petal_dance: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w080_pri @ Priority - .byte se_w080_rev @ Reverb. + .byte se_m_petal_dance_pri @ Priority + .byte se_m_petal_dance_rev @ Reverb. - .word se_w080_grp + .word se_m_petal_dance_grp - .word se_w080_1 - .word se_w080_2 + .word se_m_petal_dance_1 + .word se_m_petal_dance_2 .end diff --git a/sound/songs/se_m_poison_powder.s b/sound/songs/se_m_poison_powder.s new file mode 100644 index 000000000..f48637385 --- /dev/null +++ b/sound/songs/se_m_poison_powder.s @@ -0,0 +1,58 @@ + .include "MPlayDef.s" + + .equ se_m_poison_powder_grp, voicegroup128 + .equ se_m_poison_powder_pri, 4 + .equ se_m_poison_powder_rev, reverb_set+50 + .equ se_m_poison_powder_mvl, 127 + .equ se_m_poison_powder_key, 0 + .equ se_m_poison_powder_tbs, 1 + .equ se_m_poison_powder_exg, 0 + .equ se_m_poison_powder_cmp, 1 + + .section .rodata + .global se_m_poison_powder + .align 2 + +@********************** Track 1 **********************@ + +se_m_poison_powder_1: + .byte KEYSH , se_m_poison_powder_key+0 + .byte TEMPO , 150*se_m_poison_powder_tbs/2 + .byte VOICE , 18 + .byte BENDR , 12 + .byte VOL , 55*se_m_poison_powder_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+1 + .byte N01 , Cn6 , v100 + .byte W01 + .byte VOL , 110*se_m_poison_powder_mvl/mxv + .byte W01 + .byte VOICE , 36 + .byte VOL , 55*se_m_poison_powder_mvl/mxv + .byte N02 , Gn6 , v080 + .byte W01 + .byte VOL , 110*se_m_poison_powder_mvl/mxv + .byte W04 + .byte PAN , c_v+20 + .byte N01 , Gn6 , v024 + .byte W03 + .byte Gn6 , v016 + .byte W02 + .byte PAN , c_v-21 + .byte W12 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_poison_powder: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_poison_powder_pri @ Priority + .byte se_m_poison_powder_rev @ Reverb. + + .word se_m_poison_powder_grp + + .word se_m_poison_powder_1 + + .end diff --git a/sound/songs/se_w060.s b/sound/songs/se_m_psybeam.s index 520720429..c7f68cffd 100644 --- a/sound/songs/se_w060.s +++ b/sound/songs/se_m_psybeam.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w060_grp, voicegroup128 - .equ se_w060_pri, 4 - .equ se_w060_rev, reverb_set+50 - .equ se_w060_mvl, 127 - .equ se_w060_key, 0 - .equ se_w060_tbs, 1 - .equ se_w060_exg, 0 - .equ se_w060_cmp, 1 + .equ se_m_psybeam_grp, voicegroup128 + .equ se_m_psybeam_pri, 4 + .equ se_m_psybeam_rev, reverb_set+50 + .equ se_m_psybeam_mvl, 127 + .equ se_m_psybeam_key, 0 + .equ se_m_psybeam_tbs, 1 + .equ se_m_psybeam_exg, 0 + .equ se_m_psybeam_cmp, 1 .section .rodata - .global se_w060 + .global se_m_psybeam .align 2 @********************** Track 1 **********************@ -se_w060_1: - .byte KEYSH , se_w060_key+0 - .byte TEMPO , 190*se_w060_tbs/2 +se_m_psybeam_1: + .byte KEYSH , se_m_psybeam_key+0 + .byte TEMPO , 190*se_m_psybeam_tbs/2 .byte VOICE , 45 .byte BENDR , 8 .byte PAN , c_v+0 - .byte VOL , 38*se_w060_mvl/mxv + .byte VOL , 38*se_m_psybeam_mvl/mxv .byte MOD , 30 .byte BEND , c_v+1 .byte N42 , As2 , v120 @@ -29,26 +29,26 @@ se_w060_1: .byte PAN , c_v+3 .byte W01 .byte c_v+5 - .byte VOL , 57*se_w060_mvl/mxv + .byte VOL , 57*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v+9 .byte W01 - .byte VOL , 71*se_w060_mvl/mxv + .byte VOL , 71*se_m_psybeam_mvl/mxv .byte W02 .byte PAN , c_v+5 .byte W01 .byte c_v+1 - .byte VOL , 82*se_w060_mvl/mxv + .byte VOL , 82*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte W01 .byte c_v-3 - .byte VOL , 94*se_w060_mvl/mxv + .byte VOL , 94*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v-6 .byte W02 .byte c_v-10 - .byte VOL , 110*se_w060_mvl/mxv + .byte VOL , 110*se_m_psybeam_mvl/mxv .byte W02 .byte PAN , c_v-6 .byte W01 @@ -66,79 +66,79 @@ se_w060_1: .byte c_v+5 .byte W02 .byte c_v+1 - .byte VOL , 95*se_w060_mvl/mxv + .byte VOL , 95*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte W01 .byte c_v-3 - .byte VOL , 83*se_w060_mvl/mxv + .byte VOL , 83*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v-6 .byte W01 .byte c_v-10 - .byte VOL , 71*se_w060_mvl/mxv + .byte VOL , 71*se_m_psybeam_mvl/mxv .byte W02 .byte W01 .byte PAN , c_v-6 - .byte VOL , 56*se_w060_mvl/mxv + .byte VOL , 56*se_m_psybeam_mvl/mxv .byte W01 .byte PAN , c_v-3 .byte W01 - .byte VOL , 38*se_w060_mvl/mxv + .byte VOL , 38*se_m_psybeam_mvl/mxv .byte W03 .byte PAN , c_v+0 .byte FINE @********************** Track 2 **********************@ -se_w060_2: - .byte KEYSH , se_w060_key+0 +se_m_psybeam_2: + .byte KEYSH , se_m_psybeam_key+0 .byte VOICE , 47 .byte BENDR , 8 .byte PAN , c_v+0 - .byte VOL , 38*se_w060_mvl/mxv + .byte VOL , 38*se_m_psybeam_mvl/mxv .byte MOD , 30 .byte BEND , c_v+1 .byte N42 , As1 , v040 .byte W02 - .byte VOL , 57*se_w060_mvl/mxv + .byte VOL , 57*se_m_psybeam_mvl/mxv .byte W02 - .byte 71*se_w060_mvl/mxv + .byte 71*se_m_psybeam_mvl/mxv .byte W02 .byte W01 - .byte 82*se_w060_mvl/mxv + .byte 82*se_m_psybeam_mvl/mxv .byte W02 - .byte 94*se_w060_mvl/mxv + .byte 94*se_m_psybeam_mvl/mxv .byte W03 - .byte 110*se_w060_mvl/mxv + .byte 110*se_m_psybeam_mvl/mxv .byte W06 .byte W06 .byte W06 - .byte 95*se_w060_mvl/mxv + .byte 95*se_m_psybeam_mvl/mxv .byte W02 - .byte 83*se_w060_mvl/mxv + .byte 83*se_m_psybeam_mvl/mxv .byte W02 - .byte 71*se_w060_mvl/mxv + .byte 71*se_m_psybeam_mvl/mxv .byte W02 .byte W01 - .byte 56*se_w060_mvl/mxv + .byte 56*se_m_psybeam_mvl/mxv .byte W02 - .byte 38*se_w060_mvl/mxv + .byte 38*se_m_psybeam_mvl/mxv .byte W03 .byte FINE @******************************************************@ .align 2 -se_w060: +se_m_psybeam: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w060_pri @ Priority - .byte se_w060_rev @ Reverb. + .byte se_m_psybeam_pri @ Priority + .byte se_m_psybeam_rev @ Reverb. - .word se_w060_grp + .word se_m_psybeam_grp - .word se_w060_1 - .word se_w060_2 + .word se_m_psybeam_1 + .word se_m_psybeam_2 .end diff --git a/sound/songs/se_w060b.s b/sound/songs/se_m_psybeam2.s index 45dc69634..e26a844c9 100644 --- a/sound/songs/se_w060b.s +++ b/sound/songs/se_m_psybeam2.s @@ -1,43 +1,43 @@ .include "MPlayDef.s" - .equ se_w060b_grp, voicegroup128 - .equ se_w060b_pri, 4 - .equ se_w060b_rev, reverb_set+50 - .equ se_w060b_mvl, 127 - .equ se_w060b_key, 0 - .equ se_w060b_tbs, 1 - .equ se_w060b_exg, 0 - .equ se_w060b_cmp, 1 + .equ se_m_psybeam2_grp, voicegroup128 + .equ se_m_psybeam2_pri, 4 + .equ se_m_psybeam2_rev, reverb_set+50 + .equ se_m_psybeam2_mvl, 127 + .equ se_m_psybeam2_key, 0 + .equ se_m_psybeam2_tbs, 1 + .equ se_m_psybeam2_exg, 0 + .equ se_m_psybeam2_cmp, 1 .section .rodata - .global se_w060b + .global se_m_psybeam2 .align 2 @********************** Track 1 **********************@ -se_w060b_1: - .byte KEYSH , se_w060b_key+0 - .byte TEMPO , 190*se_w060b_tbs/2 +se_m_psybeam2_1: + .byte KEYSH , se_m_psybeam2_key+0 + .byte TEMPO , 190*se_m_psybeam2_tbs/2 .byte VOICE , 45 .byte BENDR , 8 - .byte VOL , 36*se_w060b_mvl/mxv + .byte VOL , 36*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-44 .byte N12 , Gs2 , v127 .byte W01 - .byte VOL , 52*se_w060b_mvl/mxv + .byte VOL , 52*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v-20 .byte W01 - .byte VOL , 67*se_w060b_mvl/mxv + .byte VOL , 67*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+17 .byte W01 - .byte VOL , 78*se_w060b_mvl/mxv + .byte VOL , 78*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+27 .byte W01 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v+44 .byte W02 @@ -47,42 +47,42 @@ se_w060b_1: .byte PAN , c_v+0 .byte BEND , c_v+44 .byte W01 - .byte VOL , 86*se_w060b_mvl/mxv + .byte VOL , 86*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v+28 .byte W01 - .byte VOL , 55*se_w060b_mvl/mxv + .byte VOL , 55*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+17 .byte W01 - .byte VOL , 33*se_w060b_mvl/mxv + .byte VOL , 33*se_m_psybeam2_mvl/mxv .byte BEND , c_v+5 .byte W02 .byte VOICE , 37 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte N02 , Gs3 , v080 .byte W01 .byte BEND , c_v+16 .byte W01 .byte VOICE , 45 - .byte VOL , 36*se_w060b_mvl/mxv + .byte VOL , 36*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-44 .byte N12 , As2 , v127 .byte W01 - .byte VOL , 52*se_w060b_mvl/mxv + .byte VOL , 52*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v-20 .byte W01 - .byte VOL , 67*se_w060b_mvl/mxv + .byte VOL , 67*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+17 .byte W02 - .byte VOL , 78*se_w060b_mvl/mxv + .byte VOL , 78*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+27 .byte W01 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte PAN , c_v+11 .byte BEND , c_v+44 .byte W01 @@ -92,41 +92,41 @@ se_w060b_1: .byte PAN , c_v+0 .byte BEND , c_v+44 .byte W01 - .byte VOL , 86*se_w060b_mvl/mxv + .byte VOL , 86*se_m_psybeam2_mvl/mxv .byte PAN , c_v+11 .byte BEND , c_v+28 .byte W02 - .byte VOL , 55*se_w060b_mvl/mxv + .byte VOL , 55*se_m_psybeam2_mvl/mxv .byte PAN , c_v-11 .byte BEND , c_v+17 .byte W01 - .byte VOL , 33*se_w060b_mvl/mxv + .byte VOL , 33*se_m_psybeam2_mvl/mxv .byte BEND , c_v+5 .byte W01 .byte VOICE , 37 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte N02 , As3 , v056 .byte W01 .byte BEND , c_v+16 .byte W01 .byte VOICE , 45 - .byte VOL , 36*se_w060b_mvl/mxv + .byte VOL , 36*se_m_psybeam2_mvl/mxv .byte BEND , c_v-44 .byte N12 , Gs2 , v080 .byte W02 - .byte VOL , 52*se_w060b_mvl/mxv + .byte VOL , 52*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-20 .byte W01 - .byte VOL , 67*se_w060b_mvl/mxv + .byte VOL , 67*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v+17 .byte W01 - .byte VOL , 78*se_w060b_mvl/mxv + .byte VOL , 78*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+27 .byte W01 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+44 .byte W01 @@ -136,42 +136,42 @@ se_w060b_1: .byte PAN , c_v-6 .byte BEND , c_v+44 .byte W01 - .byte VOL , 86*se_w060b_mvl/mxv + .byte VOL , 86*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+28 .byte W01 - .byte VOL , 55*se_w060b_mvl/mxv + .byte VOL , 55*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v+17 .byte W01 - .byte VOL , 33*se_w060b_mvl/mxv + .byte VOL , 33*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+5 .byte W01 .byte VOICE , 37 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte N02 , Gs3 , v024 .byte W02 .byte BEND , c_v+16 .byte W01 .byte VOICE , 45 - .byte VOL , 36*se_w060b_mvl/mxv + .byte VOL , 36*se_m_psybeam2_mvl/mxv .byte BEND , c_v-44 .byte N12 , As2 , v040 .byte W01 - .byte VOL , 52*se_w060b_mvl/mxv + .byte VOL , 52*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-20 .byte W01 - .byte VOL , 67*se_w060b_mvl/mxv + .byte VOL , 67*se_m_psybeam2_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v+17 .byte W01 - .byte VOL , 78*se_w060b_mvl/mxv + .byte VOL , 78*se_m_psybeam2_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+27 .byte W02 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+44 .byte W01 @@ -181,19 +181,19 @@ se_w060b_1: .byte PAN , c_v-11 .byte BEND , c_v+44 .byte W01 - .byte VOL , 86*se_w060b_mvl/mxv + .byte VOL , 86*se_m_psybeam2_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+28 .byte W01 - .byte VOL , 55*se_w060b_mvl/mxv + .byte VOL , 55*se_m_psybeam2_mvl/mxv .byte PAN , c_v+11 .byte BEND , c_v+17 .byte W02 - .byte VOL , 33*se_w060b_mvl/mxv + .byte VOL , 33*se_m_psybeam2_mvl/mxv .byte BEND , c_v+5 .byte W01 .byte VOICE , 37 - .byte VOL , 105*se_w060b_mvl/mxv + .byte VOL , 105*se_m_psybeam2_mvl/mxv .byte N02 , As3 , v016 .byte W01 .byte BEND , c_v+16 @@ -203,14 +203,14 @@ se_w060b_1: @******************************************************@ .align 2 -se_w060b: +se_m_psybeam2: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w060b_pri @ Priority - .byte se_w060b_rev @ Reverb. + .byte se_m_psybeam2_pri @ Priority + .byte se_m_psybeam2_rev @ Reverb. - .word se_w060b_grp + .word se_m_psybeam2_grp - .word se_w060b_1 + .word se_m_psybeam2_1 .end diff --git a/sound/songs/se_m_rain_dance.s b/sound/songs/se_m_rain_dance.s new file mode 100644 index 000000000..810be0663 --- /dev/null +++ b/sound/songs/se_m_rain_dance.s @@ -0,0 +1,116 @@ + .include "MPlayDef.s" + + .equ se_m_rain_dance_grp, voicegroup128 + .equ se_m_rain_dance_pri, 4 + .equ se_m_rain_dance_rev, reverb_set+50 + .equ se_m_rain_dance_mvl, 127 + .equ se_m_rain_dance_key, 0 + .equ se_m_rain_dance_tbs, 1 + .equ se_m_rain_dance_exg, 0 + .equ se_m_rain_dance_cmp, 1 + + .section .rodata + .global se_m_rain_dance + .align 2 + +@********************** Track 1 **********************@ + +se_m_rain_dance_1: + .byte KEYSH , se_m_rain_dance_key+0 + .byte TEMPO , 220*se_m_rain_dance_tbs/2 + .byte VOICE , 36 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 20*se_m_rain_dance_mvl/mxv + .byte BEND , c_v+0 + .byte TIE , Gn3 , v064 + .byte W03 + .byte VOL , 37*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 53*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 60*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 71*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 81*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 93*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 110*se_m_rain_dance_mvl/mxv + .byte W03 + .byte PAN , c_v+3 + .byte W06 + .byte c_v+11 + .byte W12 + .byte c_v+20 + .byte W06 + .byte c_v+25 + .byte W12 + .byte c_v+14 + .byte W06 + .byte c_v+8 + .byte W06 + .byte W06 + .byte c_v-3 + .byte W12 + .byte c_v-16 + .byte W06 + .byte W06 + .byte c_v-26 + .byte W12 + .byte c_v-16 + .byte W06 + .byte VOL , 104*se_m_rain_dance_mvl/mxv + .byte PAN , c_v-5 + .byte W03 + .byte VOL , 101*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 98*se_m_rain_dance_mvl/mxv + .byte PAN , c_v+6 + .byte W03 + .byte VOL , 93*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 90*se_m_rain_dance_mvl/mxv + .byte PAN , c_v+14 + .byte W03 + .byte VOL , 86*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 83*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 77*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 73*se_m_rain_dance_mvl/mxv + .byte PAN , c_v+24 + .byte W03 + .byte VOL , 66*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 58*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 44*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 32*se_m_rain_dance_mvl/mxv + .byte PAN , c_v+15 + .byte W03 + .byte VOL , 16*se_m_rain_dance_mvl/mxv + .byte W03 + .byte 1*se_m_rain_dance_mvl/mxv + .byte PAN , c_v+4 + .byte W06 + .byte EOT + .byte FINE + +@******************************************************@ + .align 2 + +se_m_rain_dance: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_rain_dance_pri @ Priority + .byte se_m_rain_dance_rev @ Reverb. + + .word se_m_rain_dance_grp + + .word se_m_rain_dance_1 + + .end diff --git a/sound/songs/se_w115.s b/sound/songs/se_m_reflect.s index 4f9bfb71a..56699c65e 100644 --- a/sound/songs/se_w115.s +++ b/sound/songs/se_m_reflect.s @@ -1,99 +1,99 @@ .include "MPlayDef.s" - .equ se_w115_grp, voicegroup128 - .equ se_w115_pri, 4 - .equ se_w115_rev, reverb_set+50 - .equ se_w115_mvl, 127 - .equ se_w115_key, 0 - .equ se_w115_tbs, 1 - .equ se_w115_exg, 0 - .equ se_w115_cmp, 1 + .equ se_m_reflect_grp, voicegroup128 + .equ se_m_reflect_pri, 4 + .equ se_m_reflect_rev, reverb_set+50 + .equ se_m_reflect_mvl, 127 + .equ se_m_reflect_key, 0 + .equ se_m_reflect_tbs, 1 + .equ se_m_reflect_exg, 0 + .equ se_m_reflect_cmp, 1 .section .rodata - .global se_w115 + .global se_m_reflect .align 2 @********************** Track 1 **********************@ -se_w115_1: - .byte KEYSH , se_w115_key+0 - .byte TEMPO , 150*se_w115_tbs/2 +se_m_reflect_1: + .byte KEYSH , se_m_reflect_key+0 + .byte TEMPO , 150*se_m_reflect_tbs/2 .byte VOICE , 19 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v+6 .byte N06 , Gn6 , v080 .byte W01 .byte BEND , c_v-4 .byte W01 .byte PAN , c_v+5 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-14 .byte W01 .byte PAN , c_v-6 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-31 .byte W01 .byte PAN , c_v+0 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-41 .byte W02 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v+0 .byte N06 , Gn6 , v072 .byte W01 .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v-6 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v+0 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-47 .byte W02 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-1 .byte N06 , Gn6 , v068 .byte W01 .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-21 .byte W01 .byte PAN , c_v-6 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-38 .byte W01 .byte PAN , c_v+0 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-48 .byte W02 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-1 .byte N06 , Gn6 , v060 .byte W01 .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-21 .byte W01 .byte PAN , c_v-6 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-38 .byte W01 .byte PAN , c_v+0 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-48 .byte W02 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-2 .byte N06 , Gn6 , v052 .byte W01 @@ -101,19 +101,19 @@ se_w115_1: .byte BEND , c_v-12 .byte W01 .byte PAN , c_v-6 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-22 .byte W01 .byte PAN , c_v+8 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-39 .byte W01 .byte PAN , c_v-10 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-49 .byte W02 .byte PAN , c_v+0 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-2 .byte N06 , Gn6 , v048 .byte W01 @@ -121,18 +121,18 @@ se_w115_1: .byte BEND , c_v-12 .byte W01 .byte PAN , c_v-6 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-22 .byte W01 .byte PAN , c_v+8 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-39 .byte W01 .byte PAN , c_v-10 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-49 .byte W02 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-2 .byte N06 , Gn6 , v040 .byte W01 @@ -140,19 +140,19 @@ se_w115_1: .byte BEND , c_v-13 .byte W01 .byte PAN , c_v-6 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-22 .byte W01 .byte PAN , c_v+8 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-39 .byte W01 .byte PAN , c_v-10 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-49 .byte W02 .byte PAN , c_v+0 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte BEND , c_v-2 .byte N06 , Gn6 , v032 .byte W01 @@ -160,15 +160,15 @@ se_w115_1: .byte BEND , c_v-13 .byte W01 .byte PAN , c_v-6 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte BEND , c_v-22 .byte W01 .byte PAN , c_v+8 - .byte VOL , 60*se_w115_mvl/mxv + .byte VOL , 60*se_m_reflect_mvl/mxv .byte BEND , c_v-39 .byte W01 .byte PAN , c_v-10 - .byte VOL , 20*se_w115_mvl/mxv + .byte VOL , 20*se_m_reflect_mvl/mxv .byte BEND , c_v-49 .byte W02 .byte W06 @@ -176,92 +176,92 @@ se_w115_1: @********************** Track 2 **********************@ -se_w115_2: - .byte KEYSH , se_w115_key+0 +se_m_reflect_2: + .byte KEYSH , se_m_reflect_key+0 .byte VOICE , 53 .byte PAN , c_v+0 - .byte VOL , 90*se_w115_mvl/mxv + .byte VOL , 90*se_m_reflect_mvl/mxv .byte W02 .byte N06 , En6 , v064 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 - .byte 60*se_w115_mvl/mxv + .byte 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v056 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 -se_w115_2_000: - .byte VOL , 60*se_w115_mvl/mxv +se_m_reflect_2_000: + .byte VOL , 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v052 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 .byte PEND .byte PATT - .word se_w115_2_000 - .byte VOL , 60*se_w115_mvl/mxv + .word se_m_reflect_2_000 + .byte VOL , 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v048 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 - .byte 60*se_w115_mvl/mxv + .byte 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v044 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 - .byte 60*se_w115_mvl/mxv + .byte 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v040 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 - .byte 60*se_w115_mvl/mxv + .byte 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W01 - .byte 90*se_w115_mvl/mxv + .byte 90*se_m_reflect_mvl/mxv .byte N06 , En6 , v036 .byte W02 - .byte VOL , 74*se_w115_mvl/mxv + .byte VOL , 74*se_m_reflect_mvl/mxv .byte W02 - .byte 60*se_w115_mvl/mxv + .byte 60*se_m_reflect_mvl/mxv .byte W01 - .byte 20*se_w115_mvl/mxv + .byte 20*se_m_reflect_mvl/mxv .byte W05 .byte FINE @******************************************************@ .align 2 -se_w115: +se_m_reflect: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w115_pri @ Priority - .byte se_w115_rev @ Reverb. + .byte se_m_reflect_pri @ Priority + .byte se_m_reflect_rev @ Reverb. - .word se_w115_grp + .word se_m_reflect_grp - .word se_w115_1 - .word se_w115_2 + .word se_m_reflect_1 + .word se_m_reflect_2 .end diff --git a/sound/songs/se_w179.s b/sound/songs/se_m_reversal.s index 9ea055b44..609c399f5 100644 --- a/sound/songs/se_w179.s +++ b/sound/songs/se_m_reversal.s @@ -1,33 +1,33 @@ .include "MPlayDef.s" - .equ se_w179_grp, voicegroup128 - .equ se_w179_pri, 4 - .equ se_w179_rev, reverb_set+50 - .equ se_w179_mvl, 127 - .equ se_w179_key, 0 - .equ se_w179_tbs, 1 - .equ se_w179_exg, 0 - .equ se_w179_cmp, 1 + .equ se_m_reversal_grp, voicegroup128 + .equ se_m_reversal_pri, 4 + .equ se_m_reversal_rev, reverb_set+50 + .equ se_m_reversal_mvl, 127 + .equ se_m_reversal_key, 0 + .equ se_m_reversal_tbs, 1 + .equ se_m_reversal_exg, 0 + .equ se_m_reversal_cmp, 1 .section .rodata - .global se_w179 + .global se_m_reversal .align 2 @********************** Track 1 **********************@ -se_w179_1: - .byte KEYSH , se_w179_key+0 - .byte TEMPO , 150*se_w179_tbs/2 +se_m_reversal_1: + .byte KEYSH , se_m_reversal_key+0 + .byte TEMPO , 150*se_m_reversal_tbs/2 .byte VOICE , 19 .byte BENDR , 24 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte N03 , Cn5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -36,14 +36,14 @@ se_w179_1: .byte N01 , Gn4 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , Cs5 , v092 .byte W02 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -52,14 +52,14 @@ se_w179_1: .byte N01 , Gs4 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-33 .byte N03 , Dn5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W02 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -68,14 +68,14 @@ se_w179_1: .byte N01 , An4 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , Ds5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W02 .byte VOICE , 22 @@ -84,14 +84,14 @@ se_w179_1: .byte N01 , As4 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-33 .byte N03 , En5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -100,14 +100,14 @@ se_w179_1: .byte N01 , Bn4 , v127 .byte W02 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , Fn5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -116,14 +116,14 @@ se_w179_1: .byte N01 , Cn5 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-33 .byte N03 , Fs5 , v092 .byte W02 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -132,14 +132,14 @@ se_w179_1: .byte N01 , Cs5 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , Gn5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W02 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -148,14 +148,14 @@ se_w179_1: .byte N01 , Dn5 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-33 .byte N03 , Gs5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W02 .byte VOICE , 22 @@ -164,14 +164,14 @@ se_w179_1: .byte N01 , Ds5 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , An5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -180,14 +180,14 @@ se_w179_1: .byte N01 , En5 , v127 .byte W02 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-33 .byte N03 , As5 , v092 .byte W01 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -196,14 +196,14 @@ se_w179_1: .byte N01 , Fn5 , v127 .byte W01 .byte VOICE , 19 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-33 .byte N03 , Bn5 , v092 .byte W02 - .byte VOL , 72*se_w179_mvl/mxv + .byte VOL , 72*se_m_reversal_mvl/mxv .byte W01 - .byte 40*se_w179_mvl/mxv + .byte 40*se_m_reversal_mvl/mxv .byte BEND , c_v+31 .byte W01 .byte VOICE , 22 @@ -218,10 +218,10 @@ se_w179_1: @********************** Track 2 **********************@ -se_w179_2: - .byte KEYSH , se_w179_key+0 +se_m_reversal_2: + .byte KEYSH , se_m_reversal_key+0 .byte VOICE , 17 - .byte VOL , 100*se_w179_mvl/mxv + .byte VOL , 100*se_m_reversal_mvl/mxv .byte W02 .byte BEND , c_v+31 .byte N03 , Cn5 , v040 @@ -322,15 +322,15 @@ se_w179_2: @******************************************************@ .align 2 -se_w179: +se_m_reversal: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w179_pri @ Priority - .byte se_w179_rev @ Reverb. + .byte se_m_reversal_pri @ Priority + .byte se_m_reversal_rev @ Reverb. - .word se_w179_grp + .word se_m_reversal_grp - .word se_w179_1 - .word se_w179_2 + .word se_m_reversal_1 + .word se_m_reversal_2 .end diff --git a/sound/songs/se_w088.s b/sound/songs/se_m_rock_throw.s index 9eceb812d..71dddd447 100644 --- a/sound/songs/se_w088.s +++ b/sound/songs/se_m_rock_throw.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w088_grp, voicegroup128 - .equ se_w088_pri, 4 - .equ se_w088_rev, reverb_set+50 - .equ se_w088_mvl, 127 - .equ se_w088_key, 0 - .equ se_w088_tbs, 1 - .equ se_w088_exg, 0 - .equ se_w088_cmp, 1 + .equ se_m_rock_throw_grp, voicegroup128 + .equ se_m_rock_throw_pri, 4 + .equ se_m_rock_throw_rev, reverb_set+50 + .equ se_m_rock_throw_mvl, 127 + .equ se_m_rock_throw_key, 0 + .equ se_m_rock_throw_tbs, 1 + .equ se_m_rock_throw_exg, 0 + .equ se_m_rock_throw_cmp, 1 .section .rodata - .global se_w088 + .global se_m_rock_throw .align 2 @********************** Track 1 **********************@ -se_w088_1: - .byte KEYSH , se_w088_key+0 - .byte TEMPO , 150*se_w088_tbs/2 +se_m_rock_throw_1: + .byte KEYSH , se_m_rock_throw_key+0 + .byte TEMPO , 150*se_m_rock_throw_tbs/2 .byte VOICE , 26 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 105*se_w088_mvl/mxv + .byte VOL , 105*se_m_rock_throw_mvl/mxv .byte BEND , c_v+0 .byte N06 , En3 , v127 .byte W03 @@ -52,14 +52,14 @@ se_w088_1: @******************************************************@ .align 2 -se_w088: +se_m_rock_throw: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w088_pri @ Priority - .byte se_w088_rev @ Reverb. + .byte se_m_rock_throw_pri @ Priority + .byte se_m_rock_throw_rev @ Reverb. - .word se_w088_grp + .word se_m_rock_throw_grp - .word se_w088_1 + .word se_m_rock_throw_1 .end diff --git a/sound/songs/se_m_sacred_fire.s b/sound/songs/se_m_sacred_fire.s new file mode 100644 index 000000000..5e6c864e2 --- /dev/null +++ b/sound/songs/se_m_sacred_fire.s @@ -0,0 +1,105 @@ + .include "MPlayDef.s" + + .equ se_m_sacred_fire_grp, voicegroup128 + .equ se_m_sacred_fire_pri, 4 + .equ se_m_sacred_fire_rev, reverb_set+50 + .equ se_m_sacred_fire_mvl, 127 + .equ se_m_sacred_fire_key, 0 + .equ se_m_sacred_fire_tbs, 1 + .equ se_m_sacred_fire_exg, 0 + .equ se_m_sacred_fire_cmp, 1 + + .section .rodata + .global se_m_sacred_fire + .align 2 + +@********************** Track 1 **********************@ + +se_m_sacred_fire_1: + .byte KEYSH , se_m_sacred_fire_key+0 + .byte TEMPO , 150*se_m_sacred_fire_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte VOL , 110*se_m_sacred_fire_mvl/mxv + .byte PAN , c_v+5 + .byte BEND , c_v+0 + .byte N04 , Cn3 , v127 + .byte W03 + .byte PAN , c_v+0 + .byte W01 + .byte N18 , Gn4 + .byte W02 + .byte PAN , c_v-5 + .byte W01 + .byte VOL , 98*se_m_sacred_fire_mvl/mxv + .byte BEND , c_v+2 + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 83*se_m_sacred_fire_mvl/mxv + .byte BEND , c_v+6 + .byte W02 + .byte PAN , c_v+5 + .byte W01 + .byte BEND , c_v+9 + .byte W01 + .byte VOL , 63*se_m_sacred_fire_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte BEND , c_v+13 + .byte W02 + .byte VOL , 44*se_m_sacred_fire_mvl/mxv + .byte PAN , c_v-5 + .byte W02 + .byte VOL , 28*se_m_sacred_fire_mvl/mxv + .byte BEND , c_v+20 + .byte W01 + .byte PAN , c_v-2 + .byte W01 + .byte VOL , 12*se_m_sacred_fire_mvl/mxv + .byte W02 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_sacred_fire_2: + .byte KEYSH , se_m_sacred_fire_key+0 + .byte VOICE , 27 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_sacred_fire_mvl/mxv + .byte N01 , Gn2 , v032 + .byte W02 + .byte N01 + .byte W02 + .byte N18 + .byte W03 + .byte VOL , 98*se_m_sacred_fire_mvl/mxv + .byte W03 + .byte 83*se_m_sacred_fire_mvl/mxv + .byte W04 + .byte 63*se_m_sacred_fire_mvl/mxv + .byte W04 + .byte 44*se_m_sacred_fire_mvl/mxv + .byte W02 + .byte 28*se_m_sacred_fire_mvl/mxv + .byte W02 + .byte 12*se_m_sacred_fire_mvl/mxv + .byte W02 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_sacred_fire: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_sacred_fire_pri @ Priority + .byte se_m_sacred_fire_rev @ Reverb. + + .word se_m_sacred_fire_grp + + .word se_m_sacred_fire_1 + .word se_m_sacred_fire_2 + + .end diff --git a/sound/songs/se_m_sacred_fire2.s b/sound/songs/se_m_sacred_fire2.s new file mode 100644 index 000000000..f255e712a --- /dev/null +++ b/sound/songs/se_m_sacred_fire2.s @@ -0,0 +1,180 @@ + .include "MPlayDef.s" + + .equ se_m_sacred_fire2_grp, voicegroup128 + .equ se_m_sacred_fire2_pri, 4 + .equ se_m_sacred_fire2_rev, reverb_set+50 + .equ se_m_sacred_fire2_mvl, 127 + .equ se_m_sacred_fire2_key, 0 + .equ se_m_sacred_fire2_tbs, 1 + .equ se_m_sacred_fire2_exg, 0 + .equ se_m_sacred_fire2_cmp, 1 + + .section .rodata + .global se_m_sacred_fire2 + .align 2 + +@********************** Track 1 **********************@ + +se_m_sacred_fire2_1: + .byte KEYSH , se_m_sacred_fire2_key+0 + .byte TEMPO , 150*se_m_sacred_fire2_tbs/2 + .byte VOICE , 29 + .byte BENDR , 12 + .byte VOL , 22*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v+5 + .byte BEND , c_v+0 + .byte N96 , Gn3 , v127 + .byte W01 + .byte VOL , 49*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte 71*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte VOL , 95*se_m_sacred_fire2_mvl/mxv + .byte BEND , c_v+8 + .byte W01 + .byte VOL , 110*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v-5 + .byte BEND , c_v+16 + .byte W03 + .byte VOL , 97*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+7 + .byte W03 + .byte PAN , c_v+5 + .byte BEND , c_v+0 + .byte W01 + .byte VOL , 84*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v+0 + .byte BEND , c_v-9 + .byte W03 + .byte VOL , 76*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v-5 + .byte BEND , c_v-24 + .byte W03 + .byte PAN , c_v-2 + .byte BEND , c_v-46 + .byte W03 + .byte VOL , 84*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v+5 + .byte W03 + .byte c_v+0 + .byte W01 + .byte VOL , 92*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v-5 + .byte W01 + .byte BEND , c_v-32 + .byte W02 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 86*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v+5 + .byte W02 + .byte BEND , c_v-18 + .byte W01 + .byte VOL , 78*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte c_v-5 + .byte W02 + .byte VOL , 71*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte PAN , c_v-2 + .byte W03 + .byte c_v+5 + .byte W03 + .byte c_v+0 + .byte VOL , 78*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte PAN , c_v-5 + .byte W02 + .byte VOL , 86*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W03 + .byte c_v+5 + .byte W02 + .byte VOL , 90*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W03 + .byte c_v-5 + .byte W03 + .byte c_v-2 + .byte W01 + .byte VOL , 80*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v+5 + .byte W03 + .byte c_v+0 + .byte W01 + .byte VOL , 86*se_m_sacred_fire2_mvl/mxv + .byte W02 + .byte PAN , c_v-5 + .byte W03 + .byte c_v+0 + .byte VOL , 83*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte PAN , c_v+5 + .byte VOL , 63*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte 37*se_m_sacred_fire2_mvl/mxv + .byte PAN , c_v+0 + .byte W03 + .byte c_v-5 + .byte VOL , 13*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte PAN , c_v-2 + .byte W03 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_sacred_fire2_2: + .byte KEYSH , se_m_sacred_fire2_key+0 + .byte VOICE , 27 + .byte VOL , 22*se_m_sacred_fire2_mvl/mxv + .byte N96 , Gn2 , v032 + .byte W01 + .byte VOL , 49*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte 71*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte 95*se_m_sacred_fire2_mvl/mxv + .byte W01 + .byte 110*se_m_sacred_fire2_mvl/mxv + .byte W05 + .byte 97*se_m_sacred_fire2_mvl/mxv + .byte W15 + .byte W24 + .byte W24 + .byte W09 + .byte 83*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte 63*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte 37*se_m_sacred_fire2_mvl/mxv + .byte W03 + .byte 13*se_m_sacred_fire2_mvl/mxv + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_sacred_fire2: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_sacred_fire2_pri @ Priority + .byte se_m_sacred_fire2_rev @ Reverb. + + .word se_m_sacred_fire2_grp + + .word se_m_sacred_fire2_1 + .word se_m_sacred_fire2_2 + + .end diff --git a/sound/songs/se_w328.s b/sound/songs/se_m_sand_tomb.s index 6b5a2d923..8edf0abf8 100644 --- a/sound/songs/se_w328.s +++ b/sound/songs/se_m_sand_tomb.s @@ -1,45 +1,45 @@ .include "MPlayDef.s" - .equ se_w328_grp, voicegroup128 - .equ se_w328_pri, 4 - .equ se_w328_rev, reverb_set+50 - .equ se_w328_mvl, 127 - .equ se_w328_key, 0 - .equ se_w328_tbs, 1 - .equ se_w328_exg, 0 - .equ se_w328_cmp, 1 + .equ se_m_sand_tomb_grp, voicegroup128 + .equ se_m_sand_tomb_pri, 4 + .equ se_m_sand_tomb_rev, reverb_set+50 + .equ se_m_sand_tomb_mvl, 127 + .equ se_m_sand_tomb_key, 0 + .equ se_m_sand_tomb_tbs, 1 + .equ se_m_sand_tomb_exg, 0 + .equ se_m_sand_tomb_cmp, 1 .section .rodata - .global se_w328 + .global se_m_sand_tomb .align 2 @********************** Track 1 **********************@ -se_w328_1: - .byte KEYSH , se_w328_key+0 - .byte TEMPO , 150*se_w328_tbs/2 +se_m_sand_tomb_1: + .byte KEYSH , se_m_sand_tomb_key+0 + .byte TEMPO , 150*se_m_sand_tomb_tbs/2 .byte VOICE , 22 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 64*se_w328_mvl/mxv + .byte VOL , 64*se_m_sand_tomb_mvl/mxv .byte BEND , c_v+0 .byte N96 , En2 , v127 .byte W03 - .byte VOL , 79*se_w328_mvl/mxv + .byte VOL , 79*se_m_sand_tomb_mvl/mxv .byte BEND , c_v+22 .byte W02 .byte c_v+8 .byte W01 - .byte VOL , 84*se_w328_mvl/mxv + .byte VOL , 84*se_m_sand_tomb_mvl/mxv .byte PAN , c_v-4 .byte W03 - .byte VOL , 91*se_w328_mvl/mxv + .byte VOL , 91*se_m_sand_tomb_mvl/mxv .byte BEND , c_v+0 .byte W03 - .byte VOL , 100*se_w328_mvl/mxv + .byte VOL , 100*se_m_sand_tomb_mvl/mxv .byte PAN , c_v-8 .byte W03 - .byte VOL , 110*se_w328_mvl/mxv + .byte VOL , 110*se_m_sand_tomb_mvl/mxv .byte W03 .byte PAN , c_v-12 .byte W06 @@ -82,46 +82,46 @@ se_w328_1: .byte PAN , c_v-11 .byte W03 .byte c_v-17 - .byte VOL , 98*se_w328_mvl/mxv + .byte VOL , 98*se_m_sand_tomb_mvl/mxv .byte BEND , c_v+0 .byte W03 - .byte VOL , 90*se_w328_mvl/mxv + .byte VOL , 90*se_m_sand_tomb_mvl/mxv .byte BEND , c_v-7 .byte W03 .byte PAN , c_v-9 .byte BEND , c_v-12 .byte W01 - .byte VOL , 80*se_w328_mvl/mxv + .byte VOL , 80*se_m_sand_tomb_mvl/mxv .byte W02 .byte BEND , c_v-20 .byte W01 - .byte VOL , 71*se_w328_mvl/mxv + .byte VOL , 71*se_m_sand_tomb_mvl/mxv .byte W02 .byte PAN , c_v-3 .byte W02 - .byte VOL , 58*se_w328_mvl/mxv + .byte VOL , 58*se_m_sand_tomb_mvl/mxv .byte W01 .byte PAN , c_v+6 .byte BEND , c_v-13 .byte W03 .byte PAN , c_v+10 - .byte VOL , 45*se_w328_mvl/mxv + .byte VOL , 45*se_m_sand_tomb_mvl/mxv .byte W02 - .byte 27*se_w328_mvl/mxv + .byte 27*se_m_sand_tomb_mvl/mxv .byte W01 .byte BEND , c_v-6 .byte W01 - .byte VOL , 11*se_w328_mvl/mxv + .byte VOL , 11*se_m_sand_tomb_mvl/mxv .byte W02 .byte FINE @********************** Track 2 **********************@ -se_w328_2: - .byte KEYSH , se_w328_key+0 +se_m_sand_tomb_2: + .byte KEYSH , se_m_sand_tomb_key+0 .byte VOICE , 57 .byte PAN , c_v+0 - .byte VOL , 110*se_w328_mvl/mxv + .byte VOL , 110*se_m_sand_tomb_mvl/mxv .byte N03 , Cn3 , v100 .byte W03 .byte En3 , v080 @@ -183,15 +183,15 @@ se_w328_2: @******************************************************@ .align 2 -se_w328: +se_m_sand_tomb: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w328_pri @ Priority - .byte se_w328_rev @ Reverb. + .byte se_m_sand_tomb_pri @ Priority + .byte se_m_sand_tomb_rev @ Reverb. - .word se_w328_grp + .word se_m_sand_tomb_grp - .word se_w328_1 - .word se_w328_2 + .word se_m_sand_tomb_1 + .word se_m_sand_tomb_2 .end diff --git a/sound/songs/se_w201.s b/sound/songs/se_m_sandstorm.s index b6a6aaff5..9674cd043 100644 --- a/sound/songs/se_w201.s +++ b/sound/songs/se_m_sandstorm.s @@ -1,58 +1,58 @@ .include "MPlayDef.s" - .equ se_w201_grp, voicegroup128 - .equ se_w201_pri, 4 - .equ se_w201_rev, reverb_set+50 - .equ se_w201_mvl, 127 - .equ se_w201_key, 0 - .equ se_w201_tbs, 1 - .equ se_w201_exg, 0 - .equ se_w201_cmp, 1 + .equ se_m_sandstorm_grp, voicegroup128 + .equ se_m_sandstorm_pri, 4 + .equ se_m_sandstorm_rev, reverb_set+50 + .equ se_m_sandstorm_mvl, 127 + .equ se_m_sandstorm_key, 0 + .equ se_m_sandstorm_tbs, 1 + .equ se_m_sandstorm_exg, 0 + .equ se_m_sandstorm_cmp, 1 .section .rodata - .global se_w201 + .global se_m_sandstorm .align 2 @********************** Track 1 **********************@ -se_w201_1: - .byte KEYSH , se_w201_key+0 - .byte TEMPO , 200*se_w201_tbs/2 +se_m_sandstorm_1: + .byte KEYSH , se_m_sandstorm_key+0 + .byte TEMPO , 200*se_m_sandstorm_tbs/2 .byte VOICE , 2 .byte BENDR , 12 .byte PAN , c_v-48 - .byte VOL , 11*se_w201_mvl/mxv + .byte VOL , 11*se_m_sandstorm_mvl/mxv .byte BEND , c_v+0 .byte TIE , En3 , v127 .byte W03 - .byte VOL , 17*se_w201_mvl/mxv + .byte VOL , 17*se_m_sandstorm_mvl/mxv .byte BEND , c_v+22 .byte W02 .byte c_v+8 .byte W01 - .byte VOL , 24*se_w201_mvl/mxv + .byte VOL , 24*se_m_sandstorm_mvl/mxv .byte W03 - .byte 32*se_w201_mvl/mxv + .byte 32*se_m_sandstorm_mvl/mxv .byte BEND , c_v+0 .byte W03 - .byte VOL , 52*se_w201_mvl/mxv + .byte VOL , 52*se_m_sandstorm_mvl/mxv .byte W03 - .byte 65*se_w201_mvl/mxv + .byte 65*se_m_sandstorm_mvl/mxv .byte W03 - .byte 76*se_w201_mvl/mxv + .byte 76*se_m_sandstorm_mvl/mxv .byte W02 - .byte 88*se_w201_mvl/mxv + .byte 88*se_m_sandstorm_mvl/mxv .byte PAN , c_v-43 .byte W02 - .byte VOL , 98*se_w201_mvl/mxv + .byte VOL , 98*se_m_sandstorm_mvl/mxv .byte W02 .byte BEND , c_v+0 .byte W02 - .byte VOL , 111*se_w201_mvl/mxv + .byte VOL , 111*se_m_sandstorm_mvl/mxv .byte W01 .byte BEND , c_v-7 .byte W01 - .byte VOL , 127*se_w201_mvl/mxv + .byte VOL , 127*se_m_sandstorm_mvl/mxv .byte W02 .byte BEND , c_v-12 .byte W02 @@ -134,31 +134,31 @@ se_w201_1: .byte W03 .byte c_v+7 .byte W04 - .byte VOL , 114*se_w201_mvl/mxv + .byte VOL , 114*se_m_sandstorm_mvl/mxv .byte W02 .byte BEND , c_v+0 .byte W01 .byte PAN , c_v+48 .byte W01 - .byte VOL , 104*se_w201_mvl/mxv + .byte VOL , 104*se_m_sandstorm_mvl/mxv .byte W01 .byte BEND , c_v-7 .byte W03 - .byte VOL , 93*se_w201_mvl/mxv + .byte VOL , 93*se_m_sandstorm_mvl/mxv .byte BEND , c_v-12 .byte W03 - .byte VOL , 82*se_w201_mvl/mxv + .byte VOL , 82*se_m_sandstorm_mvl/mxv .byte BEND , c_v-20 .byte W04 - .byte VOL , 67*se_w201_mvl/mxv + .byte VOL , 67*se_m_sandstorm_mvl/mxv .byte W02 .byte BEND , c_v-13 .byte W01 - .byte VOL , 52*se_w201_mvl/mxv + .byte VOL , 52*se_m_sandstorm_mvl/mxv .byte W03 - .byte 32*se_w201_mvl/mxv + .byte 32*se_m_sandstorm_mvl/mxv .byte W02 - .byte 13*se_w201_mvl/mxv + .byte 13*se_m_sandstorm_mvl/mxv .byte BEND , c_v-6 .byte W03 .byte EOT @@ -166,11 +166,11 @@ se_w201_1: @********************** Track 2 **********************@ -se_w201_2: - .byte KEYSH , se_w201_key+0 +se_m_sandstorm_2: + .byte KEYSH , se_m_sandstorm_key+0 .byte VOICE , 57 .byte PAN , c_v+0 - .byte VOL , 60*se_w201_mvl/mxv + .byte VOL , 60*se_m_sandstorm_mvl/mxv .byte N03 , Cn3 , v100 .byte W03 .byte En3 , v080 @@ -185,7 +185,7 @@ se_w201_2: .byte W03 .byte Cn3 , v100 .byte W03 -se_w201_2_000: +se_m_sandstorm_2_000: .byte W01 .byte N03 , En3 , v080 .byte W03 @@ -230,7 +230,7 @@ se_w201_2_000: .byte Cn3 , v100 .byte W03 .byte PATT - .word se_w201_2_000 + .word se_m_sandstorm_2_000 .byte W02 .byte N03 , Cn3 , v076 .byte W04 @@ -276,15 +276,15 @@ se_w201_2_000: @******************************************************@ .align 2 -se_w201: +se_m_sandstorm: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w201_pri @ Priority - .byte se_w201_rev @ Reverb. + .byte se_m_sandstorm_pri @ Priority + .byte se_m_sandstorm_rev @ Reverb. - .word se_w201_grp + .word se_m_sandstorm_grp - .word se_w201_1 - .word se_w201_2 + .word se_m_sandstorm_1 + .word se_m_sandstorm_2 .end diff --git a/sound/songs/se_w103.s b/sound/songs/se_m_screech.s index d35ec99ad..378cf7128 100644 --- a/sound/songs/se_w103.s +++ b/sound/songs/se_m_screech.s @@ -1,24 +1,24 @@ .include "MPlayDef.s" - .equ se_w103_grp, voicegroup128 - .equ se_w103_pri, 4 - .equ se_w103_rev, reverb_set+50 - .equ se_w103_mvl, 127 - .equ se_w103_key, 0 - .equ se_w103_tbs, 1 - .equ se_w103_exg, 0 - .equ se_w103_cmp, 1 + .equ se_m_screech_grp, voicegroup128 + .equ se_m_screech_pri, 4 + .equ se_m_screech_rev, reverb_set+50 + .equ se_m_screech_mvl, 127 + .equ se_m_screech_key, 0 + .equ se_m_screech_tbs, 1 + .equ se_m_screech_exg, 0 + .equ se_m_screech_cmp, 1 .section .rodata - .global se_w103 + .global se_m_screech .align 2 @********************** Track 1 **********************@ -se_w103_1: - .byte VOL , 110*se_w103_mvl/mxv - .byte KEYSH , se_w103_key+0 - .byte TEMPO , 150*se_w103_tbs/2 +se_m_screech_1: + .byte VOL , 110*se_m_screech_mvl/mxv + .byte KEYSH , se_m_screech_key+0 + .byte TEMPO , 150*se_m_screech_tbs/2 .byte VOICE , 44 .byte BENDR , 2 .byte PAN , c_v+0 @@ -28,27 +28,27 @@ se_w103_1: .byte PAN , c_v-5 .byte W01 .byte c_v-10 - .byte VOL , 15*se_w103_mvl/mxv + .byte VOL , 15*se_m_screech_mvl/mxv .byte W01 .byte PAN , c_v-4 - .byte VOL , 41*se_w103_mvl/mxv + .byte VOL , 41*se_m_screech_mvl/mxv .byte W01 .byte PAN , c_v+0 - .byte VOL , 69*se_w103_mvl/mxv + .byte VOL , 69*se_m_screech_mvl/mxv .byte W02 .byte PAN , c_v+4 .byte W01 .byte c_v+10 - .byte VOL , 84*se_w103_mvl/mxv + .byte VOL , 84*se_m_screech_mvl/mxv .byte W01 .byte PAN , c_v+4 .byte W01 - .byte VOL , 97*se_w103_mvl/mxv + .byte VOL , 97*se_m_screech_mvl/mxv .byte PAN , c_v+0 .byte W01 .byte c_v-5 .byte W02 - .byte VOL , 110*se_w103_mvl/mxv + .byte VOL , 110*se_m_screech_mvl/mxv .byte PAN , c_v-10 .byte W01 .byte c_v-4 @@ -59,13 +59,13 @@ se_w103_1: .byte W01 .byte c_v+10 .byte W02 - .byte VOL , 100*se_w103_mvl/mxv + .byte VOL , 100*se_m_screech_mvl/mxv .byte PAN , c_v+4 .byte W01 - .byte VOL , 84*se_w103_mvl/mxv + .byte VOL , 84*se_m_screech_mvl/mxv .byte PAN , c_v+0 .byte W01 - .byte VOL , 55*se_w103_mvl/mxv + .byte VOL , 55*se_m_screech_mvl/mxv .byte W02 .byte BEND , c_v+0 .byte W02 @@ -73,9 +73,9 @@ se_w103_1: @********************** Track 2 **********************@ -se_w103_2: - .byte VOL , 110*se_w103_mvl/mxv - .byte KEYSH , se_w103_key+0 +se_m_screech_2: + .byte VOL , 110*se_m_screech_mvl/mxv + .byte KEYSH , se_m_screech_key+0 .byte VOICE , 42 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -98,15 +98,15 @@ se_w103_2: @******************************************************@ .align 2 -se_w103: +se_m_screech: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w103_pri @ Priority - .byte se_w103_rev @ Reverb. + .byte se_m_screech_pri @ Priority + .byte se_m_screech_rev @ Reverb. - .word se_w103_grp + .word se_m_screech_grp - .word se_w103_1 - .word se_w103_2 + .word se_m_screech_1 + .word se_m_screech_2 .end diff --git a/sound/songs/se_m_self_destruct.s b/sound/songs/se_m_self_destruct.s new file mode 100644 index 000000000..f2ab617ca --- /dev/null +++ b/sound/songs/se_m_self_destruct.s @@ -0,0 +1,74 @@ + .include "MPlayDef.s" + + .equ se_m_self_destruct_grp, voicegroup128 + .equ se_m_self_destruct_pri, 4 + .equ se_m_self_destruct_rev, reverb_set+50 + .equ se_m_self_destruct_mvl, 127 + .equ se_m_self_destruct_key, 0 + .equ se_m_self_destruct_tbs, 1 + .equ se_m_self_destruct_exg, 0 + .equ se_m_self_destruct_cmp, 1 + + .section .rodata + .global se_m_self_destruct + .align 2 + +@********************** Track 1 **********************@ + +se_m_self_destruct_1: + .byte KEYSH , se_m_self_destruct_key+0 + .byte TEMPO , 150*se_m_self_destruct_tbs/2 + .byte VOICE , 41 + .byte VOL , 115*se_m_self_destruct_mvl/mxv + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte BEND , c_v+0 + .byte N01 , Gn3 , v127 + .byte W01 + .byte Cn3 + .byte W01 + .byte N24 , An3 + .byte W06 + .byte PAN , c_v+6 + .byte W04 + .byte c_v+0 + .byte W01 + .byte VOL , 102*se_m_self_destruct_mvl/mxv + .byte W02 + .byte PAN , c_v-8 + .byte VOL , 88*se_m_self_destruct_mvl/mxv + .byte W03 + .byte 78*se_m_self_destruct_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte W01 + .byte VOL , 67*se_m_self_destruct_mvl/mxv + .byte W01 + .byte BEND , c_v-2 + .byte W01 + .byte PAN , c_v+7 + .byte VOL , 45*se_m_self_destruct_mvl/mxv + .byte W02 + .byte BEND , c_v-8 + .byte W01 + .byte VOL , 13*se_m_self_destruct_mvl/mxv + .byte W01 + .byte PAN , c_v+0 + .byte BEND , c_v-15 + .byte W22 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_self_destruct: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_self_destruct_pri @ Priority + .byte se_m_self_destruct_rev @ Reverb. + + .word se_m_self_destruct_grp + + .word se_m_self_destruct_1 + + .end diff --git a/sound/songs/se_w047.s b/sound/songs/se_m_sing.s index 688b782ed..f12509f56 100644 --- a/sound/songs/se_w047.s +++ b/sound/songs/se_m_sing.s @@ -1,28 +1,28 @@ .include "MPlayDef.s" - .equ se_w047_grp, voicegroup128 - .equ se_w047_pri, 4 - .equ se_w047_rev, reverb_set+50 - .equ se_w047_mvl, 127 - .equ se_w047_key, 0 - .equ se_w047_tbs, 1 - .equ se_w047_exg, 0 - .equ se_w047_cmp, 1 + .equ se_m_sing_grp, voicegroup128 + .equ se_m_sing_pri, 4 + .equ se_m_sing_rev, reverb_set+50 + .equ se_m_sing_mvl, 127 + .equ se_m_sing_key, 0 + .equ se_m_sing_tbs, 1 + .equ se_m_sing_exg, 0 + .equ se_m_sing_cmp, 1 .section .rodata - .global se_w047 + .global se_m_sing .align 2 @********************** Track 1 **********************@ -se_w047_1: - .byte KEYSH , se_w047_key+0 - .byte TEMPO , 100*se_w047_tbs/2 +se_m_sing_1: + .byte KEYSH , se_m_sing_key+0 + .byte TEMPO , 100*se_m_sing_tbs/2 .byte VOICE , 73 .byte BENDR , 12 .byte LFOS , 40 .byte PAN , c_v+0 - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte BEND , c_v+0 .byte N44 , Gn4 , v112 .byte W06 @@ -31,47 +31,47 @@ se_w047_1: .byte MOD , 7 .byte W03 .byte W03 - .byte VOL , 83*se_w047_mvl/mxv + .byte VOL , 83*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 69*se_w047_mvl/mxv + .byte 69*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 50*se_w047_mvl/mxv + .byte 50*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 24*se_w047_mvl/mxv + .byte 24*se_m_sing_mvl/mxv .byte W03 .byte W03 .byte MOD , 0 .byte W03 - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte N21 , Fn5 .byte W06 .byte W06 -se_w047_1_000: - .byte VOL , 86*se_w047_mvl/mxv +se_m_sing_1_000: + .byte VOL , 86*se_m_sing_mvl/mxv .byte MOD , 7 .byte W03 - .byte VOL , 75*se_w047_mvl/mxv + .byte VOL , 75*se_m_sing_mvl/mxv .byte W03 .byte PEND -se_w047_1_001: - .byte VOL , 55*se_w047_mvl/mxv +se_m_sing_1_001: + .byte VOL , 55*se_m_sing_mvl/mxv .byte W03 - .byte 26*se_w047_mvl/mxv + .byte 26*se_m_sing_mvl/mxv .byte MOD , 0 .byte W03 .byte PEND - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte N21 , Ds5 , v112 .byte W06 .byte W06 .byte PATT - .word se_w047_1_000 + .word se_m_sing_1_000 .byte PATT - .word se_w047_1_001 - .byte VOL , 95*se_w047_mvl/mxv + .word se_m_sing_1_001 + .byte VOL , 95*se_m_sing_mvl/mxv .byte N66 , Gn4 , v112 .byte W06 .byte W06 @@ -81,13 +81,13 @@ se_w047_1_001: .byte W06 .byte W06 .byte W06 - .byte VOL , 83*se_w047_mvl/mxv + .byte VOL , 83*se_m_sing_mvl/mxv .byte W06 - .byte 69*se_w047_mvl/mxv + .byte 69*se_m_sing_mvl/mxv .byte W06 - .byte 50*se_w047_mvl/mxv + .byte 50*se_m_sing_mvl/mxv .byte W06 - .byte 24*se_w047_mvl/mxv + .byte 24*se_m_sing_mvl/mxv .byte W06 .byte MOD , 0 .byte W06 @@ -96,11 +96,11 @@ se_w047_1_001: @********************** Track 2 **********************@ -se_w047_2: - .byte KEYSH , se_w047_key+0 +se_m_sing_2: + .byte KEYSH , se_m_sing_key+0 .byte VOICE , 73 .byte LFOS , 40 - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte BEND , c_v+9 .byte W06 .byte W06 @@ -112,49 +112,49 @@ se_w047_2: .byte MOD , 7 .byte W03 .byte W03 - .byte VOL , 83*se_w047_mvl/mxv + .byte VOL , 83*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 69*se_w047_mvl/mxv + .byte 69*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 50*se_w047_mvl/mxv + .byte 50*se_m_sing_mvl/mxv .byte W03 .byte W03 - .byte 24*se_w047_mvl/mxv + .byte 24*se_m_sing_mvl/mxv .byte W03 .byte W03 .byte MOD , 0 .byte W03 - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte PAN , c_v-12 .byte N21 , Fn5 .byte W06 .byte W06 -se_w047_2_000: - .byte VOL , 86*se_w047_mvl/mxv +se_m_sing_2_000: + .byte VOL , 86*se_m_sing_mvl/mxv .byte MOD , 7 .byte W03 - .byte VOL , 75*se_w047_mvl/mxv + .byte VOL , 75*se_m_sing_mvl/mxv .byte W03 .byte PEND -se_w047_2_001: - .byte VOL , 55*se_w047_mvl/mxv +se_m_sing_2_001: + .byte VOL , 55*se_m_sing_mvl/mxv .byte W03 - .byte 26*se_w047_mvl/mxv + .byte 26*se_m_sing_mvl/mxv .byte MOD , 0 .byte W03 .byte PEND - .byte VOL , 95*se_w047_mvl/mxv + .byte VOL , 95*se_m_sing_mvl/mxv .byte PAN , c_v+12 .byte N21 , Ds5 , v060 .byte W06 .byte W06 .byte PATT - .word se_w047_2_000 + .word se_m_sing_2_000 .byte PATT - .word se_w047_2_001 - .byte VOL , 95*se_w047_mvl/mxv + .word se_m_sing_2_001 + .byte VOL , 95*se_m_sing_mvl/mxv .byte PAN , c_v-12 .byte N66 , Gn4 , v060 .byte W06 @@ -168,14 +168,14 @@ se_w047_2_001: .byte W06 .byte c_v+7 .byte W06 - .byte VOL , 83*se_w047_mvl/mxv + .byte VOL , 83*se_m_sing_mvl/mxv .byte W06 - .byte 69*se_w047_mvl/mxv + .byte 69*se_m_sing_mvl/mxv .byte PAN , c_v+15 .byte W06 - .byte VOL , 50*se_w047_mvl/mxv + .byte VOL , 50*se_m_sing_mvl/mxv .byte W06 - .byte 24*se_w047_mvl/mxv + .byte 24*se_m_sing_mvl/mxv .byte PAN , c_v+8 .byte W06 .byte MOD , 0 @@ -184,15 +184,15 @@ se_w047_2_001: @******************************************************@ .align 2 -se_w047: +se_m_sing: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w047_pri @ Priority - .byte se_w047_rev @ Reverb. + .byte se_m_sing_pri @ Priority + .byte se_m_sing_rev @ Reverb. - .word se_w047_grp + .word se_m_sing_grp - .word se_w047_1 - .word se_w047_2 + .word se_m_sing_1 + .word se_m_sing_2 .end diff --git a/sound/songs/se_m_sketch.s b/sound/songs/se_m_sketch.s new file mode 100644 index 000000000..3657d2009 --- /dev/null +++ b/sound/songs/se_m_sketch.s @@ -0,0 +1,68 @@ + .include "MPlayDef.s" + + .equ se_m_sketch_grp, voicegroup128 + .equ se_m_sketch_pri, 4 + .equ se_m_sketch_rev, reverb_set+50 + .equ se_m_sketch_mvl, 127 + .equ se_m_sketch_key, 0 + .equ se_m_sketch_tbs, 1 + .equ se_m_sketch_exg, 0 + .equ se_m_sketch_cmp, 1 + + .section .rodata + .global se_m_sketch + .align 2 + +@********************** Track 1 **********************@ + +se_m_sketch_1: + .byte KEYSH , se_m_sketch_key+0 + .byte TEMPO , 180*se_m_sketch_tbs/2 + .byte VOICE , 38 + .byte BENDR , 12 + .byte PAN , c_v+0 + .byte VOL , 110*se_m_sketch_mvl/mxv + .byte BEND , c_v+0 + .byte N02 , Gn4 , v127 + .byte W01 + .byte VOL , 74*se_m_sketch_mvl/mxv + .byte BEND , c_v-11 + .byte W01 + .byte VOICE , 31 + .byte VOL , 40*se_m_sketch_mvl/mxv + .byte BEND , c_v-1 + .byte N03 , Cs5 + .byte W01 + .byte VOL , 64*se_m_sketch_mvl/mxv + .byte PAN , c_v-6 + .byte BEND , c_v-12 + .byte W01 + .byte VOL , 86*se_m_sketch_mvl/mxv + .byte PAN , c_v+4 + .byte BEND , c_v-16 + .byte W02 + .byte VOL , 110*se_m_sketch_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+0 + .byte N02 , As5 + .byte W01 + .byte BEND , c_v+12 + .byte W01 + .byte VOL , 0*se_m_sketch_mvl/mxv + .byte W04 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_sketch: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_sketch_pri @ Priority + .byte se_m_sketch_rev @ Reverb. + + .word se_m_sketch_grp + + .word se_m_sketch_1 + + .end diff --git a/sound/songs/se_m_sky_uppercut.s b/sound/songs/se_m_sky_uppercut.s new file mode 100644 index 000000000..66a791f96 --- /dev/null +++ b/sound/songs/se_m_sky_uppercut.s @@ -0,0 +1,103 @@ + .include "MPlayDef.s" + + .equ se_m_sky_uppercut_grp, voicegroup128 + .equ se_m_sky_uppercut_pri, 4 + .equ se_m_sky_uppercut_rev, reverb_set+50 + .equ se_m_sky_uppercut_mvl, 127 + .equ se_m_sky_uppercut_key, 0 + .equ se_m_sky_uppercut_tbs, 1 + .equ se_m_sky_uppercut_exg, 0 + .equ se_m_sky_uppercut_cmp, 1 + + .section .rodata + .global se_m_sky_uppercut + .align 2 + +@********************** Track 1 **********************@ + +se_m_sky_uppercut_1: + .byte KEYSH , se_m_sky_uppercut_key+0 + .byte TEMPO , 220*se_m_sky_uppercut_tbs/2 + .byte VOICE , 41 + .byte VOL , 110*se_m_sky_uppercut_mvl/mxv + .byte BENDR , 12 + .byte PAN , c_v+6 + .byte BEND , c_v+0 + .byte N02 , Cn4 , v127 + .byte W03 + .byte VOL , 104*se_m_sky_uppercut_mvl/mxv + .byte W03 + .byte 93*se_m_sky_uppercut_mvl/mxv + .byte PAN , c_v-6 + .byte N02 , Cn5 + .byte W03 + .byte VOL , 110*se_m_sky_uppercut_mvl/mxv + .byte W01 + .byte VOICE , 22 + .byte PAN , c_v+0 + .byte N24 , Cn4 , v060 + .byte W02 + .byte W02 + .byte BEND , c_v+0 + .byte W04 + .byte c_v+1 + .byte W03 + .byte c_v+1 + .byte W01 + .byte VOL , 105*se_m_sky_uppercut_mvl/mxv + .byte W02 + .byte BEND , c_v+0 + .byte W01 + .byte VOL , 103*se_m_sky_uppercut_mvl/mxv + .byte W02 + .byte 91*se_m_sky_uppercut_mvl/mxv + .byte BEND , c_v+0 + .byte W03 + .byte VOL , 77*se_m_sky_uppercut_mvl/mxv + .byte BEND , c_v-1 + .byte W02 + .byte VOL , 61*se_m_sky_uppercut_mvl/mxv + .byte BEND , c_v-2 + .byte W01 + .byte VOL , 38*se_m_sky_uppercut_mvl/mxv + .byte W01 + .byte 15*se_m_sky_uppercut_mvl/mxv + .byte BEND , c_v-3 + .byte W02 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_sky_uppercut_2: + .byte KEYSH , se_m_sky_uppercut_key+0 + .byte VOICE , 4 + .byte VOL , 110*se_m_sky_uppercut_mvl/mxv + .byte N02 , Cn3 , v060 + .byte W03 + .byte Gn2 + .byte W03 + .byte Gs4 + .byte W04 + .byte Gs4 , v020 + .byte W02 + .byte W06 + .byte W06 + .byte W06 + .byte W06 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_sky_uppercut: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_sky_uppercut_pri @ Priority + .byte se_m_sky_uppercut_rev @ Reverb. + + .word se_m_sky_uppercut_grp + + .word se_m_sky_uppercut_1 + .word se_m_sky_uppercut_2 + + .end diff --git a/sound/songs/se_w173.s b/sound/songs/se_m_snore.s index a0bbd6378..aff9ef5e3 100644 --- a/sound/songs/se_w173.s +++ b/sound/songs/se_m_snore.s @@ -1,65 +1,65 @@ .include "MPlayDef.s" - .equ se_w173_grp, voicegroup128 - .equ se_w173_pri, 4 - .equ se_w173_rev, reverb_set+50 - .equ se_w173_mvl, 127 - .equ se_w173_key, 0 - .equ se_w173_tbs, 1 - .equ se_w173_exg, 0 - .equ se_w173_cmp, 1 + .equ se_m_snore_grp, voicegroup128 + .equ se_m_snore_pri, 4 + .equ se_m_snore_rev, reverb_set+50 + .equ se_m_snore_mvl, 127 + .equ se_m_snore_key, 0 + .equ se_m_snore_tbs, 1 + .equ se_m_snore_exg, 0 + .equ se_m_snore_cmp, 1 .section .rodata - .global se_w173 + .global se_m_snore .align 2 @********************** Track 1 **********************@ -se_w173_1: - .byte KEYSH , se_w173_key+0 - .byte TEMPO , 220*se_w173_tbs/2 +se_m_snore_1: + .byte KEYSH , se_m_snore_key+0 + .byte TEMPO , 220*se_m_snore_tbs/2 .byte VOICE , 38 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 27*se_w173_mvl/mxv + .byte VOL , 27*se_m_snore_mvl/mxv .byte BEND , c_v+0 .byte N10 , An1 , v127 .byte W01 - .byte VOL , 75*se_w173_mvl/mxv + .byte VOL , 75*se_m_snore_mvl/mxv .byte W01 - .byte 120*se_w173_mvl/mxv + .byte 120*se_m_snore_mvl/mxv .byte W04 .byte W02 - .byte 75*se_w173_mvl/mxv + .byte 75*se_m_snore_mvl/mxv .byte W01 - .byte 28*se_w173_mvl/mxv + .byte 28*se_m_snore_mvl/mxv .byte W03 .byte VOICE , 36 - .byte VOL , 83*se_w173_mvl/mxv + .byte VOL , 83*se_m_snore_mvl/mxv .byte N18 , En2 , v112 .byte W02 - .byte VOL , 87*se_w173_mvl/mxv + .byte VOL , 87*se_m_snore_mvl/mxv .byte W02 - .byte 91*se_w173_mvl/mxv + .byte 91*se_m_snore_mvl/mxv .byte W02 .byte W01 - .byte 97*se_w173_mvl/mxv + .byte 97*se_m_snore_mvl/mxv .byte W02 - .byte 102*se_w173_mvl/mxv + .byte 102*se_m_snore_mvl/mxv .byte W01 - .byte 109*se_w173_mvl/mxv + .byte 109*se_m_snore_mvl/mxv .byte W02 - .byte 113*se_w173_mvl/mxv + .byte 113*se_m_snore_mvl/mxv .byte W01 - .byte 120*se_w173_mvl/mxv + .byte 120*se_m_snore_mvl/mxv .byte W05 .byte FINE @********************** Track 2 **********************@ -se_w173_2: - .byte VOL , 120*se_w173_mvl/mxv - .byte KEYSH , se_w173_key+0 +se_m_snore_2: + .byte VOL , 120*se_m_snore_mvl/mxv + .byte KEYSH , se_m_snore_key+0 .byte VOICE , 27 .byte N01 , En2 , v052 .byte W02 @@ -91,15 +91,15 @@ se_w173_2: @******************************************************@ .align 2 -se_w173: +se_m_snore: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w173_pri @ Priority - .byte se_w173_rev @ Reverb. + .byte se_m_snore_pri @ Priority + .byte se_m_snore_rev @ Reverb. - .word se_w173_grp + .word se_m_snore_grp - .word se_w173_1 - .word se_w173_2 + .word se_m_snore_1 + .word se_m_snore_2 .end diff --git a/sound/songs/se_w076.s b/sound/songs/se_m_solar_beam.s index 82508b774..c260c332a 100644 --- a/sound/songs/se_w076.s +++ b/sound/songs/se_m_solar_beam.s @@ -1,41 +1,41 @@ .include "MPlayDef.s" - .equ se_w076_grp, voicegroup128 - .equ se_w076_pri, 4 - .equ se_w076_rev, reverb_set+50 - .equ se_w076_mvl, 127 - .equ se_w076_key, 0 - .equ se_w076_tbs, 1 - .equ se_w076_exg, 0 - .equ se_w076_cmp, 1 + .equ se_m_solar_beam_grp, voicegroup128 + .equ se_m_solar_beam_pri, 4 + .equ se_m_solar_beam_rev, reverb_set+50 + .equ se_m_solar_beam_mvl, 127 + .equ se_m_solar_beam_key, 0 + .equ se_m_solar_beam_tbs, 1 + .equ se_m_solar_beam_exg, 0 + .equ se_m_solar_beam_cmp, 1 .section .rodata - .global se_w076 + .global se_m_solar_beam .align 2 @********************** Track 1 **********************@ -se_w076_1: - .byte KEYSH , se_w076_key+0 - .byte TEMPO , 150*se_w076_tbs/2 +se_m_solar_beam_1: + .byte KEYSH , se_m_solar_beam_key+0 + .byte TEMPO , 150*se_m_solar_beam_tbs/2 .byte VOICE , 36 .byte BENDR , 24 - .byte VOL , 25*se_w076_mvl/mxv + .byte VOL , 25*se_m_solar_beam_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+63 .byte TIE , Cn4 , v112 .byte W04 - .byte VOL , 40*se_w076_mvl/mxv + .byte VOL , 40*se_m_solar_beam_mvl/mxv .byte W02 .byte PAN , c_v-4 .byte BEND , c_v+52 .byte W03 - .byte VOL , 55*se_w076_mvl/mxv + .byte VOL , 55*se_m_solar_beam_mvl/mxv .byte W03 .byte PAN , c_v-10 .byte BEND , c_v+41 .byte W03 - .byte VOL , 80*se_w076_mvl/mxv + .byte VOL , 80*se_m_solar_beam_mvl/mxv .byte W03 .byte PAN , c_v-5 .byte BEND , c_v+30 @@ -43,7 +43,7 @@ se_w076_1: .byte PAN , c_v+0 .byte BEND , c_v+22 .byte W01 - .byte VOL , 100*se_w076_mvl/mxv + .byte VOL , 100*se_m_solar_beam_mvl/mxv .byte W05 .byte PAN , c_v+4 .byte BEND , c_v+63 @@ -114,36 +114,36 @@ se_w076_1: .byte c_v-10 .byte BEND , c_v-18 .byte W03 - .byte VOL , 89*se_w076_mvl/mxv + .byte VOL , 89*se_m_solar_beam_mvl/mxv .byte W03 .byte PAN , c_v-5 .byte W02 - .byte VOL , 74*se_w076_mvl/mxv + .byte VOL , 74*se_m_solar_beam_mvl/mxv .byte BEND , c_v-25 .byte W04 .byte PAN , c_v+0 .byte W02 - .byte VOL , 62*se_w076_mvl/mxv + .byte VOL , 62*se_m_solar_beam_mvl/mxv .byte W01 .byte BEND , c_v-32 .byte W03 .byte PAN , c_v+4 .byte W01 - .byte VOL , 45*se_w076_mvl/mxv + .byte VOL , 45*se_m_solar_beam_mvl/mxv .byte W01 .byte BEND , c_v-40 .byte W04 - .byte VOL , 28*se_w076_mvl/mxv + .byte VOL , 28*se_m_solar_beam_mvl/mxv .byte PAN , c_v+11 .byte BEND , c_v-49 .byte W03 .byte c_v-64 .byte W01 - .byte VOL , 10*se_w076_mvl/mxv + .byte VOL , 10*se_m_solar_beam_mvl/mxv .byte W02 .byte PAN , c_v+4 .byte W02 - .byte VOL , 5*se_w076_mvl/mxv + .byte VOL , 5*se_m_solar_beam_mvl/mxv .byte W04 .byte EOT .byte FINE @@ -151,14 +151,14 @@ se_w076_1: @******************************************************@ .align 2 -se_w076: +se_m_solar_beam: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w076_pri @ Priority - .byte se_w076_rev @ Reverb. + .byte se_m_solar_beam_pri @ Priority + .byte se_m_solar_beam_rev @ Reverb. - .word se_w076_grp + .word se_m_solar_beam_grp - .word se_w076_1 + .word se_m_solar_beam_1 .end diff --git a/sound/songs/se_w255.s b/sound/songs/se_m_spit_up.s index 73169ec42..5d96c7b86 100644 --- a/sound/songs/se_w255.s +++ b/sound/songs/se_m_spit_up.s @@ -1,26 +1,26 @@ .include "MPlayDef.s" - .equ se_w255_grp, voicegroup128 - .equ se_w255_pri, 4 - .equ se_w255_rev, reverb_set+50 - .equ se_w255_mvl, 127 - .equ se_w255_key, 0 - .equ se_w255_tbs, 1 - .equ se_w255_exg, 0 - .equ se_w255_cmp, 1 + .equ se_m_spit_up_grp, voicegroup128 + .equ se_m_spit_up_pri, 4 + .equ se_m_spit_up_rev, reverb_set+50 + .equ se_m_spit_up_mvl, 127 + .equ se_m_spit_up_key, 0 + .equ se_m_spit_up_tbs, 1 + .equ se_m_spit_up_exg, 0 + .equ se_m_spit_up_cmp, 1 .section .rodata - .global se_w255 + .global se_m_spit_up .align 2 @********************** Track 1 **********************@ -se_w255_1: - .byte KEYSH , se_w255_key+0 - .byte TEMPO , 150*se_w255_tbs/2 +se_m_spit_up_1: + .byte KEYSH , se_m_spit_up_key+0 + .byte TEMPO , 150*se_m_spit_up_tbs/2 .byte VOICE , 65 .byte BENDR , 12 - .byte VOL , 110*se_w255_mvl/mxv + .byte VOL , 110*se_m_spit_up_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte N03 , Gn3 , v112 @@ -56,10 +56,10 @@ se_w255_1: @********************** Track 2 **********************@ -se_w255_2: - .byte KEYSH , se_w255_key+0 +se_m_spit_up_2: + .byte KEYSH , se_m_spit_up_key+0 .byte VOICE , 57 - .byte VOL , 110*se_w255_mvl/mxv + .byte VOL , 110*se_m_spit_up_mvl/mxv .byte N03 , En3 , v052 .byte W03 .byte W01 @@ -74,15 +74,15 @@ se_w255_2: @******************************************************@ .align 2 -se_w255: +se_m_spit_up: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w255_pri @ Priority - .byte se_w255_rev @ Reverb. + .byte se_m_spit_up_pri @ Priority + .byte se_m_spit_up_rev @ Reverb. - .word se_w255_grp + .word se_m_spit_up_grp - .word se_w255_1 - .word se_w255_2 + .word se_m_spit_up_1 + .word se_m_spit_up_2 .end diff --git a/sound/songs/se_w287b.s b/sound/songs/se_m_stat_decrease.s index a88a960cb..5cdf8ac36 100644 --- a/sound/songs/se_w287b.s +++ b/sound/songs/se_m_stat_decrease.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w287b_grp, voicegroup128 - .equ se_w287b_pri, 4 - .equ se_w287b_rev, reverb_set+50 - .equ se_w287b_mvl, 127 - .equ se_w287b_key, 0 - .equ se_w287b_tbs, 1 - .equ se_w287b_exg, 0 - .equ se_w287b_cmp, 1 + .equ se_m_stat_decrease_grp, voicegroup128 + .equ se_m_stat_decrease_pri, 4 + .equ se_m_stat_decrease_rev, reverb_set+50 + .equ se_m_stat_decrease_mvl, 127 + .equ se_m_stat_decrease_key, 0 + .equ se_m_stat_decrease_tbs, 1 + .equ se_m_stat_decrease_exg, 0 + .equ se_m_stat_decrease_cmp, 1 .section .rodata - .global se_w287b + .global se_m_stat_decrease .align 2 @********************** Track 1 **********************@ -se_w287b_1: - .byte KEYSH , se_w287b_key+0 - .byte TEMPO , 170*se_w287b_tbs/2 +se_m_stat_decrease_1: + .byte KEYSH , se_m_stat_decrease_key+0 + .byte TEMPO , 170*se_m_stat_decrease_tbs/2 .byte VOICE , 67 - .byte VOL , 70*se_w287b_mvl/mxv + .byte VOL , 70*se_m_stat_decrease_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+42 .byte N02 , Cs6 , v076 @@ -194,12 +194,12 @@ se_w287b_1: @********************** Track 2 **********************@ -se_w287b_2: - .byte KEYSH , se_w287b_key+0 +se_m_stat_decrease_2: + .byte KEYSH , se_m_stat_decrease_key+0 .byte VOICE , 55 .byte XCMD , xIECV , 10 .byte xIECL , 8 - .byte VOL , 70*se_w287b_mvl/mxv + .byte VOL , 70*se_m_stat_decrease_mvl/mxv .byte N02 , As3 , v052 .byte W03 .byte N02 @@ -257,15 +257,15 @@ se_w287b_2: @******************************************************@ .align 2 -se_w287b: +se_m_stat_decrease: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w287b_pri @ Priority - .byte se_w287b_rev @ Reverb. + .byte se_m_stat_decrease_pri @ Priority + .byte se_m_stat_decrease_rev @ Reverb. - .word se_w287b_grp + .word se_m_stat_decrease_grp - .word se_w287b_1 - .word se_w287b_2 + .word se_m_stat_decrease_1 + .word se_m_stat_decrease_2 .end diff --git a/sound/songs/se_w287.s b/sound/songs/se_m_stat_increase.s index 5f5cc503d..e9eea563a 100644 --- a/sound/songs/se_w287.s +++ b/sound/songs/se_m_stat_increase.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w287_grp, voicegroup128 - .equ se_w287_pri, 4 - .equ se_w287_rev, reverb_set+50 - .equ se_w287_mvl, 127 - .equ se_w287_key, 0 - .equ se_w287_tbs, 1 - .equ se_w287_exg, 0 - .equ se_w287_cmp, 1 + .equ se_m_stat_increase_grp, voicegroup128 + .equ se_m_stat_increase_pri, 4 + .equ se_m_stat_increase_rev, reverb_set+50 + .equ se_m_stat_increase_mvl, 127 + .equ se_m_stat_increase_key, 0 + .equ se_m_stat_increase_tbs, 1 + .equ se_m_stat_increase_exg, 0 + .equ se_m_stat_increase_cmp, 1 .section .rodata - .global se_w287 + .global se_m_stat_increase .align 2 @********************** Track 1 **********************@ -se_w287_1: - .byte KEYSH , se_w287_key+0 - .byte TEMPO , 170*se_w287_tbs/2 +se_m_stat_increase_1: + .byte KEYSH , se_m_stat_increase_key+0 + .byte TEMPO , 170*se_m_stat_increase_tbs/2 .byte VOICE , 67 - .byte VOL , 70*se_w287_mvl/mxv + .byte VOL , 70*se_m_stat_increase_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte N02 , An5 , v076 @@ -206,12 +206,12 @@ se_w287_1: @********************** Track 2 **********************@ -se_w287_2: - .byte KEYSH , se_w287_key+0 +se_m_stat_increase_2: + .byte KEYSH , se_m_stat_increase_key+0 .byte VOICE , 55 .byte XCMD , xIECV , 10 .byte xIECL , 8 - .byte VOL , 70*se_w287_mvl/mxv + .byte VOL , 70*se_m_stat_increase_mvl/mxv .byte N02 , Cn3 , v052 .byte W03 .byte N02 @@ -269,15 +269,15 @@ se_w287_2: @******************************************************@ .align 2 -se_w287: +se_m_stat_increase: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w287_pri @ Priority - .byte se_w287_rev @ Reverb. + .byte se_m_stat_increase_pri @ Priority + .byte se_m_stat_increase_rev @ Reverb. - .word se_w287_grp + .word se_m_stat_increase_grp - .word se_w287_1 - .word se_w287_2 + .word se_m_stat_increase_1 + .word se_m_stat_increase_2 .end diff --git a/sound/songs/se_w070.s b/sound/songs/se_m_strength.s index 876bad52b..0fca48906 100644 --- a/sound/songs/se_w070.s +++ b/sound/songs/se_m_strength.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w070_grp, voicegroup128 - .equ se_w070_pri, 4 - .equ se_w070_rev, reverb_set+50 - .equ se_w070_mvl, 127 - .equ se_w070_key, 0 - .equ se_w070_tbs, 1 - .equ se_w070_exg, 0 - .equ se_w070_cmp, 1 + .equ se_m_strength_grp, voicegroup128 + .equ se_m_strength_pri, 4 + .equ se_m_strength_rev, reverb_set+50 + .equ se_m_strength_mvl, 127 + .equ se_m_strength_key, 0 + .equ se_m_strength_tbs, 1 + .equ se_m_strength_exg, 0 + .equ se_m_strength_cmp, 1 .section .rodata - .global se_w070 + .global se_m_strength .align 2 @********************** Track 1 **********************@ -se_w070_1: - .byte KEYSH , se_w070_key+0 - .byte TEMPO , 150*se_w070_tbs/2 +se_m_strength_1: + .byte KEYSH , se_m_strength_key+0 + .byte TEMPO , 150*se_m_strength_tbs/2 .byte VOICE , 26 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w070_mvl/mxv + .byte VOL , 110*se_m_strength_mvl/mxv .byte BEND , c_v+0 .byte N03 , Gn2 , v127 .byte W03 @@ -44,11 +44,11 @@ se_w070_1: @********************** Track 2 **********************@ -se_w070_2: - .byte KEYSH , se_w070_key+0 +se_m_strength_2: + .byte KEYSH , se_m_strength_key+0 .byte VOICE , 5 .byte PAN , c_v+0 - .byte VOL , 110*se_w070_mvl/mxv + .byte VOL , 110*se_m_strength_mvl/mxv .byte N02 , Fn2 , v072 .byte W02 .byte N01 @@ -70,15 +70,15 @@ se_w070_2: @******************************************************@ .align 2 -se_w070: +se_m_strength: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w070_pri @ Priority - .byte se_w070_rev @ Reverb. + .byte se_m_strength_pri @ Priority + .byte se_m_strength_rev @ Reverb. - .word se_w070_grp + .word se_m_strength_grp - .word se_w070_1 - .word se_w070_2 + .word se_m_strength_1 + .word se_m_strength_2 .end diff --git a/sound/songs/se_w081.s b/sound/songs/se_m_string_shot.s index 248f44c6f..d750d26b9 100644 --- a/sound/songs/se_w081.s +++ b/sound/songs/se_m_string_shot.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w081_grp, voicegroup128 - .equ se_w081_pri, 4 - .equ se_w081_rev, reverb_set+50 - .equ se_w081_mvl, 127 - .equ se_w081_key, 0 - .equ se_w081_tbs, 1 - .equ se_w081_exg, 0 - .equ se_w081_cmp, 1 + .equ se_m_string_shot_grp, voicegroup128 + .equ se_m_string_shot_pri, 4 + .equ se_m_string_shot_rev, reverb_set+50 + .equ se_m_string_shot_mvl, 127 + .equ se_m_string_shot_key, 0 + .equ se_m_string_shot_tbs, 1 + .equ se_m_string_shot_exg, 0 + .equ se_m_string_shot_cmp, 1 .section .rodata - .global se_w081 + .global se_m_string_shot .align 2 @********************** Track 1 **********************@ -se_w081_1: - .byte KEYSH , se_w081_key+0 - .byte TEMPO , 250*se_w081_tbs/2 +se_m_string_shot_1: + .byte KEYSH , se_m_string_shot_key+0 + .byte TEMPO , 250*se_m_string_shot_tbs/2 .byte VOICE , 22 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w081_mvl/mxv + .byte VOL , 110*se_m_string_shot_mvl/mxv .byte BEND , c_v+0 .byte N48 , Fn4 , v108 .byte W03 @@ -50,31 +50,31 @@ se_w081_1: .byte PAN , c_v+0 .byte BEND , c_v+0 .byte W06 - .byte VOL , 90*se_w081_mvl/mxv + .byte VOL , 90*se_m_string_shot_mvl/mxv .byte W03 - .byte 71*se_w081_mvl/mxv + .byte 71*se_m_string_shot_mvl/mxv .byte W03 - .byte 58*se_w081_mvl/mxv + .byte 58*se_m_string_shot_mvl/mxv .byte W03 - .byte 41*se_w081_mvl/mxv + .byte 41*se_m_string_shot_mvl/mxv .byte W03 - .byte 27*se_w081_mvl/mxv + .byte 27*se_m_string_shot_mvl/mxv .byte W03 - .byte 7*se_w081_mvl/mxv + .byte 7*se_m_string_shot_mvl/mxv .byte W03 .byte FINE @******************************************************@ .align 2 -se_w081: +se_m_string_shot: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w081_pri @ Priority - .byte se_w081_rev @ Reverb. + .byte se_m_string_shot_pri @ Priority + .byte se_m_string_shot_rev @ Reverb. - .word se_w081_grp + .word se_m_string_shot_grp - .word se_w081_1 + .word se_m_string_shot_1 .end diff --git a/sound/songs/se_w081b.s b/sound/songs/se_m_string_shot2.s index d20162cd3..7bd0a7427 100644 --- a/sound/songs/se_w081b.s +++ b/sound/songs/se_m_string_shot2.s @@ -1,26 +1,26 @@ .include "MPlayDef.s" - .equ se_w081b_grp, voicegroup128 - .equ se_w081b_pri, 4 - .equ se_w081b_rev, reverb_set+50 - .equ se_w081b_mvl, 127 - .equ se_w081b_key, 0 - .equ se_w081b_tbs, 1 - .equ se_w081b_exg, 0 - .equ se_w081b_cmp, 1 + .equ se_m_string_shot2_grp, voicegroup128 + .equ se_m_string_shot2_pri, 4 + .equ se_m_string_shot2_rev, reverb_set+50 + .equ se_m_string_shot2_mvl, 127 + .equ se_m_string_shot2_key, 0 + .equ se_m_string_shot2_tbs, 1 + .equ se_m_string_shot2_exg, 0 + .equ se_m_string_shot2_cmp, 1 .section .rodata - .global se_w081b + .global se_m_string_shot2 .align 2 @********************** Track 1 **********************@ -se_w081b_1: - .byte KEYSH , se_w081b_key+0 - .byte TEMPO , 250*se_w081b_tbs/2 +se_m_string_shot2_1: + .byte KEYSH , se_m_string_shot2_key+0 + .byte TEMPO , 250*se_m_string_shot2_tbs/2 .byte VOICE , 10 .byte BENDR , 12 - .byte VOL , 105*se_w081b_mvl/mxv + .byte VOL , 105*se_m_string_shot2_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v+0 .byte N09 , En4 , v112 @@ -93,17 +93,17 @@ se_w081b_1: @********************** Track 2 **********************@ -se_w081b_2: - .byte KEYSH , se_w081b_key+0 +se_m_string_shot2_2: + .byte KEYSH , se_m_string_shot2_key+0 .byte VOICE , 5 - .byte VOL , 105*se_w081b_mvl/mxv + .byte VOL , 105*se_m_string_shot2_mvl/mxv .byte PAN , c_v+9 .byte N09 , Cn3 , v052 .byte W12 .byte PAN , c_v-7 .byte N09 , Gn2 .byte W12 -se_w081b_2_000: +se_m_string_shot2_2_000: .byte PAN , c_v+9 .byte N09 , Cn3 , v052 .byte W12 @@ -112,23 +112,23 @@ se_w081b_2_000: .byte W12 .byte PEND .byte PATT - .word se_w081b_2_000 + .word se_m_string_shot2_2_000 .byte PATT - .word se_w081b_2_000 + .word se_m_string_shot2_2_000 .byte FINE @******************************************************@ .align 2 -se_w081b: +se_m_string_shot2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w081b_pri @ Priority - .byte se_w081b_rev @ Reverb. + .byte se_m_string_shot2_pri @ Priority + .byte se_m_string_shot2_rev @ Reverb. - .word se_w081b_grp + .word se_m_string_shot2_grp - .word se_w081b_1 - .word se_w081b_2 + .word se_m_string_shot2_1 + .word se_m_string_shot2_2 .end diff --git a/sound/songs/se_w048.s b/sound/songs/se_m_supersonic.s index 8046eae58..f791c9b15 100644 --- a/sound/songs/se_w048.s +++ b/sound/songs/se_m_supersonic.s @@ -1,47 +1,47 @@ .include "MPlayDef.s" - .equ se_w048_grp, voicegroup128 - .equ se_w048_pri, 4 - .equ se_w048_rev, reverb_set+50 - .equ se_w048_mvl, 127 - .equ se_w048_key, 0 - .equ se_w048_tbs, 1 - .equ se_w048_exg, 0 - .equ se_w048_cmp, 1 + .equ se_m_supersonic_grp, voicegroup128 + .equ se_m_supersonic_pri, 4 + .equ se_m_supersonic_rev, reverb_set+50 + .equ se_m_supersonic_mvl, 127 + .equ se_m_supersonic_key, 0 + .equ se_m_supersonic_tbs, 1 + .equ se_m_supersonic_exg, 0 + .equ se_m_supersonic_cmp, 1 .section .rodata - .global se_w048 + .global se_m_supersonic .align 2 @********************** Track 1 **********************@ -se_w048_1: - .byte KEYSH , se_w048_key+0 - .byte TEMPO , 150*se_w048_tbs/2 +se_m_supersonic_1: + .byte KEYSH , se_m_supersonic_key+0 + .byte TEMPO , 150*se_m_supersonic_tbs/2 .byte VOICE , 43 .byte BENDR , 2 .byte PAN , c_v+0 - .byte VOL , 61*se_w048_mvl/mxv + .byte VOL , 61*se_m_supersonic_mvl/mxv .byte BEND , c_v-4 .byte N07 , Gs4 , v127 .byte W01 .byte PAN , c_v+6 - .byte VOL , 75*se_w048_mvl/mxv + .byte VOL , 75*se_m_supersonic_mvl/mxv .byte BEND , c_v-1 .byte W01 .byte PAN , c_v-7 - .byte VOL , 93*se_w048_mvl/mxv + .byte VOL , 93*se_m_supersonic_mvl/mxv .byte BEND , c_v+2 .byte W01 .byte PAN , c_v+9 - .byte VOL , 110*se_w048_mvl/mxv + .byte VOL , 110*se_m_supersonic_mvl/mxv .byte BEND , c_v+4 .byte W01 .byte PAN , c_v-12 .byte BEND , c_v+7 .byte W02 .byte W02 - .byte VOL , 0*se_w048_mvl/mxv + .byte VOL , 0*se_m_supersonic_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-4 .byte N32 @@ -50,68 +50,68 @@ se_w048_1: .byte BEND , c_v-1 .byte W01 .byte PAN , c_v-7 - .byte VOL , 36*se_w048_mvl/mxv + .byte VOL , 36*se_m_supersonic_mvl/mxv .byte BEND , c_v+2 .byte W02 .byte PAN , c_v+9 - .byte VOL , 67*se_w048_mvl/mxv + .byte VOL , 67*se_m_supersonic_mvl/mxv .byte BEND , c_v-1 .byte W01 .byte PAN , c_v-13 - .byte VOL , 84*se_w048_mvl/mxv + .byte VOL , 84*se_m_supersonic_mvl/mxv .byte BEND , c_v-4 .byte W01 .byte PAN , c_v+6 .byte BEND , c_v-6 .byte W01 .byte PAN , c_v-6 - .byte VOL , 92*se_w048_mvl/mxv + .byte VOL , 92*se_m_supersonic_mvl/mxv .byte BEND , c_v-8 .byte W01 .byte PAN , c_v+0 .byte BEND , c_v-7 .byte W02 .byte PAN , c_v+6 - .byte VOL , 99*se_w048_mvl/mxv + .byte VOL , 99*se_m_supersonic_mvl/mxv .byte BEND , c_v-4 .byte W01 .byte PAN , c_v-7 .byte BEND , c_v-1 .byte W01 - .byte VOL , 105*se_w048_mvl/mxv + .byte VOL , 105*se_m_supersonic_mvl/mxv .byte PAN , c_v+9 .byte BEND , c_v+2 .byte W01 - .byte VOL , 110*se_w048_mvl/mxv + .byte VOL , 110*se_m_supersonic_mvl/mxv .byte PAN , c_v-13 .byte BEND , c_v-1 .byte W01 .byte PAN , c_v-1 .byte BEND , c_v-4 .byte W02 - .byte VOL , 46*se_w048_mvl/mxv + .byte VOL , 46*se_m_supersonic_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-1 .byte W01 .byte PAN , c_v+6 .byte BEND , c_v+2 .byte W01 - .byte VOL , 67*se_w048_mvl/mxv + .byte VOL , 67*se_m_supersonic_mvl/mxv .byte PAN , c_v-7 .byte BEND , c_v-1 .byte W01 .byte PAN , c_v+9 .byte BEND , c_v-4 .byte W01 - .byte VOL , 84*se_w048_mvl/mxv + .byte VOL , 84*se_m_supersonic_mvl/mxv .byte PAN , c_v-13 .byte BEND , c_v-6 .byte W02 - .byte VOL , 100*se_w048_mvl/mxv + .byte VOL , 100*se_m_supersonic_mvl/mxv .byte PAN , c_v+6 .byte BEND , c_v-8 .byte W01 - .byte VOL , 110*se_w048_mvl/mxv + .byte VOL , 110*se_m_supersonic_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v-7 .byte W01 @@ -121,26 +121,26 @@ se_w048_1: .byte PAN , c_v+6 .byte BEND , c_v-1 .byte W01 - .byte VOL , 101*se_w048_mvl/mxv + .byte VOL , 101*se_m_supersonic_mvl/mxv .byte PAN , c_v-7 .byte BEND , c_v+2 .byte W02 - .byte VOL , 85*se_w048_mvl/mxv + .byte VOL , 85*se_m_supersonic_mvl/mxv .byte PAN , c_v+9 .byte BEND , c_v-1 .byte W01 - .byte VOL , 75*se_w048_mvl/mxv + .byte VOL , 75*se_m_supersonic_mvl/mxv .byte PAN , c_v-13 .byte BEND , c_v-4 .byte W01 - .byte VOL , 48*se_w048_mvl/mxv + .byte VOL , 48*se_m_supersonic_mvl/mxv .byte PAN , c_v-1 .byte BEND , c_v-6 .byte W01 - .byte VOL , 24*se_w048_mvl/mxv + .byte VOL , 24*se_m_supersonic_mvl/mxv .byte BEND , c_v-8 .byte W01 - .byte VOL , 6*se_w048_mvl/mxv + .byte VOL , 6*se_m_supersonic_mvl/mxv .byte BEND , c_v-7 .byte W02 .byte FINE @@ -148,14 +148,14 @@ se_w048_1: @******************************************************@ .align 2 -se_w048: +se_m_supersonic: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w048_pri @ Priority - .byte se_w048_rev @ Reverb. + .byte se_m_supersonic_pri @ Priority + .byte se_m_supersonic_rev @ Reverb. - .word se_w048_grp + .word se_m_supersonic_grp - .word se_w048_1 + .word se_m_supersonic_1 .end diff --git a/sound/songs/se_w057.s b/sound/songs/se_m_surf.s index 6d74168ce..d3e307782 100644 --- a/sound/songs/se_w057.s +++ b/sound/songs/se_m_surf.s @@ -1,43 +1,43 @@ .include "MPlayDef.s" - .equ se_w057_grp, voicegroup128 - .equ se_w057_pri, 4 - .equ se_w057_rev, reverb_set+50 - .equ se_w057_mvl, 127 - .equ se_w057_key, 0 - .equ se_w057_tbs, 1 - .equ se_w057_exg, 0 - .equ se_w057_cmp, 1 + .equ se_m_surf_grp, voicegroup128 + .equ se_m_surf_pri, 4 + .equ se_m_surf_rev, reverb_set+50 + .equ se_m_surf_mvl, 127 + .equ se_m_surf_key, 0 + .equ se_m_surf_tbs, 1 + .equ se_m_surf_exg, 0 + .equ se_m_surf_cmp, 1 .section .rodata - .global se_w057 + .global se_m_surf .align 2 @********************** Track 1 **********************@ -se_w057_1: - .byte KEYSH , se_w057_key+0 - .byte TEMPO , 150*se_w057_tbs/2 +se_m_surf_1: + .byte KEYSH , se_m_surf_key+0 + .byte TEMPO , 150*se_m_surf_tbs/2 .byte VOICE , 36 .byte BENDR , 12 - .byte VOL , 27*se_w057_mvl/mxv + .byte VOL , 27*se_m_surf_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte N96 , Cn3 , v112 .byte W04 - .byte VOL , 45*se_w057_mvl/mxv + .byte VOL , 45*se_m_surf_mvl/mxv .byte W02 .byte PAN , c_v-4 .byte W02 .byte BEND , c_v+4 .byte W01 - .byte VOL , 60*se_w057_mvl/mxv + .byte VOL , 60*se_m_surf_mvl/mxv .byte W03 .byte PAN , c_v-10 .byte W02 .byte BEND , c_v+9 .byte W01 - .byte VOL , 88*se_w057_mvl/mxv + .byte VOL , 88*se_m_surf_mvl/mxv .byte W03 .byte PAN , c_v-5 .byte W02 @@ -45,7 +45,7 @@ se_w057_1: .byte W04 .byte PAN , c_v+0 .byte W01 - .byte VOL , 110*se_w057_mvl/mxv + .byte VOL , 110*se_m_surf_mvl/mxv .byte W02 .byte BEND , c_v+19 .byte W03 @@ -65,29 +65,29 @@ se_w057_1: .byte W04 .byte PAN , c_v-10 .byte W01 - .byte VOL , 98*se_w057_mvl/mxv + .byte VOL , 98*se_m_surf_mvl/mxv .byte W05 - .byte 81*se_w057_mvl/mxv + .byte 81*se_m_surf_mvl/mxv .byte PAN , c_v-5 .byte BEND , c_v+12 .byte W06 - .byte VOL , 68*se_w057_mvl/mxv + .byte VOL , 68*se_m_surf_mvl/mxv .byte PAN , c_v+0 .byte W03 .byte BEND , c_v+17 .byte W01 - .byte VOL , 50*se_w057_mvl/mxv + .byte VOL , 50*se_m_surf_mvl/mxv .byte W02 .byte PAN , c_v+4 .byte W03 - .byte VOL , 31*se_w057_mvl/mxv + .byte VOL , 31*se_m_surf_mvl/mxv .byte W03 .byte PAN , c_v+11 .byte BEND , c_v+22 .byte W02 - .byte VOL , 11*se_w057_mvl/mxv + .byte VOL , 11*se_m_surf_mvl/mxv .byte W04 - .byte 6*se_w057_mvl/mxv + .byte 6*se_m_surf_mvl/mxv .byte PAN , c_v+4 .byte BEND , c_v+30 .byte W06 @@ -96,14 +96,14 @@ se_w057_1: @******************************************************@ .align 2 -se_w057: +se_m_surf: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w057_pri @ Priority - .byte se_w057_rev @ Reverb. + .byte se_m_surf_pri @ Priority + .byte se_m_surf_rev @ Reverb. - .word se_w057_grp + .word se_m_surf_grp - .word se_w057_1 + .word se_m_surf_1 .end diff --git a/sound/songs/se_m_swagger.s b/sound/songs/se_m_swagger.s new file mode 100644 index 000000000..9b4b5756b --- /dev/null +++ b/sound/songs/se_m_swagger.s @@ -0,0 +1,77 @@ + .include "MPlayDef.s" + + .equ se_m_swagger_grp, voicegroup128 + .equ se_m_swagger_pri, 4 + .equ se_m_swagger_rev, reverb_set+50 + .equ se_m_swagger_mvl, 127 + .equ se_m_swagger_key, 0 + .equ se_m_swagger_tbs, 1 + .equ se_m_swagger_exg, 0 + .equ se_m_swagger_cmp, 1 + + .section .rodata + .global se_m_swagger + .align 2 + +@********************** Track 1 **********************@ + +se_m_swagger_1: + .byte KEYSH , se_m_swagger_key+0 + .byte TEMPO , 190*se_m_swagger_tbs/2 + .byte VOICE , 2 + .byte BENDR , 8 + .byte PAN , c_v+0 + .byte VOL , 28*se_m_swagger_mvl/mxv + .byte BEND , c_v+0 + .byte N15 , An1 , v127 + .byte W01 + .byte VOL , 60*se_m_swagger_mvl/mxv + .byte W01 + .byte 111*se_m_swagger_mvl/mxv + .byte W01 + .byte 120*se_m_swagger_mvl/mxv + .byte W01 + .byte BEND , c_v-3 + .byte W02 + .byte PAN , c_v+5 + .byte BEND , c_v-6 + .byte W01 + .byte PAN , c_v-4 + .byte BEND , c_v-8 + .byte W01 + .byte VOL , 109*se_m_swagger_mvl/mxv + .byte PAN , c_v+9 + .byte BEND , c_v-10 + .byte W01 + .byte PAN , c_v-9 + .byte BEND , c_v-14 + .byte W01 + .byte VOL , 95*se_m_swagger_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v-19 + .byte W02 + .byte VOL , 71*se_m_swagger_mvl/mxv + .byte BEND , c_v-29 + .byte W01 + .byte VOL , 41*se_m_swagger_mvl/mxv + .byte BEND , c_v-38 + .byte W01 + .byte VOL , 15*se_m_swagger_mvl/mxv + .byte BEND , c_v-52 + .byte W04 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_swagger: + .byte 1 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_swagger_pri @ Priority + .byte se_m_swagger_rev @ Reverb. + + .word se_m_swagger_grp + + .word se_m_swagger_1 + + .end diff --git a/sound/songs/se_w207b.s b/sound/songs/se_m_swagger2.s index 9d199e8d3..0a0d76767 100644 --- a/sound/songs/se_w207b.s +++ b/sound/songs/se_m_swagger2.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w207b_grp, voicegroup128 - .equ se_w207b_pri, 4 - .equ se_w207b_rev, reverb_set+50 - .equ se_w207b_mvl, 127 - .equ se_w207b_key, 0 - .equ se_w207b_tbs, 1 - .equ se_w207b_exg, 0 - .equ se_w207b_cmp, 1 + .equ se_m_swagger2_grp, voicegroup128 + .equ se_m_swagger2_pri, 4 + .equ se_m_swagger2_rev, reverb_set+50 + .equ se_m_swagger2_mvl, 127 + .equ se_m_swagger2_key, 0 + .equ se_m_swagger2_tbs, 1 + .equ se_m_swagger2_exg, 0 + .equ se_m_swagger2_cmp, 1 .section .rodata - .global se_w207b + .global se_m_swagger2 .align 2 @********************** Track 1 **********************@ -se_w207b_1: - .byte KEYSH , se_w207b_key+0 - .byte TEMPO , 150*se_w207b_tbs/2 +se_m_swagger2_1: + .byte KEYSH , se_m_swagger2_key+0 + .byte TEMPO , 150*se_m_swagger2_tbs/2 .byte VOICE , 56 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 65*se_w207b_mvl/mxv + .byte VOL , 65*se_m_swagger2_mvl/mxv .byte BEND , c_v+8 .byte N01 , Cs6 , v112 .byte W01 @@ -43,14 +43,14 @@ se_w207b_1: @******************************************************@ .align 2 -se_w207b: +se_m_swagger2: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w207b_pri @ Priority - .byte se_w207b_rev @ Reverb. + .byte se_m_swagger2_pri @ Priority + .byte se_m_swagger2_rev @ Reverb. - .word se_w207b_grp + .word se_m_swagger2_grp - .word se_w207b_1 + .word se_m_swagger2_1 .end diff --git a/sound/songs/se_w230.s b/sound/songs/se_m_sweet_scent.s index b446b3448..0abf858d2 100644 --- a/sound/songs/se_w230.s +++ b/sound/songs/se_m_sweet_scent.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w230_grp, voicegroup128 - .equ se_w230_pri, 4 - .equ se_w230_rev, reverb_set+50 - .equ se_w230_mvl, 127 - .equ se_w230_key, 0 - .equ se_w230_tbs, 1 - .equ se_w230_exg, 0 - .equ se_w230_cmp, 1 + .equ se_m_sweet_scent_grp, voicegroup128 + .equ se_m_sweet_scent_pri, 4 + .equ se_m_sweet_scent_rev, reverb_set+50 + .equ se_m_sweet_scent_mvl, 127 + .equ se_m_sweet_scent_key, 0 + .equ se_m_sweet_scent_tbs, 1 + .equ se_m_sweet_scent_exg, 0 + .equ se_m_sweet_scent_cmp, 1 .section .rodata - .global se_w230 + .global se_m_sweet_scent .align 2 @********************** Track 1 **********************@ -se_w230_1: - .byte KEYSH , se_w230_key+0 - .byte TEMPO , 150*se_w230_tbs/2 +se_m_sweet_scent_1: + .byte KEYSH , se_m_sweet_scent_key+0 + .byte TEMPO , 150*se_m_sweet_scent_tbs/2 .byte VOICE , 61 .byte BENDR , 44 .byte PAN , c_v+0 - .byte VOL , 110*se_w230_mvl/mxv + .byte VOL , 110*se_m_sweet_scent_mvl/mxv .byte BEND , c_v+2 .byte N36 , En3 , v096 .byte W12 @@ -61,67 +61,67 @@ se_w230_1: .byte PAN , c_v-4 .byte BEND , c_v+12 .byte W04 - .byte VOL , 103*se_w230_mvl/mxv + .byte VOL , 103*se_m_sweet_scent_mvl/mxv .byte W04 - .byte 97*se_w230_mvl/mxv + .byte 97*se_m_sweet_scent_mvl/mxv .byte W04 .byte PAN , c_v+0 .byte BEND , c_v+12 .byte W01 - .byte VOL , 91*se_w230_mvl/mxv + .byte VOL , 91*se_m_sweet_scent_mvl/mxv .byte W05 - .byte 81*se_w230_mvl/mxv + .byte 81*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 72*se_w230_mvl/mxv + .byte 72*se_m_sweet_scent_mvl/mxv .byte W03 .byte PAN , c_v+6 .byte BEND , c_v+13 .byte W01 - .byte VOL , 62*se_w230_mvl/mxv + .byte VOL , 62*se_m_sweet_scent_mvl/mxv .byte W02 - .byte 51*se_w230_mvl/mxv + .byte 51*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 39*se_w230_mvl/mxv + .byte 39*se_m_sweet_scent_mvl/mxv .byte W02 - .byte 24*se_w230_mvl/mxv + .byte 24*se_m_sweet_scent_mvl/mxv .byte W02 - .byte 12*se_w230_mvl/mxv + .byte 12*se_m_sweet_scent_mvl/mxv .byte W02 .byte FINE @********************** Track 2 **********************@ -se_w230_2: - .byte KEYSH , se_w230_key+0 +se_m_sweet_scent_2: + .byte KEYSH , se_m_sweet_scent_key+0 .byte VOICE , 22 .byte BENDR , 44 .byte PAN , c_v+1 - .byte VOL , 38*se_w230_mvl/mxv + .byte VOL , 38*se_m_sweet_scent_mvl/mxv .byte BEND , c_v+1 .byte TIE , Gn3 , v100 .byte W03 - .byte VOL , 50*se_w230_mvl/mxv + .byte VOL , 50*se_m_sweet_scent_mvl/mxv .byte W04 - .byte 62*se_w230_mvl/mxv + .byte 62*se_m_sweet_scent_mvl/mxv .byte W02 .byte BEND , c_v-1 .byte W01 - .byte VOL , 65*se_w230_mvl/mxv + .byte VOL , 65*se_m_sweet_scent_mvl/mxv .byte W04 - .byte 74*se_w230_mvl/mxv + .byte 74*se_m_sweet_scent_mvl/mxv .byte W04 - .byte 78*se_w230_mvl/mxv + .byte 78*se_m_sweet_scent_mvl/mxv .byte BEND , c_v-2 .byte W03 - .byte VOL , 86*se_w230_mvl/mxv + .byte VOL , 86*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 95*se_w230_mvl/mxv + .byte 95*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 105*se_w230_mvl/mxv + .byte 105*se_m_sweet_scent_mvl/mxv .byte W01 .byte BEND , c_v-4 .byte W03 - .byte VOL , 110*se_w230_mvl/mxv + .byte VOL , 110*se_m_sweet_scent_mvl/mxv .byte W13 .byte BEND , c_v-2 .byte W04 @@ -140,37 +140,37 @@ se_w230_2: .byte W14 .byte c_v+3 .byte W08 - .byte VOL , 105*se_w230_mvl/mxv + .byte VOL , 105*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 101*se_w230_mvl/mxv + .byte 101*se_m_sweet_scent_mvl/mxv .byte W05 - .byte 96*se_w230_mvl/mxv + .byte 96*se_m_sweet_scent_mvl/mxv .byte W04 .byte BEND , c_v+2 .byte W01 - .byte VOL , 91*se_w230_mvl/mxv + .byte VOL , 91*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 86*se_w230_mvl/mxv + .byte 86*se_m_sweet_scent_mvl/mxv .byte W05 - .byte 78*se_w230_mvl/mxv + .byte 78*se_m_sweet_scent_mvl/mxv .byte W03 .byte W02 - .byte 68*se_w230_mvl/mxv + .byte 68*se_m_sweet_scent_mvl/mxv .byte W01 .byte BEND , c_v+1 .byte W04 - .byte VOL , 58*se_w230_mvl/mxv + .byte VOL , 58*se_m_sweet_scent_mvl/mxv .byte W03 - .byte 48*se_w230_mvl/mxv + .byte 48*se_m_sweet_scent_mvl/mxv .byte W04 - .byte 37*se_w230_mvl/mxv + .byte 37*se_m_sweet_scent_mvl/mxv .byte BEND , c_v+0 .byte W04 - .byte VOL , 23*se_w230_mvl/mxv + .byte VOL , 23*se_m_sweet_scent_mvl/mxv .byte W01 .byte BEND , c_v-1 .byte W02 - .byte VOL , 12*se_w230_mvl/mxv + .byte VOL , 12*se_m_sweet_scent_mvl/mxv .byte W03 .byte EOT .byte FINE @@ -178,15 +178,15 @@ se_w230_2: @******************************************************@ .align 2 -se_w230: +se_m_sweet_scent: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w230_pri @ Priority - .byte se_w230_rev @ Reverb. + .byte se_m_sweet_scent_pri @ Priority + .byte se_m_sweet_scent_rev @ Reverb. - .word se_w230_grp + .word se_m_sweet_scent_grp - .word se_w230_1 - .word se_w230_2 + .word se_m_sweet_scent_1 + .word se_m_sweet_scent_2 .end diff --git a/sound/songs/se_w129.s b/sound/songs/se_m_swift.s index 61b101462..10649a80e 100644 --- a/sound/songs/se_w129.s +++ b/sound/songs/se_m_swift.s @@ -1,45 +1,45 @@ .include "MPlayDef.s" - .equ se_w129_grp, voicegroup128 - .equ se_w129_pri, 4 - .equ se_w129_rev, reverb_set+50 - .equ se_w129_mvl, 127 - .equ se_w129_key, 0 - .equ se_w129_tbs, 1 - .equ se_w129_exg, 0 - .equ se_w129_cmp, 1 + .equ se_m_swift_grp, voicegroup128 + .equ se_m_swift_pri, 4 + .equ se_m_swift_rev, reverb_set+50 + .equ se_m_swift_mvl, 127 + .equ se_m_swift_key, 0 + .equ se_m_swift_tbs, 1 + .equ se_m_swift_exg, 0 + .equ se_m_swift_cmp, 1 .section .rodata - .global se_w129 + .global se_m_swift .align 2 @********************** Track 1 **********************@ -se_w129_1: - .byte KEYSH , se_w129_key+0 - .byte TEMPO , 180*se_w129_tbs/2 +se_m_swift_1: + .byte KEYSH , se_m_swift_key+0 + .byte TEMPO , 180*se_m_swift_tbs/2 .byte VOICE , 16 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 100*se_w129_mvl/mxv + .byte VOL , 100*se_m_swift_mvl/mxv .byte BEND , c_v+0 .byte N06 , Ds6 , v100 .byte W01 .byte BEND , c_v-11 .byte W01 .byte PAN , c_v+5 - .byte VOL , 90*se_w129_mvl/mxv + .byte VOL , 90*se_m_swift_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v-6 - .byte VOL , 77*se_w129_mvl/mxv + .byte VOL , 77*se_m_swift_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v+0 - .byte VOL , 37*se_w129_mvl/mxv + .byte VOL , 37*se_m_swift_mvl/mxv .byte BEND , c_v-47 .byte W02 - .byte VOL , 100*se_w129_mvl/mxv + .byte VOL , 100*se_m_swift_mvl/mxv .byte BEND , c_v+0 .byte N06 .byte W01 @@ -47,18 +47,18 @@ se_w129_1: .byte BEND , c_v-11 .byte W01 .byte PAN , c_v-6 - .byte VOL , 90*se_w129_mvl/mxv + .byte VOL , 90*se_m_swift_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v+8 - .byte VOL , 77*se_w129_mvl/mxv + .byte VOL , 77*se_m_swift_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v-10 - .byte VOL , 37*se_w129_mvl/mxv + .byte VOL , 37*se_m_swift_mvl/mxv .byte BEND , c_v-47 .byte W02 - .byte VOL , 100*se_w129_mvl/mxv + .byte VOL , 100*se_m_swift_mvl/mxv .byte BEND , c_v+0 .byte N06 , Ds6 , v056 .byte W01 @@ -66,25 +66,25 @@ se_w129_1: .byte BEND , c_v-11 .byte W01 .byte PAN , c_v-6 - .byte VOL , 90*se_w129_mvl/mxv + .byte VOL , 90*se_m_swift_mvl/mxv .byte BEND , c_v-20 .byte W01 .byte PAN , c_v+8 - .byte VOL , 77*se_w129_mvl/mxv + .byte VOL , 77*se_m_swift_mvl/mxv .byte BEND , c_v-37 .byte W01 .byte PAN , c_v-10 - .byte VOL , 37*se_w129_mvl/mxv + .byte VOL , 37*se_m_swift_mvl/mxv .byte BEND , c_v-47 .byte W02 .byte FINE @********************** Track 2 **********************@ -se_w129_2: - .byte KEYSH , se_w129_key+0 +se_m_swift_2: + .byte KEYSH , se_m_swift_key+0 .byte VOICE , 53 - .byte VOL , 100*se_w129_mvl/mxv + .byte VOL , 100*se_m_swift_mvl/mxv .byte W02 .byte N06 , Cn6 , v040 .byte W04 @@ -97,15 +97,15 @@ se_w129_2: @******************************************************@ .align 2 -se_w129: +se_m_swift: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w129_pri @ Priority - .byte se_w129_rev @ Reverb. + .byte se_m_swift_pri @ Priority + .byte se_m_swift_rev @ Reverb. - .word se_w129_grp + .word se_m_swift_grp - .word se_w129_1 - .word se_w129_2 + .word se_m_swift_1 + .word se_m_swift_2 .end diff --git a/sound/songs/se_w298.s b/sound/songs/se_m_teeter_dance.s index d21e4b710..8238afeb2 100644 --- a/sound/songs/se_w298.s +++ b/sound/songs/se_m_teeter_dance.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w298_grp, voicegroup128 - .equ se_w298_pri, 4 - .equ se_w298_rev, reverb_set+50 - .equ se_w298_mvl, 127 - .equ se_w298_key, 0 - .equ se_w298_tbs, 1 - .equ se_w298_exg, 0 - .equ se_w298_cmp, 1 + .equ se_m_teeter_dance_grp, voicegroup128 + .equ se_m_teeter_dance_pri, 4 + .equ se_m_teeter_dance_rev, reverb_set+50 + .equ se_m_teeter_dance_mvl, 127 + .equ se_m_teeter_dance_key, 0 + .equ se_m_teeter_dance_tbs, 1 + .equ se_m_teeter_dance_exg, 0 + .equ se_m_teeter_dance_cmp, 1 .section .rodata - .global se_w298 + .global se_m_teeter_dance .align 2 @********************** Track 1 **********************@ -se_w298_1: - .byte KEYSH , se_w298_key+0 - .byte TEMPO , 170*se_w298_tbs/2 +se_m_teeter_dance_1: + .byte KEYSH , se_m_teeter_dance_key+0 + .byte TEMPO , 170*se_m_teeter_dance_tbs/2 .byte VOICE , 37 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w298_mvl/mxv + .byte VOL , 110*se_m_teeter_dance_mvl/mxv .byte BEND , c_v-4 .byte N03 , Gn4 , v100 .byte W06 @@ -66,13 +66,13 @@ se_w298_1: @********************** Track 2 **********************@ -se_w298_2: - .byte KEYSH , se_w298_key+0 +se_m_teeter_dance_2: + .byte KEYSH , se_m_teeter_dance_key+0 .byte VOICE , 47 .byte XCMD , xIECV , 10 .byte xIECL , 8 .byte MOD , 20 - .byte VOL , 44*se_w298_mvl/mxv + .byte VOL , 44*se_m_teeter_dance_mvl/mxv .byte BEND , c_v-2 .byte W03 .byte N03 , Gn3 , v112 @@ -107,15 +107,15 @@ se_w298_2: @******************************************************@ .align 2 -se_w298: +se_m_teeter_dance: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w298_pri @ Priority - .byte se_w298_rev @ Reverb. + .byte se_m_teeter_dance_pri @ Priority + .byte se_m_teeter_dance_rev @ Reverb. - .word se_w298_grp + .word se_m_teeter_dance_grp - .word se_w298_1 - .word se_w298_2 + .word se_m_teeter_dance_1 + .word se_m_teeter_dance_2 .end diff --git a/sound/songs/se_w100.s b/sound/songs/se_m_teleport.s index e2a43dbcc..2c4ad40e8 100644 --- a/sound/songs/se_w100.s +++ b/sound/songs/se_m_teleport.s @@ -1,58 +1,58 @@ .include "MPlayDef.s" - .equ se_w100_grp, voicegroup128 - .equ se_w100_pri, 4 - .equ se_w100_rev, reverb_set+50 - .equ se_w100_mvl, 127 - .equ se_w100_key, 0 - .equ se_w100_tbs, 1 - .equ se_w100_exg, 0 - .equ se_w100_cmp, 1 + .equ se_m_teleport_grp, voicegroup128 + .equ se_m_teleport_pri, 4 + .equ se_m_teleport_rev, reverb_set+50 + .equ se_m_teleport_mvl, 127 + .equ se_m_teleport_key, 0 + .equ se_m_teleport_tbs, 1 + .equ se_m_teleport_exg, 0 + .equ se_m_teleport_cmp, 1 .section .rodata - .global se_w100 + .global se_m_teleport .align 2 @********************** Track 1 **********************@ -se_w100_1: - .byte KEYSH , se_w100_key+0 - .byte TEMPO , 150*se_w100_tbs/2 +se_m_teleport_1: + .byte KEYSH , se_m_teleport_key+0 + .byte TEMPO , 150*se_m_teleport_tbs/2 .byte VOICE , 45 .byte BENDR , 24 .byte PAN , c_v+0 - .byte VOL , 32*se_w100_mvl/mxv + .byte VOL , 32*se_m_teleport_mvl/mxv .byte MOD , 30 .byte BEND , c_v+0 .byte N06 , Cn3 , v127 .byte W01 .byte BEND , c_v+4 .byte W01 - .byte VOL , 49*se_w100_mvl/mxv + .byte VOL , 49*se_m_teleport_mvl/mxv .byte PAN , c_v+5 .byte BEND , c_v+9 .byte W01 .byte c_v+16 .byte W01 - .byte VOL , 61*se_w100_mvl/mxv + .byte VOL , 61*se_m_teleport_mvl/mxv .byte BEND , c_v+24 .byte W02 .byte PAN , c_v+0 .byte BEND , c_v+2 .byte N06 , Dn3 , v116 .byte W01 - .byte VOL , 71*se_w100_mvl/mxv + .byte VOL , 71*se_m_teleport_mvl/mxv .byte BEND , c_v+7 .byte W01 .byte PAN , c_v-4 .byte BEND , c_v+12 .byte W01 - .byte VOL , 81*se_w100_mvl/mxv + .byte VOL , 81*se_m_teleport_mvl/mxv .byte BEND , c_v+18 .byte W01 .byte c_v+27 .byte W02 - .byte VOL , 95*se_w100_mvl/mxv + .byte VOL , 95*se_m_teleport_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+4 .byte N06 , En3 , v112 @@ -92,20 +92,20 @@ se_w100_1: .byte W01 .byte c_v+34 .byte W02 - .byte VOL , 82*se_w100_mvl/mxv + .byte VOL , 82*se_m_teleport_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+14 .byte N06 , An3 , v100 .byte W01 .byte BEND , c_v+18 .byte W01 - .byte VOL , 71*se_w100_mvl/mxv + .byte VOL , 71*se_m_teleport_mvl/mxv .byte PAN , c_v-8 .byte BEND , c_v+23 .byte W01 .byte c_v+30 .byte W01 - .byte VOL , 61*se_w100_mvl/mxv + .byte VOL , 61*se_m_teleport_mvl/mxv .byte BEND , c_v+38 .byte W02 .byte PAN , c_v+0 @@ -152,14 +152,14 @@ se_w100_1: @******************************************************@ .align 2 -se_w100: +se_m_teleport: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w100_pri @ Priority - .byte se_w100_rev @ Reverb. + .byte se_m_teleport_pri @ Priority + .byte se_m_teleport_rev @ Reverb. - .word se_w100_grp + .word se_m_teleport_grp - .word se_w100_1 + .word se_m_teleport_1 .end diff --git a/sound/songs/se_w086.s b/sound/songs/se_m_thunder_wave.s index 37bf21db0..c26535500 100644 --- a/sound/songs/se_w086.s +++ b/sound/songs/se_m_thunder_wave.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w086_grp, voicegroup128 - .equ se_w086_pri, 4 - .equ se_w086_rev, reverb_set+50 - .equ se_w086_mvl, 127 - .equ se_w086_key, 0 - .equ se_w086_tbs, 1 - .equ se_w086_exg, 0 - .equ se_w086_cmp, 1 + .equ se_m_thunder_wave_grp, voicegroup128 + .equ se_m_thunder_wave_pri, 4 + .equ se_m_thunder_wave_rev, reverb_set+50 + .equ se_m_thunder_wave_mvl, 127 + .equ se_m_thunder_wave_key, 0 + .equ se_m_thunder_wave_tbs, 1 + .equ se_m_thunder_wave_exg, 0 + .equ se_m_thunder_wave_cmp, 1 .section .rodata - .global se_w086 + .global se_m_thunder_wave .align 2 @********************** Track 1 **********************@ -se_w086_1: - .byte KEYSH , se_w086_key+0 - .byte TEMPO , 150*se_w086_tbs/2 +se_m_thunder_wave_1: + .byte KEYSH , se_m_thunder_wave_key+0 + .byte TEMPO , 150*se_m_thunder_wave_tbs/2 .byte VOICE , 18 - .byte VOL , 110*se_w086_mvl/mxv + .byte VOL , 110*se_m_thunder_wave_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+32 @@ -45,21 +45,21 @@ se_w086_1: .byte W02 .byte N13 , Gn3 .byte W02 - .byte VOL , 96*se_w086_mvl/mxv + .byte VOL , 96*se_m_thunder_wave_mvl/mxv .byte W01 - .byte 85*se_w086_mvl/mxv + .byte 85*se_m_thunder_wave_mvl/mxv .byte W01 .byte BEND , c_v-23 .byte W01 - .byte VOL , 66*se_w086_mvl/mxv + .byte VOL , 66*se_m_thunder_wave_mvl/mxv .byte W01 .byte BEND , c_v-40 .byte W01 - .byte VOL , 36*se_w086_mvl/mxv + .byte VOL , 36*se_m_thunder_wave_mvl/mxv .byte W01 .byte BEND , c_v-54 .byte W02 - .byte VOL , 12*se_w086_mvl/mxv + .byte VOL , 12*se_m_thunder_wave_mvl/mxv .byte W01 .byte BEND , c_v-64 .byte W21 @@ -67,10 +67,10 @@ se_w086_1: @********************** Track 2 **********************@ -se_w086_2: - .byte KEYSH , se_w086_key+0 +se_m_thunder_wave_2: + .byte KEYSH , se_m_thunder_wave_key+0 .byte VOICE , 5 - .byte VOL , 110*se_w086_mvl/mxv + .byte VOL , 110*se_m_thunder_wave_mvl/mxv .byte PAN , c_v-7 .byte N02 , En3 , v052 .byte W04 @@ -92,15 +92,15 @@ se_w086_2: @******************************************************@ .align 2 -se_w086: +se_m_thunder_wave: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w086_pri @ Priority - .byte se_w086_rev @ Reverb. + .byte se_m_thunder_wave_pri @ Priority + .byte se_m_thunder_wave_rev @ Reverb. - .word se_w086_grp + .word se_m_thunder_wave_grp - .word se_w086_1 - .word se_w086_2 + .word se_m_thunder_wave_1 + .word se_m_thunder_wave_2 .end diff --git a/sound/songs/se_w085.s b/sound/songs/se_m_thunderbolt.s index 21e8fc6df..3b3790313 100644 --- a/sound/songs/se_w085.s +++ b/sound/songs/se_m_thunderbolt.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w085_grp, voicegroup128 - .equ se_w085_pri, 4 - .equ se_w085_rev, reverb_set+50 - .equ se_w085_mvl, 127 - .equ se_w085_key, 0 - .equ se_w085_tbs, 1 - .equ se_w085_exg, 0 - .equ se_w085_cmp, 1 + .equ se_m_thunderbolt_grp, voicegroup128 + .equ se_m_thunderbolt_pri, 4 + .equ se_m_thunderbolt_rev, reverb_set+50 + .equ se_m_thunderbolt_mvl, 127 + .equ se_m_thunderbolt_key, 0 + .equ se_m_thunderbolt_tbs, 1 + .equ se_m_thunderbolt_exg, 0 + .equ se_m_thunderbolt_cmp, 1 .section .rodata - .global se_w085 + .global se_m_thunderbolt .align 2 @********************** Track 1 **********************@ -se_w085_1: - .byte KEYSH , se_w085_key+0 - .byte TEMPO , 220*se_w085_tbs/2 +se_m_thunderbolt_1: + .byte KEYSH , se_m_thunderbolt_key+0 + .byte TEMPO , 220*se_m_thunderbolt_tbs/2 .byte VOICE , 18 - .byte VOL , 120*se_w085_mvl/mxv + .byte VOL , 120*se_m_thunderbolt_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+32 @@ -55,23 +55,23 @@ se_w085_1: .byte W01 .byte BEND , c_v-23 .byte W02 - .byte VOL , 100*se_w085_mvl/mxv + .byte VOL , 100*se_m_thunderbolt_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v-40 .byte W01 - .byte VOL , 86*se_w085_mvl/mxv + .byte VOL , 86*se_m_thunderbolt_mvl/mxv .byte W01 .byte BEND , c_v-54 .byte W01 .byte PAN , c_v+10 - .byte VOL , 68*se_w085_mvl/mxv + .byte VOL , 68*se_m_thunderbolt_mvl/mxv .byte W02 - .byte 37*se_w085_mvl/mxv + .byte 37*se_m_thunderbolt_mvl/mxv .byte BEND , c_v-64 .byte W01 .byte PAN , c_v+16 .byte W02 - .byte VOL , 17*se_w085_mvl/mxv + .byte VOL , 17*se_m_thunderbolt_mvl/mxv .byte W01 .byte PAN , c_v+10 .byte W15 @@ -79,10 +79,10 @@ se_w085_1: @********************** Track 2 **********************@ -se_w085_2: - .byte KEYSH , se_w085_key+0 +se_m_thunderbolt_2: + .byte KEYSH , se_m_thunderbolt_key+0 .byte VOICE , 5 - .byte VOL , 120*se_w085_mvl/mxv + .byte VOL , 120*se_m_thunderbolt_mvl/mxv .byte PAN , c_v-7 .byte N02 , En3 , v048 .byte W05 @@ -103,15 +103,15 @@ se_w085_2: @******************************************************@ .align 2 -se_w085: +se_m_thunderbolt: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w085_pri @ Priority - .byte se_w085_rev @ Reverb. + .byte se_m_thunderbolt_pri @ Priority + .byte se_m_thunderbolt_rev @ Reverb. - .word se_w085_grp + .word se_m_thunderbolt_grp - .word se_w085_1 - .word se_w085_2 + .word se_m_thunderbolt_1 + .word se_m_thunderbolt_2 .end diff --git a/sound/songs/se_w085b.s b/sound/songs/se_m_thunderbolt2.s index b42007094..506820395 100644 --- a/sound/songs/se_w085b.s +++ b/sound/songs/se_m_thunderbolt2.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w085b_grp, voicegroup128 - .equ se_w085b_pri, 4 - .equ se_w085b_rev, reverb_set+50 - .equ se_w085b_mvl, 127 - .equ se_w085b_key, 0 - .equ se_w085b_tbs, 1 - .equ se_w085b_exg, 0 - .equ se_w085b_cmp, 1 + .equ se_m_thunderbolt2_grp, voicegroup128 + .equ se_m_thunderbolt2_pri, 4 + .equ se_m_thunderbolt2_rev, reverb_set+50 + .equ se_m_thunderbolt2_mvl, 127 + .equ se_m_thunderbolt2_key, 0 + .equ se_m_thunderbolt2_tbs, 1 + .equ se_m_thunderbolt2_exg, 0 + .equ se_m_thunderbolt2_cmp, 1 .section .rodata - .global se_w085b + .global se_m_thunderbolt2 .align 2 @********************** Track 1 **********************@ -se_w085b_1: - .byte KEYSH , se_w085b_key+0 - .byte TEMPO , 220*se_w085b_tbs/2 +se_m_thunderbolt2_1: + .byte KEYSH , se_m_thunderbolt2_key+0 + .byte TEMPO , 220*se_m_thunderbolt2_tbs/2 .byte VOICE , 18 - .byte VOL , 100*se_w085b_mvl/mxv + .byte VOL , 100*se_m_thunderbolt2_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -44,10 +44,10 @@ se_w085b_1: @********************** Track 2 **********************@ -se_w085b_2: - .byte KEYSH , se_w085b_key+0 +se_m_thunderbolt2_2: + .byte KEYSH , se_m_thunderbolt2_key+0 .byte VOICE , 5 - .byte VOL , 100*se_w085b_mvl/mxv + .byte VOL , 100*se_m_thunderbolt2_mvl/mxv .byte PAN , c_v+9 .byte N02 , Gn3 , v072 .byte W06 @@ -71,15 +71,15 @@ se_w085b_2: @******************************************************@ .align 2 -se_w085b: +se_m_thunderbolt2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w085b_pri @ Priority - .byte se_w085b_rev @ Reverb. + .byte se_m_thunderbolt2_pri @ Priority + .byte se_m_thunderbolt2_rev @ Reverb. - .word se_w085b_grp + .word se_m_thunderbolt2_grp - .word se_w085b_1 - .word se_w085b_2 + .word se_m_thunderbolt2_1 + .word se_m_thunderbolt2_2 .end diff --git a/sound/songs/se_w092.s b/sound/songs/se_m_toxic.s index b82665340..0e3ebe220 100644 --- a/sound/songs/se_w092.s +++ b/sound/songs/se_m_toxic.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w092_grp, voicegroup128 - .equ se_w092_pri, 4 - .equ se_w092_rev, reverb_set+50 - .equ se_w092_mvl, 127 - .equ se_w092_key, 0 - .equ se_w092_tbs, 1 - .equ se_w092_exg, 0 - .equ se_w092_cmp, 1 + .equ se_m_toxic_grp, voicegroup128 + .equ se_m_toxic_pri, 4 + .equ se_m_toxic_rev, reverb_set+50 + .equ se_m_toxic_mvl, 127 + .equ se_m_toxic_key, 0 + .equ se_m_toxic_tbs, 1 + .equ se_m_toxic_exg, 0 + .equ se_m_toxic_cmp, 1 .section .rodata - .global se_w092 + .global se_m_toxic .align 2 @********************** Track 1 **********************@ -se_w092_1: - .byte KEYSH , se_w092_key+0 - .byte TEMPO , 150*se_w092_tbs/2 +se_m_toxic_1: + .byte KEYSH , se_m_toxic_key+0 + .byte TEMPO , 150*se_m_toxic_tbs/2 .byte VOICE , 31 - .byte VOL , 110*se_w092_mvl/mxv + .byte VOL , 110*se_m_toxic_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -74,14 +74,14 @@ se_w092_1: @******************************************************@ .align 2 -se_w092: +se_m_toxic: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w092_pri @ Priority - .byte se_w092_rev @ Reverb. + .byte se_m_toxic_pri @ Priority + .byte se_m_toxic_rev @ Reverb. - .word se_w092_grp + .word se_m_toxic_grp - .word se_w092_1 + .word se_m_toxic_1 .end diff --git a/sound/songs/se_w161.s b/sound/songs/se_m_tri_attack.s index 8b378b121..448998e77 100644 --- a/sound/songs/se_w161.s +++ b/sound/songs/se_m_tri_attack.s @@ -1,40 +1,40 @@ .include "MPlayDef.s" - .equ se_w161_grp, voicegroup128 - .equ se_w161_pri, 4 - .equ se_w161_rev, reverb_set+50 - .equ se_w161_mvl, 127 - .equ se_w161_key, 0 - .equ se_w161_tbs, 1 - .equ se_w161_exg, 0 - .equ se_w161_cmp, 1 + .equ se_m_tri_attack_grp, voicegroup128 + .equ se_m_tri_attack_pri, 4 + .equ se_m_tri_attack_rev, reverb_set+50 + .equ se_m_tri_attack_mvl, 127 + .equ se_m_tri_attack_key, 0 + .equ se_m_tri_attack_tbs, 1 + .equ se_m_tri_attack_exg, 0 + .equ se_m_tri_attack_cmp, 1 .section .rodata - .global se_w161 + .global se_m_tri_attack .align 2 @********************** Track 1 **********************@ -se_w161_1: - .byte KEYSH , se_w161_key+0 - .byte TEMPO , 220*se_w161_tbs/2 +se_m_tri_attack_1: + .byte KEYSH , se_m_tri_attack_key+0 + .byte TEMPO , 220*se_m_tri_attack_tbs/2 .byte VOICE , 58 .byte BENDR , 24 .byte PAN , c_v+0 - .byte VOL , 19*se_w161_mvl/mxv + .byte VOL , 19*se_m_tri_attack_mvl/mxv .byte BEND , c_v-32 .byte N16 , Gn1 , v127 .byte W01 - .byte VOL , 43*se_w161_mvl/mxv + .byte VOL , 43*se_m_tri_attack_mvl/mxv .byte BEND , c_v-20 .byte W01 - .byte VOL , 72*se_w161_mvl/mxv + .byte VOL , 72*se_m_tri_attack_mvl/mxv .byte BEND , c_v-8 .byte W01 - .byte VOL , 92*se_w161_mvl/mxv + .byte VOL , 92*se_m_tri_attack_mvl/mxv .byte BEND , c_v+7 .byte W01 - .byte VOL , 109*se_w161_mvl/mxv + .byte VOL , 109*se_m_tri_attack_mvl/mxv .byte BEND , c_v+19 .byte W02 .byte c_v+28 @@ -43,29 +43,29 @@ se_w161_1: .byte W01 .byte c_v+28 .byte W01 - .byte VOL , 102*se_w161_mvl/mxv + .byte VOL , 102*se_m_tri_attack_mvl/mxv .byte BEND , c_v+19 .byte W01 - .byte VOL , 88*se_w161_mvl/mxv + .byte VOL , 88*se_m_tri_attack_mvl/mxv .byte BEND , c_v+5 .byte W02 - .byte VOL , 69*se_w161_mvl/mxv + .byte VOL , 69*se_m_tri_attack_mvl/mxv .byte BEND , c_v-9 .byte W01 - .byte VOL , 37*se_w161_mvl/mxv + .byte VOL , 37*se_m_tri_attack_mvl/mxv .byte BEND , c_v-20 .byte W01 - .byte VOL , 17*se_w161_mvl/mxv + .byte VOL , 17*se_m_tri_attack_mvl/mxv .byte BEND , c_v-34 .byte W10 .byte FINE @********************** Track 2 **********************@ -se_w161_2: - .byte KEYSH , se_w161_key+0 +se_m_tri_attack_2: + .byte KEYSH , se_m_tri_attack_key+0 .byte VOICE , 4 - .byte VOL , 110*se_w161_mvl/mxv + .byte VOL , 110*se_m_tri_attack_mvl/mxv .byte N02 , Gs3 , v032 .byte W02 .byte Gn3 @@ -85,15 +85,15 @@ se_w161_2: @******************************************************@ .align 2 -se_w161: +se_m_tri_attack: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w161_pri @ Priority - .byte se_w161_rev @ Reverb. + .byte se_m_tri_attack_pri @ Priority + .byte se_m_tri_attack_rev @ Reverb. - .word se_w161_grp + .word se_m_tri_attack_grp - .word se_w161_1 - .word se_w161_2 + .word se_m_tri_attack_1 + .word se_m_tri_attack_2 .end diff --git a/sound/songs/se_w161b.s b/sound/songs/se_m_tri_attack2.s index 87c27eb7e..0afade13c 100644 --- a/sound/songs/se_w161b.s +++ b/sound/songs/se_m_tri_attack2.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w161b_grp, voicegroup128 - .equ se_w161b_pri, 4 - .equ se_w161b_rev, reverb_set+50 - .equ se_w161b_mvl, 127 - .equ se_w161b_key, 0 - .equ se_w161b_tbs, 1 - .equ se_w161b_exg, 0 - .equ se_w161b_cmp, 1 + .equ se_m_tri_attack2_grp, voicegroup128 + .equ se_m_tri_attack2_pri, 4 + .equ se_m_tri_attack2_rev, reverb_set+50 + .equ se_m_tri_attack2_mvl, 127 + .equ se_m_tri_attack2_key, 0 + .equ se_m_tri_attack2_tbs, 1 + .equ se_m_tri_attack2_exg, 0 + .equ se_m_tri_attack2_cmp, 1 .section .rodata - .global se_w161b + .global se_m_tri_attack2 .align 2 @********************** Track 1 **********************@ -se_w161b_1: - .byte KEYSH , se_w161b_key+0 - .byte TEMPO , 220*se_w161b_tbs/2 +se_m_tri_attack2_1: + .byte KEYSH , se_m_tri_attack2_key+0 + .byte TEMPO , 220*se_m_tri_attack2_tbs/2 .byte VOICE , 18 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 110*se_w161b_mvl/mxv + .byte VOL , 110*se_m_tri_attack2_mvl/mxv .byte BEND , c_v+0 .byte N09 , An3 , v127 .byte W03 @@ -65,28 +65,28 @@ se_w161b_1: .byte PAN , c_v+0 .byte BEND , c_v-22 .byte W06 - .byte VOL , 103*se_w161b_mvl/mxv + .byte VOL , 103*se_m_tri_attack2_mvl/mxv .byte PAN , c_v+10 .byte W03 .byte BEND , c_v-32 .byte W03 .byte PAN , c_v+0 .byte W03 - .byte VOL , 95*se_w161b_mvl/mxv + .byte VOL , 95*se_m_tri_attack2_mvl/mxv .byte BEND , c_v-38 .byte W03 .byte PAN , c_v-9 .byte W05 .byte BEND , c_v-45 .byte W01 - .byte VOL , 66*se_w161b_mvl/mxv + .byte VOL , 66*se_m_tri_attack2_mvl/mxv .byte PAN , c_v+0 .byte W05 .byte c_v+10 .byte W01 .byte BEND , c_v-52 .byte W03 - .byte VOL , 21*se_w161b_mvl/mxv + .byte VOL , 21*se_m_tri_attack2_mvl/mxv .byte W02 .byte PAN , c_v+0 .byte W04 @@ -94,10 +94,10 @@ se_w161b_1: @********************** Track 2 **********************@ -se_w161b_2: - .byte KEYSH , se_w161b_key+0 +se_m_tri_attack2_2: + .byte KEYSH , se_m_tri_attack2_key+0 .byte VOICE , 4 - .byte VOL , 110*se_w161b_mvl/mxv + .byte VOL , 110*se_m_tri_attack2_mvl/mxv .byte N06 , Cn3 , v060 .byte W09 .byte N15 @@ -110,15 +110,15 @@ se_w161b_2: @******************************************************@ .align 2 -se_w161b: +se_m_tri_attack2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w161b_pri @ Priority - .byte se_w161b_rev @ Reverb. + .byte se_m_tri_attack2_pri @ Priority + .byte se_m_tri_attack2_rev @ Reverb. - .word se_w161b_grp + .word se_m_tri_attack2_grp - .word se_w161b_1 - .word se_w161b_2 + .word se_m_tri_attack2_1 + .word se_m_tri_attack2_2 .end diff --git a/sound/songs/se_w239.s b/sound/songs/se_m_twister.s index fc18c1d5c..e95e9b322 100644 --- a/sound/songs/se_w239.s +++ b/sound/songs/se_m_twister.s @@ -1,44 +1,44 @@ .include "MPlayDef.s" - .equ se_w239_grp, voicegroup128 - .equ se_w239_pri, 4 - .equ se_w239_rev, reverb_set+50 - .equ se_w239_mvl, 127 - .equ se_w239_key, 0 - .equ se_w239_tbs, 1 - .equ se_w239_exg, 0 - .equ se_w239_cmp, 1 + .equ se_m_twister_grp, voicegroup128 + .equ se_m_twister_pri, 4 + .equ se_m_twister_rev, reverb_set+50 + .equ se_m_twister_mvl, 127 + .equ se_m_twister_key, 0 + .equ se_m_twister_tbs, 1 + .equ se_m_twister_exg, 0 + .equ se_m_twister_cmp, 1 .section .rodata - .global se_w239 + .global se_m_twister .align 2 @********************** Track 1 **********************@ -se_w239_1: - .byte KEYSH , se_w239_key+0 - .byte TEMPO , 150*se_w239_tbs/2 +se_m_twister_1: + .byte KEYSH , se_m_twister_key+0 + .byte TEMPO , 150*se_m_twister_tbs/2 .byte VOICE , 22 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 67*se_w239_mvl/mxv + .byte VOL , 67*se_m_twister_mvl/mxv .byte BEND , c_v+0 .byte TIE , Dn2 , v127 .byte W03 - .byte VOL , 83*se_w239_mvl/mxv + .byte VOL , 83*se_m_twister_mvl/mxv .byte BEND , c_v+22 .byte W03 - .byte VOL , 88*se_w239_mvl/mxv + .byte VOL , 88*se_m_twister_mvl/mxv .byte PAN , c_v-4 .byte W03 - .byte VOL , 95*se_w239_mvl/mxv + .byte VOL , 95*se_m_twister_mvl/mxv .byte W02 .byte BEND , c_v+8 .byte W01 - .byte VOL , 105*se_w239_mvl/mxv + .byte VOL , 105*se_m_twister_mvl/mxv .byte PAN , c_v-8 .byte W03 - .byte VOL , 115*se_w239_mvl/mxv + .byte VOL , 115*se_m_twister_mvl/mxv .byte W02 .byte BEND , c_v+0 .byte W01 @@ -101,7 +101,7 @@ se_w239_1: .byte PAN , c_v-8 .byte W03 .byte c_v-11 - .byte VOL , 103*se_w239_mvl/mxv + .byte VOL , 103*se_m_twister_mvl/mxv .byte W03 .byte PAN , c_v-17 .byte W01 @@ -109,41 +109,41 @@ se_w239_1: .byte W05 .byte PAN , c_v-9 .byte W01 - .byte VOL , 97*se_w239_mvl/mxv + .byte VOL , 97*se_m_twister_mvl/mxv .byte W05 .byte PAN , c_v-3 .byte W01 .byte BEND , c_v+12 .byte W02 .byte PAN , c_v+6 - .byte VOL , 88*se_w239_mvl/mxv + .byte VOL , 88*se_m_twister_mvl/mxv .byte W03 .byte PAN , c_v+10 .byte W02 .byte BEND , c_v+7 .byte W02 - .byte VOL , 79*se_w239_mvl/mxv + .byte VOL , 79*se_m_twister_mvl/mxv .byte W02 .byte PAN , c_v+16 .byte W04 - .byte VOL , 62*se_w239_mvl/mxv + .byte VOL , 62*se_m_twister_mvl/mxv .byte BEND , c_v+0 .byte W02 .byte PAN , c_v+13 .byte W04 - .byte VOL , 45*se_w239_mvl/mxv + .byte VOL , 45*se_m_twister_mvl/mxv .byte W02 .byte PAN , c_v+8 .byte W01 .byte BEND , c_v-7 .byte W01 - .byte VOL , 33*se_w239_mvl/mxv + .byte VOL , 33*se_m_twister_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte W03 .byte c_v-8 .byte W01 - .byte VOL , 18*se_w239_mvl/mxv + .byte VOL , 18*se_m_twister_mvl/mxv .byte W02 .byte PAN , c_v-11 .byte W03 @@ -152,43 +152,43 @@ se_w239_1: @********************** Track 2 **********************@ -se_w239_2: - .byte KEYSH , se_w239_key+0 +se_m_twister_2: + .byte KEYSH , se_m_twister_key+0 .byte VOICE , 25 - .byte VOL , 67*se_w239_mvl/mxv + .byte VOL , 67*se_m_twister_mvl/mxv .byte TIE , Gs4 , v012 .byte W03 - .byte VOL , 83*se_w239_mvl/mxv + .byte VOL , 83*se_m_twister_mvl/mxv .byte W03 - .byte 88*se_w239_mvl/mxv + .byte 88*se_m_twister_mvl/mxv .byte W03 - .byte 95*se_w239_mvl/mxv + .byte 95*se_m_twister_mvl/mxv .byte W03 - .byte 105*se_w239_mvl/mxv + .byte 105*se_m_twister_mvl/mxv .byte W03 - .byte 115*se_w239_mvl/mxv + .byte 115*se_m_twister_mvl/mxv .byte W09 .byte W24 .byte W24 .byte W24 .byte W21 - .byte 103*se_w239_mvl/mxv + .byte 103*se_m_twister_mvl/mxv .byte W03 .byte W07 - .byte 97*se_w239_mvl/mxv + .byte 97*se_m_twister_mvl/mxv .byte W08 - .byte 88*se_w239_mvl/mxv + .byte 88*se_m_twister_mvl/mxv .byte W07 - .byte 79*se_w239_mvl/mxv + .byte 79*se_m_twister_mvl/mxv .byte W02 .byte W04 - .byte 62*se_w239_mvl/mxv + .byte 62*se_m_twister_mvl/mxv .byte W06 - .byte 45*se_w239_mvl/mxv + .byte 45*se_m_twister_mvl/mxv .byte W04 - .byte 33*se_w239_mvl/mxv + .byte 33*se_m_twister_mvl/mxv .byte W05 - .byte 18*se_w239_mvl/mxv + .byte 18*se_m_twister_mvl/mxv .byte W05 .byte EOT .byte FINE @@ -196,15 +196,15 @@ se_w239_2: @******************************************************@ .align 2 -se_w239: +se_m_twister: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w239_pri @ Priority - .byte se_w239_rev @ Reverb. + .byte se_m_twister_pri @ Priority + .byte se_m_twister_rev @ Reverb. - .word se_w239_grp + .word se_m_twister_grp - .word se_w239_1 - .word se_w239_2 + .word se_m_twister_1 + .word se_m_twister_2 .end diff --git a/sound/songs/se_w253.s b/sound/songs/se_m_uproar.s index e33de4550..c60cccee4 100644 --- a/sound/songs/se_w253.s +++ b/sound/songs/se_m_uproar.s @@ -1,41 +1,41 @@ .include "MPlayDef.s" - .equ se_w253_grp, voicegroup128 - .equ se_w253_pri, 4 - .equ se_w253_rev, reverb_set+50 - .equ se_w253_mvl, 127 - .equ se_w253_key, 0 - .equ se_w253_tbs, 1 - .equ se_w253_exg, 0 - .equ se_w253_cmp, 1 + .equ se_m_uproar_grp, voicegroup128 + .equ se_m_uproar_pri, 4 + .equ se_m_uproar_rev, reverb_set+50 + .equ se_m_uproar_mvl, 127 + .equ se_m_uproar_key, 0 + .equ se_m_uproar_tbs, 1 + .equ se_m_uproar_exg, 0 + .equ se_m_uproar_cmp, 1 .section .rodata - .global se_w253 + .global se_m_uproar .align 2 @********************** Track 1 **********************@ -se_w253_1: - .byte KEYSH , se_w253_key+0 - .byte TEMPO , 150*se_w253_tbs/2 +se_m_uproar_1: + .byte KEYSH , se_m_uproar_key+0 + .byte TEMPO , 150*se_m_uproar_tbs/2 .byte VOICE , 60 .byte BENDR , 12 - .byte VOL , 25*se_w253_mvl/mxv + .byte VOL , 25*se_m_uproar_mvl/mxv .byte PAN , c_v+0 .byte BEND , c_v+0 .byte N24 , Gs2 , v127 .byte W01 .byte PAN , c_v+2 - .byte VOL , 51*se_w253_mvl/mxv + .byte VOL , 51*se_m_uproar_mvl/mxv .byte W01 .byte PAN , c_v+5 - .byte VOL , 74*se_w253_mvl/mxv + .byte VOL , 74*se_m_uproar_mvl/mxv .byte W01 - .byte 89*se_w253_mvl/mxv + .byte 89*se_m_uproar_mvl/mxv .byte BEND , c_v+1 .byte W01 .byte PAN , c_v+2 - .byte VOL , 100*se_w253_mvl/mxv + .byte VOL , 100*se_m_uproar_mvl/mxv .byte W02 .byte PAN , c_v+0 .byte W01 @@ -57,30 +57,30 @@ se_w253_1: .byte W02 .byte c_v+0 .byte W01 - .byte VOL , 85*se_w253_mvl/mxv + .byte VOL , 85*se_m_uproar_mvl/mxv .byte PAN , c_v-2 .byte W01 .byte c_v-4 - .byte VOL , 62*se_w253_mvl/mxv + .byte VOL , 62*se_m_uproar_mvl/mxv .byte W01 - .byte 33*se_w253_mvl/mxv + .byte 33*se_m_uproar_mvl/mxv .byte W01 .byte PAN , c_v-2 - .byte VOL , 11*se_w253_mvl/mxv + .byte VOL , 11*se_m_uproar_mvl/mxv .byte W02 .byte FINE @******************************************************@ .align 2 -se_w253: +se_m_uproar: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w253_pri @ Priority - .byte se_w253_rev @ Reverb. + .byte se_m_uproar_pri @ Priority + .byte se_m_uproar_rev @ Reverb. - .word se_w253_grp + .word se_m_uproar_grp - .word se_w253_1 + .word se_m_uproar_1 .end diff --git a/sound/songs/se_m_vital_throw.s b/sound/songs/se_m_vital_throw.s new file mode 100644 index 000000000..c89d003b6 --- /dev/null +++ b/sound/songs/se_m_vital_throw.s @@ -0,0 +1,75 @@ + .include "MPlayDef.s" + + .equ se_m_vital_throw_grp, voicegroup128 + .equ se_m_vital_throw_pri, 4 + .equ se_m_vital_throw_rev, reverb_set+50 + .equ se_m_vital_throw_mvl, 127 + .equ se_m_vital_throw_key, 0 + .equ se_m_vital_throw_tbs, 1 + .equ se_m_vital_throw_exg, 0 + .equ se_m_vital_throw_cmp, 1 + + .section .rodata + .global se_m_vital_throw + .align 2 + +@********************** Track 1 **********************@ + +se_m_vital_throw_1: + .byte KEYSH , se_m_vital_throw_key+0 + .byte TEMPO , 220*se_m_vital_throw_tbs/2 + .byte VOICE , 22 + .byte VOL , 110*se_m_vital_throw_mvl/mxv + .byte BENDR , 12 + .byte PAN , c_v+16 + .byte BEND , c_v+46 + .byte N09 , Cn3 , v127 + .byte W03 + .byte VOL , 104*se_m_vital_throw_mvl/mxv + .byte PAN , c_v+0 + .byte BEND , c_v+23 + .byte W03 + .byte VOL , 93*se_m_vital_throw_mvl/mxv + .byte PAN , c_v-16 + .byte BEND , c_v-15 + .byte W03 + .byte VOICE , 21 + .byte VOL , 110*se_m_vital_throw_mvl/mxv + .byte BEND , c_v+0 + .byte N03 , Gn4 + .byte W06 + .byte PAN , c_v+16 + .byte N03 , Cn5 + .byte W09 + .byte FINE + +@********************** Track 2 **********************@ + +se_m_vital_throw_2: + .byte KEYSH , se_m_vital_throw_key+0 + .byte VOICE , 4 + .byte VOL , 110*se_m_vital_throw_mvl/mxv + .byte W09 + .byte PAN , c_v+8 + .byte N03 , Cn3 , v052 + .byte W06 + .byte PAN , c_v-7 + .byte N03 + .byte W09 + .byte FINE + +@******************************************************@ + .align 2 + +se_m_vital_throw: + .byte 2 @ NumTrks + .byte 0 @ NumBlks + .byte se_m_vital_throw_pri @ Priority + .byte se_m_vital_throw_rev @ Reverb. + + .word se_m_vital_throw_grp + + .word se_m_vital_throw_1 + .word se_m_vital_throw_2 + + .end diff --git a/sound/songs/se_w233b.s b/sound/songs/se_m_vital_throw2.s index 65d256d9a..3bffdeb25 100644 --- a/sound/songs/se_w233b.s +++ b/sound/songs/se_m_vital_throw2.s @@ -1,25 +1,25 @@ .include "MPlayDef.s" - .equ se_w233b_grp, voicegroup128 - .equ se_w233b_pri, 4 - .equ se_w233b_rev, reverb_set+50 - .equ se_w233b_mvl, 127 - .equ se_w233b_key, 0 - .equ se_w233b_tbs, 1 - .equ se_w233b_exg, 0 - .equ se_w233b_cmp, 1 + .equ se_m_vital_throw2_grp, voicegroup128 + .equ se_m_vital_throw2_pri, 4 + .equ se_m_vital_throw2_rev, reverb_set+50 + .equ se_m_vital_throw2_mvl, 127 + .equ se_m_vital_throw2_key, 0 + .equ se_m_vital_throw2_tbs, 1 + .equ se_m_vital_throw2_exg, 0 + .equ se_m_vital_throw2_cmp, 1 .section .rodata - .global se_w233b + .global se_m_vital_throw2 .align 2 @********************** Track 1 **********************@ -se_w233b_1: - .byte KEYSH , se_w233b_key+0 - .byte TEMPO , 220*se_w233b_tbs/2 +se_m_vital_throw2_1: + .byte KEYSH , se_m_vital_throw2_key+0 + .byte TEMPO , 220*se_m_vital_throw2_tbs/2 .byte VOICE , 6 - .byte VOL , 110*se_w233b_mvl/mxv + .byte VOL , 110*se_m_vital_throw2_mvl/mxv .byte BENDR , 12 .byte PAN , c_v+0 .byte BEND , c_v+0 @@ -57,16 +57,16 @@ se_w233b_1: .byte W01 .byte c_v-29 .byte W01 - .byte VOL , 86*se_w233b_mvl/mxv + .byte VOL , 86*se_m_vital_throw2_mvl/mxv .byte BEND , c_v-39 .byte W02 - .byte VOL , 69*se_w233b_mvl/mxv + .byte VOL , 69*se_m_vital_throw2_mvl/mxv .byte BEND , c_v-45 .byte W01 - .byte VOL , 53*se_w233b_mvl/mxv + .byte VOL , 53*se_m_vital_throw2_mvl/mxv .byte BEND , c_v-56 .byte W01 - .byte VOL , 20*se_w233b_mvl/mxv + .byte VOL , 20*se_m_vital_throw2_mvl/mxv .byte BEND , c_v-64 .byte W04 .byte c_v-64 @@ -74,12 +74,12 @@ se_w233b_1: @********************** Track 2 **********************@ -se_w233b_2: - .byte KEYSH , se_w233b_key+0 +se_m_vital_throw2_2: + .byte KEYSH , se_m_vital_throw2_key+0 .byte VOICE , 5 .byte XCMD , xIECV , 10 .byte xIECL , 8 - .byte VOL , 110*se_w233b_mvl/mxv + .byte VOL , 110*se_m_vital_throw2_mvl/mxv .byte PAN , c_v+9 .byte N03 , Gs2 , v052 .byte W06 @@ -94,15 +94,15 @@ se_w233b_2: @******************************************************@ .align 2 -se_w233b: +se_m_vital_throw2: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w233b_pri @ Priority - .byte se_w233b_rev @ Reverb. + .byte se_m_vital_throw2_pri @ Priority + .byte se_m_vital_throw2_rev @ Reverb. - .word se_w233b_grp + .word se_m_vital_throw2_grp - .word se_w233b_1 - .word se_w233b_2 + .word se_m_vital_throw2_1 + .word se_m_vital_throw2_2 .end diff --git a/sound/songs/se_w127.s b/sound/songs/se_m_waterfall.s index 695697698..a07e7e971 100644 --- a/sound/songs/se_w127.s +++ b/sound/songs/se_m_waterfall.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w127_grp, voicegroup128 - .equ se_w127_pri, 4 - .equ se_w127_rev, reverb_set+50 - .equ se_w127_mvl, 127 - .equ se_w127_key, 0 - .equ se_w127_tbs, 1 - .equ se_w127_exg, 0 - .equ se_w127_cmp, 1 + .equ se_m_waterfall_grp, voicegroup128 + .equ se_m_waterfall_pri, 4 + .equ se_m_waterfall_rev, reverb_set+50 + .equ se_m_waterfall_mvl, 127 + .equ se_m_waterfall_key, 0 + .equ se_m_waterfall_tbs, 1 + .equ se_m_waterfall_exg, 0 + .equ se_m_waterfall_cmp, 1 .section .rodata - .global se_w127 + .global se_m_waterfall .align 2 @********************** Track 1 **********************@ -se_w127_1: - .byte KEYSH , se_w127_key+0 - .byte TEMPO , 150*se_w127_tbs/2 +se_m_waterfall_1: + .byte KEYSH , se_m_waterfall_key+0 + .byte TEMPO , 150*se_m_waterfall_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 115*se_w127_mvl/mxv + .byte VOL , 115*se_m_waterfall_mvl/mxv .byte BEND , c_v-18 .byte N60 , Gn2 , v127 .byte W03 @@ -54,62 +54,62 @@ se_w127_1: .byte PAN , c_v+3 .byte BEND , c_v+7 .byte W02 - .byte VOL , 109*se_w127_mvl/mxv + .byte VOL , 109*se_m_waterfall_mvl/mxv .byte W02 .byte PAN , c_v+6 .byte BEND , c_v+10 .byte W02 - .byte VOL , 103*se_w127_mvl/mxv + .byte VOL , 103*se_m_waterfall_mvl/mxv .byte W01 .byte PAN , c_v+3 .byte BEND , c_v+13 .byte W03 - .byte VOL , 92*se_w127_mvl/mxv + .byte VOL , 92*se_m_waterfall_mvl/mxv .byte W01 .byte PAN , c_v+0 .byte BEND , c_v+16 .byte W03 - .byte VOL , 79*se_w127_mvl/mxv + .byte VOL , 79*se_m_waterfall_mvl/mxv .byte PAN , c_v-3 .byte BEND , c_v+18 .byte W02 .byte W02 - .byte VOL , 62*se_w127_mvl/mxv + .byte VOL , 62*se_m_waterfall_mvl/mxv .byte PAN , c_v-6 .byte BEND , c_v+21 .byte W04 - .byte VOL , 40*se_w127_mvl/mxv + .byte VOL , 40*se_m_waterfall_mvl/mxv .byte PAN , c_v-3 .byte BEND , c_v+26 .byte W02 - .byte VOL , 22*se_w127_mvl/mxv + .byte VOL , 22*se_m_waterfall_mvl/mxv .byte BEND , c_v+33 .byte W01 .byte PAN , c_v+0 .byte W01 - .byte VOL , 8*se_w127_mvl/mxv + .byte VOL , 8*se_m_waterfall_mvl/mxv .byte BEND , c_v+43 .byte W02 .byte FINE @********************** Track 2 **********************@ -se_w127_2: - .byte KEYSH , se_w127_key+0 +se_m_waterfall_2: + .byte KEYSH , se_m_waterfall_key+0 .byte VOICE , 25 - .byte VOL , 115*se_w127_mvl/mxv + .byte VOL , 115*se_m_waterfall_mvl/mxv .byte N06 , Cn3 , v040 .byte W06 .byte Gn2 .byte W06 -se_w127_2_000: +se_m_waterfall_2_000: .byte N06 , Cn3 , v040 .byte W06 .byte Gn2 .byte W06 .byte PEND .byte PATT - .word se_w127_2_000 + .word se_m_waterfall_2_000 .byte N06 , Cn3 , v032 .byte W06 .byte Gn2 @@ -123,15 +123,15 @@ se_w127_2_000: @******************************************************@ .align 2 -se_w127: +se_m_waterfall: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w127_pri @ Priority - .byte se_w127_rev @ Reverb. + .byte se_m_waterfall_pri @ Priority + .byte se_m_waterfall_rev @ Reverb. - .word se_w127_grp + .word se_m_waterfall_grp - .word se_w127_1 - .word se_w127_2 + .word se_m_waterfall_1 + .word se_m_waterfall_2 .end diff --git a/sound/songs/se_w250.s b/sound/songs/se_m_whirlpool.s index 20a660411..bac3fa5bc 100644 --- a/sound/songs/se_w250.s +++ b/sound/songs/se_m_whirlpool.s @@ -1,27 +1,27 @@ .include "MPlayDef.s" - .equ se_w250_grp, voicegroup128 - .equ se_w250_pri, 4 - .equ se_w250_rev, reverb_set+50 - .equ se_w250_mvl, 127 - .equ se_w250_key, 0 - .equ se_w250_tbs, 1 - .equ se_w250_exg, 0 - .equ se_w250_cmp, 1 + .equ se_m_whirlpool_grp, voicegroup128 + .equ se_m_whirlpool_pri, 4 + .equ se_m_whirlpool_rev, reverb_set+50 + .equ se_m_whirlpool_mvl, 127 + .equ se_m_whirlpool_key, 0 + .equ se_m_whirlpool_tbs, 1 + .equ se_m_whirlpool_exg, 0 + .equ se_m_whirlpool_cmp, 1 .section .rodata - .global se_w250 + .global se_m_whirlpool .align 2 @********************** Track 1 **********************@ -se_w250_1: - .byte KEYSH , se_w250_key+0 - .byte TEMPO , 150*se_w250_tbs/2 +se_m_whirlpool_1: + .byte KEYSH , se_m_whirlpool_key+0 + .byte TEMPO , 150*se_m_whirlpool_tbs/2 .byte VOICE , 36 .byte BENDR , 12 .byte PAN , c_v+0 - .byte VOL , 115*se_w250_mvl/mxv + .byte VOL , 115*se_m_whirlpool_mvl/mxv .byte BEND , c_v-18 .byte TIE , Dn2 , v127 .byte W03 @@ -72,37 +72,37 @@ se_w250_1: .byte W05 .byte PAN , c_v+6 .byte W02 - .byte VOL , 103*se_w250_mvl/mxv + .byte VOL , 103*se_m_whirlpool_mvl/mxv .byte W01 .byte BEND , c_v+0 .byte W03 .byte PAN , c_v+4 .byte W01 - .byte VOL , 85*se_w250_mvl/mxv + .byte VOL , 85*se_m_whirlpool_mvl/mxv .byte W01 .byte BEND , c_v-5 .byte W04 .byte PAN , c_v+0 .byte W01 - .byte VOL , 71*se_w250_mvl/mxv + .byte VOL , 71*se_m_whirlpool_mvl/mxv .byte W02 .byte BEND , c_v-8 .byte W03 - .byte VOL , 52*se_w250_mvl/mxv + .byte VOL , 52*se_m_whirlpool_mvl/mxv .byte PAN , c_v-4 .byte W03 .byte BEND , c_v-12 .byte W01 - .byte VOL , 32*se_w250_mvl/mxv + .byte VOL , 32*se_m_whirlpool_mvl/mxv .byte W02 .byte PAN , c_v-10 .byte W03 - .byte VOL , 11*se_w250_mvl/mxv + .byte VOL , 11*se_m_whirlpool_mvl/mxv .byte BEND , c_v-19 .byte W03 .byte PAN , c_v-15 .byte W01 - .byte VOL , 6*se_w250_mvl/mxv + .byte VOL , 6*se_m_whirlpool_mvl/mxv .byte W01 .byte BEND , c_v-28 .byte W04 @@ -112,14 +112,14 @@ se_w250_1: @******************************************************@ .align 2 -se_w250: +se_m_whirlpool: .byte 1 @ NumTrks .byte 0 @ NumBlks - .byte se_w250_pri @ Priority - .byte se_w250_rev @ Reverb. + .byte se_m_whirlpool_pri @ Priority + .byte se_m_whirlpool_rev @ Reverb. - .word se_w250_grp + .word se_m_whirlpool_grp - .word se_w250_1 + .word se_m_whirlpool_1 .end diff --git a/sound/songs/se_w281.s b/sound/songs/se_m_yawn.s index 21f27203d..c6af1f361 100644 --- a/sound/songs/se_w281.s +++ b/sound/songs/se_m_yawn.s @@ -1,24 +1,24 @@ .include "MPlayDef.s" - .equ se_w281_grp, voicegroup128 - .equ se_w281_pri, 4 - .equ se_w281_rev, reverb_set+50 - .equ se_w281_mvl, 127 - .equ se_w281_key, 0 - .equ se_w281_tbs, 1 - .equ se_w281_exg, 0 - .equ se_w281_cmp, 1 + .equ se_m_yawn_grp, voicegroup128 + .equ se_m_yawn_pri, 4 + .equ se_m_yawn_rev, reverb_set+50 + .equ se_m_yawn_mvl, 127 + .equ se_m_yawn_key, 0 + .equ se_m_yawn_tbs, 1 + .equ se_m_yawn_exg, 0 + .equ se_m_yawn_cmp, 1 .section .rodata - .global se_w281 + .global se_m_yawn .align 2 @********************** Track 1 **********************@ -se_w281_1: - .byte VOL , 110*se_w281_mvl/mxv - .byte KEYSH , se_w281_key+0 - .byte TEMPO , 150*se_w281_tbs/2 +se_m_yawn_1: + .byte VOL , 110*se_m_yawn_mvl/mxv + .byte KEYSH , se_m_yawn_key+0 + .byte TEMPO , 150*se_m_yawn_tbs/2 .byte VOICE , 61 .byte BENDR , 44 .byte PAN , c_v+0 @@ -87,41 +87,41 @@ se_w281_1: @********************** Track 2 **********************@ -se_w281_2: - .byte KEYSH , se_w281_key+0 +se_m_yawn_2: + .byte KEYSH , se_m_yawn_key+0 .byte VOICE , 66 .byte BENDR , 44 .byte PAN , c_v+1 - .byte VOL , 110*se_w281_mvl/mxv + .byte VOL , 110*se_m_yawn_mvl/mxv .byte N48 , Dn3 , v020 .byte W24 .byte W03 - .byte VOL , 103*se_w281_mvl/mxv + .byte VOL , 103*se_m_yawn_mvl/mxv .byte W04 - .byte 96*se_w281_mvl/mxv + .byte 96*se_m_yawn_mvl/mxv .byte W03 - .byte 83*se_w281_mvl/mxv + .byte 83*se_m_yawn_mvl/mxv .byte W04 - .byte 67*se_w281_mvl/mxv + .byte 67*se_m_yawn_mvl/mxv .byte W04 - .byte 49*se_w281_mvl/mxv + .byte 49*se_m_yawn_mvl/mxv .byte W03 - .byte 23*se_w281_mvl/mxv + .byte 23*se_m_yawn_mvl/mxv .byte W03 .byte FINE @******************************************************@ .align 2 -se_w281: +se_m_yawn: .byte 2 @ NumTrks .byte 0 @ NumBlks - .byte se_w281_pri @ Priority - .byte se_w281_rev @ Reverb. + .byte se_m_yawn_pri @ Priority + .byte se_m_yawn_rev @ Reverb. - .word se_w281_grp + .word se_m_yawn_grp - .word se_w281_1 - .word se_w281_2 + .word se_m_yawn_1 + .word se_m_yawn_2 .end diff --git a/sound/songs/se_w052.s b/sound/songs/se_w052.s deleted file mode 100644 index 50529af91..000000000 --- a/sound/songs/se_w052.s +++ /dev/null @@ -1,61 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w052_grp, voicegroup128 - .equ se_w052_pri, 4 - .equ se_w052_rev, reverb_set+50 - .equ se_w052_mvl, 127 - .equ se_w052_key, 0 - .equ se_w052_tbs, 1 - .equ se_w052_exg, 0 - .equ se_w052_cmp, 1 - - .section .rodata - .global se_w052 - .align 2 - -@********************** Track 1 **********************@ - -se_w052_1: - .byte KEYSH , se_w052_key+0 - .byte TEMPO , 150*se_w052_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 61*se_w052_mvl/mxv - .byte BEND , c_v+8 - .byte N10 , Gn3 , v127 - .byte W01 - .byte VOL , 84*se_w052_mvl/mxv - .byte W01 - .byte 97*se_w052_mvl/mxv - .byte BEND , c_v+16 - .byte W01 - .byte VOL , 110*se_w052_mvl/mxv - .byte W01 - .byte BEND , c_v+7 - .byte W02 - .byte c_v-12 - .byte W01 - .byte VOL , 89*se_w052_mvl/mxv - .byte W01 - .byte 64*se_w052_mvl/mxv - .byte BEND , c_v-42 - .byte W01 - .byte VOL , 34*se_w052_mvl/mxv - .byte W15 - .byte FINE - -@******************************************************@ - .align 2 - -se_w052: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w052_pri @ Priority - .byte se_w052_rev @ Reverb. - - .word se_w052_grp - - .word se_w052_1 - - .end diff --git a/sound/songs/se_w059b.s b/sound/songs/se_w059b.s deleted file mode 100644 index f12762957..000000000 --- a/sound/songs/se_w059b.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w059b_grp, voicegroup128 - .equ se_w059b_pri, 4 - .equ se_w059b_rev, reverb_set+50 - .equ se_w059b_mvl, 127 - .equ se_w059b_key, 0 - .equ se_w059b_tbs, 1 - .equ se_w059b_exg, 0 - .equ se_w059b_cmp, 1 - - .section .rodata - .global se_w059b - .align 2 - -@********************** Track 1 **********************@ - -se_w059b_1: - .byte KEYSH , se_w059b_key+0 - .byte TEMPO , 150*se_w059b_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_w059b_mvl/mxv - .byte BEND , c_v+0 - .byte N24 , Gn3 , v108 - .byte W02 - .byte PAN , c_v-19 - .byte W04 - .byte c_v+0 - .byte W01 - .byte VOL , 97*se_w059b_mvl/mxv - .byte W01 - .byte PAN , c_v+16 - .byte W01 - .byte VOL , 84*se_w059b_mvl/mxv - .byte W03 - .byte 76*se_w059b_mvl/mxv - .byte PAN , c_v+2 - .byte W02 - .byte VOL , 55*se_w059b_mvl/mxv - .byte PAN , c_v-8 - .byte W02 - .byte VOL , 39*se_w059b_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 25*se_w059b_mvl/mxv - .byte W01 - .byte PAN , c_v+8 - .byte W01 - .byte VOL , 13*se_w059b_mvl/mxv - .byte W03 - .byte 7*se_w059b_mvl/mxv - .byte PAN , c_v+0 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_w059b: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w059b_pri @ Priority - .byte se_w059b_rev @ Reverb. - - .word se_w059b_grp - - .word se_w059b_1 - - .end diff --git a/sound/songs/se_w062b.s b/sound/songs/se_w062b.s deleted file mode 100644 index 75a04e448..000000000 --- a/sound/songs/se_w062b.s +++ /dev/null @@ -1,131 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w062b_grp, voicegroup128 - .equ se_w062b_pri, 4 - .equ se_w062b_rev, reverb_set+50 - .equ se_w062b_mvl, 127 - .equ se_w062b_key, 0 - .equ se_w062b_tbs, 1 - .equ se_w062b_exg, 0 - .equ se_w062b_cmp, 1 - - .section .rodata - .global se_w062b - .align 2 - -@********************** Track 1 **********************@ - -se_w062b_1: - .byte KEYSH , se_w062b_key+0 - .byte TEMPO , 150*se_w062b_tbs/2 - .byte VOICE , 9 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte VOL , 26*se_w062b_mvl/mxv - .byte BEND , c_v-23 - .byte N09 , Dn5 , v127 - .byte W01 - .byte VOL , 34*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 42*se_w062b_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_w062b_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_w062b_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W02 - .byte VOL , 85*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W01 - .byte VOL , 102*se_w062b_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W01 - .byte VOL , 120*se_w062b_mvl/mxv - .byte BEND , c_v-24 - .byte W02 - .byte VOL , 26*se_w062b_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-23 - .byte N09 , Dn5 , v100 - .byte W02 - .byte VOL , 34*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 42*se_w062b_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_w062b_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_w062b_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 85*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W02 - .byte VOL , 102*se_w062b_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W01 - .byte VOL , 120*se_w062b_mvl/mxv - .byte BEND , c_v-24 - .byte W02 - .byte VOL , 26*se_w062b_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-23 - .byte N09 , Dn5 , v080 - .byte W01 - .byte VOL , 34*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W02 - .byte VOL , 42*se_w062b_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_w062b_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_w062b_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 85*se_w062b_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W01 - .byte VOL , 102*se_w062b_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W02 - .byte VOL , 120*se_w062b_mvl/mxv - .byte BEND , c_v-24 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w062b: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w062b_pri @ Priority - .byte se_w062b_rev @ Reverb. - - .word se_w062b_grp - - .word se_w062b_1 - - .end diff --git a/sound/songs/se_w077.s b/sound/songs/se_w077.s deleted file mode 100644 index 8dd93481a..000000000 --- a/sound/songs/se_w077.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w077_grp, voicegroup128 - .equ se_w077_pri, 4 - .equ se_w077_rev, reverb_set+50 - .equ se_w077_mvl, 127 - .equ se_w077_key, 0 - .equ se_w077_tbs, 1 - .equ se_w077_exg, 0 - .equ se_w077_cmp, 1 - - .section .rodata - .global se_w077 - .align 2 - -@********************** Track 1 **********************@ - -se_w077_1: - .byte KEYSH , se_w077_key+0 - .byte TEMPO , 150*se_w077_tbs/2 - .byte VOICE , 18 - .byte BENDR , 12 - .byte VOL , 55*se_w077_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte N01 , Cn6 , v100 - .byte W01 - .byte VOL , 110*se_w077_mvl/mxv - .byte W01 - .byte VOICE , 36 - .byte VOL , 55*se_w077_mvl/mxv - .byte N02 , Gn6 , v080 - .byte W01 - .byte VOL , 110*se_w077_mvl/mxv - .byte W04 - .byte PAN , c_v+20 - .byte N01 , Gn6 , v024 - .byte W03 - .byte Gn6 , v016 - .byte W02 - .byte PAN , c_v-21 - .byte W12 - .byte FINE - -@******************************************************@ - .align 2 - -se_w077: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w077_pri @ Priority - .byte se_w077_rev @ Reverb. - - .word se_w077_grp - - .word se_w077_1 - - .end diff --git a/sound/songs/se_w082.s b/sound/songs/se_w082.s deleted file mode 100644 index 460cdd977..000000000 --- a/sound/songs/se_w082.s +++ /dev/null @@ -1,150 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w082_grp, voicegroup128 - .equ se_w082_pri, 4 - .equ se_w082_rev, reverb_set+50 - .equ se_w082_mvl, 127 - .equ se_w082_key, 0 - .equ se_w082_tbs, 1 - .equ se_w082_exg, 0 - .equ se_w082_cmp, 1 - - .section .rodata - .global se_w082 - .align 2 - -@********************** Track 1 **********************@ - -se_w082_1: - .byte KEYSH , se_w082_key+0 - .byte TEMPO , 150*se_w082_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+5 - .byte VOL , 21*se_w082_mvl/mxv - .byte BEND , c_v+0 - .byte N10 , An2 , v127 - .byte W02 - .byte VOL , 47*se_w082_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 88*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 120*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 21*se_w082_mvl/mxv - .byte BEND , c_v+10 - .byte N10 , Bn2 - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 47*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 88*se_w082_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte VOL , 120*se_w082_mvl/mxv - .byte W03 - .byte PAN , c_v-2 - .byte VOL , 21*se_w082_mvl/mxv - .byte BEND , c_v+18 - .byte N10 , Cs3 - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 47*se_w082_mvl/mxv - .byte W02 - .byte 88*se_w082_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 120*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 20*se_w082_mvl/mxv - .byte BEND , c_v+29 - .byte N10 , Dn3 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 47*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 88*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 120*se_w082_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 21*se_w082_mvl/mxv - .byte BEND , c_v+37 - .byte N10 , En3 - .byte W02 - .byte PAN , c_v-2 - .byte VOL , 46*se_w082_mvl/mxv - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 102*se_w082_mvl/mxv - .byte W02 - .byte 120*se_w082_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte VOL , 20*se_w082_mvl/mxv - .byte BEND , c_v+42 - .byte N20 , Fs3 - .byte W02 - .byte VOL , 47*se_w082_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 88*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 120*se_w082_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 99*se_w082_mvl/mxv - .byte BEND , c_v+50 - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 74*se_w082_mvl/mxv - .byte W01 - .byte BEND , c_v+56 - .byte W01 - .byte PAN , c_v-2 - .byte VOL , 53*se_w082_mvl/mxv - .byte W03 - .byte 34*se_w082_mvl/mxv - .byte BEND , c_v+63 - .byte W01 - .byte VOL , 15*se_w082_mvl/mxv - .byte W23 - .byte FINE - -@******************************************************@ - .align 2 - -se_w082: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w082_pri @ Priority - .byte se_w082_rev @ Reverb. - - .word se_w082_grp - - .word se_w082_1 - - .end diff --git a/sound/songs/se_w104.s b/sound/songs/se_w104.s deleted file mode 100644 index a93b52abe..000000000 --- a/sound/songs/se_w104.s +++ /dev/null @@ -1,71 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w104_grp, voicegroup128 - .equ se_w104_pri, 4 - .equ se_w104_rev, reverb_set+50 - .equ se_w104_mvl, 127 - .equ se_w104_key, 0 - .equ se_w104_tbs, 1 - .equ se_w104_exg, 0 - .equ se_w104_cmp, 1 - - .section .rodata - .global se_w104 - .align 2 - -@********************** Track 1 **********************@ - -se_w104_1: - .byte KEYSH , se_w104_key+0 - .byte TEMPO , 150*se_w104_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_w104_mvl/mxv - .byte BEND , c_v-18 - .byte N19 , Dn3 , v108 - .byte W02 - .byte BEND , c_v-7 - .byte W01 - .byte VOL , 101*se_w104_mvl/mxv - .byte W01 - .byte PAN , c_v-9 - .byte BEND , c_v+8 - .byte W02 - .byte VOL , 84*se_w104_mvl/mxv - .byte BEND , c_v+4 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 64*se_w104_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v+8 - .byte W02 - .byte VOL , 45*se_w104_mvl/mxv - .byte BEND , c_v-31 - .byte W02 - .byte VOL , 32*se_w104_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte VOICE , 2 - .byte W01 - .byte VOL , 13*se_w104_mvl/mxv - .byte BEND , c_v-52 - .byte W08 - .byte FINE - -@******************************************************@ - .align 2 - -se_w104: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w104_pri @ Priority - .byte se_w104_rev @ Reverb. - - .word se_w104_grp - - .word se_w104_1 - - .end diff --git a/sound/songs/se_w112.s b/sound/songs/se_w112.s deleted file mode 100644 index 3b741aa41..000000000 --- a/sound/songs/se_w112.s +++ /dev/null @@ -1,276 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w112_grp, voicegroup128 - .equ se_w112_pri, 4 - .equ se_w112_rev, reverb_set+50 - .equ se_w112_mvl, 127 - .equ se_w112_key, 0 - .equ se_w112_tbs, 1 - .equ se_w112_exg, 0 - .equ se_w112_cmp, 1 - - .section .rodata - .global se_w112 - .align 2 - -@********************** Track 1 **********************@ - -se_w112_1: - .byte KEYSH , se_w112_key+0 - .byte TEMPO , 150*se_w112_tbs/2 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v+3 - .byte N06 , Cn6 , v088 - .byte W01 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-8 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-17 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-34 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-45 - .byte W02 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Cn6 , v084 - .byte W01 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Cn6 , v076 - .byte W01 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Cn6 , v064 - .byte W01 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v056 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v044 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v036 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v028 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_w112_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_w112_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_w112_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_w112_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_w112_2: - .byte KEYSH , se_w112_key+0 - .byte VOICE , 53 - .byte PAN , c_v+0 - .byte VOL , 95*se_w112_mvl/mxv - .byte BEND , c_v-5 - .byte W02 - .byte N06 , An5 , v064 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v056 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 -se_w112_2_000: - .byte VOL , 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v052 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte PEND - .byte PATT - .word se_w112_2_000 - .byte VOL , 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v048 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v044 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v040 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W01 - .byte 95*se_w112_mvl/mxv - .byte N06 , An5 , v036 - .byte W02 - .byte VOL , 88*se_w112_mvl/mxv - .byte W02 - .byte 56*se_w112_mvl/mxv - .byte W01 - .byte 24*se_w112_mvl/mxv - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_w112: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w112_pri @ Priority - .byte se_w112_rev @ Reverb. - - .word se_w112_grp - - .word se_w112_1 - .word se_w112_2 - - .end diff --git a/sound/songs/se_w120.s b/sound/songs/se_w120.s deleted file mode 100644 index e86fac991..000000000 --- a/sound/songs/se_w120.s +++ /dev/null @@ -1,74 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w120_grp, voicegroup128 - .equ se_w120_pri, 4 - .equ se_w120_rev, reverb_set+50 - .equ se_w120_mvl, 127 - .equ se_w120_key, 0 - .equ se_w120_tbs, 1 - .equ se_w120_exg, 0 - .equ se_w120_cmp, 1 - - .section .rodata - .global se_w120 - .align 2 - -@********************** Track 1 **********************@ - -se_w120_1: - .byte KEYSH , se_w120_key+0 - .byte TEMPO , 150*se_w120_tbs/2 - .byte VOICE , 41 - .byte VOL , 115*se_w120_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Gn3 , v127 - .byte W01 - .byte Cn3 - .byte W01 - .byte N24 , An3 - .byte W06 - .byte PAN , c_v+6 - .byte W04 - .byte c_v+0 - .byte W01 - .byte VOL , 102*se_w120_mvl/mxv - .byte W02 - .byte PAN , c_v-8 - .byte VOL , 88*se_w120_mvl/mxv - .byte W03 - .byte 78*se_w120_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 67*se_w120_mvl/mxv - .byte W01 - .byte BEND , c_v-2 - .byte W01 - .byte PAN , c_v+7 - .byte VOL , 45*se_w120_mvl/mxv - .byte W02 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 13*se_w120_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-15 - .byte W22 - .byte FINE - -@******************************************************@ - .align 2 - -se_w120: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w120_pri @ Priority - .byte se_w120_rev @ Reverb. - - .word se_w120_grp - - .word se_w120_1 - - .end diff --git a/sound/songs/se_w145b.s b/sound/songs/se_w145b.s deleted file mode 100644 index d076bd331..000000000 --- a/sound/songs/se_w145b.s +++ /dev/null @@ -1,60 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w145b_grp, voicegroup128 - .equ se_w145b_pri, 4 - .equ se_w145b_rev, reverb_set+50 - .equ se_w145b_mvl, 127 - .equ se_w145b_key, 0 - .equ se_w145b_tbs, 1 - .equ se_w145b_exg, 0 - .equ se_w145b_cmp, 1 - - .section .rodata - .global se_w145b - .align 2 - -@********************** Track 1 **********************@ - -se_w145b_1: - .byte KEYSH , se_w145b_key+0 - .byte TEMPO , 220*se_w145b_tbs/2 - .byte VOICE , 24 - .byte VOL , 110*se_w145b_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W03 - .byte N09 , Gn4 , v127 - .byte W02 - .byte BEND , c_v+31 - .byte W02 - .byte c_v-34 - .byte W17 - .byte FINE - -@********************** Track 2 **********************@ - -se_w145b_2: - .byte KEYSH , se_w145b_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_w145b_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Cn4 , v044 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_w145b: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w145b_pri @ Priority - .byte se_w145b_rev @ Reverb. - - .word se_w145b_grp - - .word se_w145b_1 - .word se_w145b_2 - - .end diff --git a/sound/songs/se_w146.s b/sound/songs/se_w146.s deleted file mode 100644 index 824c66ac3..000000000 --- a/sound/songs/se_w146.s +++ /dev/null @@ -1,79 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w146_grp, voicegroup128 - .equ se_w146_pri, 4 - .equ se_w146_rev, reverb_set+50 - .equ se_w146_mvl, 127 - .equ se_w146_key, 0 - .equ se_w146_tbs, 1 - .equ se_w146_exg, 0 - .equ se_w146_cmp, 1 - - .section .rodata - .global se_w146 - .align 2 - -@********************** Track 1 **********************@ - -se_w146_1: - .byte KEYSH , se_w146_key+0 - .byte TEMPO , 150*se_w146_tbs/2 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 5*se_w146_mvl/mxv - .byte BEND , c_v+0 - .byte N07 , Bn5 , v080 - .byte W01 - .byte VOL , 55*se_w146_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+3 - .byte W01 - .byte VOL , 67*se_w146_mvl/mxv - .byte PAN , c_v+22 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 90*se_w146_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-12 - .byte BEND , c_v-14 - .byte W02 - .byte VOL , 4*se_w146_mvl/mxv - .byte PAN , c_v-22 - .byte BEND , c_v-23 - .byte W01 - .byte PAN , c_v-13 - .byte BEND , c_v+0 - .byte N04 , Cn6 - .byte W01 - .byte VOL , 66*se_w146_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte W01 - .byte VOL , 90*se_w146_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+3 - .byte W01 - .byte VOL , 4*se_w146_mvl/mxv - .byte PAN , c_v+21 - .byte BEND , c_v+5 - .byte W14 - .byte VOL , 90*se_w146_mvl/mxv - .byte FINE - -@******************************************************@ - .align 2 - -se_w146: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w146_pri @ Priority - .byte se_w146_rev @ Reverb. - - .word se_w146_grp - - .word se_w146_1 - - .end diff --git a/sound/songs/se_w166.s b/sound/songs/se_w166.s deleted file mode 100644 index afbe08f08..000000000 --- a/sound/songs/se_w166.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w166_grp, voicegroup128 - .equ se_w166_pri, 4 - .equ se_w166_rev, reverb_set+50 - .equ se_w166_mvl, 127 - .equ se_w166_key, 0 - .equ se_w166_tbs, 1 - .equ se_w166_exg, 0 - .equ se_w166_cmp, 1 - - .section .rodata - .global se_w166 - .align 2 - -@********************** Track 1 **********************@ - -se_w166_1: - .byte KEYSH , se_w166_key+0 - .byte TEMPO , 180*se_w166_tbs/2 - .byte VOICE , 38 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_w166_mvl/mxv - .byte BEND , c_v+0 - .byte N02 , Gn4 , v127 - .byte W01 - .byte VOL , 74*se_w166_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte VOICE , 31 - .byte VOL , 40*se_w166_mvl/mxv - .byte BEND , c_v-1 - .byte N03 , Cs5 - .byte W01 - .byte VOL , 64*se_w166_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-12 - .byte W01 - .byte VOL , 86*se_w166_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v-16 - .byte W02 - .byte VOL , 110*se_w166_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , As5 - .byte W01 - .byte BEND , c_v+12 - .byte W01 - .byte VOL , 0*se_w166_mvl/mxv - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_w166: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w166_pri @ Priority - .byte se_w166_rev @ Reverb. - - .word se_w166_grp - - .word se_w166_1 - - .end diff --git a/sound/songs/se_w172.s b/sound/songs/se_w172.s deleted file mode 100644 index 0c5ae6754..000000000 --- a/sound/songs/se_w172.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w172_grp, voicegroup128 - .equ se_w172_pri, 4 - .equ se_w172_rev, reverb_set+50 - .equ se_w172_mvl, 127 - .equ se_w172_key, 0 - .equ se_w172_tbs, 1 - .equ se_w172_exg, 0 - .equ se_w172_cmp, 1 - - .section .rodata - .global se_w172 - .align 2 - -@********************** Track 1 **********************@ - -se_w172_1: - .byte KEYSH , se_w172_key+0 - .byte TEMPO , 150*se_w172_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 22*se_w172_mvl/mxv - .byte BEND , c_v+0 - .byte N30 , Dn4 , v127 - .byte W01 - .byte VOL , 49*se_w172_mvl/mxv - .byte W01 - .byte 71*se_w172_mvl/mxv - .byte W01 - .byte 95*se_w172_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 110*se_w172_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte BEND , c_v+16 - .byte W01 - .byte VOL , 95*se_w172_mvl/mxv - .byte W02 - .byte 88*se_w172_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+7 - .byte W01 - .byte VOL , 93*se_w172_mvl/mxv - .byte W02 - .byte 110*se_w172_mvl/mxv - .byte PAN , c_v-5 - .byte BEND , c_v+0 - .byte W02 - .byte VOL , 86*se_w172_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-9 - .byte W01 - .byte VOL , 63*se_w172_mvl/mxv - .byte W02 - .byte 37*se_w172_mvl/mxv - .byte BEND , c_v-24 - .byte W03 - .byte VOL , 13*se_w172_mvl/mxv - .byte BEND , c_v-46 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_w172_2: - .byte KEYSH , se_w172_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 22*se_w172_mvl/mxv - .byte N30 , Gn2 , v032 - .byte W01 - .byte VOL , 49*se_w172_mvl/mxv - .byte W01 - .byte 71*se_w172_mvl/mxv - .byte W01 - .byte 95*se_w172_mvl/mxv - .byte W01 - .byte 110*se_w172_mvl/mxv - .byte W02 - .byte W01 - .byte 95*se_w172_mvl/mxv - .byte W02 - .byte 88*se_w172_mvl/mxv - .byte W01 - .byte 93*se_w172_mvl/mxv - .byte W02 - .byte 110*se_w172_mvl/mxv - .byte W02 - .byte 86*se_w172_mvl/mxv - .byte W01 - .byte W01 - .byte 63*se_w172_mvl/mxv - .byte W02 - .byte 37*se_w172_mvl/mxv - .byte W03 - .byte 13*se_w172_mvl/mxv - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_w172: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w172_pri @ Priority - .byte se_w172_rev @ Reverb. - - .word se_w172_grp - - .word se_w172_1 - .word se_w172_2 - - .end diff --git a/sound/songs/se_w172b.s b/sound/songs/se_w172b.s deleted file mode 100644 index 1d4369b00..000000000 --- a/sound/songs/se_w172b.s +++ /dev/null @@ -1,99 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w172b_grp, voicegroup128 - .equ se_w172b_pri, 4 - .equ se_w172b_rev, reverb_set+50 - .equ se_w172b_mvl, 127 - .equ se_w172b_key, 0 - .equ se_w172b_tbs, 1 - .equ se_w172b_exg, 0 - .equ se_w172b_cmp, 1 - - .section .rodata - .global se_w172b - .align 2 - -@********************** Track 1 **********************@ - -se_w172b_1: - .byte KEYSH , se_w172b_key+0 - .byte TEMPO , 150*se_w172b_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_w172b_mvl/mxv - .byte BEND , c_v+0 - .byte N48 , Cn4 , v127 - .byte W06 - .byte PAN , c_v+4 - .byte W03 - .byte BEND , c_v+2 - .byte W03 - .byte PAN , c_v+10 - .byte W03 - .byte BEND , c_v+5 - .byte W03 - .byte VOL , 98*se_w172b_mvl/mxv - .byte PAN , c_v+4 - .byte W03 - .byte BEND , c_v+3 - .byte W03 - .byte VOL , 88*se_w172b_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-5 - .byte W03 - .byte VOL , 68*se_w172b_mvl/mxv - .byte PAN , c_v-5 - .byte W03 - .byte c_v+7 - .byte BEND , c_v-9 - .byte W03 - .byte VOL , 44*se_w172b_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-15 - .byte W03 - .byte VOL , 13*se_w172b_mvl/mxv - .byte BEND , c_v-24 - .byte W03 - .byte c_v-40 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_w172b_2: - .byte KEYSH , se_w172b_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 110*se_w172b_mvl/mxv - .byte N48 , Gn2 , v032 - .byte W18 - .byte VOL , 98*se_w172b_mvl/mxv - .byte W06 - .byte 88*se_w172b_mvl/mxv - .byte W06 - .byte 68*se_w172b_mvl/mxv - .byte W06 - .byte 44*se_w172b_mvl/mxv - .byte W06 - .byte 13*se_w172b_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w172b: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w172b_pri @ Priority - .byte se_w172b_rev @ Reverb. - - .word se_w172b_grp - - .word se_w172b_1 - .word se_w172b_2 - - .end diff --git a/sound/songs/se_w187.s b/sound/songs/se_w187.s deleted file mode 100644 index d6c27b89c..000000000 --- a/sound/songs/se_w187.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w187_grp, voicegroup128 - .equ se_w187_pri, 4 - .equ se_w187_rev, reverb_set+50 - .equ se_w187_mvl, 127 - .equ se_w187_key, 0 - .equ se_w187_tbs, 1 - .equ se_w187_exg, 0 - .equ se_w187_cmp, 1 - - .section .rodata - .global se_w187 - .align 2 - -@********************** Track 1 **********************@ - -se_w187_1: - .byte KEYSH , se_w187_key+0 - .byte TEMPO , 150*se_w187_tbs/2 - .byte VOICE , 6 - .byte BENDR , 12 - .byte VOL , 115*se_w187_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N19 , An2 , v127 - .byte W01 - .byte BEND , c_v-6 - .byte W01 - .byte c_v-10 - .byte W01 - .byte c_v-14 - .byte W01 - .byte c_v-12 - .byte W02 - .byte c_v-14 - .byte W01 - .byte c_v-18 - .byte W01 - .byte VOL , 108*se_w187_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte c_v-22 - .byte W01 - .byte VOL , 94*se_w187_mvl/mxv - .byte W03 - .byte 78*se_w187_mvl/mxv - .byte W01 - .byte 62*se_w187_mvl/mxv - .byte W01 - .byte 40*se_w187_mvl/mxv - .byte W01 - .byte 27*se_w187_mvl/mxv - .byte W02 - .byte 12*se_w187_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w187: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w187_pri @ Priority - .byte se_w187_rev @ Reverb. - - .word se_w187_grp - - .word se_w187_1 - - .end diff --git a/sound/songs/se_w195.s b/sound/songs/se_w195.s deleted file mode 100644 index b78095248..000000000 --- a/sound/songs/se_w195.s +++ /dev/null @@ -1,221 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w195_grp, voicegroup128 - .equ se_w195_pri, 4 - .equ se_w195_rev, reverb_set+50 - .equ se_w195_mvl, 127 - .equ se_w195_key, 0 - .equ se_w195_tbs, 1 - .equ se_w195_exg, 0 - .equ se_w195_cmp, 1 - - .section .rodata - .global se_w195 - .align 2 - -@********************** Track 1 **********************@ - -se_w195_1: - .byte KEYSH , se_w195_key+0 - .byte TEMPO , 100*se_w195_tbs/2 - .byte VOICE , 73 - .byte BENDR , 12 - .byte LFOS , 40 - .byte PAN , c_v+7 - .byte VOL , 25*se_w195_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 29*se_w195_mvl/mxv - .byte W03 - .byte 33*se_w195_mvl/mxv - .byte N48 , An3 , v112 - .byte W03 - .byte VOL , 40*se_w195_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W02 -se_w195_1_000: - .byte VOL , 45*se_w195_mvl/mxv - .byte MOD , 8 - .byte W03 - .byte VOL , 51*se_w195_mvl/mxv - .byte W03 - .byte PEND -se_w195_1_001: - .byte VOL , 56*se_w195_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte VOL , 62*se_w195_mvl/mxv - .byte W03 - .byte PEND -se_w195_1_002: - .byte VOL , 72*se_w195_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte VOL , 81*se_w195_mvl/mxv - .byte W03 - .byte PEND -se_w195_1_003: - .byte VOL , 92*se_w195_mvl/mxv - .byte PAN , c_v-8 - .byte W03 - .byte VOL , 100*se_w195_mvl/mxv - .byte W03 - .byte PEND - .byte PAN , c_v-4 - .byte W06 - .byte VOL , 82*se_w195_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte VOL , 52*se_w195_mvl/mxv - .byte W03 - .byte 25*se_w195_mvl/mxv - .byte MOD , 0 - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 29*se_w195_mvl/mxv - .byte W01 - .byte PAN , c_v+7 - .byte W02 - .byte VOL , 33*se_w195_mvl/mxv - .byte N72 , Gs3 , v112 - .byte W03 - .byte VOL , 40*se_w195_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W02 - .byte PATT - .word se_w195_1_000 - .byte PATT - .word se_w195_1_001 - .byte PATT - .word se_w195_1_002 - .byte PATT - .word se_w195_1_003 - .byte PAN , c_v-4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v+4 - .byte W03 - .byte VOL , 87*se_w195_mvl/mxv - .byte W03 - .byte 75*se_w195_mvl/mxv - .byte PAN , c_v+7 - .byte W03 - .byte VOL , 62*se_w195_mvl/mxv - .byte W03 - .byte 48*se_w195_mvl/mxv - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 33*se_w195_mvl/mxv - .byte W03 - .byte 25*se_w195_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W02 - .byte VOL , 10*se_w195_mvl/mxv - .byte W03 - .byte W01 - .byte PAN , c_v-4 - .byte W05 - .byte FINE - -@********************** Track 2 **********************@ - -se_w195_2: - .byte KEYSH , se_w195_key+0 - .byte VOICE , 73 - .byte VOL , 25*se_w195_mvl/mxv - .byte PAN , c_v-17 - .byte N48 , Cn4 , v100 - .byte W03 - .byte VOL , 29*se_w195_mvl/mxv - .byte W03 - .byte 33*se_w195_mvl/mxv - .byte W03 - .byte 40*se_w195_mvl/mxv - .byte W03 -se_w195_2_000: - .byte VOL , 45*se_w195_mvl/mxv - .byte MOD , 8 - .byte W03 - .byte VOL , 51*se_w195_mvl/mxv - .byte W03 - .byte PEND - .byte 56*se_w195_mvl/mxv - .byte W03 - .byte 62*se_w195_mvl/mxv - .byte W03 - .byte 72*se_w195_mvl/mxv - .byte W03 - .byte 81*se_w195_mvl/mxv - .byte W03 - .byte 92*se_w195_mvl/mxv - .byte W03 - .byte 100*se_w195_mvl/mxv - .byte W03 - .byte W06 - .byte 82*se_w195_mvl/mxv - .byte W03 - .byte 52*se_w195_mvl/mxv - .byte W03 - .byte 25*se_w195_mvl/mxv - .byte MOD , 0 - .byte N72 , Bn3 , v100 - .byte W03 - .byte VOL , 29*se_w195_mvl/mxv - .byte W03 - .byte 33*se_w195_mvl/mxv - .byte W03 - .byte 40*se_w195_mvl/mxv - .byte W03 - .byte PATT - .word se_w195_2_000 - .byte VOL , 56*se_w195_mvl/mxv - .byte W03 - .byte 62*se_w195_mvl/mxv - .byte W03 - .byte 72*se_w195_mvl/mxv - .byte W03 - .byte 81*se_w195_mvl/mxv - .byte W03 - .byte 92*se_w195_mvl/mxv - .byte W03 - .byte 100*se_w195_mvl/mxv - .byte W03 - .byte W06 - .byte W06 - .byte W03 - .byte 87*se_w195_mvl/mxv - .byte W03 - .byte 75*se_w195_mvl/mxv - .byte W03 - .byte 62*se_w195_mvl/mxv - .byte W03 - .byte 48*se_w195_mvl/mxv - .byte W03 - .byte 33*se_w195_mvl/mxv - .byte W03 - .byte 25*se_w195_mvl/mxv - .byte W03 - .byte 10*se_w195_mvl/mxv - .byte W03 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w195: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w195_pri @ Priority - .byte se_w195_rev @ Reverb. - - .word se_w195_grp - - .word se_w195_1 - .word se_w195_2 - - .end diff --git a/sound/songs/se_w207.s b/sound/songs/se_w207.s deleted file mode 100644 index 1c0d0475b..000000000 --- a/sound/songs/se_w207.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w207_grp, voicegroup128 - .equ se_w207_pri, 4 - .equ se_w207_rev, reverb_set+50 - .equ se_w207_mvl, 127 - .equ se_w207_key, 0 - .equ se_w207_tbs, 1 - .equ se_w207_exg, 0 - .equ se_w207_cmp, 1 - - .section .rodata - .global se_w207 - .align 2 - -@********************** Track 1 **********************@ - -se_w207_1: - .byte KEYSH , se_w207_key+0 - .byte TEMPO , 190*se_w207_tbs/2 - .byte VOICE , 2 - .byte BENDR , 8 - .byte PAN , c_v+0 - .byte VOL , 28*se_w207_mvl/mxv - .byte BEND , c_v+0 - .byte N15 , An1 , v127 - .byte W01 - .byte VOL , 60*se_w207_mvl/mxv - .byte W01 - .byte 111*se_w207_mvl/mxv - .byte W01 - .byte 120*se_w207_mvl/mxv - .byte W01 - .byte BEND , c_v-3 - .byte W02 - .byte PAN , c_v+5 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 109*se_w207_mvl/mxv - .byte PAN , c_v+9 - .byte BEND , c_v-10 - .byte W01 - .byte PAN , c_v-9 - .byte BEND , c_v-14 - .byte W01 - .byte VOL , 95*se_w207_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-19 - .byte W02 - .byte VOL , 71*se_w207_mvl/mxv - .byte BEND , c_v-29 - .byte W01 - .byte VOL , 41*se_w207_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte VOL , 15*se_w207_mvl/mxv - .byte BEND , c_v-52 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_w207: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w207_pri @ Priority - .byte se_w207_rev @ Reverb. - - .word se_w207_grp - - .word se_w207_1 - - .end diff --git a/sound/songs/se_w221.s b/sound/songs/se_w221.s deleted file mode 100644 index 68e9d0957..000000000 --- a/sound/songs/se_w221.s +++ /dev/null @@ -1,105 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w221_grp, voicegroup128 - .equ se_w221_pri, 4 - .equ se_w221_rev, reverb_set+50 - .equ se_w221_mvl, 127 - .equ se_w221_key, 0 - .equ se_w221_tbs, 1 - .equ se_w221_exg, 0 - .equ se_w221_cmp, 1 - - .section .rodata - .global se_w221 - .align 2 - -@********************** Track 1 **********************@ - -se_w221_1: - .byte KEYSH , se_w221_key+0 - .byte TEMPO , 150*se_w221_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte VOL , 110*se_w221_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte N04 , Cn3 , v127 - .byte W03 - .byte PAN , c_v+0 - .byte W01 - .byte N18 , Gn4 - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 98*se_w221_mvl/mxv - .byte BEND , c_v+2 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 83*se_w221_mvl/mxv - .byte BEND , c_v+6 - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte BEND , c_v+9 - .byte W01 - .byte VOL , 63*se_w221_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte BEND , c_v+13 - .byte W02 - .byte VOL , 44*se_w221_mvl/mxv - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 28*se_w221_mvl/mxv - .byte BEND , c_v+20 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte VOL , 12*se_w221_mvl/mxv - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_w221_2: - .byte KEYSH , se_w221_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 110*se_w221_mvl/mxv - .byte N01 , Gn2 , v032 - .byte W02 - .byte N01 - .byte W02 - .byte N18 - .byte W03 - .byte VOL , 98*se_w221_mvl/mxv - .byte W03 - .byte 83*se_w221_mvl/mxv - .byte W04 - .byte 63*se_w221_mvl/mxv - .byte W04 - .byte 44*se_w221_mvl/mxv - .byte W02 - .byte 28*se_w221_mvl/mxv - .byte W02 - .byte 12*se_w221_mvl/mxv - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_w221: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w221_pri @ Priority - .byte se_w221_rev @ Reverb. - - .word se_w221_grp - - .word se_w221_1 - .word se_w221_2 - - .end diff --git a/sound/songs/se_w221b.s b/sound/songs/se_w221b.s deleted file mode 100644 index ed0120acf..000000000 --- a/sound/songs/se_w221b.s +++ /dev/null @@ -1,180 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w221b_grp, voicegroup128 - .equ se_w221b_pri, 4 - .equ se_w221b_rev, reverb_set+50 - .equ se_w221b_mvl, 127 - .equ se_w221b_key, 0 - .equ se_w221b_tbs, 1 - .equ se_w221b_exg, 0 - .equ se_w221b_cmp, 1 - - .section .rodata - .global se_w221b - .align 2 - -@********************** Track 1 **********************@ - -se_w221b_1: - .byte KEYSH , se_w221b_key+0 - .byte TEMPO , 150*se_w221b_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte VOL , 22*se_w221b_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte N96 , Gn3 , v127 - .byte W01 - .byte VOL , 49*se_w221b_mvl/mxv - .byte W01 - .byte 71*se_w221b_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 95*se_w221b_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 110*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte BEND , c_v+16 - .byte W03 - .byte VOL , 97*se_w221b_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+7 - .byte W03 - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 84*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-9 - .byte W03 - .byte VOL , 76*se_w221b_mvl/mxv - .byte PAN , c_v-5 - .byte BEND , c_v-24 - .byte W03 - .byte PAN , c_v-2 - .byte BEND , c_v-46 - .byte W03 - .byte VOL , 84*se_w221b_mvl/mxv - .byte PAN , c_v+5 - .byte W03 - .byte c_v+0 - .byte W01 - .byte VOL , 92*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte BEND , c_v-32 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 86*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W02 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 78*se_w221b_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte W02 - .byte VOL , 71*se_w221b_mvl/mxv - .byte W01 - .byte PAN , c_v-2 - .byte W03 - .byte c_v+5 - .byte W03 - .byte c_v+0 - .byte VOL , 78*se_w221b_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 86*se_w221b_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v+5 - .byte W02 - .byte VOL , 90*se_w221b_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte W03 - .byte c_v-2 - .byte W01 - .byte VOL , 80*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W03 - .byte c_v+0 - .byte W01 - .byte VOL , 86*se_w221b_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W03 - .byte c_v+0 - .byte VOL , 83*se_w221b_mvl/mxv - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 63*se_w221b_mvl/mxv - .byte W03 - .byte 37*se_w221b_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte VOL , 13*se_w221b_mvl/mxv - .byte W03 - .byte PAN , c_v-2 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_w221b_2: - .byte KEYSH , se_w221b_key+0 - .byte VOICE , 27 - .byte VOL , 22*se_w221b_mvl/mxv - .byte N96 , Gn2 , v032 - .byte W01 - .byte VOL , 49*se_w221b_mvl/mxv - .byte W01 - .byte 71*se_w221b_mvl/mxv - .byte W01 - .byte 95*se_w221b_mvl/mxv - .byte W01 - .byte 110*se_w221b_mvl/mxv - .byte W05 - .byte 97*se_w221b_mvl/mxv - .byte W15 - .byte W24 - .byte W24 - .byte W09 - .byte 83*se_w221b_mvl/mxv - .byte W03 - .byte 63*se_w221b_mvl/mxv - .byte W03 - .byte 37*se_w221b_mvl/mxv - .byte W03 - .byte 13*se_w221b_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w221b: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w221b_pri @ Priority - .byte se_w221b_rev @ Reverb. - - .word se_w221b_grp - - .word se_w221b_1 - .word se_w221b_2 - - .end diff --git a/sound/songs/se_w233.s b/sound/songs/se_w233.s deleted file mode 100644 index 84381fc0e..000000000 --- a/sound/songs/se_w233.s +++ /dev/null @@ -1,75 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w233_grp, voicegroup128 - .equ se_w233_pri, 4 - .equ se_w233_rev, reverb_set+50 - .equ se_w233_mvl, 127 - .equ se_w233_key, 0 - .equ se_w233_tbs, 1 - .equ se_w233_exg, 0 - .equ se_w233_cmp, 1 - - .section .rodata - .global se_w233 - .align 2 - -@********************** Track 1 **********************@ - -se_w233_1: - .byte KEYSH , se_w233_key+0 - .byte TEMPO , 220*se_w233_tbs/2 - .byte VOICE , 22 - .byte VOL , 110*se_w233_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+16 - .byte BEND , c_v+46 - .byte N09 , Cn3 , v127 - .byte W03 - .byte VOL , 104*se_w233_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+23 - .byte W03 - .byte VOL , 93*se_w233_mvl/mxv - .byte PAN , c_v-16 - .byte BEND , c_v-15 - .byte W03 - .byte VOICE , 21 - .byte VOL , 110*se_w233_mvl/mxv - .byte BEND , c_v+0 - .byte N03 , Gn4 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , Cn5 - .byte W09 - .byte FINE - -@********************** Track 2 **********************@ - -se_w233_2: - .byte KEYSH , se_w233_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_w233_mvl/mxv - .byte W09 - .byte PAN , c_v+8 - .byte N03 , Cn3 , v052 - .byte W06 - .byte PAN , c_v-7 - .byte N03 - .byte W09 - .byte FINE - -@******************************************************@ - .align 2 - -se_w233: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w233_pri @ Priority - .byte se_w233_rev @ Reverb. - - .word se_w233_grp - - .word se_w233_1 - .word se_w233_2 - - .end diff --git a/sound/songs/se_w240.s b/sound/songs/se_w240.s deleted file mode 100644 index 744cc3b88..000000000 --- a/sound/songs/se_w240.s +++ /dev/null @@ -1,116 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w240_grp, voicegroup128 - .equ se_w240_pri, 4 - .equ se_w240_rev, reverb_set+50 - .equ se_w240_mvl, 127 - .equ se_w240_key, 0 - .equ se_w240_tbs, 1 - .equ se_w240_exg, 0 - .equ se_w240_cmp, 1 - - .section .rodata - .global se_w240 - .align 2 - -@********************** Track 1 **********************@ - -se_w240_1: - .byte KEYSH , se_w240_key+0 - .byte TEMPO , 220*se_w240_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 20*se_w240_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , Gn3 , v064 - .byte W03 - .byte VOL , 37*se_w240_mvl/mxv - .byte W03 - .byte 53*se_w240_mvl/mxv - .byte W03 - .byte 60*se_w240_mvl/mxv - .byte W03 - .byte 71*se_w240_mvl/mxv - .byte W03 - .byte 81*se_w240_mvl/mxv - .byte W03 - .byte 93*se_w240_mvl/mxv - .byte W03 - .byte 110*se_w240_mvl/mxv - .byte W03 - .byte PAN , c_v+3 - .byte W06 - .byte c_v+11 - .byte W12 - .byte c_v+20 - .byte W06 - .byte c_v+25 - .byte W12 - .byte c_v+14 - .byte W06 - .byte c_v+8 - .byte W06 - .byte W06 - .byte c_v-3 - .byte W12 - .byte c_v-16 - .byte W06 - .byte W06 - .byte c_v-26 - .byte W12 - .byte c_v-16 - .byte W06 - .byte VOL , 104*se_w240_mvl/mxv - .byte PAN , c_v-5 - .byte W03 - .byte VOL , 101*se_w240_mvl/mxv - .byte W03 - .byte 98*se_w240_mvl/mxv - .byte PAN , c_v+6 - .byte W03 - .byte VOL , 93*se_w240_mvl/mxv - .byte W03 - .byte 90*se_w240_mvl/mxv - .byte PAN , c_v+14 - .byte W03 - .byte VOL , 86*se_w240_mvl/mxv - .byte W03 - .byte 83*se_w240_mvl/mxv - .byte W03 - .byte 77*se_w240_mvl/mxv - .byte W03 - .byte 73*se_w240_mvl/mxv - .byte PAN , c_v+24 - .byte W03 - .byte VOL , 66*se_w240_mvl/mxv - .byte W03 - .byte 58*se_w240_mvl/mxv - .byte W03 - .byte 44*se_w240_mvl/mxv - .byte W03 - .byte 32*se_w240_mvl/mxv - .byte PAN , c_v+15 - .byte W03 - .byte VOL , 16*se_w240_mvl/mxv - .byte W03 - .byte 1*se_w240_mvl/mxv - .byte PAN , c_v+4 - .byte W06 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_w240: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w240_pri @ Priority - .byte se_w240_rev @ Reverb. - - .word se_w240_grp - - .word se_w240_1 - - .end diff --git a/sound/songs/se_w260.s b/sound/songs/se_w260.s deleted file mode 100644 index 70e58fda1..000000000 --- a/sound/songs/se_w260.s +++ /dev/null @@ -1,67 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w260_grp, voicegroup128 - .equ se_w260_pri, 4 - .equ se_w260_rev, reverb_set+50 - .equ se_w260_mvl, 127 - .equ se_w260_key, 0 - .equ se_w260_tbs, 1 - .equ se_w260_exg, 0 - .equ se_w260_cmp, 1 - - .section .rodata - .global se_w260 - .align 2 - -@********************** Track 1 **********************@ - -se_w260_1: - .byte KEYSH , se_w260_key+0 - .byte TEMPO , 150*se_w260_tbs/2 - .byte VOICE , 41 - .byte VOL , 100*se_w260_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Dn5 , v127 - .byte W01 - .byte Gn4 - .byte W01 - .byte N09 , En5 - .byte W02 - .byte PAN , c_v+6 - .byte W02 - .byte VOL , 92*se_w260_mvl/mxv - .byte PAN , c_v-8 - .byte W01 - .byte VOL , 83*se_w260_mvl/mxv - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 71*se_w260_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v-4 - .byte W01 - .byte VOL , 46*se_w260_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 22*se_w260_mvl/mxv - .byte PAN , c_v-12 - .byte BEND , c_v-15 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_w260: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_w260_pri @ Priority - .byte se_w260_rev @ Reverb. - - .word se_w260_grp - - .word se_w260_1 - - .end diff --git a/sound/songs/se_w327.s b/sound/songs/se_w327.s deleted file mode 100644 index 1efa6c33f..000000000 --- a/sound/songs/se_w327.s +++ /dev/null @@ -1,103 +0,0 @@ - .include "MPlayDef.s" - - .equ se_w327_grp, voicegroup128 - .equ se_w327_pri, 4 - .equ se_w327_rev, reverb_set+50 - .equ se_w327_mvl, 127 - .equ se_w327_key, 0 - .equ se_w327_tbs, 1 - .equ se_w327_exg, 0 - .equ se_w327_cmp, 1 - - .section .rodata - .global se_w327 - .align 2 - -@********************** Track 1 **********************@ - -se_w327_1: - .byte KEYSH , se_w327_key+0 - .byte TEMPO , 220*se_w327_tbs/2 - .byte VOICE , 41 - .byte VOL , 110*se_w327_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+6 - .byte BEND , c_v+0 - .byte N02 , Cn4 , v127 - .byte W03 - .byte VOL , 104*se_w327_mvl/mxv - .byte W03 - .byte 93*se_w327_mvl/mxv - .byte PAN , c_v-6 - .byte N02 , Cn5 - .byte W03 - .byte VOL , 110*se_w327_mvl/mxv - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+0 - .byte N24 , Cn4 , v060 - .byte W02 - .byte W02 - .byte BEND , c_v+0 - .byte W04 - .byte c_v+1 - .byte W03 - .byte c_v+1 - .byte W01 - .byte VOL , 105*se_w327_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 103*se_w327_mvl/mxv - .byte W02 - .byte 91*se_w327_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 77*se_w327_mvl/mxv - .byte BEND , c_v-1 - .byte W02 - .byte VOL , 61*se_w327_mvl/mxv - .byte BEND , c_v-2 - .byte W01 - .byte VOL , 38*se_w327_mvl/mxv - .byte W01 - .byte 15*se_w327_mvl/mxv - .byte BEND , c_v-3 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_w327_2: - .byte KEYSH , se_w327_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_w327_mvl/mxv - .byte N02 , Cn3 , v060 - .byte W03 - .byte Gn2 - .byte W03 - .byte Gs4 - .byte W04 - .byte Gs4 , v020 - .byte W02 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_w327: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_w327_pri @ Priority - .byte se_w327_rev @ Reverb. - - .word se_w327_grp - - .word se_w327_1 - .word se_w327_2 - - .end diff --git a/sound/songs/se_z_scroll.s b/sound/songs/se_z_scroll.s deleted file mode 100644 index d8c792b17..000000000 --- a/sound/songs/se_z_scroll.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "MPlayDef.s" - - .equ se_z_scroll_grp, voicegroup127 - .equ se_z_scroll_pri, 5 - .equ se_z_scroll_rev, reverb_set+50 - .equ se_z_scroll_mvl, 127 - .equ se_z_scroll_key, 0 - .equ se_z_scroll_tbs, 1 - .equ se_z_scroll_exg, 0 - .equ se_z_scroll_cmp, 1 - - .section .rodata - .global se_z_scroll - .align 2 - -@********************** Track 1 **********************@ - -se_z_scroll_1: - .byte KEYSH , se_z_scroll_key+0 - .byte TEMPO , 100*se_z_scroll_tbs/2 - .byte VOICE , 4 - .byte BENDR , 12 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 40*se_z_scroll_mvl/mxv - .byte BEND , c_v+4 - .byte N01 , Gn4 , v127 - .byte W01 - .byte Gn4 , v020 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_z_scroll: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_z_scroll_pri @ Priority - .byte se_z_scroll_rev @ Reverb. - - .word se_z_scroll_grp - - .word se_z_scroll_1 - - .end diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 83a68b887..ae7971960 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -582,16 +582,16 @@ $(FLDEFFGFXDIR)/arrow.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/ash.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/berry_tree_growth_sparkle.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/sparkle.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/bike_hop_big_splash.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/jump_big_splash.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/bike_hop_small_splash.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/jump_small_splash.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 1 -$(FLDEFFGFXDIR)/bike_hop_tall_grass.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/jump_tall_grass.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 1 $(FLDEFFGFXDIR)/bike_tire_tracks.4bpp: %.4bpp: %.png @@ -606,7 +606,7 @@ $(FLDEFFGFXDIR)/deep_sand_footprints.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/ground_impact_dust.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 1 -$(FLDEFFGFXDIR)/jump_out_of_ash.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/ash_puff.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 $(FLDEFFGFXDIR)/long_grass.4bpp: %.4bpp: %.png @@ -642,23 +642,35 @@ $(FLDEFFGFXDIR)/unknown_16.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/unknown_17.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_18.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/unused_grass_2.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_19.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/unused_sand.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_20.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/water_surfacing.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_29.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/sand_pile.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 1 -$(FLDEFFGFXDIR)/lavaridge_gym_warp.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/ash_launch.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_35.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/small_sparkle.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unused_grass.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/unused_grass_3.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(FLDEFFGFXDIR)/secret_power_cave.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(FLDEFFGFXDIR)/secret_power_shrub.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(FLDEFFGFXDIR)/secret_power_tree.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + +$(FLDEFFGFXDIR)/record_mix_lights.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 1 diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index e4127ee09..f6ebcc726 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -918,7 +918,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult) { lman.reserveDisconnectSlot_flag = 0; lman.acceptCount = 0; - lman.acceptSlot_flag = 0;; + lman.acceptSlot_flag = 0; lman.parent_child = MODE_NEUTRAL; rfu_LMAN_managerChangeAgbClockMaster(); if (reqCommandId == ID_STOP_MODE_REQ) diff --git a/src/agb_flash.c b/src/agb_flash.c index 1ad9e47ec..15ab0932d 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -41,7 +41,7 @@ u16 ReadFlashId(void) u8 (*readFlash1)(u8 *); SetReadFlash1(readFlash1Buffer); - readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1); + readFlash1 = (u8 (*)(u8 *))((uintptr_t)readFlash1Buffer + 1); // Enter ID mode. FLASH_WRITE(0x5555, 0xAA); @@ -113,12 +113,12 @@ void SetReadFlash1(u16 *dest) u16 *src; u16 i; - PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1); + PollFlashStatus = (u8 (*)(u8 *))((uintptr_t)dest + 1); src = (u16 *)ReadFlash1; - src = (u16 *)((s32)src ^ 1); + src = (u16 *)((uintptr_t)src ^ 1); - i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1; + i = ((uintptr_t)SetReadFlash1 - (uintptr_t)ReadFlash1) >> 1; while (i != 0) { @@ -154,10 +154,10 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) } funcSrc = (u16 *)ReadFlash_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = readFlash_Core_Buffer; - i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1; + i = ((uintptr_t)ReadFlash - (uintptr_t)ReadFlash_Core) >> 1; while (i != 0) { @@ -165,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) i--; } - readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + readFlash_Core = (void (*)(vu8 *, u8 *, u32))((uintptr_t)readFlash_Core_Buffer + 1); src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; @@ -202,10 +202,10 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) } funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); while (i != 0) { @@ -213,7 +213,7 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); size = gFlash->sector.size; @@ -239,10 +239,10 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = ((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1; while (i != 0) { @@ -250,7 +250,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 32f9620b7..2a5a83e0d 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -314,8 +314,8 @@ static bool8 AreStatsRaised(void) for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[gActiveBattler].statStages[i] > 6) - buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6; + if (gBattleMons[gActiveBattler].statStages[i] > DEFAULT_STAT_STAGE) + buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - DEFAULT_STAT_STAGE; } return (buffedStatsValue > 3); diff --git a/src/battle_anim.c b/src/battle_anim.c index 32a917cb4..874ac935b 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1849,8 +1849,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo } else { - for (i = 0; i < 4; i++) - gAnimBattlerSpecies[i] = gContestResources->field_18->species; + for (i = 0; i < CONTESTANT_COUNT; i++) + gAnimBattlerSpecies[i] = gContestResources->moveAnim->species; } if (!isMoveAnim) @@ -2311,7 +2311,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) battlerSpriteId = gBattlerSpriteIds[battlerId]; gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20; - if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->species)) + if (IsContest() && IsSpeciesNotUnown(gContestResources->moveAnim->species)) gBattle_BG1_X--; gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; @@ -2369,7 +2369,7 @@ static void sub_80A46A0(void) struct BattleAnimBgData animBg; u16 *ptr; - if (IsSpeciesNotUnown(gContestResources->field_18->species)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->species)) { sub_80A6B30(&animBg); ptr = animBg.bgTilemap; diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index ea3df8098..5e8a8b2a7 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -372,14 +372,11 @@ static void AnimTranslateStinger(struct Sprite *sprite) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - else + else if (GetBattlerSide(gBattleAnimAttacker)) { - if (GetBattlerSide(gBattleAnimAttacker)) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - } + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } if (!IsContest() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) @@ -387,13 +384,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) if (GetBattlerPosition(gBattleAnimTarget) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimTarget) == B_POSITION_OPPONENT_LEFT) { - s16 temp1, temp2; - - temp1 = gBattleAnimArgs[2]; - gBattleAnimArgs[2] = -temp1; - - temp2 = gBattleAnimArgs[0]; - gBattleAnimArgs[0] = -temp2; + gBattleAnimArgs[2] *= -1; + gBattleAnimArgs[0] *= -1; } } @@ -448,28 +440,24 @@ static void AnimMissileArc_Step(struct Sprite *sprite) else { s16 tempData[8]; - u16 *data = sprite->data; - u16 x1 = sprite->pos1.x; - s16 x2 = sprite->pos2.x; - u16 y1 = sprite->pos1.y; - s16 y2 = sprite->pos2.y; + s16 xpos, ypos; int i; for (i = 0; i < 8; i++) - tempData[i] = data[i]; + tempData[i] = sprite->data[i]; - x2 += x1; - y2 += y1; + xpos = sprite->pos1.x + sprite->pos2.x; + ypos = sprite->pos1.y + sprite->pos2.y; if (!TranslateAnimHorizontalArc(sprite)) { - u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, - sprite->pos1.y + sprite->pos2.y - y2); + u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - xpos, //Isn't this zero lol + sprite->pos1.y + sprite->pos2.y - ypos); rotation += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); for (i = 0; i < 8; i++) - data[i] = tempData[i]; + sprite->data[i] = tempData[i]; } } } diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index dc3e8c83c..faa5884a5 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -849,7 +849,7 @@ void AnimTask_MetallicShine(u8 taskId) if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 516c58e55..c8d43e12e 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3178,14 +3178,14 @@ static void AnimItemSteal_Step3(struct Sprite* sprite) sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); if (sprite->pos2.y == 0) - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63)); if (moveAlongLinearPath(sprite)) { sprite->pos2.y = 0; sprite->data[0] = 0; sprite->callback = AnimItemSteal_Step2; - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); } } @@ -3967,24 +3967,25 @@ static void AnimProtect(struct Sprite* sprite) static void AnimProtect_Step(struct Sprite *sprite) { - int a; - int i; + int i, savedPal; sprite->data[5] += 96; sprite->pos2.x = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) { + int id; sprite->data[1] = 0; - a = gPlttBufferFaded[sprite->data[2] + 1]; + savedPal = gPlttBufferFaded[sprite->data[2] + 1]; i = 0; do { - gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1]; + id = sprite->data[2] + ++i; + gPlttBufferFaded[id] = gPlttBufferFaded[id + 1]; } while (i < 6); - gPlttBufferFaded[sprite->data[2] + 7] = a; + gPlttBufferFaded[sprite->data[2] + 7] = savedPal; } - if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1) + if (sprite->data[7] > 6 && sprite->data[0] > 0 && ++sprite->data[6] > 1) { sprite->data[6] = 0; sprite->data[7] -= 1; @@ -4259,7 +4260,7 @@ static void AnimLockOnTarget_Step1(struct Sprite* sprite) sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; - PlaySE12WithPanning(SE_W199, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63)); break; } @@ -4345,7 +4346,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite) sprite->data[2]++; pal = sprite->oam.paletteNum; LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); - PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); } else if (sprite->data[1] == 0) { @@ -4820,7 +4821,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite) { sprite->data[4]++; if (!(sprite->data[4] & 1)) - PlaySE12WithPanning(SE_W207B, sprite->data[5]); + PlaySE12WithPanning(SE_M_SWAGGER2, sprite->data[5]); } sprite->data[0] = 0; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index f7d1eea10..d891a4d01 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1632,7 +1632,7 @@ static void AirCutterProjectileStep1(u8 taskId) gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId; gTasks[taskId].data[0] = gTasks[taskId].data[3]; gTasks[taskId].data[1]++; - PlaySE12WithPanning(SE_W059B, BattleAnimAdjustPanning(-63)); + PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63)); if (gTasks[taskId].data[1] > 2) gTasks[taskId].func = AirCutterProjectileStep2; } @@ -1829,7 +1829,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) int i; u16 rand; s16* ptr; - PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63)); sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; sprite->pos2.y = 0; @@ -2502,7 +2502,7 @@ static void AnimPencil_Step(struct Sprite *sprite) sprite->pos1.y -= 1; sprite->data[2]++; if (sprite->data[2] % 10 == 0) - PlaySE12WithPanning(SE_W166, sprite->data[6]); + PlaySE12WithPanning(SE_M_SKETCH, sprite->data[6]); } sprite->data[4] += sprite->data[3]; if (sprite->data[4] > 31) diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index fd68bbd37..bad46f144 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1647,7 +1647,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) sprite->data[2]++; if (sprite->data[3] == 0) { - PlaySE1WithPanning(SE_W227, BattleAnimAdjustPanning(-64)); + PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64)); } } } @@ -1931,7 +1931,7 @@ static void TormentAttacker_Step(u8 taskId) y = task->data[3] + task->data[5]; spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]); - PlaySE12WithPanning(SE_W118, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64)); if (spriteId != MAX_SPRITES) { @@ -2297,7 +2297,7 @@ void AnimTask_TransformMon(u8 taskId) LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); if (IsContest()) { - if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->species) != IsSpeciesNotUnown(gContestResources->moveAnim->targetSpecies)) { bgTilemap = (u16 *)animBg.bgTilemap; for (i = 0; i < 8; i++) @@ -2319,7 +2319,7 @@ void AnimTask_TransformMon(u8 taskId) } } - if (IsSpeciesNotUnown(gContestResources->field_18->unk2)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->targetSpecies)) gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0; else gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694; @@ -2412,7 +2412,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; - PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); break; case 1: if (gTasks[taskId].data[4]++ > 0) @@ -2447,7 +2447,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) { gTasks[taskId].data[3] = 0; gTasks[taskId].data[0] = 1; - PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); } break; case 4: @@ -3196,10 +3196,10 @@ void AnimTask_RolePlaySilhouette(u8 taskId) GetAnimBattlerSpriteId(ANIM_ATTACKER); if (IsContest()) { - isBackPic = 1; - personality = gContestResources->field_18->unk10; - otId = gContestResources->field_18->unkC; - species = gContestResources->field_18->unk2; + isBackPic = TRUE; + personality = gContestResources->moveAnim->targetPersonality; + otId = gContestResources->moveAnim->otId; + species = gContestResources->moveAnim->targetSpecies; xOffset = 20; priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -4769,7 +4769,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].pos2.y == 0) { - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); gTasks[taskId].data[10] -= 0x800; gTasks[taskId].data[0]++; } @@ -4791,7 +4791,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].pos2.y == 0) { - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); DestroyAnimVisualTask(taskId); } break; @@ -4828,7 +4828,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->pos2.y += 10; if (sprite->pos2.y >= 0) { - PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); sprite->pos2.y = 0; sprite->data[0]++; } @@ -4838,7 +4838,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3); if (sprite->data[1] > 0x7F) { - PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); sprite->data[1] = 0; sprite->pos2.y = 0; sprite->data[0]++; @@ -4857,7 +4857,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) case 3: if (++sprite->data[1] > 8) { - PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); sprite->data[1] = 0; sprite->data[0]++; } @@ -5031,9 +5031,9 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) case 1: if (IsContest()) { - personality = gContestResources->field_18->unk8; - otId = gContestResources->field_18->unkC; - species = gContestResources->field_18->species; + personality = gContestResources->moveAnim->personality; + otId = gContestResources->moveAnim->otId; + species = gContestResources->moveAnim->species; subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); isBackPic = 0; x = -32; @@ -5152,7 +5152,7 @@ static void sub_815FE80(struct Sprite *sprite) case 0: if (gBattleAnimArgs[7] == -1) { - PlaySE12WithPanning(SE_W233, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63)); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->data[0] = -32; sprite->data[7]++; diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index c153dbc10..a57e88b03 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -1242,7 +1242,7 @@ static bool8 sub_810B430(struct Task *task, u8 taskId) if (task->data[4] == 0 && task->data[5] > 0) { task->data[14] += task->data[15]; - PlaySE12WithPanning(SE_W085, task->data[14]); + PlaySE12WithPanning(SE_M_THUNDERBOLT, task->data[14]); } if ((task->data[5] < 0 && task->data[7] <= task->data[8]) diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index f02ecae19..c8402f727 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -1136,7 +1136,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite) if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) { - PlaySE12WithPanning(SE_W172, gAnimCustomPanning); + PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning); } } else diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index 5179c1364..3fc4f20f2 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -380,21 +380,18 @@ static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId) { u8 data2; u16 temp; - int i, base; if (gTasks[taskId].data[10]++ == gTasks[taskId].data[1]) { + int i, base; gTasks[taskId].data[10] = 0; data2 = gTasks[taskId].data[2]; temp = gPlttBufferFaded[16 * data2 + 0x108]; i = 7; base = data2 * 16; - do - { + for (; i > 0; --i) gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i]; - i--; - } while (i > 0); gPlttBufferFaded[base + 0x101] = temp; } @@ -536,17 +533,16 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite) void DestroyAnimSpriteAfterTimer(struct Sprite *sprite) { - if (sprite->data[0]-- <= 0) + if (sprite->data[0]-- > 0) + return; + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) { - if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) - { - FreeOamMatrix(sprite->oam.matrixNum); - sprite->oam.affineMode = ST_OAM_AFFINE_OFF; - } - - DestroySprite(sprite); - gAnimVisualTaskCount--; + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; } + + DestroySprite(sprite); + gAnimVisualTaskCount--; } struct FeatherDanceData @@ -570,30 +566,27 @@ struct FeatherDanceData static void AnimFallingFeather(struct Sprite *sprite) { u8 battler, matrixNum, sinIndex; - s16 spriteCoord, sinVal; + s16 sinVal; struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; - if (gBattleAnimArgs[7] & 0x100) - battler = gBattleAnimAttacker; - else - battler = gBattleAnimTarget; + battler = (gBattleAnimArgs[7] & 0x100) ? gBattleAnimAttacker : gBattleAnimTarget; if (GetBattlerSide(battler) == B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0]; - spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); - sprite->pos1.y = spriteCoord + gBattleAnimArgs[1]; + sinVal = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); + sprite->pos1.y = sinVal + gBattleAnimArgs[1]; - data->unk8 = sprite->pos1.y << 8; - data->unkE_1 = spriteCoord + gBattleAnimArgs[6]; + data->unk8 = (u16)(sprite->pos1.y) << 8; + data->unkE_1 = (u16)(sinVal + gBattleAnimArgs[6]); data->unk0_0c = 1; - data->unk2 = gBattleAnimArgs[2] & 0xFF; - data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF; + data->unk2 = (u16)(gBattleAnimArgs[2] & 0xFF); + data->unkA = (u16)((gBattleAnimArgs[2] >> 8) & 0xFF) ; data->unk4 = gBattleAnimArgs[3]; - data->unk6 = gBattleAnimArgs[4]; - *(u16*)(data->unkC) = gBattleAnimArgs[5]; + data->unk6 = (u16)gBattleAnimArgs[4]; + *(u16*)(data->unkC) = (u16)gBattleAnimArgs[5]; if (data->unk2 >= 64 && data->unk2 <= 191) { @@ -628,27 +621,16 @@ static void AnimFallingFeather(struct Sprite *sprite) } } - data->unk0_1 = data->unk2 >> 6; - sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8; + data->unk0_1 = data->unk2/64; + sprite->pos2.x = (gSineTable[data->unk2] * (s32)data->unkC[0]) >> 8; matrixNum = sprite->oam.matrixNum; sinIndex = (-sprite->pos2.x >> 1) + data->unkA; sinVal = gSineTable[sinIndex]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; - // The comparison below is completely pointless. 'sprite' is sure to be a valid pointer and - // both the 'if' and 'else' parts are exactly the same. - // The only reason for this is making sure the compiler generates the exact ASM. - if (sprite) - { - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; - } - else - { - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; - } + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; sprite->callback = sub_810E520; } @@ -665,242 +647,238 @@ static void sub_810E520(struct Sprite *sprite) data->unk0_0a = 0; data->unk1 = 0; } + return; } - else + + switch (data->unk2 / 64) { - switch (data->unk2 / 64) + case 0: + if ((u8)data->unk0_1 == 1) // this must be cast to u8 { - case 0: - if (data->unk0_1 << 24 >> 24 == 1) // the shifts have to be here - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 3) - { - data->unk0_0b ^= 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if ((u8)data->unk0_1 == 3) + { + data->unk0_0b ^= 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) + if (!IsContest()) { - if (!IsContest()) + if (!data->unkE_0) { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } + sprite->oam.priority--; + data->unkE_0 ^= 1; } else { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } + sprite->oam.priority++; + data->unkE_0 ^= 1; } } - data->unk0_0d = 0; - data->unk2; - } - data->unk0_1 = 0; - break; - case 1: - if (data->unk0_1 << 24 >> 24 == 0) - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 2) - { - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) - { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) + else { - if (!IsContest()) + if (!data->unkE_0) { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } + sprite->subpriority -= 12; + data->unkE_0 ^= 1; } else { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } + sprite->subpriority += 12; + data->unkE_0 ^= 1; } } - data->unk0_0d = 0; - } - data->unk0_1 = 1; - break; - case 2: - if (data->unk0_1 << 24 >> 24 == 3) - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 1) - { - data->unk0_0a = 1; - data->unk1 = 0; } - else if (data->unk0_0d) + data->unk0_0d = 0; + } + data->unk0_1 = 0; + break; + case 1: + if ((u8)data->unk0_1 == 0) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if ((u8)data->unk0_1 == 2) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) + if (!IsContest()) { - if (!IsContest()) + if (!data->unkE_0) { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } + sprite->oam.priority--; + data->unkE_0 ^= 1; } else { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; } } - data->unk0_0d = 0; - } - data->unk0_1 = 2; - break; - case 3: - if (data->unk0_1 << 24 >> 24 == 2) - { - data->unk0_0d = 1; } - else if (data->unk0_1 << 24 >> 24 == 0) + data->unk0_0d = 0; + } + data->unk0_1 = 1; + break; + case 2: + if ((u8)data->unk0_1 == 3) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if ((u8)data->unk0_1 == 1) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) { - data->unk0_0b ^= 1; - data->unk0_0a = 1; - data->unk1 = 0; + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; + } + } } - else if (data->unk0_0d) + data->unk0_0d = 0; + } + data->unk0_1 = 2; + break; + case 3: + if ((u8)data->unk0_1 == 2) + { + data->unk0_0d = 1; + } + else if ((u8)data->unk0_1 == 0) + { + data->unk0_0b ^= 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else { - if (!IsContest()) + if (!data->unkE_0) { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } + sprite->subpriority -= 12; + data->unkE_0 ^= 1; } else { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } + sprite->subpriority += 12; + data->unkE_0 ^= 1; } } - data->unk0_0d = 0; } - data->unk0_1 = 3; - break; + data->unk0_0d = 0; } - #ifndef NONMATCHING - asm("":::"r8"); - #endif - sprite->pos2.x = (data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8; - matrixNum = sprite->oam.matrixNum; + data->unk0_1 = 3; + break; + } - sinIndex = (-sprite->pos2.x >> 1) + data->unkA; - sinVal = gSineTable[sinIndex]; + sprite->pos2.x = ((s32)(data->unkC[data->unk0_0b]) * gSineTable[data->unk2]) >> 8; + matrixNum = sprite->oam.matrixNum; - gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; + sinIndex = ((-sprite->pos2.x >> 1) + data->unkA); + sinVal = gSineTable[sinIndex]; - data->unk8 += data->unk6; - sprite->pos1.y = data->unk8 >> 8; - if (data->unk4 & 0x8000) - data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; - else - data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; + gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; - if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) - { - sprite->data[0] = 0; - sprite->callback = DestroyAnimSpriteAfterTimer; - } + data->unk8 += data->unk6; + sprite->pos1.y = (s16)(data->unk8 >> 8); + if (data->unk4 & 0x8000) + data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; + else + data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; + + if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) + { + sprite->data[0] = 0; + sprite->callback = DestroyAnimSpriteAfterTimer; } } @@ -944,20 +922,20 @@ static void sub_810EB40(struct Sprite *sprite) { sprite->pos2.x += sprite->data[1] >> 8; - if (++sprite->data[0] == 6) + if (sprite->data[0]++ == 5) { sprite->data[0] = 0; sprite->pos2.x = 0; StartSpriteAnim(sprite, 0); } - if (--sprite->data[7] == -1) + if (sprite->data[7]-- == 0) DestroyAnimSprite(sprite); } void AnimTask_DrillPeckHitSplats(u8 task) { - if (!(gTasks[task].data[0] % 32)) + if ((gTasks[task].data[0] % 32) == 0) { gAnimVisualTaskCount++; @@ -1060,8 +1038,8 @@ static void AnimDiveBall_Step2(struct Sprite *sprite) static void AnimDiveWaterSplash(struct Sprite *sprite) { - u32 matrixNum; - int t1, t2; + u8 matrixNum; + s32 t1, t2; switch (sprite->data[0]) { @@ -1083,7 +1061,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) sprite->data[0]++; break; case 1: - if (sprite->data[2] <= 11) + if (sprite->data[2] < 12) sprite->data[1] -= 40; else sprite->data[1] += 40; @@ -1091,7 +1069,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) sprite->data[2]++; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); - + matrixNum = sprite->oam.matrixNum; t1 = 15616; @@ -1115,8 +1093,8 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) // Launches a water droplet away from the specified battler. Used by Astonish and Dive static void AnimSprayWaterDroplet(struct Sprite *sprite) { - int v1 = 0x1ff & Random2(); - int v2 = 0x7f & Random2(); + const u16 v1 = Random2() & 0x1ff; + const u16 v2 = Random2() & 0x07f; if (v1 % 2) sprite->data[0] = 736 + v1; @@ -1160,13 +1138,13 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) sprite->pos2.y -= sprite->data[1] >> 8; } - sprite->data[0] = sprite->data[0]; + sprite->data[0] -= 0; // Needed to Match sprite->data[1] -= 32; if (sprite->data[0] < 0) sprite->data[0] = 0; - if (++sprite->data[3] == 31) + if (sprite->data[3]++ == 30) DestroyAnimSprite(sprite); } @@ -1212,7 +1190,7 @@ static void AnimSkyAttackBird(struct Sprite *sprite) sprite->data[7] = ((posy - sprite->pos1.y) << 4) / 12; rotation = ArcTan2Neg(posx - sprite->pos1.x, posy - sprite->pos1.y); - rotation += 49152; + rotation -= 16384; TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); @@ -1236,12 +1214,12 @@ void unref_sub_810F184(u8 taskId) { if (gBattleAnimArgs[0] == 0) { - u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[spriteId].invisible = TRUE; } else { - u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[spriteId].invisible = FALSE; } DestroyAnimVisualTask(taskId); diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index b8de6b0e1..632954351 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -252,7 +252,7 @@ static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) return; if (r0 <= 0) return; - PlaySE12WithPanning(SE_W109, gAnimCustomPanning); + PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning); } static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) @@ -271,7 +271,7 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) if (r2 == 0 || r2 > 196) { if (r0 > 0) - PlaySE(SE_W109); + PlaySE(SE_M_CONFUSE_RAY); } if (sprite->data[6] == 0) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index e5a866999..d9993ab95 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -141,10 +141,10 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) default: if (IsContest()) { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; + if (gContestResources->moveAnim->hasTargetAnim) + species = gContestResources->moveAnim->targetSpecies; else - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -189,10 +189,10 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species) { if (IsContest()) { - if (gContestResources->field_18->unk4_0) - personality = gContestResources->field_18->unk10; + if (gContestResources->moveAnim->hasTargetAnim) + personality = gContestResources->moveAnim->targetPersonality; else - personality = gContestResources->field_18->unk8; + personality = gContestResources->moveAnim->personality; } else { @@ -306,10 +306,10 @@ u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType) { if (IsContest()) { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; + if (gContestResources->moveAnim->hasTargetAnim) + species = gContestResources->moveAnim->targetSpecies; else - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -1851,7 +1851,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) { if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; return gMonBackPicCoords[species].y_offset; } else @@ -2103,15 +2103,15 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) if (IsContest()) { - if (gContestResources->field_18->unk4_0) + if (gContestResources->moveAnim->hasTargetAnim) { - species = gContestResources->field_18->unk2; - personality = gContestResources->field_18->unk10; + species = gContestResources->moveAnim->targetSpecies; + personality = gContestResources->moveAnim->targetPersonality; } else { - species = gContestResources->field_18->species; - personality = gContestResources->field_18->unk8; + species = gContestResources->moveAnim->species; + personality = gContestResources->moveAnim->personality; } if (species == SPECIES_UNOWN) { diff --git a/src/battle_anim_pokeball.c b/src/battle_anim_pokeball.c index 32081b7d5..7049931d3 100755 --- a/src/battle_anim_pokeball.c +++ b/src/battle_anim_pokeball.c @@ -816,7 +816,7 @@ static void AnimTask_ThrowBall_StandingTrainer_Step(u8 taskId) { if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) { - PlaySE12WithPanning(SE_NAGERU, 0); + PlaySE12WithPanning(SE_BALL_THROW, 0); gSprites[gTasks[taskId].tSpriteId].callback = SpriteCB_Ball_Throw; CreateTask(Task_PlayerThrow_Wait, 10); gTasks[taskId].func = AnimTask_ThrowBall_Step; @@ -935,7 +935,7 @@ static void SpriteCB_Ball_MonShrink_Step(struct Sprite *sprite) taskId = sprite->sTaskId; if (++gTasks[taskId].sTimer == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); switch (gTasks[taskId].tState) { @@ -1042,16 +1042,16 @@ static void SpriteCB_Ball_Bounce_Step(struct Sprite *sprite) switch (bounceCount) { case 1: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); break; case 2: - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); break; case 3: - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); break; default: - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); break; } } @@ -1111,7 +1111,7 @@ static void SpriteCB_Ball_Wobble(struct Sprite *sprite) StartSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT); gBattleSpritesDataPtr->animationData->ballSubpx = 0; sprite->callback = SpriteCB_Ball_Wobble_Step; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } @@ -1258,7 +1258,7 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) else StartSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT); - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } break; } @@ -1303,7 +1303,7 @@ static void SpriteCB_Ball_Capture_Step(struct Sprite *sprite) sprite->sTimer++; if (sprite->sTimer == 40) { - PlaySE(SE_RG_GETTING); + PlaySE(SE_RG_BALL_CLICK); BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0)); MakeCaptureStars(sprite); } @@ -1316,7 +1316,7 @@ static void SpriteCB_Ball_Capture_Step(struct Sprite *sprite) gDoingBattleAnim = FALSE; UpdateOamPriorityInAllHealthboxes(1); m4aMPlayAllStop(); - PlaySE(MUS_RG_FAN6); + PlaySE(MUS_RG_CAUGHT_INTRO); } else if (sprite->sTimer == 315) { @@ -1570,7 +1570,7 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) gTasks[taskId].data[3] = priority; gTasks[taskId].data[4] = subpriority; gTasks[taskId].data[15] = ballId; - PlaySE(SE_BOWA2); + PlaySE(SE_BALL_OPEN); return taskId; } @@ -2309,7 +2309,7 @@ static void Task_ShinyStars(u8 taskId) else pan = 63; - PlaySE12WithPanning(SE_REAPOKE, pan); + PlaySE12WithPanning(SE_SHINY, pan); } } diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 7918698fc..3f451998c 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -1101,7 +1101,7 @@ static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) break; case 1: task->data[1] -= 4; - task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);; + task->data[2] = 256 - (gSineTable[task->data[1]] >> 1); SetSpriteRotScale(task->data[15], task->data[2], task->data[2], 0); SetBattlerSpriteYOffsetFromOtherYScale(task->data[15], task->data[13]); if (task->data[1] == 0) @@ -1137,7 +1137,7 @@ static void AnimPsychoBoost(struct Sprite *sprite) case 1: if (sprite->affineAnimEnded) { - PlaySE12WithPanning(SE_W100, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64)); ChangeSpriteAffineAnim(sprite, 1); sprite->data[0]++; } diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 436ac60a3..29ba49346 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -631,7 +631,7 @@ static void AnimTask_Rollout_Step(u8 taskId) task->data[0]++; } - PlaySE12WithPanning(SE_W029, task->data[13]); + PlaySE12WithPanning(SE_M_HEADBUTT, task->data[13]); break; case 1: if (--task->data[11] == 0) @@ -661,7 +661,7 @@ static void AnimTask_Rollout_Step(u8 taskId) task->data[9] = 0; sub_8111214(task); task->data[13] += task->data[14]; - PlaySE12WithPanning(SE_W091, task->data[13]); + PlaySE12WithPanning(SE_M_DIG, task->data[13]); } if (--task->data[8] == 0) diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 8efc987b8..71c81235a 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -134,7 +134,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId) if (IsContest()) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. } @@ -180,7 +180,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) if (IsContest()) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. } @@ -284,7 +284,7 @@ void SoundTask_PlayCryWithEcho(u8 taskId) pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); if (IsContest()) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else species = gAnimBattlerSpecies[gBattleAnimAttacker]; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index dcef7d483..9790cf9ea 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -318,7 +318,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -440,7 +440,7 @@ static void sub_8116F04(u8 taskId) if (IsContest()) { - sAnimStatsChangeData->species = gContestResources->field_18->species; + sAnimStatsChangeData->species = gContestResources->moveAnim->species; } else { @@ -535,9 +535,9 @@ static void sub_81170EC(u8 taskId) gTasks[taskId].func = sub_81172EC; if (sAnimStatsChangeData->data[0] == 0) - PlaySE12WithPanning(SE_W287, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64)); else - PlaySE12WithPanning(SE_W287B, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64)); } static void sub_81172EC(u8 taskId) @@ -569,7 +569,7 @@ static void sub_81172EC(u8 taskId) if (gTasks[taskId].data[12] == 0) { sub_80A477C(0); - gTasks[taskId].data[15]++;; + gTasks[taskId].data[15]++; } } break; @@ -810,7 +810,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 88af2cdec..12f37dbba 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -52,7 +52,7 @@ static void CreateWaterSpoutLaunchDroplets(struct Task*, u8); static void CreateWaterSpoutRainDroplet(struct Task*, u8); static void AnimTask_WaterSport_Step(u8); static void CreateWaterSportDroplet(struct Task*); -static void CreateWaterPulseRingBubbles(struct Sprite*, int, int); +static void CreateWaterPulseRingBubbles(struct Sprite*, s32, s32); // Both unused const u8 gUnknown_8593C80[] = INCBIN_U8("graphics/unknown/unknown_593C80.4bpp"); @@ -794,21 +794,25 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[0], 4); sprite->data[1] += 48; sprite->pos2.y = -(sprite->data[1] >> 8); - if (--sprite->data[7] == -1) + if (sprite->data[7]-- == 0) DestroyAnimSprite(sprite); } -#ifdef NONMATCHING void AnimTask_CreateSurfWave(u8 taskId) { struct BattleAnimBgData animBg; u8 taskId2; + u16 *x, *y; //These pointers are needed to match - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + x = &gBattle_BG1_X; + y = &gBattle_BG1_Y; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8)); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); sub_80A6B30(&animBg); + if (!IsContest()) { SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); @@ -833,30 +837,30 @@ void AnimTask_CreateSurfWave(u8 taskId) gTasks[taskId2].data[2] = 0x1000; if (IsContest()) { - gBattle_BG1_X = -80; - gBattle_BG1_Y = -48; + *x = -80; + *y = -48; gTasks[taskId].data[0] = 2; gTasks[taskId].data[1] = 1; gTasks[taskId2].data[3] = 0; } else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) { - gBattle_BG1_X = -224; - gBattle_BG1_Y = 256; + *x = -224; + *y = 256; gTasks[taskId].data[0] = 2; gTasks[taskId].data[1] = -1; gTasks[taskId2].data[3] = 1; } else { - gBattle_BG1_X = 0; - gBattle_BG1_Y = -48; + *x = 0; + *y = -48; gTasks[taskId].data[0] = -2; gTasks[taskId].data[1] = 1; gTasks[taskId2].data[3] = 0; } - SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); - SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, *x); + SetGpuReg(REG_OFFSET_BG1VOFS, *y); if (gTasks[taskId2].data[3] == 0) { gTasks[taskId2].data[4] = 48; @@ -870,245 +874,16 @@ void AnimTask_CreateSurfWave(u8 taskId) gTasks[taskId].data[6] = 1; gTasks[taskId].func = AnimTask_CreateSurfWave_Step1; } -#else -NAKED -void AnimTask_CreateSurfWave(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - ldr r1, =0x00003f42\n\ - movs r0, 0x50\n\ - bl SetGpuReg\n\ - movs r1, 0x80\n\ - lsls r1, 5\n\ - movs r0, 0x52\n\ - bl SetGpuReg\n\ - movs r0, 0x1\n\ - movs r1, 0x4\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - movs r0, 0x1\n\ - movs r1, 0\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - mov r0, sp\n\ - bl sub_80A6B30\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _081079E0\n\ - movs r0, 0x1\n\ - movs r1, 0x3\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _081079D0\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\ - bl AnimLoadCompressedBgTilemap\n\ - b _081079EA\n\ - .pool\n\ -_081079D0:\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\ - bl AnimLoadCompressedBgTilemap\n\ - b _081079EA\n\ - .pool\n\ -_081079E0:\n\ - ldr r1, =gBattleAnimBgTilemap_SurfContest\n\ - mov r0, sp\n\ - movs r2, 0x1\n\ - bl AnimLoadCompressedBgTilemapHandleContest\n\ -_081079EA:\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgImage_Surf\n\ - mov r2, sp\n\ - ldrh r2, [r2, 0xA]\n\ - bl AnimLoadCompressedBgGfx\n\ - ldr r0, =gBattleAnimArgs\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - cmp r0, 0\n\ - bne _08107A24\n\ - ldr r0, =gBattleAnimBgPalette_Surf\n\ - mov r1, sp\n\ - ldrb r1, [r1, 0x8]\n\ - lsls r1, 4\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ - b _08107A32\n\ - .pool\n\ -_08107A24:\n\ - ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal\n\ - mov r1, sp\n\ - ldrb r1, [r1, 0x8]\n\ - lsls r1, 4\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ -_08107A32:\n\ - ldr r0, =AnimTask_SurfWaveScanlineEffect\n\ - ldr r4, =gTasks\n\ - mov r2, r10\n\ - lsls r5, r2, 2\n\ - adds r1, r5, r2\n\ - lsls r1, 3\n\ - adds r6, r1, r4\n\ - ldrb r1, [r6, 0x7]\n\ - adds r1, 0x1\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0\n\ - mov r9, r0\n\ - mov r1, r8\n\ - strh r1, [r6, 0x26]\n\ - mov r2, r8\n\ - lsls r0, r2, 2\n\ - add r0, r8\n\ - lsls r0, 3\n\ - adds r7, r0, r4\n\ - mov r0, r9\n\ - strh r0, [r7, 0x8]\n\ - movs r0, 0x80\n\ - lsls r0, 5\n\ - strh r0, [r7, 0xA]\n\ - strh r0, [r7, 0xC]\n\ - bl IsContest\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0\n\ - beq _08107AB4\n\ - ldr r1, =0x0000ffb0\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_X\n\ - strh r0, [r2]\n\ - adds r1, 0x20\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - movs r0, 0x2\n\ - strh r0, [r6, 0x8]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0xA]\n\ - mov r0, r9\n\ - strh r0, [r7, 0xE]\n\ - b _08107B0E\n\ - .pool\n\ -_08107AB4:\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x1\n\ - bne _08107AF8\n\ - ldr r2, =0x0000ff20\n\ - adds r0, r2, 0\n\ - ldr r2, =gBattle_BG1_X\n\ - strh r0, [r2]\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r0, r2, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - movs r0, 0x2\n\ - strh r0, [r6, 0x8]\n\ - ldr r0, =0x0000ffff\n\ - strh r0, [r6, 0xA]\n\ - strh r1, [r7, 0xE]\n\ - b _08107B0E\n\ - .pool\n\ -_08107AF8:\n\ - ldr r0, =gBattle_BG1_X\n\ - strh r4, [r0]\n\ - ldr r1, =0x0000ffd0\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - ldr r0, =0x0000fffe\n\ - strh r0, [r6, 0x8]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0xA]\n\ - strh r4, [r7, 0xE]\n\ -_08107B0E:\n\ - ldr r0, =gBattle_BG1_X\n\ - ldrh r1, [r0]\n\ - movs r0, 0x14\n\ - bl SetGpuReg\n\ - ldr r2, =gBattle_BG1_Y\n\ - ldrh r1, [r2]\n\ - movs r0, 0x16\n\ - bl SetGpuReg\n\ - ldr r1, =gTasks\n\ - mov r2, r8\n\ - lsls r0, r2, 2\n\ - add r0, r8\n\ - lsls r0, 3\n\ - adds r1, r0, r1\n\ - movs r2, 0xE\n\ - ldrsh r0, [r1, r2]\n\ - cmp r0, 0\n\ - bne _08107B54\n\ - movs r0, 0x30\n\ - strh r0, [r1, 0x10]\n\ - movs r0, 0x70\n\ - b _08107B58\n\ - .pool\n\ -_08107B54:\n\ - movs r0, 0\n\ - strh r0, [r1, 0x10]\n\ -_08107B58:\n\ - strh r0, [r1, 0x12]\n\ - ldr r1, =gTasks\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - movs r1, 0x1\n\ - strh r1, [r0, 0x14]\n\ - ldr r1, =AnimTask_CreateSurfWave_Step1\n\ - str r1, [r0]\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif -#ifdef NONMATCHING static void AnimTask_CreateSurfWave_Step1(u8 taskId) { - struct BattleAnimBgData animBg; - u8 i; u16 rgbBuffer; - u16 *BGptrX = &gBattle_BG1_X; - u16 *BGptrY = &gBattle_BG1_Y; - s16 unkUse; - u32 palOffset; - u16 palNum; + u8 i; + u16 *BGptrX, *BGptrY; + struct BattleAnimBgData animBg; + + BGptrX = &gBattle_BG1_X; + BGptrY = &gBattle_BG1_Y; *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; @@ -1116,29 +891,26 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId) gTasks[taskId].data[2] += gTasks[taskId].data[1]; if (++gTasks[taskId].data[5] == 4) { - rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7]; - for (i = 6; i != 0; i--) + rgbBuffer = gPlttBufferFaded[16 * animBg.paletteId + 7]; + for (i = 6; i != 0; i--) // i > 0 generates the exact same code in this context { - palNum = animBg.paletteId * 16; - palOffset = 1 + i; - gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; + gPlttBufferFaded[16 * animBg.paletteId + 1 + i] = gPlttBufferFaded[16 * animBg.paletteId + 1 + i - 1]; // 1 + i - 1 is needed to match for some bizarre reason } - gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer; + gPlttBufferFaded[16 * animBg.paletteId + 1] = rgbBuffer; gTasks[taskId].data[5] = 0; } if (++gTasks[taskId].data[6] > 1) { gTasks[taskId].data[6] = 0; - unkUse = ++gTasks[taskId].data[3]; - if (unkUse <= 13) + if (++gTasks[taskId].data[3] < 14) { - gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[3]) | ((16 - gTasks[taskId].data[3]) << 8)); gTasks[taskId].data[4]++; } if (gTasks[taskId].data[3] > 54) { - unkUse = --gTasks[taskId].data[4]; - gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[taskId].data[4]--; + gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[4]) | ((16 - gTasks[taskId].data[4]) << 8)); } } if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) @@ -1147,167 +919,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId) gTasks[taskId].func = AnimTask_CreateSurfWave_Step2; } } -#else -NAKED -static void AnimTask_CreateSurfWave_Step1(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - sub sp, 0x10\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r1, =gBattle_BG1_X\n\ - ldr r2, =gBattle_BG1_Y\n\ - ldr r0, =gTasks\n\ - lsls r4, r5, 2\n\ - adds r4, r5\n\ - lsls r4, 3\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0x8]\n\ - ldrh r3, [r1]\n\ - adds r0, r3\n\ - strh r0, [r1]\n\ - ldrh r0, [r4, 0xA]\n\ - ldrh r1, [r2]\n\ - adds r0, r1\n\ - strh r0, [r2]\n\ - mov r0, sp\n\ - bl sub_80A6B30\n\ - ldrh r0, [r4, 0xA]\n\ - ldrh r3, [r4, 0xC]\n\ - adds r0, r3\n\ - strh r0, [r4, 0xC]\n\ - ldrh r0, [r4, 0x12]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x12]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x4\n\ - bne _08107C18\n\ - ldr r1, =gPlttBufferFaded\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x8]\n\ - lsls r0, 4\n\ - adds r0, 0x7\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r6, [r0]\n\ - movs r2, 0x6\n\ - adds r7, r1, 0\n\ - adds r3, r7, 0\n\ - mov r4, sp\n\ -_08107BDE:\n\ - ldrb r0, [r4, 0x8]\n\ - lsls r0, 4\n\ - adds r1, r2, 0x1\n\ - adds r0, r1\n\ - lsls r1, r0, 1\n\ - adds r1, r3\n\ - subs r0, 0x1\n\ - lsls r0, 1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - subs r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0\n\ - bne _08107BDE\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x8]\n\ - lsls r0, 4\n\ - adds r0, 0x1\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - strh r6, [r0]\n\ - ldr r1, =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - strh r2, [r0, 0x12]\n\ -_08107C18:\n\ - ldr r1, =gTasks\n\ - lsls r2, r5, 2\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r3, r0, r1\n\ - ldrh r0, [r3, 0x14]\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x14]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - adds r4, r1, 0\n\ - adds r6, r2, 0\n\ - cmp r0, 0x1\n\ - ble _08107C86\n\ - movs r0, 0\n\ - strh r0, [r3, 0x14]\n\ - ldrh r0, [r3, 0xE]\n\ - adds r2, r0, 0x1\n\ - strh r2, [r3, 0xE]\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - cmp r0, 0xD\n\ - bgt _08107C62\n\ - movs r1, 0x26\n\ - ldrsh r0, [r3, r1]\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r4\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - orrs r2, r0\n\ - strh r2, [r1, 0xA]\n\ - ldrh r0, [r3, 0x10]\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x10]\n\ -_08107C62:\n\ - movs r1, 0xE\n\ - ldrsh r0, [r3, r1]\n\ - cmp r0, 0x36\n\ - ble _08107C86\n\ - ldrh r2, [r3, 0x10]\n\ - subs r2, 0x1\n\ - strh r2, [r3, 0x10]\n\ - movs r1, 0x26\n\ - ldrsh r0, [r3, r1]\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r4\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - orrs r2, r0\n\ - strh r2, [r1, 0xA]\n\ -_08107C86:\n\ - adds r0, r6, r5\n\ - lsls r0, 3\n\ - adds r2, r0, r4\n\ - movs r3, 0x26\n\ - ldrsh r1, [r2, r3]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r4\n\ - ldrh r0, [r0, 0xA]\n\ - movs r3, 0x1F\n\ - ands r3, r0\n\ - cmp r3, 0\n\ - bne _08107CA8\n\ - strh r3, [r2, 0x8]\n\ - ldr r0, =AnimTask_CreateSurfWave_Step2\n\ - str r0, [r2]\n\ -_08107CA8:\n\ - add sp, 0x10\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif + static void AnimTask_CreateSurfWave_Step2(u8 taskId) { @@ -1931,216 +1543,50 @@ static void AnimWaterPulseRing_Step(struct Sprite *sprite) sprite->data[0]++; } -#ifdef NONMATCHING -static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, s32 xDiff, s32 yDiff) { - s16 something = sprite->data[0] / 2; - s16 combinedX = sprite->pos1.x + sprite->pos2.x; - s16 combinedY = sprite->pos1.y + sprite->pos2.y; - s16 randomSomethingY = yDiff + (Random2() % 10) - 5; - s16 randomSomethingX = -xDiff + (Random2() % 10) - 5; - s16 i; + s16 combinedX, combinedY; + s16 i, something; + s16 unusedVar = 1; //unusedVar is needed to match + s16 somethingRandomX, somethingRandomY; u8 spriteId; - for (i = 0; i <= 0; i++) + something = sprite->data[0] / 2; + combinedX = sprite->pos1.x + sprite->pos2.x; + combinedY = sprite->pos1.y + sprite->pos2.y; + if (yDiff < 0) + unusedVar *= -1; //Needed to Match + somethingRandomY = yDiff + (Random2() % 10) - 5; + somethingRandomX = -xDiff + (Random2() % 10) - 5; + + for (i = 0; i < 1; i++) { spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130); gSprites[spriteId].data[0] = 20; - gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].data[1] = somethingRandomY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; - if (randomSomethingX < 0) - gSprites[spriteId].data[2] = -randomSomethingX; + if (somethingRandomX < 0) + { + gSprites[spriteId].data[2] = -somethingRandomX; + } else - gSprites[spriteId].data[2] = randomSomethingX; + { + gSprites[spriteId].data[2] = somethingRandomX; + } } - for (i = 0; i <= 0; i++) + for (i = 0; i < 1; i++) { spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130); gSprites[spriteId].data[0] = 20; - gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].data[1] = somethingRandomY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; - if (randomSomethingX > 0) - gSprites[spriteId].data[2] = -randomSomethingX; + if (somethingRandomX > 0) + { + gSprites[spriteId].data[2] = -somethingRandomX; + } else - gSprites[spriteId].data[2] = randomSomethingX; + { + gSprites[spriteId].data[2] = somethingRandomX; + } } } -#else -NAKED -static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - adds r4, r1, 0\n\ - adds r5, r2, 0\n\ - movs r2, 0x2E\n\ - ldrsh r1, [r0, r2]\n\ - lsrs r2, r1, 31\n\ - adds r1, r2\n\ - lsls r1, 15\n\ - lsrs r1, 16\n\ - str r1, [sp]\n\ - ldrh r1, [r0, 0x24]\n\ - ldrh r3, [r0, 0x20]\n\ - adds r1, r3\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r8, r1\n\ - ldrh r1, [r0, 0x26]\n\ - ldrh r0, [r0, 0x22]\n\ - adds r1, r0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r10, r1\n\ - bl Random2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - adds r0, r5, r0\n\ - subs r0, 0x5\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - bl Random2\n\ - negs r4, r4\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - adds r4, r0\n\ - subs r4, 0x5\n\ - lsls r4, 16\n\ - lsrs r7, r4, 16\n\ - movs r6, 0\n\ - mov r0, r8\n\ - lsls r0, 16\n\ - mov r8, r0\n\ - mov r1, r10\n\ - lsls r1, 16\n\ - str r1, [sp, 0xC]\n\ - ldr r2, [sp]\n\ - lsls r2, 16\n\ - str r2, [sp, 0x10]\n\ - asrs r1, 16\n\ - lsls r0, r7, 16\n\ - asrs r5, r0, 16\n\ - str r0, [sp, 0x14]\n\ - negs r3, r5\n\ - str r3, [sp, 0x4]\n\ - asrs r0, r2, 16\n\ - adds r1, r0\n\ - lsls r1, 16\n\ - mov r10, r1\n\ -_08108DE2:\n\ - ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ - mov r2, r8\n\ - asrs r1, r2, 16\n\ - mov r3, r10\n\ - asrs r2, r3, 16\n\ - movs r3, 0x82\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r1, =gSprites\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r4, r0, r1\n\ - movs r0, 0x14\n\ - strh r0, [r4, 0x2E]\n\ - mov r0, r9\n\ - strh r0, [r4, 0x30]\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSpriteSubpriority\n\ - subs r0, 0x1\n\ - adds r1, r4, 0\n\ - adds r1, 0x43\n\ - strb r0, [r1]\n\ - cmp r5, 0\n\ - bge _08108E30\n\ - mov r1, sp\n\ - ldrh r1, [r1, 0x4]\n\ - strh r1, [r4, 0x32]\n\ - b _08108E32\n\ - .pool\n\ -_08108E30:\n\ - strh r7, [r4, 0x32]\n\ -_08108E32:\n\ - lsls r0, r6, 16\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r0, r2\n\ - lsrs r6, r0, 16\n\ - cmp r0, 0\n\ - ble _08108DE2\n\ - movs r6, 0\n\ - ldr r3, [sp, 0xC]\n\ - asrs r1, r3, 16\n\ - ldr r0, [sp, 0x14]\n\ - asrs r5, r0, 16\n\ - negs r2, r5\n\ - str r2, [sp, 0x8]\n\ - ldr r3, [sp, 0x10]\n\ - asrs r0, r3, 16\n\ - subs r1, r0\n\ - lsls r1, 16\n\ - mov r10, r1\n\ -_08108E58:\n\ - ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ - mov r2, r8\n\ - asrs r1, r2, 16\n\ - mov r3, r10\n\ - asrs r2, r3, 16\n\ - movs r3, 0x82\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r1, =gSprites\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r4, r0, r1\n\ - movs r0, 0x14\n\ - strh r0, [r4, 0x2E]\n\ - mov r0, r9\n\ - strh r0, [r4, 0x30]\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSpriteSubpriority\n\ - subs r0, 0x1\n\ - adds r1, r4, 0\n\ - adds r1, 0x43\n\ - strb r0, [r1]\n\ - cmp r5, 0\n\ - ble _08108EA8\n\ - mov r1, sp\n\ - ldrh r1, [r1, 0x8]\n\ - strh r1, [r4, 0x32]\n\ - b _08108EAA\n\ - .pool\n\ -_08108EA8:\n\ - strh r7, [r4, 0x32]\n\ -_08108EAA:\n\ - lsls r0, r6, 16\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r0, r2\n\ - lsrs r6, r0, 16\n\ - cmp r0, 0\n\ - ble _08108E58\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n"); -} -#endif diff --git a/src/battle_arena.c b/src/battle_arena.c index 42a967fc6..0ffba4910 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -563,7 +563,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) } break; case 4: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 40, ARENA_CATEGORY_MIND, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 40, ARENA_CATEGORY_MIND, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -572,7 +572,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 5: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 56, ARENA_CATEGORY_SKILL, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 56, ARENA_CATEGORY_SKILL, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -581,7 +581,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 6: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 72, ARENA_CATEGORY_BODY, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 72, ARENA_CATEGORY_BODY, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -590,7 +590,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 7: - PlaySE(SE_HANTEI2); + PlaySE(SE_ARENA_TIMEUP2); if (gBattleTextBuff1[0] > gBattleTextBuff2[0]) { ret = 2; diff --git a/src/battle_bg.c b/src/battle_bg.c index 00c504bfd..7c9b05b25 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -1105,7 +1105,7 @@ void InitLinkBattleVsScreen(u8 taskId) if (gTasks[taskId].data[5] != 0) DrawLinkBattleVsScreenOutcomeText(); - PlaySE(SE_W231); + PlaySE(SE_M_HARDEN); DestroyTask(taskId); gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE; gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index f9b0409e5..3461e9754 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1357,7 +1357,7 @@ static void LinkOpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_8064C14; } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 536eb6da7..63aa6eaea 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1179,7 +1179,7 @@ static void LinkPartnerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 7b67aaba4..858201b4b 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1394,7 +1394,7 @@ static void OpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4; } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 459e4566a..c9a3bc2e0 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -853,7 +853,7 @@ static void sub_80586F8(void) { if (gReceivedRemoteLinkPlayers == 0) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); @@ -866,7 +866,7 @@ static void sub_80586F8(void) { if (IsLinkTaskFinished()) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); @@ -886,16 +886,16 @@ void sub_80587B0(void) if (IsLinkTaskFinished()) { if (gWirelessCommType == 0) - sub_800AC34(); + SetCloseLinkCallback(); else - sub_800ADF8(); + SetLinkStandbyCallback(); gBattlerControllerFuncs[gActiveBattler] = sub_80586F8; } } else { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(gMain.savedCallback); @@ -1468,8 +1468,7 @@ static void MoveSelectionDisplayPpNumber(void) SetPpNumbersPaletteInMoveSelection(); moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); - txtPtr[0] = CHAR_SLASH; - txtPtr++; + *(txtPtr)++ = CHAR_SLASH; ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); BattlePutTextOnWindow(gDisplayedStringBattle, 9); @@ -1481,12 +1480,9 @@ static void MoveSelectionDisplayMoveType(void) struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType); - txtPtr[0] = EXT_CTRL_CODE_BEGIN; - txtPtr++; - txtPtr[0] = 6; - txtPtr++; - txtPtr[0] = 1; - txtPtr++; + *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; + *(txtPtr)++ = EXT_CTRL_CODE_SIZE; + *(txtPtr)++ = 1; StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); BattlePutTextOnWindow(gDisplayedStringBattle, 10); @@ -2396,7 +2392,7 @@ static void PlayerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 5efb6ffe1..7796bef09 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1371,7 +1371,7 @@ static void PlayerPartnerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index a343246c5..76e84da41 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -1284,7 +1284,7 @@ static void RecordedOpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_8186D58; } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index f77cb3e11..387586f88 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -1286,7 +1286,7 @@ static void RecordedPlayerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, -64); + PlaySE12WithPanning(SE_FAINT, -64); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_dome.c b/src/battle_dome.c index 151bfc927..3654d2ccf 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -29,7 +29,7 @@ #include "international_string_util.h" #include "trainer_pokemon_sprites.h" #include "scanline_effect.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "graphics.h" #include "constants/battle_dome.h" #include "constants/frontier_util.h" diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 54fc88f24..b1bb61aaf 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -916,14 +916,14 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform if (IsContest()) { position = 0; - targetSpecies = gContestResources->field_18->unk2; - personalityValue = gContestResources->field_18->unk8; - otId = gContestResources->field_18->unkC; + targetSpecies = gContestResources->moveAnim->targetSpecies; + personalityValue = gContestResources->moveAnim->personality; + otId = gContestResources->moveAnim->otId; HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], gMonSpritesGfxPtr->sprites[0], targetSpecies, - gContestResources->field_18->unk10); + gContestResources->moveAnim->targetPersonality); } else { @@ -1014,15 +1014,12 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) palOffset = (battlerId * 16) + 0x100; LoadCompressedPalette(gSubstituteDollPal, palOffset, 32); } - else + else if (!IsContest()) { - if (!IsContest()) - { - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); - else - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); - } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); + else + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); } } @@ -1058,7 +1055,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong) { if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) - PlaySE(SE_HINSI); + PlaySE(SE_LOW_HEALTH); gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1; } } @@ -1067,12 +1064,12 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 0; if (!IsDoubleBattle()) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); return; } if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); return; } } @@ -1086,7 +1083,7 @@ void BattleStopLowHpSound(void) if (IsDoubleBattle()) gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0; - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); } u8 GetMonHPBarLevel(struct Pokemon *mon) diff --git a/src/battle_interface.c b/src/battle_interface.c index 12273addb..719af6a06 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1649,7 +1649,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, gBattleSpritesDataPtr->animationData->field_9_x1C++; } - PlaySE12WithPanning(SE_TB_START, 0); + PlaySE12WithPanning(SE_BALL_TRAY_ENTER, 0); return taskId; } @@ -1852,9 +1852,9 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) pan = SOUND_PAN_ATTACKER; if (sprite->data[7] != 0) - PlaySE2WithPanning(SE_TB_KARA, pan); + PlaySE2WithPanning(SE_BALL_TRAY_EXIT, pan); else - PlaySE1WithPanning(SE_TB_KON, pan); + PlaySE1WithPanning(SE_BALL_TRAY_BALL, pan); sprite->callback = SpriteCallbackDummy; } diff --git a/src/battle_main.c b/src/battle_main.c index 1d8aeab53..935a53ffe 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1484,9 +1484,9 @@ static void CB2_PreInitMultiBattle(void) { gBattleCommunication[MULTIUSE_STATE]++; if (gWirelessCommType) - sub_800ADF8(); + SetLinkStandbyCallback(); else - sub_800AC34(); + SetCloseLinkCallback(); } break; case 3: @@ -1869,7 +1869,7 @@ static void FreeRestoreBattleData(void) gScanlineEffect.state = 3; gMain.inBattle = 0; ZeroEnemyPartyMons(); - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); FreeMonSpritesGfx(); FreeBattleSpritesData(); FreeBattleResources(); @@ -2114,7 +2114,7 @@ void sub_8038B74(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); sprite->callback = sub_8038B04; - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); } static void sub_8038B94(u8 taskId) @@ -2368,7 +2368,7 @@ static void sub_8038F34(void) case 6: if (IsLinkTaskFinished() == TRUE) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); gBattleCommunication[MULTIUSE_STATE]++; } @@ -2382,7 +2382,7 @@ static void sub_8038F34(void) break; case 8: if (!gWirelessCommType) - sub_800AC34(); + SetCloseLinkCallback(); gBattleCommunication[MULTIUSE_STATE]++; break; case 9: @@ -2556,7 +2556,7 @@ static void sub_803939C(void) HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); if (gMain.field_439_x4) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); } gBattleCommunication[MULTIUSE_STATE]++; @@ -2566,7 +2566,7 @@ static void sub_803939C(void) if (--gBattleCommunication[1] == 0) { if (gMain.field_439_x4 && !gWirelessCommType) - sub_800AC34(); + SetCloseLinkCallback(); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -2605,7 +2605,7 @@ static void sub_803939C(void) { if (gMain.field_439_x4) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); } gBattleCommunication[MULTIUSE_STATE]++; @@ -3135,7 +3135,7 @@ void SwitchInClearSetData(void) if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) { for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) @@ -3244,7 +3244,7 @@ void FaintClearSetData(void) u8 *ptr; for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[gActiveBattler].status2 = 0; gStatuses3[gActiveBattler] = 0; @@ -3398,7 +3398,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; *hpOnSwitchout = gBattleMons[gActiveBattler].hp; for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[gActiveBattler].status2 = 0; } @@ -4851,40 +4851,38 @@ static void SetActionsAndBattlersTurnOrder(void) gBattleStruct->focusPunchBattlerId = 0; return; } - else + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + } + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + { + if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (i = 0; i < gBattlersCount - 1; i++) + } + for (i = 0; i < gBattlersCount - 1; i++) + { + for (j = i + 1; j < gBattlersCount; j++) { - for (j = i + 1; j < gBattlersCount; j++) + u8 battler1 = gBattlerByTurnOrder[i]; + u8 battler2 = gBattlerByTurnOrder[j]; + + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[i] != B_ACTION_SWITCH + && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { - u8 battler1 = gBattlerByTurnOrder[i]; - u8 battler2 = gBattlerByTurnOrder[j]; - if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[i] != B_ACTION_SWITCH - && gActionsByTurnOrder[j] != B_ACTION_SWITCH) - { - if (GetWhoStrikesFirst(battler1, battler2, FALSE)) - SwapTurnOrder(i, j); - } + if (GetWhoStrikesFirst(battler1, battler2, FALSE)) + SwapTurnOrder(i, j); } } } @@ -4962,12 +4960,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) } TryClearRageStatuses(); - gCurrentTurnActionNumber = 0; -{ - // something stupid needed to match - u8 zero; - gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; -} + gCurrentTurnActionNumber = 0; //See comment underneath + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleMainFunc = RunTurnActionsFunctions; @@ -4990,13 +4984,10 @@ static void RunTurnActionsFunctions(void) gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; } - else + else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId { - if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId - { - gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); - gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); - } + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); } } @@ -5019,9 +5010,9 @@ static void HandleEndTurn_BattleWon(void) gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) - PlayBGM(MUS_KACHI3); + PlayBGM(MUS_VICTORY_GYM_LEADER); else - PlayBGM(MUS_KACHI1); + PlayBGM(MUS_VICTORY_TRAINER); } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) { @@ -5032,7 +5023,7 @@ static void HandleEndTurn_BattleWon(void) { case TRAINER_CLASS_ELITE_FOUR: case TRAINER_CLASS_CHAMPION: - PlayBGM(MUS_KACHI5); + PlayBGM(MUS_VICTORY_LEAGUE); break; case TRAINER_CLASS_TEAM_AQUA: case TRAINER_CLASS_TEAM_MAGMA: @@ -5040,13 +5031,13 @@ static void HandleEndTurn_BattleWon(void) case TRAINER_CLASS_AQUA_LEADER: case TRAINER_CLASS_MAGMA_ADMIN: case TRAINER_CLASS_MAGMA_LEADER: - PlayBGM(MUS_KACHI4); + PlayBGM(MUS_VICTORY_AQUA_MAGMA); break; case TRAINER_CLASS_LEADER: - PlayBGM(MUS_KACHI3); + PlayBGM(MUS_VICTORY_GYM_LEADER); break; default: - PlayBGM(MUS_KACHI1); + PlayBGM(MUS_VICTORY_TRAINER); break; } } @@ -5279,7 +5270,7 @@ static void ReturnFromBattleToOverworld(void) SetRoamerInactive(); } - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); SetMainCallback2(gMain.savedCallback); } @@ -5826,7 +5817,7 @@ static void HandleAction_GoNear(void) static void HandleAction_SafariZoneRun(void) { gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; - PlaySE(SE_NIGERU); + PlaySE(SE_FLEE); gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; } diff --git a/src/battle_message.c b/src/battle_message.c index 2a0ba4ded..59ad0cee4 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -19,12 +19,15 @@ #include "text.h" #include "trainer_hill.h" #include "window.h" +#include "constants/battle_dome.h" #include "constants/battle_string_ids.h" +#include "constants/berry.h" #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/trainers.h" #include "constants/trainer_hill.h" +#include "constants/weather.h" struct BattleWindowText { @@ -312,23 +315,23 @@ static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_CriticalHit[] = _("A critical hit!"); static const u8 sText_OneHitKO[] = _("It's a one-hit KO!"); -static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); +static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p"); static const u8 sText_AndEllipsis[] = _("And…\p"); static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p"); static const u8 sText_NotVeryEffective[] = _("It's not very effective…"); static const u8 sText_SuperEffective[] = _("It's super effective!"); -static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); -static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); -static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); -static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!"); +static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}Got away safely!\p"); +static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); +static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); +static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_FLEE}Wild {B_BUFF1} fled!"); static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_WildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!"); -static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); +static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} fled!"); +static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can't escape!\p"); static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p"); @@ -378,7 +381,7 @@ static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); +static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); @@ -433,11 +436,16 @@ static const u8 sText_SpDef2[] = _("SP. DEF"); static const u8 sText_Accuracy[] = _("accuracy"); static const u8 sText_Evasiveness[] = _("evasiveness"); -const u8 * const gStatNamesTable[] = +const u8 * const gStatNamesTable[NUM_BATTLE_STATS] = { - sText_HP2, sText_Attack2, sText_Defense2, - sText_Speed, sText_SpAtk2, sText_SpDef2, - sText_Accuracy, sText_Evasiveness + [STAT_HP] = sText_HP2, + [STAT_ATK] = sText_Attack2, + [STAT_DEF] = sText_Defense2, + [STAT_SPEED] = sText_Speed, + [STAT_SPATK] = sText_SpAtk2, + [STAT_SPDEF] = sText_SpDef2, + [STAT_ACC] = sText_Accuracy, + [STAT_EVASION] = sText_Evasiveness, }; static const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); @@ -446,11 +454,13 @@ static const u8 sText_PokeblockWasTooSweet[] = _("was too sweet!"); static const u8 sText_PokeblockWasTooBitter[] = _("was too bitter!"); static const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); -const u8 * const gPokeblockWasTooXStringTable[] = +const u8 * const gPokeblockWasTooXStringTable[FLAVOR_COUNT] = { - sText_PokeblockWasTooSpicy, sText_PokeblockWasTooDry, - sText_PokeblockWasTooSweet, sText_PokeblockWasTooBitter, - sText_PokeblockWasTooSour + [FLAVOR_SPICY] = sText_PokeblockWasTooSpicy, + [FLAVOR_DRY] = sText_PokeblockWasTooDry, + [FLAVOR_SWEET] = sText_PokeblockWasTooSweet, + [FLAVOR_BITTER] = sText_PokeblockWasTooBitter, + [FLAVOR_SOUR] = sText_PokeblockWasTooSour }; static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); @@ -464,8 +474,8 @@ static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); -static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}\p"); -static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}{PAUSE 127}"); +static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"); +static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"); static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); static const u8 sText_Someones[] = _("someone's"); @@ -979,16 +989,28 @@ const u16 gStatDownStringIds[] = STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 }; +// Index read from sTWOTURN_STRINGID const u16 gFirstTurnOfTwoStringIds[] = { - STRINGID_PKMNWHIPPEDWHIRLWIND, STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, STRINGID_PKMNSPRANGUP + STRINGID_PKMNWHIPPEDWHIRLWIND, // MOVE_RAZOR_WIND + STRINGID_PKMNTOOKSUNLIGHT, // MOVE_SOLAR_BEAM + STRINGID_PKMNLOWEREDHEAD, // MOVE_SKULL_BASH + STRINGID_PKMNISGLOWING, // MOVE_SKY_ATTACK + STRINGID_PKMNFLEWHIGH, // MOVE_FLY + STRINGID_PKMNDUGHOLE, // MOVE_DIG + STRINGID_PKMNHIDUNDERWATER, // MOVE_DIVE + STRINGID_PKMNSPRANGUP // MOVE_BOUNCE }; +// Index copied from move's index in gTrappingMoves const u16 gWrappedStringIds[] = { - STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNTRAPPEDBYSANDTOMB + STRINGID_PKMNSQUEEZEDBYBIND, // MOVE_BIND + STRINGID_PKMNWRAPPEDBY, // MOVE_WRAP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_FIRE_SPIN + STRINGID_PKMNCLAMPED, // MOVE_CLAMP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_WHIRLPOOL + STRINGID_PKMNTRAPPEDBYSANDTOMB // MOVE_SAND_TOMB }; const u16 gMistUsedStringIds[] = @@ -1078,13 +1100,25 @@ const u16 gBallEscapeStringIds[] = STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE }; -const u16 gWeatherContinuesStringIds[] = -{ - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING +// Overworld weathers that don't have an associated battle weather default to "It is raining." +const u16 gWeatherStartsStringIds[] = +{ + [WEATHER_NONE] = STRINGID_ITISRAINING, + [WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING, + [WEATHER_SUNNY] = STRINGID_ITISRAINING, + [WEATHER_RAIN] = STRINGID_ITISRAINING, + [WEATHER_SNOW] = STRINGID_ITISRAINING, + [WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING, + [WEATHER_FOG_HORIZONTAL] = STRINGID_ITISRAINING, + [WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING, + [WEATHER_SANDSTORM] = STRINGID_SANDSTORMISRAGING, + [WEATHER_FOG_DIAGONAL] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER] = STRINGID_ITISRAINING, + [WEATHER_SHADE] = STRINGID_ITISRAINING, + [WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG, + [WEATHER_DOWNPOUR] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER_BUBBLES] = STRINGID_ITISRAINING, + [WEATHER_ABNORMAL] = STRINGID_ITISRAINING }; const u16 gInobedientStringIds[] = @@ -1146,7 +1180,13 @@ const u16 gCaughtMonStringIds[] = const u16 gTrappingMoves[] = { - MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xFFFF + MOVE_BIND, + MOVE_WRAP, + MOVE_FIRE_SPIN, + MOVE_CLAMP, + MOVE_WHIRLPOOL, + MOVE_SAND_TOMB, + 0xFFFF }; const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); @@ -1207,26 +1247,27 @@ const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); -static const u8 sATypeMove_Table[][17] = -{ - _("a NORMAL move"), - _("a FIGHTING move"), - _("a FLYING move"), - _("a POISON move"), - _("a GROUND move"), - _("a ROCK move"), - _("a BUG move"), - _("a GHOST move"), - _("a STEEL move"), - _("a ??? move"), - _("a FIRE move"), - _("a WATER move"), - _("a GRASS move"), - _("an ELECTRIC move"), - _("a PSYCHIC move"), - _("an ICE move"), - _("a DRAGON move"), - _("a DARK move") +// For displaying names of invalid moves +static const u8 sATypeMove_Table[][NUMBER_OF_MON_TYPES - 1] = +{ + [TYPE_NORMAL] = _("a NORMAL move"), + [TYPE_FIGHTING] = _("a FIGHTING move"), + [TYPE_FLYING] = _("a FLYING move"), + [TYPE_POISON] = _("a POISON move"), + [TYPE_GROUND] = _("a GROUND move"), + [TYPE_ROCK] = _("a ROCK move"), + [TYPE_BUG] = _("a BUG move"), + [TYPE_GHOST] = _("a GHOST move"), + [TYPE_STEEL] = _("a STEEL move"), + [TYPE_MYSTERY] = _("a ??? move"), + [TYPE_FIRE] = _("a FIRE move"), + [TYPE_WATER] = _("a WATER move"), + [TYPE_GRASS] = _("a GRASS move"), + [TYPE_ELECTRIC] = _("an ELECTRIC move"), + [TYPE_PSYCHIC] = _("a PSYCHIC move"), + [TYPE_ICE] = _("an ICE move"), + [TYPE_DRAGON] = _("a DRAGON move"), + [TYPE_DARK] = _("a DARK move") }; const u8 gText_BattleTourney[] = _("BATTLE TOURNEY"); @@ -1235,16 +1276,16 @@ static const u8 sText_Round2[] = _("Round 2"); static const u8 sText_Semifinal[] = _("Semifinal"); static const u8 sText_Final[] = _("Final"); -const u8 *const gRoundsStringTable[] = +const u8 *const gRoundsStringTable[DOME_ROUNDS_COUNT] = { - sText_Round1, - sText_Round2, - sText_Semifinal, - sText_Final + [DOME_ROUND1] = sText_Round1, + [DOME_ROUND2] = sText_Round2, + [DOME_SEMIFINAL] = sText_Semifinal, + [DOME_FINAL] = sText_Final }; const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); -const u8 gText_WillChampinshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); +const u8 gText_WillChampionshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); @@ -1305,7 +1346,7 @@ static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); -static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); +static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); @@ -2715,7 +2756,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) { dst[dstID] = EXT_CTRL_CODE_BEGIN; dstID++; - dst[dstID] = 9; + dst[dstID] = EXT_CTRL_CODE_PAUSE_UNTIL_PRESS; dstID++; } } diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 5626dd7bc..e038e71e1 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -402,7 +402,7 @@ static void sub_81C501C(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -424,7 +424,7 @@ static bool8 sub_81C5078(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -970,7 +970,7 @@ static void HandleMenuActionInput(u8 taskId) if (id > 0 && IsValidMenuAction(id - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -978,7 +978,7 @@ static void HandleMenuActionInput(u8 taskId) if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) @@ -986,7 +986,7 @@ static void HandleMenuActionInput(u8 taskId) if (id & 1 && IsValidMenuAction(id - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) @@ -994,7 +994,7 @@ static void HandleMenuActionInput(u8 taskId) if (!(id & 1) && IsValidMenuAction(id + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) diff --git a/src/battle_records.c b/src/battle_records.c index ccd16e219..c6363a6ed 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -494,7 +494,7 @@ static void CB2_ShowTrainerHillRecords(void) break; case 3: LoadTrainerHillRecordsWindowGfx(3); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); gMain.state++; break; case 4: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a70288015..8f7013e45 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1128,13 +1128,13 @@ static void Cmd_accuracycheck(void) else { u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_ACC]; - buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_EVASION]; + buff = acc + DEFAULT_STAT_STAGE - gBattleMons[gBattlerTarget].statStages[STAT_EVASION]; } - if (buff < 0) - buff = 0; - if (buff > 0xC) - buff = 0xC; + if (buff < MIN_STAT_STAGE) + buff = MIN_STAT_STAGE; + if (buff > MAX_STAT_STAGE) + buff = MAX_STAT_STAGE; moveAcc = gBattleMoves[move].accuracy; // check Thunder on sunny weather @@ -1977,11 +1977,11 @@ static void Cmd_effectivenesssound(void) switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { case MOVE_RESULT_SUPER_EFFECTIVE: - BtlController_EmitPlaySE(0, SE_KOUKA_H); + BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - BtlController_EmitPlaySE(0, SE_KOUKA_L); + BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: @@ -1994,17 +1994,17 @@ static void Cmd_effectivenesssound(void) default: if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { - BtlController_EmitPlaySE(0, SE_KOUKA_H); + BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { - BtlController_EmitPlaySE(0, SE_KOUKA_L); + BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { - BtlController_EmitPlaySE(0, SE_KOUKA_M); + BtlController_EmitPlaySE(0, SE_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } break; @@ -3320,7 +3320,7 @@ static void Cmd_getexp(void) if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong) { BattleStopLowHpSound(); - PlayBGM(MUS_KACHI2); + PlayBGM(MUS_VICTORY_WILD); gBattleStruct->wildVictorySong++; } @@ -3489,7 +3489,6 @@ static void Cmd_getexp(void) } } -#ifdef NONMATCHING static void Cmd_unknown_24(void) { u16 HP_count = 0; @@ -3500,7 +3499,7 @@ static void Cmd_unknown_24(void) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId == TRAINER_STEVEN_PARTNER) { - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); @@ -3521,7 +3520,9 @@ static void Cmd_unknown_24(void) if (HP_count == 0) gBattleOutcome |= B_OUTCOME_LOST; - for (HP_count = 0, i = 0; i < PARTY_SIZE; i++) + HP_count = 0; + + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES) && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostOpponentMons & gBitTable[i]))) @@ -3535,33 +3536,31 @@ static void Cmd_unknown_24(void) if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) { - s32 foundPlayer; - s32 foundOpponent; - - // Impossible to decompile loops. - for (foundPlayer = 0, i = 0; i < gBattlersCount; i += 2) + s32 foundPlayer = 0, foundOpponent; + for (i = 0; i < gBattlersCount; i += 2) { - if (HITMARKER_FAINTED2(i) & gHitMarker && !gSpecialStatuses[i].flag40) + if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40)) foundPlayer++; } - for (foundOpponent = 0, i = 1; i < gBattlersCount; i += 2) + foundOpponent = 0; + for (i = 1; i < gBattlersCount; i += 2) { - if (HITMARKER_FAINTED2(i) & gHitMarker && !gSpecialStatuses[i].flag40) + if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40)) foundOpponent++; } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (foundOpponent + foundPlayer > 1) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; } else { if (foundOpponent != 0 && foundPlayer != 0) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; } @@ -3571,301 +3570,6 @@ static void Cmd_unknown_24(void) gBattlescriptCurrInstr += 5; } } -#else -NAKED -static void Cmd_unknown_24(void) -{ - asm("\n\ - .syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - movs r6, 0\n\ - ldr r0, =gBattleControllerExecFlags\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - beq _0804ACE2\n\ - b _0804AF22\n\ - _0804ACE2:\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 15\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AD48\n\ - ldr r0, =gPartnerTrainerId\n\ - ldrh r1, [r0]\n\ - ldr r0, =0x00000c03\n\ - cmp r1, r0\n\ - bne _0804AD48\n\ - movs r5, 0\n\ - _0804ACFC:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804AD2C\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804AD2C\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804AD2C:\n\ - adds r5, 0x1\n\ - cmp r5, 0x2\n\ - ble _0804ACFC\n\ - b _0804ADA8\n\ - .pool\n\ - _0804AD48:\n\ - movs r5, 0\n\ - _0804AD4A:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804ADA2\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804ADA2\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 11\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AD94\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - movs r1, 0xA8\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - ldr r2, =gBitTable\n\ - lsls r0, r5, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0804ADA2\n\ - _0804AD94:\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804ADA2:\n\ - adds r5, 0x1\n\ - cmp r5, 0x5\n\ - ble _0804AD4A\n\ - _0804ADA8:\n\ - cmp r6, 0\n\ - bne _0804ADB6\n\ - ldr r0, =gBattleOutcome\n\ - ldrb r1, [r0]\n\ - movs r2, 0x2\n\ - orrs r1, r2\n\ - strb r1, [r0]\n\ - _0804ADB6:\n\ - movs r6, 0\n\ - movs r5, 0\n\ - _0804ADBA:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gEnemyParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804AE10\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804AE10\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 11\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AE02\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - ldr r1, =0x000002a1\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - ldr r2, =gBitTable\n\ - lsls r0, r5, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0804AE10\n\ - _0804AE02:\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804AE10:\n\ - adds r5, 0x1\n\ - cmp r5, 0x5\n\ - ble _0804ADBA\n\ - ldr r2, =gBattleOutcome\n\ - cmp r6, 0\n\ - bne _0804AE24\n\ - ldrb r0, [r2]\n\ - movs r1, 0x1\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - _0804AE24:\n\ - ldrb r0, [r2]\n\ - cmp r0, 0\n\ - bne _0804AF1A\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r1, [r0]\n\ - ldr r2, =0x02000002\n\ - ands r1, r2\n\ - mov r8, r0\n\ - cmp r1, 0\n\ - beq _0804AF1A\n\ - movs r3, 0\n\ - movs r5, 0\n\ - ldr r0, =gBattlersCount\n\ - ldrb r1, [r0]\n\ - mov r12, r0\n\ - ldr r7, =gBattlescriptCurrInstr\n\ - cmp r3, r1\n\ - bge _0804AE70\n\ - ldr r0, =gHitMarker\n\ - movs r6, 0x80\n\ - lsls r6, 21\n\ - ldr r4, [r0]\n\ - adds r2, r1, 0\n\ - ldr r1, =gSpecialStatuses\n\ - _0804AE54:\n\ - adds r0, r6, 0\n\ - lsls r0, r5\n\ - ands r0, r4\n\ - cmp r0, 0\n\ - beq _0804AE68\n\ - ldrb r0, [r1]\n\ - lsls r0, 25\n\ - cmp r0, 0\n\ - blt _0804AE68\n\ - adds r3, 0x1\n\ - _0804AE68:\n\ - adds r1, 0x28\n\ - adds r5, 0x2\n\ - cmp r5, r2\n\ - blt _0804AE54\n\ - _0804AE70:\n\ - movs r2, 0\n\ - movs r5, 0x1\n\ - mov r4, r12\n\ - ldrb r1, [r4]\n\ - cmp r5, r1\n\ - bge _0804AEAA\n\ - ldr r0, =gHitMarker\n\ - movs r4, 0x80\n\ - lsls r4, 21\n\ - mov r12, r4\n\ - ldr r6, [r0]\n\ - ldr r0, =gSpecialStatuses\n\ - adds r4, r1, 0\n\ - adds r1, r0, 0\n\ - adds r1, 0x14\n\ - _0804AE8E:\n\ - mov r0, r12\n\ - lsls r0, r5\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _0804AEA2\n\ - ldrb r0, [r1]\n\ - lsls r0, 25\n\ - cmp r0, 0\n\ - blt _0804AEA2\n\ - adds r2, 0x1\n\ - _0804AEA2:\n\ - adds r1, 0x28\n\ - adds r5, 0x2\n\ - cmp r5, r4\n\ - blt _0804AE8E\n\ - _0804AEAA:\n\ - mov r1, r8\n\ - ldr r0, [r1]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AEF0\n\ - adds r0, r2, r3\n\ - cmp r0, 0x1\n\ - bgt _0804AEF8\n\ - b _0804AF12\n\ - .pool\n\ - _0804AEF0:\n\ - cmp r2, 0\n\ - beq _0804AF12\n\ - cmp r3, 0\n\ - beq _0804AF12\n\ - _0804AEF8:\n\ - ldr r2, [r7]\n\ - ldrb r1, [r2, 0x1]\n\ - ldrb r0, [r2, 0x2]\n\ - lsls r0, 8\n\ - adds r1, r0\n\ - ldrb r0, [r2, 0x3]\n\ - lsls r0, 16\n\ - adds r1, r0\n\ - ldrb r0, [r2, 0x4]\n\ - lsls r0, 24\n\ - adds r1, r0\n\ - str r1, [r7]\n\ - b _0804AF22\n\ - _0804AF12:\n\ - ldr r0, [r7]\n\ - adds r0, 0x5\n\ - str r0, [r7]\n\ - b _0804AF22\n\ - _0804AF1A:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, [r1]\n\ - adds r0, 0x5\n\ - str r0, [r1]\n\ - _0804AF22:\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -#endif // NONMATCHING static void MoveValuesCleanUp(void) { @@ -4385,7 +4089,7 @@ static void Cmd_playstatchangeanimation(void) { if (gBattlescriptCurrInstr[3] & STAT_CHANGE_CANT_PREVENT) { - if (gBattleMons[gActiveBattler].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > MIN_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4397,7 +4101,7 @@ static void Cmd_playstatchangeanimation(void) && !(gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && currStat == STAT_ACC) && !(gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && currStat == STAT_ATK)) { - if (gBattleMons[gActiveBattler].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > MIN_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4425,7 +4129,7 @@ static void Cmd_playstatchangeanimation(void) while (statsToCheck != 0) { - if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < 0xC) + if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < MAX_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4495,7 +4199,7 @@ static void Cmd_moveend(void) && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_ATK] <= 0xB) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_ATK] < MAX_STAT_STAGE) { gBattleMons[gBattlerTarget].statStages[STAT_ATK]++; BattleScriptPushCursor(); @@ -5471,7 +5175,7 @@ static void Cmd_switchineffects(void) s32 i; gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - sub_803FA70(gActiveBattler); + UpdateSentPokesToOpponentValue(gActiveBattler); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gSpecialStatuses[gActiveBattler].flag40 = 0; @@ -5831,8 +5535,8 @@ static void Cmd_hitanimation(void) static u32 GetTrainerMoneyToGive(u16 trainerId) { u32 i = 0; - u32 lastMonLevel = 0; - u32 moneyReward = 0; + u32 moneyReward; + u8 lastMonLevel = 0; if (trainerId == TRAINER_SECRET_BASE) { @@ -6340,15 +6044,13 @@ static void PutLevelAndGenderOnLvlUpBox(void) AddTextPrinter(&printerTemplate, 0xFF, NULL); txtPtr = gStringVar4; - gStringVar4[0] = CHAR_SPECIAL_F9; - txtPtr++; - txtPtr[0] = CHAR_LV_2; - txtPtr++; + *(txtPtr)++ = CHAR_EXTRA_SYMBOL; + *(txtPtr)++ = CHAR_LV_2; var = (u32)(txtPtr); txtPtr = ConvertIntToDecimalStringN(txtPtr, monLevel, STR_CONV_MODE_LEFT_ALIGN, 3); var = (u32)(txtPtr) - var; - txtPtr = StringFill(txtPtr, 0x77, 4 - var); + txtPtr = StringFill(txtPtr, CHAR_UNK_SPACER, 4 - var); if (monGender != MON_GENDERLESS) { @@ -6726,7 +6428,7 @@ static void Cmd_various(void) gBattleOutcome = B_OUTCOME_MON_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: - BtlController_EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); + BtlController_EmitPlayFanfareOrBGM(0, MUS_VICTORY_TRAINER, TRUE); MarkBattlerForControllerExec(gActiveBattler); break; } @@ -7288,7 +6990,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBattler].statStages[statId] == 0) + if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); @@ -7315,17 +7017,17 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) + if (gBattleMons[gActiveBattler].statStages[statId] == MAX_STAT_STAGE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; - if (gBattleMons[gActiveBattler].statStages[statId] < 0) - gBattleMons[gActiveBattler].statStages[statId] = 0; - if (gBattleMons[gActiveBattler].statStages[statId] > 0xC) - gBattleMons[gActiveBattler].statStages[statId] = 0xC; + if (gBattleMons[gActiveBattler].statStages[statId] < MIN_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[statId] = MIN_STAT_STAGE; + if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_BUFF_ALLOW_PTR) gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -7350,7 +7052,7 @@ static void Cmd_normalisebuffs(void) // haze for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < NUM_BATTLE_STATS; j++) - gBattleMons[i].statStages[j] = 6; + gBattleMons[i].statStages[j] = DEFAULT_STAT_STAGE; } gBattlescriptCurrInstr++; @@ -8750,7 +8452,7 @@ static void Cmd_rolloutdamagecalculation(void) static void Cmd_jumpifconfusedandstatmaxed(void) { if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION - && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) + && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == MAX_STAT_STAGE) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -8957,10 +8659,10 @@ static void Cmd_maxattackhalvehp(void) // belly drum if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) halfHp = 1; - if (gBattleMons[gBattlerAttacker].statStages[STAT_ATK] < 12 + if (gBattleMons[gBattlerAttacker].statStages[STAT_ATK] < MAX_STAT_STAGE && gBattleMons[gBattlerAttacker].hp > halfHp) { - gBattleMons[gBattlerAttacker].statStages[STAT_ATK] = 12; + gBattleMons[gBattlerAttacker].statStages[STAT_ATK] = MAX_STAT_STAGE; gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9234,8 +8936,8 @@ static void Cmd_sethail(void) static void Cmd_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == 0 - && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == 0 + if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE + && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); diff --git a/src/battle_setup.c b/src/battle_setup.c index 36fce2081..3c20d9ffe 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -12,7 +12,7 @@ #include "fieldmap.h" #include "random.h" #include "starter_choose.h" -#include "script_pokemon_80F8.h" +#include "script_pokemon_util.h" #include "palette.h" #include "window.h" #include "event_object_movement.h" @@ -518,22 +518,22 @@ void BattleSetup_StartLegendaryBattle(void) default: case SPECIES_GROUDON: gBattleTypeFlags |= BATTLE_TYPE_GROUDON; - CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_BATTLE34); + CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_VS_KYOGRE_GROUDON); break; case SPECIES_KYOGRE: gBattleTypeFlags |= BATTLE_TYPE_KYOGRE; - CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_BATTLE34); + CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_VS_KYOGRE_GROUDON); break; case SPECIES_RAYQUAZA: gBattleTypeFlags |= BATTLE_TYPE_RAYQUAZA; - CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_REKKU); + CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_RAYQUAZA); break; case SPECIES_DEOXYS: - CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEO); + CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEOXYS); break; case SPECIES_LUGIA: case SPECIES_HO_OH: - CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEN); + CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_LEGEND); break; case SPECIES_MEW: CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, MUS_VS_MEW); @@ -553,9 +553,9 @@ void StartGroudonKyogreBattle(void) gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == VERSION_RUBY) - CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_BATTLE34); // GROUDON + CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_VS_KYOGRE_GROUDON); // GROUDON else - CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_BATTLE34); // KYOGRE + CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_VS_KYOGRE_GROUDON); // KYOGRE IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); @@ -588,7 +588,7 @@ void StartRegiBattle(void) transitionId = B_TRANSITION_GRID_SQUARES; break; } - CreateBattleStartTask(transitionId, MUS_BATTLE36); + CreateBattleStartTask(transitionId, MUS_VS_REGI); IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); @@ -1454,46 +1454,46 @@ void SetUpTrainerEncounterMusic(void) switch (GetTrainerEncounterMusicId(trainerId)) { case TRAINER_ENCOUNTER_MUSIC_MALE: - music = MUS_BOYEYE; + music = MUS_ENCOUNTER_MALE; break; case TRAINER_ENCOUNTER_MUSIC_FEMALE: - music = MUS_GIRLEYE; + music = MUS_ENCOUNTER_FEMALE; break; case TRAINER_ENCOUNTER_MUSIC_GIRL: - music = MUS_SYOUJOEYE; + music = MUS_ENCOUNTER_GIRL; break; case TRAINER_ENCOUNTER_MUSIC_INTENSE: - music = MUS_HAGESHII; + music = MUS_ENCOUNTER_INTENSE; break; case TRAINER_ENCOUNTER_MUSIC_COOL: - music = MUS_KAKKOII; + music = MUS_ENCOUNTER_COOL; break; case TRAINER_ENCOUNTER_MUSIC_AQUA: - music = MUS_AQA_0; + music = MUS_ENCOUNTER_AQUA; break; case TRAINER_ENCOUNTER_MUSIC_MAGMA: - music = MUS_MGM0; + music = MUS_ENCOUNTER_MAGMA; break; case TRAINER_ENCOUNTER_MUSIC_SWIMMER: - music = MUS_SWIMEYE; + music = MUS_ENCOUNTER_SWIMMER; break; case TRAINER_ENCOUNTER_MUSIC_TWINS: - music = MUS_HUTAGO; + music = MUS_ENCOUNTER_TWINS; break; case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR: - music = MUS_SITENNOU; + music = MUS_ENCOUNTER_ELITE_FOUR; break; case TRAINER_ENCOUNTER_MUSIC_HIKER: - music = MUS_YAMA_EYE; + music = MUS_ENCOUNTER_HIKER; break; case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER: - music = MUS_INTER_V; + music = MUS_ENCOUNTER_INTERVIEWER; break; case TRAINER_ENCOUNTER_MUSIC_RICH: - music = MUS_TEST; + music = MUS_ENCOUNTER_RICH; break; default: - music = MUS_AYASII; + music = MUS_ENCOUNTER_SUSPICIOUS; } PlayNewMapMusic(music); } diff --git a/src/battle_tent.c b/src/battle_tent.c index b2db0e39c..0a03fc167 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -355,7 +355,11 @@ static void GenerateOpponentMons(void) { u16 trainerId; s32 i, j, k; - register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + #ifndef NONMATCHING + register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + #else + const u16 *monSet; + #endif u16 species[FRONTIER_PARTY_SIZE]; u16 heldItems[FRONTIER_PARTY_SIZE]; s32 monId = 0; diff --git a/src/battle_tower.c b/src/battle_tower.c index 8fcea1123..0333c4397 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1466,7 +1466,9 @@ u8 GetFrontierOpponentClass(u16 trainerId) else { trainerClass = gFacilityClassToTrainerClass[gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].facilityClass]; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif } } else @@ -1478,7 +1480,9 @@ u8 GetFrontierOpponentClass(u16 trainerId) else { trainerClass = gFacilityClassToTrainerClass[gApprentices[gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id].facilityClass]; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif } } @@ -2627,7 +2631,7 @@ static void LoadLinkMultiOpponentsData(void) } break; case 4: - sub_800AC34(); + SetCloseLinkCallback(); gSpecialVar_Result = 5; break; case 5: @@ -2644,7 +2648,7 @@ static void LoadLinkMultiOpponentsData(void) static void sub_8164DCC(void) { if (gWirelessCommType != 0) - sub_800AC34(); + SetCloseLinkCallback(); } static void SetMultiPartnerGfx(void) diff --git a/src/battle_transition.c b/src/battle_transition.c index 176be8e16..559279e74 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -749,7 +749,7 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_Pokeball[] = static const struct SpriteTemplate sSpriteTemplate_Pokeball = { .tileTag = 0xFFFF, - .paletteTag = 4105, + .paletteTag = FLDEFF_PAL_TAG_POKEBALL, .oam = &gObjectEventBaseOam_32x32, .anims = sSpriteAnimTable_Pokeball, .images = sSpriteImage_Pokeball, @@ -798,7 +798,7 @@ static const union AnimCmd *const sSpriteAnimTable_UnusedBrendanLass[] = static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = { .tileTag = 0xFFFF, - .paletteTag = 4106, + .paletteTag = 0x100A, .oam = &sOam_UnusedBrendanLass, .anims = sSpriteAnimTable_UnusedBrendanLass, .images = sImageTable_UnusedBrendan, @@ -809,7 +809,7 @@ static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = static const struct SpriteTemplate sSpriteTemplate_UnusedLass = { .tileTag = 0xFFFF, - .paletteTag = 4106, + .paletteTag = 0x100A, .oam = &sOam_UnusedBrendanLass, .anims = sSpriteAnimTable_UnusedBrendanLass, .images = sImageTable_UnusedLass, @@ -817,12 +817,9 @@ static const struct SpriteTemplate sSpriteTemplate_UnusedLass = .callback = SpriteCb_TrainerPic }; -static const u16 gFieldEffectObjectPalette10[] = INCBIN_U16("graphics/field_effects/palettes/10.gbapal"); +static const u16 sFieldEffectPal_Pokeball[] = INCBIN_U16("graphics/field_effects/palettes/pokeball.gbapal"); -const struct SpritePalette gFieldEffectObjectPaletteInfo10 = -{ - gFieldEffectObjectPalette10, 0x1009 -}; +const struct SpritePalette gSpritePalette_Pokeball = {sFieldEffectPal_Pokeball, FLDEFF_PAL_TAG_POKEBALL}; static const u16 sMugshotPal_Sidney[] = INCBIN_U16("graphics/battle_transitions/sidney_bg.gbapal"); static const u16 sMugshotPal_Phoebe[] = INCBIN_U16("graphics/battle_transitions/phoebe_bg.gbapal"); @@ -848,10 +845,7 @@ static const u16 *const sPlayerMugshotsPals[GENDER_COUNT] = }; static const u16 sUnusedTrainerPalette[] = INCBIN_U16("graphics/battle_transitions/unused_trainer.gbapal"); -static const struct SpritePalette sSpritePalette_UnusedTrainer = -{ - sUnusedTrainerPalette, 0x100A -}; +static const struct SpritePalette sSpritePalette_UnusedTrainer = {sUnusedTrainerPalette, 0x100A}; static const u16 sBigPokeball_Tilemap[] = INCBIN_U16("graphics/battle_transitions/big_pokeball_map.bin"); static const u16 sMugshotsTilemap[] = INCBIN_U16("graphics/battle_transitions/elite_four_bg_map.bin"); @@ -1323,7 +1317,7 @@ static bool8 Phase2_BigPokeball_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, 0x800); CpuCopy16(sBigPokeball_Tileset, tileset, 0x580); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; @@ -1629,7 +1623,7 @@ static bool8 Phase2_PokeballsTrail_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sPokeballTrail_Tileset, tileset, 0x20); CpuFill32(0, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; @@ -2233,7 +2227,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task) SetTrainerPicSlideTable(task->tPlayerSpriteId, 1); IncrementTrainerPicState(task->tOpponentSpriteId); - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); sTransitionStructPtr->VBlank_DMA++; return FALSE; @@ -2919,7 +2913,7 @@ static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); CpuCopy16(sShrinkingBoxTileset + 0x70, tileset + 0x20, 0x20); CpuFill16(0xF000, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tData3 = 1; task->tState++; @@ -3428,7 +3422,7 @@ static bool8 Phase2_GridSquares_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sShrinkingBoxTileset, tileset, 0x10); CpuFill16(0xF000, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; @@ -3980,7 +3974,9 @@ static bool8 Phase2_FrontierLogoWave_Func4(struct Task *task) for (i = 0; i < 160; i++, var6 += var8) { s16 index = var6 / 256; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude); } diff --git a/src/battle_tv.c b/src/battle_tv.c index 26df08786..c84ae827b 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -1398,9 +1398,9 @@ static void TrySetBattleSeminarShow(void) return; else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return; - else if (gBattleMons[gBattlerAttacker].statStages[STAT_ACC] <= 5) + else if (gBattleMons[gBattlerAttacker].statStages[STAT_ACC] < DEFAULT_STAT_STAGE) return; - else if (gBattleMons[gBattlerTarget].statStages[STAT_EVASION] > 6) + else if (gBattleMons[gBattlerTarget].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE) return; else if (gCurrentMove == MOVE_HIDDEN_POWER || gCurrentMove == MOVE_WEATHER_BALL) return; diff --git a/src/battle_util.c b/src/battle_util.c index 9cc2252b6..699fd05bc 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -259,7 +259,7 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } -void sub_803F9EC(u8 battler) +void OpponentSwitchInResetSentPokesToOpponentValue(u8 battler) { s32 i = 0; u32 bits = 0; @@ -279,11 +279,11 @@ void sub_803F9EC(u8 battler) } } -void sub_803FA70(u8 battler) +void UpdateSentPokesToOpponentValue(u8 battler) { if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - sub_803F9EC(battler); + OpponentSwitchInResetSentPokesToOpponentValue(battler); } else { @@ -1250,7 +1250,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 3; break; case 2: - sub_803F9EC(gBattlerFainted); + OpponentSwitchInResetSentPokesToOpponentValue(gBattlerFainted); if (++gBattleStruct->faintedActionsBattlerId == gBattlersCount) gBattleStruct->faintedActionsState = 3; else @@ -1978,7 +1978,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITY_SPEED_BOOST: - if (gBattleMons[battler].statStages[STAT_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2) + if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2) { gBattleMons[battler].statStages[STAT_SPEED]++; gBattleScripting.animArg1 = 0x11; @@ -2619,9 +2619,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } @@ -2690,9 +2690,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } @@ -2811,7 +2811,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; // copy/paste again, smh case HOLD_EFFECT_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam + && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); @@ -2825,7 +2826,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_DEF] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_DEF); @@ -2838,7 +2840,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SPEED_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPEED] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPEED); @@ -2851,7 +2854,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPATK] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); @@ -2864,7 +2868,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPDEF] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPDEF); @@ -2877,7 +2882,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CRITICAL_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) { gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); @@ -2889,7 +2895,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { for (i = 0; i < 5; i++) { - if (gBattleMons[battlerId].statStages[STAT_ATK + i] < 0xC) + if (gBattleMons[battlerId].statStages[STAT_ATK + i] < MAX_STAT_STAGE) break; } if (i != 5) @@ -2897,7 +2903,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) do { i = Random() % 5; - } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == 0xC); + } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == MAX_STAT_STAGE); PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); @@ -3166,9 +3172,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } diff --git a/src/berry.c b/src/berry.c index 98264f37b..d70e8c353 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1331,7 +1331,7 @@ void ResetBerryTreeSparkleFlags(void) s16 bottom; int i; - GetCameraCoords(&cam_left, &cam_top); + GetCameraCoords((u16*)&cam_left, (u16*)&cam_top); left = cam_left; top = cam_top + 3; right = cam_left + 14; diff --git a/src/berry_blender.c b/src/berry_blender.c index a2a96c089..399a9e7b8 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -116,8 +116,8 @@ struct BerryBlenderData u16 field_116; u16 field_118; u16 field_11A; - u16 bg_X; - u16 bg_Y; + s16 bg_X; + s16 bg_Y; u8 field_120[3]; u8 field_123; u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO]; @@ -1058,7 +1058,7 @@ static void sub_807FD08(struct Sprite* sprite) if (++sprite->data[5] > 3) DestroySprite(sprite); else - PlaySE(SE_TB_KARA); + PlaySE(SE_BALL_TRAY_EXIT); } sprite->pos1.x = sprite->data[1]; sprite->pos1.y = sprite->data[2]; @@ -1230,7 +1230,7 @@ static void sub_8080018(void) sBerryBlenderData->field_114 = 0; Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId); memcpy(gBlockSendBuffer, &sBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry)); - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->framesToWait = 0; break; case 9: @@ -1238,7 +1238,7 @@ static void sub_8080018(void) { ResetBlockReceivedFlags(); if (GetMultiplayerId() == 0) - sub_800A4D8(4); + SendBlockRequest(4); sBerryBlenderData->mainState++; } break; @@ -1295,7 +1295,7 @@ static void sub_8080018(void) { sBerryBlenderData->mainState++; sub_8082CB4(&sBerryBlenderData->bgAffineSrc); - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); ShowBg(2); } break; @@ -1310,7 +1310,7 @@ static void sub_8080018(void) sBerryBlenderData->field_11A = 0x100; sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; sBerryBlenderData->framesToWait = 0; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); sub_808074C(); Blender_PrintPlayerNames(); } @@ -1332,7 +1332,7 @@ static void sub_8080018(void) sBerryBlenderData->mainState++; break; case 19: - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->mainState++; break; case 20: @@ -1582,7 +1582,7 @@ static void sub_80808D4(void) case 13: sBerryBlenderData->mainState++; sub_808074C(); - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); sub_8082CB4(&sBerryBlenderData->bgAffineSrc); ShowBg(2); break; @@ -1597,7 +1597,7 @@ static void sub_80808D4(void) sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; SetGpuRegBits(REG_OFFSET_BG2CNT, 2); sBerryBlenderData->framesToWait = 0; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); Blender_PrintPlayerNames(); } sub_8082CB4(&sBerryBlenderData->bgAffineSrc); @@ -1648,7 +1648,7 @@ static void sub_80808D4(void) sBerryBlenderData->field_154 = GetCurrentMapMusic(); PlayBGM(MUS_CYCLING); - PlaySE(SE_MOTER); + PlaySE(SE_BERRY_BLENDER); Blender_ControlHitPitch(); break; } @@ -1873,17 +1873,17 @@ static void sub_8081288(u16 a0, u8 a1) { StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].callback = sub_8082F9C; - PlaySE(SE_RU_GASHIN); + PlaySE(SE_ICE_STAIRS); } else if (a0 == 0x5432) { StartSpriteAnim(&gSprites[spriteId], 0); - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); } else if (a0 == 0x2345) { StartSpriteAnim(&gSprites[spriteId], 1); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } sub_8082E84(); } @@ -2587,7 +2587,7 @@ static bool8 LinkPlayAgainHandleSaving(void) switch (sBerryBlenderData->field_1A0) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->field_1A0 = 1; sBerryBlenderData->framesToWait = 0; break; @@ -2606,7 +2606,7 @@ static bool8 LinkPlayAgainHandleSaving(void) case 3: if (++sBerryBlenderData->framesToWait == 10) { - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->field_1A0++; } break; @@ -2682,7 +2682,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) break; case 5: Blender_PrintText(&sBerryBlenderData->textState, gText_SavingDontTurnOff2, 0); - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->gameEndState++; break; case 6: @@ -2702,7 +2702,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) break; case 8: sBerryBlenderData->gameEndState++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 9: if (IsLinkTaskFinished()) @@ -2732,7 +2732,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) case 11: if (++sBerryBlenderData->framesToWait > 30) { - sub_800AC34(); + SetCloseLinkCallback(); sBerryBlenderData->gameEndState++; } break; @@ -3025,7 +3025,7 @@ static void sub_8083010(struct Sprite* sprite) { sprite->data[1] = 88; sprite->data[0]++; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); } break; case 1: @@ -3166,13 +3166,13 @@ static void sub_80832E8(s16* a0) static void sub_808330C(void) { - sub_80832E8(&sBerryBlenderData->bg_X); - sub_80832E8(&sBerryBlenderData->bg_Y); + sub_80832E8((s16 *)&sBerryBlenderData->bg_X); + sub_80832E8((s16 *)&sBerryBlenderData->bg_Y); } static void sub_8083334(s16* a0, u16 a1) { - s32 var; + u8 var; if (a1 < 10) var = 16; @@ -3567,7 +3567,7 @@ static void sub_8083F3C(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); gTasks[taskId].data[0]++; } if (IsFanfareTaskInactive()) diff --git a/src/berry_crush.c b/src/berry_crush.c index 90a299a74..6269f0ad9 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -825,7 +825,7 @@ u32 sub_8020C0C(MainCallback callback) if (callback == CB2_ReturnToField) { gTextFlags.autoScroll = TRUE; - PlayNewMapMusic(MUS_POKECEN); + PlayNewMapMusic(MUS_POKE_CENTER); SetMainCallback1(CB1_Overworld); } @@ -1076,7 +1076,7 @@ int sub_802104C(void) return 0; InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); sub_8022588(var0); sub_8022600(var0); gPaletteFade.bufferTransferDisabled = TRUE; @@ -1125,7 +1125,7 @@ int sub_802130C(void) switch (var0->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -1344,9 +1344,9 @@ void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) else { if (sp4 == 1) - PlaySE(SE_TOY_DANGO); + PlaySE(SE_MUD_BALL); else - PlaySE(SE_TOY_KABE); + PlaySE(SE_BREAKABLE_DOOR); arg0->unk25_2 = 1; } @@ -2027,7 +2027,7 @@ static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5) r4->unkC = 3; return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); ++r4->unkC; return 0; case 2: @@ -2110,12 +2110,12 @@ static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 switch (r4->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (IsLinkTaskFinished()) { - PlayNewMapMusic(MUS_RG_SLOT); + PlayNewMapMusic(MUS_RG_GAME_CORNER); sub_8022BEC(7, 1, NULL); r4->unk12 = 3; r4->unkC = 0; @@ -2167,7 +2167,7 @@ static u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) sub_8022BEC(3, 1, NULL); return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 2: if (!IsLinkTaskFinished()) @@ -2213,7 +2213,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r { case 0: sub_80214A8(r4, &r4->unk138); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -2226,14 +2226,14 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 2: r4->unk138.unk38[r4->unk138.unk0]->callback = sub_8021608; r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE; - PlaySE(SE_NAGERU); + PlaySE(SE_BALL_THROW); break; case 3: if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_8021608) return 0; r4->unk138.unk38[r4->unk138.unk0] = NULL; ++r4->unk138.unk0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 4: if (!IsLinkTaskFinished()) @@ -2247,12 +2247,12 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r break; case 5: sub_80216A8(r4, &r4->unk138); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 6: if (!IsLinkTaskFinished()) return 0; - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); sub_8022BEC(11, 1, NULL); r4->unk12 = 5; r4->unkC = 0; @@ -2274,7 +2274,7 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r r4->unk138.unk1 = 4; r4->unk138.unk0 = 0; r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); break; case 1: r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; @@ -2295,7 +2295,7 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 3: if (!IsLinkTaskFinished()) @@ -2323,7 +2323,7 @@ static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r return 0; // fallthrough case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 3: if (!IsLinkTaskFinished()) @@ -2667,7 +2667,7 @@ static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 { case 0: r4->unk12 = 8; - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0)); r4->unk138.unk0 = 2; break; @@ -2703,7 +2703,7 @@ static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 case 4: if (!sub_80218D4(r4, &r4->unk138)) return 0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); r4->unk10 = 0; break; case 5: @@ -2724,7 +2724,7 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) { case 0: r5->unk12 = 9; - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0)); r5->unk138.unk0 = 4; break; @@ -2737,7 +2737,7 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) case 2: if (!sub_80218D4(r5, &r5->unk138)) return 0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); r5->unk10 = 0; SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); @@ -3005,7 +3005,7 @@ static u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4) r5->unkC = 0; return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 2: if (!IsLinkTaskFinished()) @@ -3084,7 +3084,7 @@ static u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 switch (r4->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -3184,12 +3184,12 @@ static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1 switch (r5->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) return 0; - sub_800AC34(); + SetCloseLinkCallback(); break; case 2: if (gReceivedRemoteLinkPlayers != 0) @@ -3271,7 +3271,7 @@ static void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5) { - u8 sp[4]; + u8 sp[2]; 0[(u16 *)sp] = r3; r0[0] = r1; diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 38c2832ee..e5c89bdb7 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -186,7 +186,7 @@ static void CB2_BerryTagScreen(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -217,7 +217,7 @@ static bool8 InitBerryTagScreen(void) case 0: SetVBlankHBlankCallbacksToNull(); ResetVramOamAndBgCntRegs(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/bike.c b/src/bike.c index 3685ebfad..c4964b627 100644 --- a/src/bike.c +++ b/src/bike.c @@ -659,7 +659,7 @@ static void AcroBikeTransition_SideJump(u8 direction) } } playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); playerObjEvent->facingDirectionLocked = 1; PlayerSetAnimId(GetJumpMovementAction(direction), 2); } @@ -835,7 +835,7 @@ static void Bike_UpdateDirTimerHistory(u8 dir) gPlayerAvatar.directionHistory = (gPlayerAvatar.directionHistory << 4) | (dir & 0xF); - for (i = 7; i != 0; i--) + for (i = ARRAY_COUNT(gPlayerAvatar.dirTimerHistory) - 1; i != 0; i--) gPlayerAvatar.dirTimerHistory[i] = gPlayerAvatar.dirTimerHistory[i - 1]; gPlayerAvatar.dirTimerHistory[0] = 1; } @@ -846,7 +846,7 @@ static void Bike_UpdateABStartSelectHistory(u8 input) gPlayerAvatar.abStartSelectHistory = (gPlayerAvatar.abStartSelectHistory << 4) | (input & 0xF); - for (i = 7; i != 0; i--) + for (i = ARRAY_COUNT(gPlayerAvatar.abStartSelectTimerHistory) - 1; i != 0; i--) gPlayerAvatar.abStartSelectTimerHistory[i] = gPlayerAvatar.abStartSelectTimerHistory[i - 1]; gPlayerAvatar.abStartSelectTimerHistory[0] = 1; } @@ -1000,10 +1000,10 @@ void BikeClearState(int newDirHistory, int newAbStartHistory) gPlayerAvatar.directionHistory = newDirHistory; gPlayerAvatar.abStartSelectHistory = newAbStartHistory; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(gPlayerAvatar.dirTimerHistory); i++) gPlayerAvatar.dirTimerHistory[i] = 0; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(gPlayerAvatar.abStartSelectTimerHistory); i++) gPlayerAvatar.abStartSelectTimerHistory[i] = 0; } diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index f9f06823a..a1ea44e26 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -86,14 +86,14 @@ bool8 ShouldDoBrailleDigEffect(void) void DoBrailleDigEffect(void) { - MapGridSetMetatileIdAt(16, 8, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(17, 8, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(16, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(17, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(16, 8, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(17, 8, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(18, 8, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(16, 9, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(17, 9, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(18, 9, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_BRAILLE_DIG); ScriptContext2_Disable(); } @@ -140,7 +140,7 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -164,7 +164,7 @@ void DoBrailleRegisteelEffect(void) bool8 FldEff_UseFlyAncientTomb(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)UseRegisteelHm_Callback >> 16; gTasks[taskId].data[9] = (u32)UseRegisteelHm_Callback; @@ -186,7 +186,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -279,14 +279,14 @@ void UseRegirockHm_Callback(void) void DoBrailleRegirockEffect(void) { - MapGridSetMetatileIdAt(14, 26, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(15, 26, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(16, 26, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(14, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(15, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(16, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(14, 26, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(15, 26, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(16, 26, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(14, 27, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -318,14 +318,14 @@ void UseRegisteelHm_Callback(void) void DoBrailleRegisteelEffect(void) { - MapGridSetMetatileIdAt(14, 26, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(15, 26, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(16, 26, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(14, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(15, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(16, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(14, 26, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(15, 26, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(16, 26, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(14, 27, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -410,7 +410,7 @@ bool32 BrailleWait_CheckButtonPress(void) // this used to be FldEff_UseFlyAncientTomb . why did GF merge the 2 functions? bool8 FldEff_UsePuzzleEffect(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); if (sBraillePuzzleCallbackFlag == REGISTEEL_PUZZLE) { diff --git a/src/cable_car.c b/src/cable_car.c index 94d9d0c66..fc161284f 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -343,7 +343,7 @@ static void CableCarMainCallback_Setup(void) break; case 8: BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0)); - FadeInNewBGM(MUS_ROPEWAY, 1); + FadeInNewBGM(MUS_CABLE_CAR, 1); sub_8150B6C(1); gMain.state++; break; diff --git a/src/cable_club.c b/src/cable_club.c index 15e468390..93f87ec9b 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -20,7 +20,7 @@ #include "union_room.h" #include "mevent2.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "sound.h" #include "start_menu.h" #include "string_util.h" @@ -203,7 +203,7 @@ static void sub_80B2600(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 10) { - sub_800A4D8(2); + SendBlockRequest(2); DestroyTask(taskId); } } @@ -357,7 +357,7 @@ static void Task_LinkupExchangeDataWithLeader(u8 taskId) if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS || gSpecialVar_Result == LINKUP_WRONG_NUM_PLAYERS) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -392,7 +392,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) { if (!Link_AnyPartnersPlayingRubyOrSapphire()) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -405,7 +405,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) } else if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -426,7 +426,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES, NULL); card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL); gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; - sub_800A4D8(2); + SendBlockRequest(2); } } @@ -481,7 +481,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId) { // Unsuccessful battle tower linkup *linkupStatus = LINKUP_FAILED_BATTLE_TOWER; - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_StopLinkup; } else @@ -503,7 +503,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId) else { // Unsuccessful linkup - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_StopLinkup; } } @@ -686,7 +686,7 @@ static void Task_ValidateMixingGameLanguage(u8 taskId) if (mixingForeignGames) { gSpecialVar_Result = LINKUP_FOREIGN_GAME; - sub_800AD10(); + SetCloseLinkCallbackHandleJP(); gTasks[taskId].tState = 1; return; } @@ -856,7 +856,7 @@ static void Task_StartWiredCableClubBattle(u8 taskId) task->tState++; break; case 3: - sub_800AC34(); + SetCloseLinkCallback(); task->tState++; break; case 4: @@ -865,9 +865,9 @@ static void Task_StartWiredCableClubBattle(u8 taskId) break; case 5: if (gLinkPlayers[0].trainerId & 1) - PlayMapChosenOrBattleBGM(MUS_BATTLE32); + PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER); else - PlayMapChosenOrBattleBGM(MUS_BATTLE20); + PlayMapChosenOrBattleBGM(MUS_VS_TRAINER); SetLinkBattleTypeFlags(gSpecialVar_0x8004); CleanupOverworldWindowsAndTilemaps(); @@ -919,7 +919,7 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) tState = 5; break; case 5: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 6; break; case 6: @@ -930,9 +930,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) break; case 7: if (gLinkPlayers[0].trainerId & 1) - PlayMapChosenOrBattleBGM(MUS_BATTLE32); + PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER); else - PlayMapChosenOrBattleBGM(MUS_BATTLE20); + PlayMapChosenOrBattleBGM(MUS_VS_TRAINER); gLinkPlayers[0].linkType = LINKTYPE_BATTLE; SetLinkBattleTypeFlags(gSpecialVar_0x8004); @@ -974,7 +974,7 @@ static void CB2_ReturnFromUnionRoomBattle(void) } else { - sub_800AC34(); + SetCloseLinkCallback(); gMain.state = 1; } break; @@ -1113,7 +1113,7 @@ static void Task_StartWiredTrade(u8 taskId) gSelectedTradeMonPositions[TRADE_PLAYER] = 0; gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); - sub_800AC34(); + SetCloseLinkCallback(); task->tState++; break; case 3: @@ -1146,7 +1146,7 @@ static void Task_StartWirelessTrade(u8 taskId) gSelectedTradeMonPositions[TRADE_PLAYER] = 0; gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); - sub_800ADF8(); + SetLinkStandbyCallback(); tState++; break; case 3: @@ -1264,7 +1264,7 @@ static void sub_80B3AAC(u8 taskId) // Unused static void sub_80B3AD0(u8 taskId) { - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = sub_80B3AAC; } diff --git a/src/coins.c b/src/coins.c index 302817f8d..52c7dd3ec 100644 --- a/src/coins.c +++ b/src/coins.c @@ -14,7 +14,7 @@ void PrintCoinsString(u32 coinAmount) { u32 xAlign; - ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, MAX_COIN_DIGITS); StringExpandPlaceholders(gStringVar4, gText_Coins); xAlign = GetStringRightAlignXOffset(1, gStringVar4, 0x40); diff --git a/src/contest.c b/src/contest.c index 0b56569cb..fbd42a007 100644 --- a/src/contest.c +++ b/src/contest.c @@ -2,14 +2,10 @@ #include "gpu_regs.h" #include "bg.h" #include "malloc.h" -#include "constants/items.h" -#include "constants/event_objects.h" -#include "constants/moves.h" -#include "constants/songs.h" -#include "constants/species.h" #include "battle.h" #include "battle_anim.h" #include "contest.h" +#include "contest_link.h" #include "data.h" #include "decompress.h" #include "graphics.h" @@ -38,95 +34,73 @@ #include "strings.h" #include "contest_effect.h" #include "contest_link.h" -#include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" #include "data.h" -#include "constants/rgb.h" #include "contest_ai.h" - -#define APPLAUSE_METER_GFX_TAG 0xABE2 - -// An index into a palette where the text color for each contestant is stored. -// Contestant 0 will use palette color 10, contestant 1 will use color 11, etc. -#define CONTESTANT_TEXT_COLOR_START 10 - -enum -{ -// The "{Pokemon Name} / {Trainer Name}" windows. - CONTEST_WINDOW_CONTESTANT0_NAME, - CONTEST_WINDOW_CONTESTANT1_NAME, - CONTEST_WINDOW_CONTESTANT2_NAME, - CONTEST_WINDOW_CONTESTANT3_NAME, - CONTEST_WINDOW_GENERAL_TEXT, - // The available moves, from top to bottom - CONTEST_WINDOW_MOVE0, - CONTEST_WINDOW_MOVE1, - CONTEST_WINDOW_MOVE2, - CONTEST_WINDOW_MOVE3, - // The small "/" character between the move category and the - // appeal/jam display - CONTEST_WINDOW_SLASH, - CONTEST_WINDOW_MOVE_DESCRIPTION -}; - -#define MOVE_WINDOWS_START CONTEST_WINDOW_MOVE0 +#include "constants/event_objects.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/tv.h" // This file's functions. -static void sub_80D782C(void); -static void sub_80D7C7C(u8 taskId); -static void sub_80D7CB4(u8 taskId); -static void sub_80D7DAC(u8 taskId); -static void sub_80D7DC8(u8 taskId); -static void sub_80D7DE8(u8 taskId); +static void LoadContestPalettes(void); +static void Task_StartContestWaitFade(u8 taskId); +static void Task_TryStartLinkContest(u8 taskId); +static void Task_CommunicateMonIdxs(u8 taskId); +static void Task_EndCommunicateMonIdxs(u8 taskId); +static void Task_ReadyStartLinkContest(u8 taskId); static bool8 SetupContestGraphics(u8 *stateVar); -static void sub_80D80C8(u8 taskId); -static void sub_80D8108(u8 taskId); -static void vblank_cb_battle(void); +static void Task_WaitToRaiseCurtainAtStart(u8 taskId); +static void Task_RaiseCurtainAtStart(u8 taskId); +static void VBlankCB_Contest(void); static void CB2_ContestMain(void); -static void sub_80D833C(u8 taskId); -static void sub_80D8424(u8 taskId); -static void sub_80D8610(u8 taskId); -static void sub_80D8490(u8 taskId); -static void sub_80D880C(s8); -static void sub_80D883C(s8); -static void sub_80D8894(u8 taskId); -static void sub_80D892C(u8 taskId); -static void sub_80D895C(u8 taskId); -static void sub_80D8A04(u8 taskId); -static void sub_80D8A50(u8 taskId); -static void sub_80D8A88(u8 taskId); -static void sub_80D8B38(u8 taskId); -static void sub_80DA110(u8); -static void sub_80DA134(struct Sprite *); -static void sub_80DA164(struct Sprite *); -static void sub_80DA198(u8); -static void sub_80DA25C(u8); -static void sub_80DA28C(u8); -static void sub_80DA31C(u8); +static void Task_DisplayAppealNumberText(u8 taskId); +static void Task_TryShowMoveSelectScreen(u8 taskId); +static void Task_ShowMoveSelectScreen(u8 taskId); +static void Task_HandleMoveSelectInput(u8 taskId); +static void DrawMoveSelectArrow(s8); +static void EraseMoveSelectArrow(s8); +static void Task_SelectedMove(u8 taskId); +static void Task_EndCommunicateMoveSelections(u8 taskId); +static void Task_HideMoveSelectScreen(u8 taskId); +static void Task_HideApplauseMeterForAppealStart(u8 taskId); +static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId); +static void Task_AppealSetup(u8 taskId); +static void Task_DoAppeals(u8 taskId); +static void Task_EndWaitForLink(u8); +static void SpriteCB_MonSlideIn(struct Sprite *); +static void SpriteCB_MonSlideOut(struct Sprite *); +static void Task_FinishRoundOfAppeals(u8); +static void Task_ReadyUpdateHeartSliders(u8); +static void Task_UpdateHeartSliders(u8); +static void Task_WaitForHeartSliders(u8); static void sub_80DA348(u8); -static void sub_80DA38C(u8); -static void sub_80DA3CC(u8); -static void sub_80DA464(u8); -static void sub_80DA49C(u8); -static void sub_80DA4CC(u8); -static void sub_80DA51C(u8); -static void sub_80DA5B4(u8); -static void sub_80DA5E8(u8); -static void sub_80DA6B4(u8); -static void sub_80DA700(u8); -static void sub_80DA740(u8); -static void sub_80DA7A0(u8); -static void sub_80DA7EC(u8); -static void sub_80DA830(u8); -static void sub_80DA874(void); -static bool8 sub_80DA8A4(void); +static void Task_WaitPrintRoundResult(u8); +static void Task_PrintRoundResultText(u8); +static void Task_ReUpdateHeartSliders(u8); +static void Task_WaitForHeartSlidersAgain(u8); +static void Task_DropCurtainAtRoundEnd(u8); +static void Task_TryStartNextRoundOfAppeals(u8); +static void Task_StartNewRoundOfAppeals(u8); +static void Task_EndAppeals(u8); +static void Task_WaitForOutOfTimeMsg(u8); +static void Task_DropCurtainAtAppealsEnd(u8); +static void Task_TryCommunicateFinalStandings(u8); +static void Task_CommunicateFinalStandings(u8); +static void Task_EndCommunicateFinalStandings(u8); +static void Task_ContestReturnToField(u8); +static void FieldCB_ContestReturnToField(void); +static bool8 IsPlayerLinkLeader(void); static void PrintContestantTrainerName(u8); static void PrintContestantTrainerNameWithColor(u8 a0, u8 a1); static void PrintContestantMonName(u8); static void PrintContestantMonNameWithColor(u8, u8); -static u8 sub_80DB0C4(void); -static u8 sub_80DB120(void); -static u8 sub_80DB174(u16, u32, u32, u32); +static u8 CreateJudgeSprite(void); +static u8 CreateJudgeSpeechBubbleSprite(void); +static u8 CreateContestantSprite(u16, u32, u32, u32); static void PrintContestMoveDescription(u16); static u16 SanitizeSpecies(u16); static void ContestClearGeneralTextWindow(void); @@ -134,95 +108,234 @@ static u16 GetChosenMove(u8); static void GetAllChosenMoves(void); static void ContestPrintLinkStandby(void); static void FillContestantWindowBgs(void); -static void sub_80DC2BC(void); -static void sub_80DC490(bool8); -static void sub_80DC4F0(void); +static void CreateSliderHeartSprites(void); +static void SetBottomSliderHeartsInvisibility(bool8); +static void CreateNextTurnSprites(void); static void CreateApplauseMeterSprite(void); -static void sub_80DC5E8(void); -static void sub_80DC7EC(void); +static void CreateJudgeAttentionEyeTask(void); +static void CreateUnusedBlendTask(void); static void ContestDebugDoPrint(void); static void DrawContestantWindows(void); static void ApplyNextTurnOrder(void); -static void StartMoveApplauseMeterOnscreen(void); -static void TryMoveApplauseMeterOffscreen(void); -static void sub_80DE224(void); -static void sub_80DE350(void); -static void sub_80DE424(u8); -static void sub_80DE69C(u8); -static void sub_80DEA20(void); +static void SlideApplauseMeterIn(void); +static void SlideApplauseMeterOut(void); +static void SetBgForCurtainDrop(void); +static void UpdateContestantBoxOrder(void); +static void Task_StartDropCurtainAtRoundEnd(u8); +static void AnimateSliderHearts(u8); +static void CreateInvisibleBattleTargetSprite(void); static void Contest_StartTextPrinter(const u8 *, u32); static void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, s16); static bool32 Contest_RunTextPrinters(void); static void Contest_SetBgCopyFlags(u32 flagIndex); static void CalculateFinalScores(void); -static void sub_80DD080(u8); -static void sub_80DE9DC(u8); -static void sub_80DCBE8(u8, u8); -static u8 sub_80DC9EC(u8); +static void CalculateAppealMoveImpact(u8); +static void SetMoveAnimAttackerData(u8); +static void BlinkContestantBox(u8, u8); +static u8 CreateContestantBoxBlinkSprites(u8); static u16 SanitizeMove(u16); -static void sub_80DE864(u8); -static void SelectContestMoveBankTarget(u16); -static void sub_80DE9B0(u8); -static void sub_80DC674(u8); -static void sub_80DE12C(void); -static void sub_80DD45C(u8, u8); -static void sub_80DD720(u8); -static void sub_80DE008(bool8); -static u8 sub_80DC028(s16, s16, u8); -static bool8 sub_80DB5B8(u8, u8); -static bool8 sub_80DB798(u8); -static void sub_80DB884(void); -static void sub_80DC9B4(u8); -static void sub_80DDED0(s8, s8); +static void SetMoveSpecificAnimData(u8); +static void SetMoveTargetPosition(u16); +static void ClearMoveAnimData(u8); +static void StopFlashJudgeAttentionEye(u8); +static void DrawUnnervedSymbols(void); +static void PrintAppealMoveResultText(u8, u8); +static void DoJudgeSpeechBubble(u8); +static void ShowHideNextTurnGfx(bool8); +static u8 UpdateAppealHearts(s16, s16, u8); +static bool8 UpdateConditionStars(u8, u8); +static bool8 DrawStatusSymbol(u8); +static void DrawStatusSymbols(void); +static void StartStopFlashJudgeAttentionEye(u8); +static void BlendAudienceBackground(s8, s8); static void ShowAndUpdateApplauseMeter(s8 unused); -static void sub_80DDE0C(void); +static void AnimateAudience(void); static void UpdateApplauseMeter(void); static void RankContestants(void); -static void sub_80DBA18(void); -static void sub_80DC3AC(void); -static bool8 sub_80DC3C4(void); +static void SetAttentionLevels(void); +static void UpdateHeartSliders(void); +static bool8 SlidersDoneUpdating(void); static void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8); static void Contest_PrintTextToBg0WindowStd(u32, const u8 *); static s16 GetContestantRound2Points(u8); static void DetermineFinalStandings(void); -static bool8 sub_80DBF30(s32, s32, struct UnknownContestStruct6 *); -static void sub_80DC0F4(u8); -static void sub_80DC408(struct Sprite *); -static void sub_80DC728(u8); -static void sub_80DC6A4(u8); -static void sub_80DC8D0(u8); -static void sub_80DC81C(u8); -static void sub_80DC87C(u8); -static void sub_80DCC84(struct Sprite *); -static void sub_80DCCD8(struct Sprite *sprite); +static bool8 DidContestantPlaceHigher(s32, s32, struct ContestFinalStandings *); +static void Task_UpdateAppealHearts(u8); +static void SpriteCB_UpdateHeartSlider(struct Sprite *); +static void Task_FlashJudgeAttentionEye(u8); +static void Task_StopFlashJudgeAttentionEye(u8); +static void Task_UnusedBlend(u8); +static void InitUnusedBlendTaskData(u8); +static void UpdateBlendTaskContestantData(u8); +static void SpriteCB_BlinkContestantBox(struct Sprite *); +static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite); static u8 StartApplauseOverflowAnimation(void); static void Task_ApplauseOverflowAnimation(u8); -static void Task_MoveApplauseMeterOnscreen(u8); -static void Task_MoveApplauseMeterOffscreen(u8); +static void Task_SlideApplauseMeterIn(u8); +static void Task_SlideApplauseMeterOut(u8); static void Task_ShowAndUpdateApplauseMeter(u8); -static void sub_80DDE30(u8); -static void sub_80DDF80(u8); +static void Task_AnimateAudience(u8); +static void Task_BlendAudienceBackground(u8); static const u8 *GetTurnOrderNumberGfx(u8); -static void sub_80DE464(u8); -static void sub_80DE4A8(u8); -static void sub_80DE5F4(u8); -static void sub_80DE65C(u8); -static void sub_80DE794(u8); -static void sub_80DEA5C(void); -static void sub_80DF250(void); -static void sub_80DF4F8(void); -static void sub_80DF080(u8); +static void Task_UpdateCurtainDropAtRoundEnd(u8); +static void Task_ResetForNextRound(u8); +static void Task_WaitRaiseCurtainAtRoundEnd(u8); +static void Task_StartRaiseCurtainAtRoundEnd(u8); +static void Task_WaitForSliderHeartAnim(u8); +static void SetBattleTargetSpritePosition(void); +static void CalculateContestLiveUpdateData(void); +static void SetConestLiveUpdateTVData(void); +static void SetContestLiveUpdateFlags(u8); static void ContestDebugPrintBitStrings(void); -static void sub_80DF9D4(u8 *); -static void sub_80DF9E0(u8 *, s32); +static void StripPlayerNameForLinkContest(u8 *); +static void StripMonNameForLinkContest(u8 *, s32); static void SwapMoveDescAndContestTilemaps(void); +// An index into a palette where the text color for each contestant is stored. +// Contestant 0 will use palette color 10, contestant 1 will use color 11, etc. +#define CONTESTANT_TEXT_COLOR_START 10 + +enum { +// The "{Pokemon Name} / {Trainer Name}" windows. + WIN_CONTESTANT0_NAME, + WIN_CONTESTANT1_NAME, + WIN_CONTESTANT2_NAME, + WIN_CONTESTANT3_NAME, + WIN_GENERAL_TEXT, + // The available moves, from top to bottom + WIN_MOVE0, + WIN_MOVE1, + WIN_MOVE2, + WIN_MOVE3, + // The small "/" character between the move category and the + // appeal/jam display + WIN_SLASH, + WIN_MOVE_DESCRIPTION +}; + +enum { + JUDGE_SYMBOL_SWIRL, + JUDGE_SYMBOL_SWIRL_UNUSED, + JUDGE_SYMBOL_ONE_EXCLAMATION, + JUDGE_SYMBOL_TWO_EXCLAMATIONS, + JUDGE_SYMBOL_NUMBER_ONE_UNUSED, + JUDGE_SYMBOL_NUMBER_ONE, + JUDGE_SYMBOL_NUMBER_FOUR, + JUDGE_SYMBOL_QUESTION_MARK, + JUDGE_SYMBOL_STAR, +}; + +enum { + STAT_SYMBOL_CIRCLE, + STAT_SYMBOL_WAVE, + STAT_SYMBOL_X, + STAT_SYMBOL_SWIRL, + STAT_SYMBOL_SQUARE, +}; + +enum { + CONTEST_DEBUG_MODE_OFF, + CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, + CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS, + CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS +}; + +#define MOVE_WINDOWS_START WIN_MOVE0 + +#define TAG_CONTEST_SYMBOLS_PAL 0xABE0 +#define TAG_JUDGE_SYMBOLS_GFX 0xABE0 +#define TAG_FACES_GFX 0xABE1 +#define TAG_APPLAUSE_METER 0xABE2 + +#define TAG_SLIDER_HEART 0x4E20 +#define TAG_JUDGE 0x4E21 +#define TAG_NEXT_TURN_PAL 0x4E22 +#define TAG_NEXT_TURN_1_GFX 0x4E22 +#define TAG_NEXT_TURN_2_GFX 0x4E23 +#define TAG_NEXT_TURN_3_GFX 0x4E24 +#define TAG_NEXT_TURN_4_GFX 0x4E25 + +#define TAG_BLINK_EFFECT_CONTESTANT0 0x80E8 +#define TAG_BLINK_EFFECT_CONTESTANT1 0x80E9 +#define TAG_BLINK_EFFECT_CONTESTANT2 0x80EA +#define TAG_BLINK_EFFECT_CONTESTANT3 0x80EB + +enum { + SLIDER_HEART_ANIM_NORMAL, + SLIDER_HEART_ANIM_DISAPPEAR, + SLIDER_HEART_ANIM_APPEAR, +}; + +// States for Task_DoAppeals +enum { + APPEALSTATE_START_TURN, + APPEALSTATE_WAIT_LINK, + APPEALSTATE_CHECK_SKIP_TURN, + APPEALSTATE_SLIDE_MON_IN, + APPEALSTATE_WAIT_SLIDE_MON, + APPEALSTATE_PRINT_USED_MOVE_MSG, + APPEALSTATE_WAIT_USED_MOVE_MSG, + APPEALSTATE_MOVE_ANIM, + APPEALSTATE_WAIT_MOVE_ANIM, + APPEALSTATE_MOVE_ANIM_MULTITURN, + APPEALSTATE_SLIDE_MON_OUT, + APPEALSTATE_FREE_MON_SPRITE, + APPEALSTATE_UPDATE_MOVE_USERS_HEARTS, + APPEALSTATE_WAIT_MOVE_USERS_HEARTS, + APPEALSTATE_PRINT_COMBO_MSG, + APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO, + APPEALSTATE_WAIT_HEARTS_FROM_COMBO, + APPEALSTATE_CHECK_REPEATED_MOVE, + APPEALSTATE_WAIT_HEARTS_FROM_REPEAT, + APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT, + APPEALSTATE_START_TURN_END_DELAY, + APPEALSTATE_TURN_END_DELAY, + APPEALSTATE_START_NEXT_TURN, + APPEALSTATE_TRY_PRINT_MOVE_RESULT, + APPEALSTATE_WAIT_MOVE_RESULT_MSG, + APPEALSTATE_UPDATE_OPPONENTS, + APPEALSTATE_UPDATE_OPPONENT, + APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG, + APPEALSTATE_UPDATE_OPPONENT_HEARTS, + APPEALSTATE_WAIT_OPPONENT_HEARTS, + APPEALSTATE_UPDATE_OPPONENT_STATUS, + APPEALSTATE_PRINT_SKIP_TURN_MSG, + APPEALSTATE_WAIT_SKIP_TURN_MSG, + APPEALSTATE_PRINT_TOO_NERVOUS_MSG, + APPEALSTATE_WAIT_TOO_NERVOUS_MSG, + APPEALSTATE_TRY_JUDGE_STAR, + APPEALSTATE_WAIT_JUDGE_STAR, + APPEALSTATE_UPDATE_MOVE_USERS_STARS, + APPEALSTATE_WAIT_MOVE_USERS_STARS, + APPEALSTATE_UPDATE_OPPONENT_STARS, + APPEALSTATE_WAIT_OPPONENT_STARS, + APPEALSTATE_UPDATE_CROWD, + APPEALSTATE_42, // Unused state + APPEALSTATE_WAIT_EXCITEMENT_HEARTS, + APPEALSTATE_44, // Unused state + APPEALSTATE_WAIT_JUDGE_COMBO, + APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE, + APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX, + APPEALSTATE_CHECK_TURN_ORDER_MOD, + APPEALSTATE_WAIT_JUDGE_TURN_ORDER, + APPEALSTATE_UPDATE_MOVE_USERS_STATUS, + APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_DO_CROWD_UNEXCITED, + APPEALSTATE_DO_CROWD_EXCITED, + APPEALSTATE_SLIDE_APPLAUSE_OUT, + APPEALSTATE_WAIT_SLIDE_APPLAUSE, + APPEALSTATE_PRINT_CROWD_WATCHES_MSG, + APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG, + APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG, +}; + // EWRAM vars. EWRAM_DATA struct ContestPokemon gContestMons[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonConditions[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonTotalPoints[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gUnknown_02039F10[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonRound2Points[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gContestMonRound1Points[CONTESTANT_COUNT] = {0}; // "Round 1" points are based on condition +EWRAM_DATA s16 gContestMonTotalPoints[CONTESTANT_COUNT] = {0}; // Round 1 points + Round 2 points +EWRAM_DATA s16 gContestMonAppealPointTotals[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gContestMonRound2Points[CONTESTANT_COUNT] = {0}; // "Round 2" points are just appeal points * 2 EWRAM_DATA u8 gContestFinalStandings[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gContestMonPartyIndex = 0; EWRAM_DATA u8 gContestPlayerMonIndex = 0; @@ -230,7 +343,7 @@ EWRAM_DATA u8 gContestantTurnOrder[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gLinkContestFlags = 0; // Bit 0: Is a link contest // Bit 1: Link contest uses wireless adapter -EWRAM_DATA u8 gUnknown_02039F2B = 0; +EWRAM_DATA u8 gContestLinkLeaderIndex = 0; EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; EWRAM_DATA u16 gSpecialVar_ContestRank = 0; EWRAM_DATA u8 gNumLinkContestPlayers = 0; @@ -249,24 +362,25 @@ extern const u8 gText_BDot[]; extern const u8 gText_CDot[]; extern void (*const gContestEffectFuncs[])(void); -static const u8 gUnknown_08587A6C[] = +static const u8 sSliderHeartYPositions[CONTESTANT_COUNT] = { - 0x24, 0x4C, 0x74, 0x9C + 36, 76, 116, 156 }; -static const u8 gUnknown_08587A70[] = +// The "Next Turn" sprites cover up the slider, so the y positions are the same as above +static const u8 sNextTurnSpriteYPositions[CONTESTANT_COUNT] = { - 0x24, 0x4C, 0x74, 0x9C + 36, 76, 116, 156 }; -static const struct SpriteSheet gUnknown_08587A74 = +static const struct SpriteSheet sSpriteSheet_SliderHeart = { - .data = gTiles_8C19450, + .data = gContestSliderHeart_Gfx, .size = 0x20, - .tag = 0x4E20 + .tag = TAG_SLIDER_HEART }; -static const struct OamData gOamData_8587A7C = +static const struct OamData sOam_SliderHeart = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -283,75 +397,75 @@ static const struct OamData gOamData_8587A7C = .affineParam = 0 }; -static const union AffineAnimCmd gSpriteAffineAnim_8587A84[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_Normal[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8587A94[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_SpinDisappear[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), - AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, -20, 20), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(-10, -10, -20, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8587AAC[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_SpinAppear[] = { - AFFINEANIMCMD_FRAME(0x38, 0x38, 0, 0), + AFFINEANIMCMD_FRAME(56, 56, 0, 0), AFFINEANIMCMD_FRAME(10, 10, 20, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd* const gSpriteAffineAnimTable_8587AC4[] = +static const union AffineAnimCmd* const sAffineAnims_SliderHeart[] = { - gSpriteAffineAnim_8587A84, - gSpriteAffineAnim_8587A94, - gSpriteAffineAnim_8587AAC + [SLIDER_HEART_ANIM_NORMAL] = sAffineAnim_SliderHeart_Normal, + [SLIDER_HEART_ANIM_DISAPPEAR] = sAffineAnim_SliderHeart_SpinDisappear, + [SLIDER_HEART_ANIM_APPEAR] = sAffineAnim_SliderHeart_SpinAppear }; -static const struct SpriteTemplate gSpriteTemplate_8587AD0 = +static const struct SpriteTemplate sSpriteTemplate_SliderHeart = { - .tileTag = 0x4E20, - .paletteTag = 0xABE0, - .oam = &gOamData_8587A7C, + .tileTag = TAG_SLIDER_HEART, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, + .oam = &sOam_SliderHeart, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8587AC4, + .affineAnims = sAffineAnims_SliderHeart, .callback = SpriteCallbackDummy }; -static const struct CompressedSpriteSheet gUnknown_08587AE8[] = +static const struct CompressedSpriteSheet sSpriteSheet_NextTurn[CONTESTANT_COUNT] = { { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E22 + .tag = TAG_NEXT_TURN_1_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E23 + .tag = TAG_NEXT_TURN_2_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E24 + .tag = TAG_NEXT_TURN_3_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E25 + .tag = TAG_NEXT_TURN_4_GFX } }; -static const struct SpritePalette gUnknown_08587B08 = +static const struct SpritePalette sSpritePalette_NextTurn = { .data = gContestPal, - .tag = 0x4E22 + .tag = TAG_NEXT_TURN_PAL }; -static const struct OamData gOamData_8587B10 = +static const struct OamData sOam_NextTurn = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -368,39 +482,39 @@ static const struct OamData gOamData_8587B10 = .affineParam = 0 }; -static const struct SpriteTemplate gSpriteTemplate_8587B18[] = +static const struct SpriteTemplate sSpriteTemplates_NextTurn[CONTESTANT_COUNT] = { { - .tileTag = 0x4E22, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_1_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E23, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_2_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E24, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_3_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E25, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_4_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -408,7 +522,7 @@ static const struct SpriteTemplate gSpriteTemplate_8587B18[] = } }; -const struct Subsprite gSubspriteTable_8587B78[] = +static const struct Subsprite sSubsprites_NextTurn[] = { { .x = -28, @@ -428,22 +542,23 @@ const struct Subsprite gSubspriteTable_8587B78[] = } }; -const struct SubspriteTable gSubspriteTables_8587B80[] = +static const struct SubspriteTable sSubspriteTable_NextTurn[] = { { - .subspriteCount = 2, - .subsprites = gSubspriteTable_8587B78 + .subspriteCount = ARRAY_COUNT(sSubsprites_NextTurn), + .subsprites = sSubsprites_NextTurn } }; -const struct CompressedSpriteSheet gUnknown_08587B88 = +// Unused +static const struct CompressedSpriteSheet sSpriteSheet_Faces = { - .data = gUnknown_08C19168, + .data = gContestFaces_Gfx, .size = 0x180, - .tag = 0xABE1 + .tag = TAG_FACES_GFX }; -const struct OamData gOamData_8587B90 = +static const struct OamData sOam_Faces = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -457,31 +572,32 @@ const struct OamData gOamData_8587B90 = .paletteNum = 0, }; -const struct SpriteTemplate gSpriteTemplate_8587B98 = +// Unused +static const struct SpriteTemplate sSpriteTemplate_Faces = { - .tileTag = 0xABE1, - .paletteTag = 0xABE0, - .oam = &gOamData_8587B90, + .tileTag = TAG_FACES_GFX, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, + .oam = &sOam_Faces, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct CompressedSpriteSheet sApplauseMeterSpriteSheet = +static const struct CompressedSpriteSheet sSpriteSheet_ApplauseMeter = { .data = gContestApplauseGfx, .size = 0x400, - .tag = APPLAUSE_METER_GFX_TAG + .tag = TAG_APPLAUSE_METER }; -static const struct SpritePalette sApplauseMeterPalette = +static const struct SpritePalette sSpritePalette_ApplauseMeter = { .data = gContestPal, - .tag = APPLAUSE_METER_GFX_TAG + .tag = TAG_APPLAUSE_METER }; -static const struct OamData sApplauseMeterOamData = +static const struct OamData sOam_ApplauseMeter = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -495,18 +611,18 @@ static const struct OamData sApplauseMeterOamData = .paletteNum = 0, }; -static const struct SpriteTemplate sApplauseMeterSpriteTemplate = +static const struct SpriteTemplate sSpriteTemplate_ApplauseMeter = { - .tileTag = APPLAUSE_METER_GFX_TAG, - .paletteTag = APPLAUSE_METER_GFX_TAG, - .oam = &sApplauseMeterOamData, + .tileTag = TAG_APPLAUSE_METER, + .paletteTag = TAG_APPLAUSE_METER, + .oam = &sOam_ApplauseMeter, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct OamData gOamData_8587BE0 = +const struct OamData sOam_Judge = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -520,41 +636,41 @@ const struct OamData gOamData_8587BE0 = .paletteNum = 2, }; -const struct SpriteTemplate gSpriteTemplate_8587BE8 = +const struct SpriteTemplate sSpriteTemplate_Judge = { - .tileTag = 0x4E21, - .paletteTag = 0x4E21, - .oam = &gOamData_8587BE0, + .tileTag = TAG_JUDGE, + .paletteTag = TAG_JUDGE, + .oam = &sOam_Judge, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct CompressedSpriteSheet gUnknown_08587C00 = +const struct CompressedSpriteSheet sSpriteSheet_Judge = { .data = gContestJudgeGfx, .size = 0x800, - .tag = 0x4E21 + .tag = TAG_JUDGE }; -const struct CompressedSpriteSheet gUnknown_08587C08 = +static const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols = { .data = gContestJudgeSymbolsGfx, .size = 0x380, - .tag = 0xABE0 + .tag = TAG_JUDGE_SYMBOLS_GFX }; -const struct CompressedSpritePalette gUnknown_08587C10 = +const struct CompressedSpritePalette sSpritePalette_JudgeSymbols = { .data = gContest3Pal, - .tag = 0xABE0 + .tag = TAG_CONTEST_SYMBOLS_PAL }; -const struct SpriteTemplate gSpriteTemplate_8587C18 = +const struct SpriteTemplate sSpriteTemplate_JudgeSpeechBubble = { - .tileTag = 0xABE0, - .paletteTag = 0xABE0, + .tileTag = TAG_JUDGE_SYMBOLS_GFX, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, .oam = &gOamData_AffineOff_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, @@ -562,7 +678,7 @@ const struct SpriteTemplate gSpriteTemplate_8587C18 = .callback = SpriteCallbackDummy }; -const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbapal"); +static const u16 sText_Pal[] = INCBIN_U16("graphics/contest/text.gbapal"); #include "data/contest_text_tables.h" @@ -608,7 +724,7 @@ static const struct BgTemplate sContestBgTemplates[] = static const struct WindowTemplate sContestWindowTemplates[] = { - [CONTEST_WINDOW_CONTESTANT0_NAME] = { + [WIN_CONTESTANT0_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 0, @@ -617,7 +733,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x200 }, - [CONTEST_WINDOW_CONTESTANT1_NAME] = { + [WIN_CONTESTANT1_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 5, @@ -626,7 +742,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x218 }, - [CONTEST_WINDOW_CONTESTANT2_NAME] = { + [WIN_CONTESTANT2_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 10, @@ -635,7 +751,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x230 }, - [CONTEST_WINDOW_CONTESTANT3_NAME] = { + [WIN_CONTESTANT3_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 15, @@ -644,7 +760,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x248 }, - [CONTEST_WINDOW_GENERAL_TEXT] = { + [WIN_GENERAL_TEXT] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 15, @@ -653,7 +769,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x260 }, - [CONTEST_WINDOW_MOVE0] = { + [WIN_MOVE0] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 31, @@ -662,7 +778,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2A4 }, - [CONTEST_WINDOW_MOVE1] = { + [WIN_MOVE1] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 33, @@ -671,7 +787,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2B6 }, - [CONTEST_WINDOW_MOVE2] = { + [WIN_MOVE2] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 35, @@ -680,7 +796,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2C8 }, - [CONTEST_WINDOW_MOVE3] = { + [WIN_MOVE3] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 37, @@ -689,7 +805,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2DA }, - [CONTEST_WINDOW_SLASH] = { + [WIN_SLASH] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 31, @@ -698,7 +814,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2EC }, - [CONTEST_WINDOW_MOVE_DESCRIPTION] = { + [WIN_MOVE_DESCRIPTION] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 35, @@ -712,52 +828,52 @@ static const struct WindowTemplate sContestWindowTemplates[] = #include "data/contest_opponents.h" -static const struct CompressedSpriteSheet sUnknown_08589904[] = +static const struct CompressedSpriteSheet sSpriteSheets_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80E8 + .tag = TAG_BLINK_EFFECT_CONTESTANT0 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80E9 + .tag = TAG_BLINK_EFFECT_CONTESTANT1 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80EA + .tag = TAG_BLINK_EFFECT_CONTESTANT2 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80EB + .tag = TAG_BLINK_EFFECT_CONTESTANT3 } }; // Yup this is super dangerous but that's how it is here -static const struct SpritePalette sUnknown_08589924[] = +static const struct SpritePalette sSpritePalettes_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { .data = (u16*)(gHeap + 0x1A0A4), - .tag = 0x80E8 + .tag = TAG_BLINK_EFFECT_CONTESTANT0 }, { .data = (u16*)(gHeap + 0x1A0C4), - .tag = 0x80E9 + .tag = TAG_BLINK_EFFECT_CONTESTANT1 }, { .data = (u16*)(gHeap + 0x1A0E4), - .tag = 0x80EA + .tag = TAG_BLINK_EFFECT_CONTESTANT2 }, { .data = (u16*)(gHeap + 0x1A104), - .tag = 0x80EB + .tag = TAG_BLINK_EFFECT_CONTESTANT3 } }; -const struct OamData gOamData_8589944 = +const struct OamData sOam_ContestantsTurnBlinkEffect = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -772,13 +888,13 @@ const struct OamData gOamData_8589944 = .affineParam = 0, }; -const union AffineAnimCmd gSpriteAffineAnim_858994C[] = +const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -const union AffineAnimCmd gSpriteAffineAnim_858995C[] = +const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_1[] = { AFFINEANIMCMD_FRAME(3, 3, 0, 15), AFFINEANIMCMD_FRAME(-3, -3, 0, 15), @@ -787,59 +903,89 @@ const union AffineAnimCmd gSpriteAffineAnim_858995C[] = AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_8589984[] = +const union AffineAnimCmd *const sAffineAnims_ContestantsTurnBlinkEffect[] = { - gSpriteAffineAnim_858994C, - gSpriteAffineAnim_858995C + sAffineAnim_ContestantsTurnBlinkEffect_0, + sAffineAnim_ContestantsTurnBlinkEffect_1 }; -const struct SpriteTemplate gSpriteTemplate_858998C[] = +const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { - .tileTag = 0x80E8, - .paletteTag = 0x80E8, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT0, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT0, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80E9, - .paletteTag = 0x80E9, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT1, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT1, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80EA, - .paletteTag = 0x80EA, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT2, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT2, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80EB, - .paletteTag = 0x80EB, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT3, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT3, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy } }; -const s8 gContestExcitementTable[][5] = +static const s8 gContestExcitementTable[CONTEST_CATEGORIES_COUNT][CONTEST_CATEGORIES_COUNT] = { - { 1, 0, -1, -1, 0}, - { 0, 1, 0, -1, -1}, - {-1, 0, 1, 0, -1}, - {-1, -1, 0, 1, 0}, - { 0, -1, -1, 0, 1} + [CONTEST_CATEGORY_COOL] = { + [CONTEST_CATEGORY_COOL] = +1, + [CONTEST_CATEGORY_BEAUTY] = 0, + [CONTEST_CATEGORY_CUTE] = -1, + [CONTEST_CATEGORY_SMART] = -1, + [CONTEST_CATEGORY_TOUGH] = 0 + }, + [CONTEST_CATEGORY_BEAUTY] = { + [CONTEST_CATEGORY_COOL] = 0, + [CONTEST_CATEGORY_BEAUTY] = +1, + [CONTEST_CATEGORY_CUTE] = 0, + [CONTEST_CATEGORY_SMART] = -1, + [CONTEST_CATEGORY_TOUGH] = -1 + }, + [CONTEST_CATEGORY_CUTE] = { + [CONTEST_CATEGORY_COOL] = -1, + [CONTEST_CATEGORY_BEAUTY] = 0, + [CONTEST_CATEGORY_CUTE] = +1, + [CONTEST_CATEGORY_SMART] = 0, + [CONTEST_CATEGORY_TOUGH] = -1 + }, + [CONTEST_CATEGORY_SMART] = { + [CONTEST_CATEGORY_COOL] = -1, + [CONTEST_CATEGORY_BEAUTY] = -1, + [CONTEST_CATEGORY_CUTE] = 0, + [CONTEST_CATEGORY_SMART] = +1, + [CONTEST_CATEGORY_TOUGH] = 0 + }, + [CONTEST_CATEGORY_TOUGH] = { + [CONTEST_CATEGORY_COOL] = 0, + [CONTEST_CATEGORY_BEAUTY] = -1, + [CONTEST_CATEGORY_CUTE] = -1, + [CONTEST_CATEGORY_SMART] = 0, + [CONTEST_CATEGORY_TOUGH] = +1 + } }; static void TaskDummy1(u8 taskId) @@ -853,8 +999,6 @@ void ResetLinkContestBoolean(void) static void SetupContestGpuRegs(void) { - u16 savedIme; - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -886,12 +1030,12 @@ void LoadContestBgAfterMoveAnim(void) CopyToBgTilemapBuffer(3, gOldContestGfx, 0, 0); CopyBgTilemapBufferToVram(3); LoadCompressedPalette(gOldContestPalette, 0, 0x200); - sub_80D782C(); + LoadContestPalettes(); for (i = 0; i < CONTESTANT_COUNT; i++) { - u32 contestantWindowId = MOVE_WINDOWS_START + i; + u32 contestantWindowId = 5 + i; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId], 16 * (MOVE_WINDOWS_START + gContestantTurnOrder[i]), sizeof((eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId]))); + LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId]))); } } @@ -922,11 +1066,11 @@ static void InitContestWindows(void) } } -static void sub_80D782C(void) +static void LoadContestPalettes(void) { s32 i; - LoadPalette(gUnknown_08587C30, 0xf0, 0x20); + LoadPalette(sText_Pal, 0xf0, 0x20); FillPalette(RGB_BLACK, 0, 2); for (i = 10; i < 14; i++) LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2); @@ -940,7 +1084,7 @@ static void InitContestResources(void) eContest = (struct Contest){}; for (i = 0; i < CONTESTANT_COUNT; i++) { - eContest.unused2[i] = 0xFF; + eContest.unk[i] = 0xFF; } for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -952,10 +1096,10 @@ static void InitContestResources(void) eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; } - eContestResources8 = (struct UnknownContestStruct7){}; + eContestAppealResults = (struct ContestAppealMoveResults){}; eContestAI = (struct ContestAIInfo){}; - *gContestResources->field_10 = (struct UnknownContestStruct5){}; - memset(gContestResources->field_14, 0, CONTESTANT_COUNT * sizeof(struct UnknownContestStruct4)); + *gContestResources->excitement = (struct ContestExcitement){}; + memset(eContestGfxState, 0, CONTESTANT_COUNT * sizeof(struct ContestGraphicsState)); if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) SortContestants(FALSE); @@ -968,7 +1112,7 @@ static void InitContestResources(void) // Calling this here while all the nextTurnOrder values are 0xFF will actually // just reverse the turn order. ApplyNextTurnOrder(); - memset(gContestResources->field_1c, 0, sizeof(*gContestResources->field_1c) * CONTESTANT_COUNT); + memset(gContestResources->tv, 0, sizeof(*gContestResources->tv) * CONTESTANT_COUNT); } static void AllocContestResources(void) @@ -976,19 +1120,19 @@ static void AllocContestResources(void) gContestResources = AllocZeroed(sizeof(struct ContestResources)); gContestResources->contest = AllocZeroed(sizeof(struct Contest)); gContestResources->status = AllocZeroed(sizeof(struct ContestantStatus) * CONTESTANT_COUNT); - gContestResources->field_8 = AllocZeroed(sizeof(struct UnknownContestStruct7)); + gContestResources->appealResults = AllocZeroed(sizeof(struct ContestAppealMoveResults)); gContestResources->aiData = AllocZeroed(sizeof(struct ContestAIInfo)); - gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * CONTESTANT_COUNT); - gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * CONTESTANT_COUNT); - gContestResources->field_18 = AllocZeroed(sizeof(struct ContestStruct_field_18)); - gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C) * CONTESTANT_COUNT); - gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20)); + gContestResources->excitement = AllocZeroed(sizeof(struct ContestExcitement) * CONTESTANT_COUNT); + gContestResources->gfxState = AllocZeroed(sizeof(struct ContestGraphicsState) * CONTESTANT_COUNT); + gContestResources->moveAnim = AllocZeroed(sizeof(struct ContestMoveAnimData)); + gContestResources->tv = AllocZeroed(sizeof(struct ContestTV) * CONTESTANT_COUNT); + gContestResources->unused = AllocZeroed(sizeof(struct ContestUnused)); gContestResources->contestBgTilemaps[0] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[1] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[2] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[3] = AllocZeroed(0x1000); - gContestResources->field_34 = AllocZeroed(0x800); - gContestResources->field_38 = AllocZeroed(0x800); + gContestResources->boxBlinkTiles1 = AllocZeroed(0x800); + gContestResources->boxBlinkTiles2 = AllocZeroed(0x800); gContestResources->field_3c = AllocZeroed(0x2000); gUnknown_0202305C = gContestResources->field_3c; gUnknown_02023060 = gContestResources->contestBgTilemaps[1]; @@ -998,19 +1142,19 @@ static void FreeContestResources(void) { FREE_AND_SET_NULL(gContestResources->contest); FREE_AND_SET_NULL(gContestResources->status); - FREE_AND_SET_NULL(gContestResources->field_8); + FREE_AND_SET_NULL(gContestResources->appealResults); FREE_AND_SET_NULL(gContestResources->aiData); - FREE_AND_SET_NULL(gContestResources->field_10); - FREE_AND_SET_NULL(gContestResources->field_14); - FREE_AND_SET_NULL(gContestResources->field_18); - FREE_AND_SET_NULL(gContestResources->field_1c); - FREE_AND_SET_NULL(gContestResources->field_20); + FREE_AND_SET_NULL(gContestResources->excitement); + FREE_AND_SET_NULL(gContestResources->gfxState); + FREE_AND_SET_NULL(gContestResources->moveAnim); + FREE_AND_SET_NULL(gContestResources->tv); + FREE_AND_SET_NULL(gContestResources->unused); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[0]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[1]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[2]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[3]); - FREE_AND_SET_NULL(gContestResources->field_34); - FREE_AND_SET_NULL(gContestResources->field_38); + FREE_AND_SET_NULL(gContestResources->boxBlinkTiles1); + FREE_AND_SET_NULL(gContestResources->boxBlinkTiles2); FREE_AND_SET_NULL(gContestResources->field_3c); FREE_AND_SET_NULL(gContestResources); gUnknown_0202305C = NULL; @@ -1054,13 +1198,13 @@ void CB2_StartContest(void) } break; case 3: - sub_80DE224(); + SetBgForCurtainDrop(); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; BeginFastPaletteFade(2); gPaletteFade.bufferTransferDisabled = FALSE; - SetVBlankCallback(vblank_cb_battle); - eContest.mainTaskId = CreateTask(sub_80D7C7C, 10); + SetVBlankCallback(VBlankCB_Contest); + eContest.mainTaskId = CreateTask(Task_StartContestWaitFade, 10); SetMainCallback2(CB2_ContestMain); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) { @@ -1071,16 +1215,18 @@ void CB2_StartContest(void) } } -static void sub_80D7C7C(u8 taskId) +static void Task_StartContestWaitFade(u8 taskId) { if (!gPaletteFade.active) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D7CB4; + gTasks[taskId].func = Task_TryStartLinkContest; } } -static void sub_80D7CB4(u8 taskId) +// If this is a link contest try to start appeals communication +// Otherwise skip ahead +static void Task_TryStartLinkContest(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { @@ -1095,7 +1241,7 @@ static void sub_80D7CB4(u8 taskId) case 1: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].data[0]++; } return; @@ -1112,36 +1258,37 @@ static void sub_80D7CB4(u8 taskId) gPaletteFade.bufferTransferDisabled = FALSE; if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) ContestPrintLinkStandby(); - CreateTask(sub_80D7DAC, 0); + CreateTask(Task_CommunicateMonIdxs, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].func = TaskDummy1; } } else { - gTasks[taskId].func = sub_80D80C8; + gTasks[taskId].func = Task_WaitToRaiseCurtainAtStart; } } -static void sub_80D7DAC(u8 taskId) +static void Task_CommunicateMonIdxs(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80D7DC8); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, Task_EndCommunicateMonIdxs); } -static void sub_80D7DC8(u8 taskId) +static void Task_EndCommunicateMonIdxs(u8 taskId) { gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_80D7DE8; + gTasks[taskId].func = Task_ReadyStartLinkContest; } -static void sub_80D7DE8(u8 taskId) +static void Task_ReadyStartLinkContest(u8 taskId) { + // data[0] always 1 here gTasks[taskId].data[0]--; if (gTasks[taskId].data[0] <= 0) { GetMultiplayerId(); // unused return value DestroyTask(taskId); - gTasks[eContest.mainTaskId].func = sub_80D80C8; + gTasks[eContest.mainTaskId].func = Task_WaitToRaiseCurtainAtStart; gRngValue = gContestRngValue; } } @@ -1164,7 +1311,7 @@ static bool8 SetupContestGraphics(u8 *stateVar) break; case 2: LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4))); - DmaCopyLarge32(3, (void *)(BG_SCREEN_ADDR(4)), eUnzippedContestAudienceGfx, 0x2000, 0x1000); + DmaCopyLarge32(3, (void *)(BG_SCREEN_ADDR(4)), eUnzippedContestAudience_Gfx, 0x2000, 0x1000); break; case 3: CopyToBgTilemapBuffer(3, gOldContestGfx, 0, 0); @@ -1179,31 +1326,33 @@ static bool8 SetupContestGraphics(u8 *stateVar) case 5: LoadCompressedPalette(gOldContestPalette, 0, 0x200); CpuCopy32(gPlttBufferUnfaded + 128, tempPalette1, 16 * sizeof(u16)); - CpuCopy32(gPlttBufferUnfaded + (MOVE_WINDOWS_START + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); + CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); - CpuCopy32(tempPalette1, gPlttBufferUnfaded + (MOVE_WINDOWS_START + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); + CpuCopy32(tempPalette1, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.cachedWindowPalettes, sizeof(eUnknownHeap1A004.cachedWindowPalettes)); - sub_80D782C(); + LoadContestPalettes(); break; case 6: DrawContestantWindows(); FillContestantWindowBgs(); SwapMoveDescAndContestTilemaps(); - eContest.unk19216 = sub_80DB120(); - sub_80DC2BC(); - sub_80DC4F0(); + eContest.judgeSpeechBubbleSpriteId = CreateJudgeSpeechBubbleSprite(); + CreateSliderHeartSprites(); + CreateNextTurnSprites(); CreateApplauseMeterSprite(); - sub_80DC5E8(); - sub_80DC7EC(); + CreateJudgeAttentionEyeTask(); + CreateUnusedBlendTask(); gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; gBattleTypeFlags = 0; - gBattlerAttacker = 2; - gBattlerTarget = 3; - gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4(); - sub_80DEA20(); + gBattlerAttacker = B_POSITION_PLAYER_RIGHT; + gBattlerTarget = B_POSITION_OPPONENT_RIGHT; + // Unclear why judge sprite is assigned here + // Overwritten in APPEALSTATE_SLIDE_MON_IN with the attacking contest mon + gBattlerSpriteIds[gBattlerAttacker] = CreateJudgeSprite(); + CreateInvisibleBattleTargetSprite(); CopyBgTilemapBufferToVram(3); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(1); @@ -1221,18 +1370,18 @@ static bool8 SetupContestGraphics(u8 *stateVar) return FALSE; } -static void sub_80D80C8(u8 taskId) +static void Task_WaitToRaiseCurtainAtStart(u8 taskId) { gPaletteFade.bufferTransferDisabled = FALSE; if (!gPaletteFade.active) { gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D8108; + gTasks[taskId].func = Task_RaiseCurtainAtStart; } } -static void sub_80D8108(u8 taskId) +static void Task_RaiseCurtainAtStart(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1240,7 +1389,7 @@ static void sub_80D8108(u8 taskId) if (gTasks[taskId].data[1]++ <= 60) break; gTasks[taskId].data[1] = 0; - PlaySE12WithPanning(SE_C_MAKU_U, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0); gTasks[taskId].data[0]++; break; case 1: @@ -1250,7 +1399,7 @@ static void sub_80D8108(u8 taskId) gTasks[taskId].data[0]++; break; case 2: - sub_80DE350(); + UpdateContestantBoxOrder(); gTasks[taskId].data[0]++; break; case 3: @@ -1261,7 +1410,7 @@ static void sub_80D8108(u8 taskId) ((struct BgCnt *)&bg2Cnt)->priority = 0; SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt); SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt); - StartMoveApplauseMeterOnscreen(); + SlideApplauseMeterIn(); gTasks[taskId].data[0]++; break; } @@ -1271,7 +1420,7 @@ static void sub_80D8108(u8 taskId) break; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D833C; + gTasks[taskId].func = Task_DisplayAppealNumberText; break; } } @@ -1293,7 +1442,7 @@ static void CB2_ContestMain(void) sContestBgCopyFlags = 0; } -static void vblank_cb_battle(void) +static void VBlankCB_Contest(void) { SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); @@ -1313,7 +1462,7 @@ static void vblank_cb_battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void sub_80D833C(u8 taskId) +static void Task_DisplayAppealNumberText(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -1321,7 +1470,7 @@ static void sub_80D833C(u8 taskId) gBattle_BG2_Y = 0; ContestDebugDoPrint(); DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.unk18204, PLTT_BUFFER_SIZE * 2); - ConvertIntToDecimalStringN(gStringVar1, eContest.turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, eContest.appealNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); else @@ -1336,67 +1485,70 @@ static void sub_80D833C(u8 taskId) if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D8424; + gTasks[taskId].func = Task_TryShowMoveSelectScreen; } } } -static void sub_80D8424(u8 taskId) +static void Task_TryShowMoveSelectScreen(u8 taskId) { + // Wait for button press to show move select screen if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON)) { PlaySE(SE_SELECT); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) { - sub_80DC490(TRUE); - gTasks[taskId].func = sub_80D8490; + SetBottomSliderHeartsInvisibility(TRUE); + gTasks[taskId].func = Task_ShowMoveSelectScreen; } else { - gTasks[taskId].func = sub_80D8894; + // Skip move selection (selected move will be MOVE_NONE) + gTasks[taskId].func = Task_SelectedMove; } } } -static void sub_80D8490(u8 taskId) +static void Task_ShowMoveSelectScreen(u8 taskId) { u8 i; - u8 sp8[32]; + u8 moveName[32]; - gBattle_BG0_Y = 0xA0; - gBattle_BG2_Y = 0xA0; + gBattle_BG0_Y = 160; + gBattle_BG2_Y = 160; for (i = 0; i < MAX_MON_MOVES; i++) { u16 move = gContestMons[gContestPlayerMonIndex].moves[i]; - u8 *r5 = sp8; + u8 *moveNameBuffer = moveName; if (eContestantStatus[gContestPlayerMonIndex].prevMove != MOVE_NONE - && sub_80DE1E8(gContestPlayerMonIndex) - && AreMovesContestCombo(eContestantStatus[gContestPlayerMonIndex].prevMove, move) != 0 + && IsContestantAllowedToCombo(gContestPlayerMonIndex) + && AreMovesContestCombo(eContestantStatus[gContestPlayerMonIndex].prevMove, move) && eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) { - r5 = StringCopy(sp8, gText_ColorLightShadowDarkGrey); + // Highlight the text because it's a combo move + moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGrey); } - else if (move != 0 + else if (move != MOVE_NONE && eContestantStatus[gContestPlayerMonIndex].prevMove == move && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING) { - // Gray the text because it is a repeated move - r5 = StringCopy(sp8, gText_ColorBlue); + // Gray the text because it's a repeated move + moveNameBuffer = StringCopy(moveName, gText_ColorBlue); } - r5 = StringCopy(r5, gMoveNames[move]); + moveNameBuffer = StringCopy(moveNameBuffer, gMoveNames[move]); FillWindowPixelBuffer(i + MOVE_WINDOWS_START, PIXEL_FILL(0)); - Contest_PrintTextToBg0WindowAt(i + MOVE_WINDOWS_START, sp8, 5, 1, 7); + Contest_PrintTextToBg0WindowAt(i + MOVE_WINDOWS_START, moveName, 5, 1, 7); } - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); - gTasks[taskId].func = sub_80D8610; + gTasks[taskId].func = Task_HandleMoveSelectInput; } -static void sub_80D8610(u8 taskId) +static void Task_HandleMoveSelectInput(u8 taskId) { u8 numMoves = 0; s32 i; @@ -1410,16 +1562,17 @@ static void sub_80D8610(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gTasks[taskId].func = sub_80D8894; + gTasks[taskId].func = Task_SelectedMove; } else { switch (gMain.newAndRepeatedKeys) { case B_BUTTON: + // Cancel move selection PlaySE(SE_SELECT); - sub_80DC490(FALSE); - ConvertIntToDecimalStringN(gStringVar1, eContest.turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + SetBottomSliderHeartsInvisibility(FALSE); + ConvertIntToDecimalStringN(gStringVar1, eContest.appealNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); else @@ -1429,29 +1582,29 @@ static void sub_80D8610(u8 taskId) Contest_StartTextPrinter(gStringVar4, 0); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - gTasks[taskId].func = sub_80D8424; + gTasks[taskId].func = Task_TryShowMoveSelectScreen; break; case DPAD_LEFT: case DPAD_RIGHT: break; case DPAD_UP: - sub_80D883C(eContest.playerMoveChoice); + EraseMoveSelectArrow(eContest.playerMoveChoice); if (eContest.playerMoveChoice == 0) eContest.playerMoveChoice = numMoves - 1; else eContest.playerMoveChoice--; - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); break; case DPAD_DOWN: - sub_80D883C(eContest.playerMoveChoice); + EraseMoveSelectArrow(eContest.playerMoveChoice); if (eContest.playerMoveChoice == numMoves - 1) eContest.playerMoveChoice = 0; else eContest.playerMoveChoice++; - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); @@ -1460,18 +1613,18 @@ static void sub_80D8610(u8 taskId) } } -static void sub_80D880C(s8 a0) +static void DrawMoveSelectArrow(s8 moveIndex) { - ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + moveIndex * 2, 2, 2, 17, 1); } -static void sub_80D883C(s8 a0) +static void EraseMoveSelectArrow(s8 moveIndex) { - ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + moveIndex * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + moveIndex * 2, 2, 1, 17, 1); } -static void sub_80D8894(u8 taskId) +static void Task_SelectedMove(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { @@ -1479,35 +1632,35 @@ static void sub_80D8894(u8 taskId) u8 taskId2; eContestantStatus[gContestPlayerMonIndex].currMove = move; - taskId2 = CreateTask(sub_80FC9F8, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FC9F8, sub_80D892C); + taskId2 = CreateTask(Task_LinkContest_CommunicateMoveSelections, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateMoveSelections, Task_EndCommunicateMoveSelections); gTasks[taskId].func = TaskDummy1; ContestPrintLinkStandby(); - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); } else { GetAllChosenMoves(); - gTasks[taskId].func = sub_80D895C; + gTasks[taskId].func = Task_HideMoveSelectScreen; } } -static void sub_80D892C(u8 taskId) +static void Task_EndCommunicateMoveSelections(u8 taskId) { DestroyTask(taskId); - gTasks[eContest.mainTaskId].func = sub_80D895C; + gTasks[eContest.mainTaskId].func = Task_HideMoveSelectScreen; } -static void sub_80D895C(u8 taskId) +static void Task_HideMoveSelectScreen(u8 taskId) { s32 i; ContestClearGeneralTextWindow(); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); - for (i = 0; i < CONTESTANT_COUNT; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { FillWindowPixelBuffer(MOVE_WINDOWS_START + i, PIXEL_FILL(0)); PutWindowTilemap(MOVE_WINDOWS_START + i); @@ -1519,36 +1672,40 @@ static void sub_80D895C(u8 taskId) LoadPalette(eUnknownHeap1A004.unk18204, 0, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D8A04; + gTasks[taskId].func = Task_HideApplauseMeterForAppealStart; } -static void sub_80D8A04(u8 taskId) +static void Task_HideApplauseMeterForAppealStart(u8 taskId) { if (++gTasks[taskId].data[0] > 2) { gTasks[taskId].data[0] = 0; if (++gTasks[taskId].data[1] == 2) { - TryMoveApplauseMeterOffscreen(); - sub_80DE69C(1); - gTasks[taskId].func = sub_80D8A50; + SlideApplauseMeterOut(); + AnimateSliderHearts(SLIDER_HEART_ANIM_DISAPPEAR); + gTasks[taskId].func = Task_WaitHideApplauseMeterForAppealStart; } } } -static void sub_80D8A50(u8 taskId) +static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId) { - if (!eContest.applauseMeterIsMoving && !eContest.unk1920B_1) - gTasks[taskId].func = sub_80D8A88; + if (!eContest.applauseMeterIsMoving && !eContest.sliderHeartsAnimating) + gTasks[taskId].func = Task_AppealSetup; } -static void sub_80D8A88(u8 taskId) +#define tState data[0] +#define tMonSpriteId data[2] +#define tCounter data[10] + +static void Task_AppealSetup(u8 taskId) { if (++gTasks[taskId].data[0] > 19) { - eContest.unk19214 = 0; - eContest.unk1921C = gRngValue; - if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && sub_80DA8A4()) + eContest.turnNumber = 0; + eContest.unusedRng = gRngValue; + if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && IsPlayerLinkLeader()) { s32 i; @@ -1557,498 +1714,511 @@ static void sub_80D8A88(u8 taskId) eContestantStatus[gNumLinkContestPlayers + i].currMove = GetChosenMove(gNumLinkContestPlayers + i); } } - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D8B38; + gTasks[taskId].tState = APPEALSTATE_START_TURN; + gTasks[taskId].func = Task_DoAppeals; } } -static void sub_80D8B38(u8 taskId) +static void Task_DoAppeals(u8 taskId) { u8 spriteId; s32 i; - u8 r6 = eContest.unk19215; + u8 contestant = eContest.currentContestant; s8 r3; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: + case APPEALSTATE_START_TURN: ContestDebugDoPrint(); - for (i = 0; eContest.unk19214 != gContestResources->field_8->turnOrder[i]; i++) + for (i = 0; eContest.turnNumber != eContestAppealResults.turnOrder[i]; i++) ; - eContest.unk19215 = i; - r6 = eContest.unk19215; + eContest.currentContestant = i; + contestant = eContest.currentContestant; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { u8 taskId2; - eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) - sub_80DD080(eContest.unk19215); - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + eContest.waitForLink = TRUE; + if (IsPlayerLinkLeader()) + CalculateAppealMoveImpact(eContest.currentContestant); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = APPEALSTATE_WAIT_LINK; } else { - sub_80DD080(eContest.unk19215); - gTasks[taskId].data[0] = 2; + CalculateAppealMoveImpact(eContest.currentContestant); + gTasks[taskId].tState = APPEALSTATE_CHECK_SKIP_TURN; } return; - case 1: - if (!eContest.unk1920B_2) - gTasks[taskId].data[0] = 2; + case APPEALSTATE_WAIT_LINK: + if (!eContest.waitForLink) + gTasks[taskId].tState = APPEALSTATE_CHECK_SKIP_TURN; return; - case 2: - sub_80DF080(r6); + case APPEALSTATE_CHECK_SKIP_TURN: + SetContestLiveUpdateFlags(contestant); ContestDebugPrintBitStrings(); - if (eContestantStatus[r6].numTurnsSkipped != 0 - || eContestantStatus[r6].noMoreTurns) + if (eContestantStatus[contestant].numTurnsSkipped != 0 + || eContestantStatus[contestant].noMoreTurns) { - gTasks[taskId].data[0] = 31; + gTasks[taskId].tState = APPEALSTATE_PRINT_SKIP_TURN_MSG; } else { ContestClearGeneralTextWindow(); - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 3; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_SLIDE_MON_IN; } return; - case 3: - for (i = 0; i < 4; i++) + case APPEALSTATE_SLIDE_MON_IN: + for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; - memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18)); - sub_80DE9DC(eContest.unk19215); - spriteId = sub_80DB174( - gContestMons[eContest.unk19215].species, - gContestMons[eContest.unk19215].otId, - gContestMons[eContest.unk19215].personality, - eContest.unk19215); + memset(gContestResources->moveAnim, 0, sizeof(*gContestResources->moveAnim)); + SetMoveAnimAttackerData(eContest.currentContestant); + spriteId = CreateContestantSprite( + gContestMons[eContest.currentContestant].species, + gContestMons[eContest.currentContestant].otId, + gContestMons[eContest.currentContestant].personality, + eContest.currentContestant); gSprites[spriteId].pos2.x = 120; - gSprites[spriteId].callback = sub_80DA134; - gTasks[taskId].data[2] = spriteId; + gSprites[spriteId].callback = SpriteCB_MonSlideIn; + gTasks[taskId].tMonSpriteId = spriteId; gBattlerSpriteIds[gBattlerAttacker] = spriteId; - sub_80DCBE8(sub_80DC9EC(eContest.unk19215), FALSE); - gTasks[taskId].data[0] = 4; + BlinkContestantBox(CreateContestantBoxBlinkSprites(eContest.currentContestant), FALSE); + gTasks[taskId].tState = APPEALSTATE_WAIT_SLIDE_MON; return; - case 4: - spriteId = gTasks[taskId].data[2]; + case APPEALSTATE_WAIT_SLIDE_MON: + spriteId = gTasks[taskId].tMonSpriteId; if (gSprites[spriteId].callback == SpriteCallbackDummy) { - if (!gContestResources->field_14[r6].unk2_1) - gTasks[taskId].data[0] = 5; + // Once mon has slid in, also wait for box to finish blinking + if (!eContestGfxState[contestant].boxBlinking) + gTasks[taskId].tState = APPEALSTATE_PRINT_USED_MOVE_MSG; } return; - case 5: - if (eContestantStatus[r6].nervous) + case APPEALSTATE_PRINT_USED_MOVE_MSG: + if (eContestantStatus[contestant].nervous) { - gTasks[taskId].data[0] = 33; + gTasks[taskId].tState = APPEALSTATE_PRINT_TOO_NERVOUS_MSG; } else { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); - if (eContestantStatus[r6].currMove < MOVES_COUNT) - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + if (eContestantStatus[contestant].currMove < MOVES_COUNT) + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); else - StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[r6].moveCategory]); + StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[contestant].moveCategory]); StringExpandPlaceholders(gStringVar4, gText_MonAppealedWithMove); Contest_StartTextPrinter(gStringVar4, 1); - gTasks[taskId].data[0] = 6; + gTasks[taskId].tState = APPEALSTATE_WAIT_USED_MOVE_MSG; } return; - case 6: + case APPEALSTATE_WAIT_USED_MOVE_MSG: if (!Contest_RunTextPrinters()) { - eContest.unk1925E = 0; - gTasks[taskId].data[0] = 7; + eContest.moveAnimTurnCount = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM; } return; - case 7: + case APPEALSTATE_MOVE_ANIM: { - u16 move = SanitizeMove(eContestantStatus[eContest.unk19215].currMove); - - sub_80DE864(eContest.unk19215); - sub_80DE9DC(eContest.unk19215); - SelectContestMoveBankTarget(move); + u16 move = SanitizeMove(eContestantStatus[eContest.currentContestant].currMove); + SetMoveSpecificAnimData(eContest.currentContestant); + SetMoveAnimAttackerData(eContest.currentContestant); + SetMoveTargetPosition(move); DoMoveAnim(move); - gTasks[taskId].data[0] = 8; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_ANIM; } return; - case 8: + case APPEALSTATE_WAIT_MOVE_ANIM: gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_80DE9B0(r6); - if (eContest.unk1925E != 0) + ClearMoveAnimData(contestant); + if (eContest.moveAnimTurnCount != 0) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 9; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM_MULTITURN; } else { - if (!eContestantStatus[r6].hasJudgesAttention) - sub_80DC674(r6); - sub_80DE12C(); - gTasks[taskId].data[0] = 23; + if (!eContestantStatus[contestant].hasJudgesAttention) + StopFlashJudgeAttentionEye(contestant); + DrawUnnervedSymbols(); + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_MOVE_RESULT; } } return; - case 9: - if (gTasks[taskId].data[10]++ > 30) + case APPEALSTATE_MOVE_ANIM_MULTITURN: + if (gTasks[taskId].tCounter++ > 30) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 7; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM; } return; - case 23: + case APPEALSTATE_TRY_PRINT_MOVE_RESULT: gTasks[taskId].data[1] = 0; - if (eContestantStatus[r6].effectStringId != CONTEST_STRING_NONE) + if (eContestantStatus[contestant].effectStringId != CONTEST_STRING_NONE) { - sub_80DD45C(r6, eContestantStatus[r6].effectStringId); - eContestantStatus[r6].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 24; + PrintAppealMoveResultText(contestant, eContestantStatus[contestant].effectStringId); + eContestantStatus[contestant].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_RESULT_MSG; } else { - if (eContestantStatus[r6].effectStringId2 != CONTEST_STRING_NONE) + if (eContestantStatus[contestant].effectStringId2 != CONTEST_STRING_NONE) { for (i = 0; i < CONTESTANT_COUNT; i++) { - if (i != r6 && eContestantStatus[i].effectStringId != CONTEST_STRING_NONE) + if (i != contestant && eContestantStatus[i].effectStringId != CONTEST_STRING_NONE) break; } - if (i == 4) + if (i == CONTESTANT_COUNT) { - sub_80DD45C(r6, eContestantStatus[r6].effectStringId2); - eContestantStatus[r6].effectStringId2 = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 24; + PrintAppealMoveResultText(contestant, eContestantStatus[contestant].effectStringId2); + eContestantStatus[contestant].effectStringId2 = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_RESULT_MSG; } else { - gTasks[taskId].data[0] = 48; + gTasks[taskId].tState = APPEALSTATE_CHECK_TURN_ORDER_MOD; } } else { - gTasks[taskId].data[0] = 48; + gTasks[taskId].tState = APPEALSTATE_CHECK_TURN_ORDER_MOD; } } return; - case 24: + case APPEALSTATE_WAIT_MOVE_RESULT_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 23; + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_MOVE_RESULT; return; - case 48: - if (eContestantStatus[r6].turnOrderModAction == 1) + case APPEALSTATE_CHECK_TURN_ORDER_MOD: + if (eContestantStatus[contestant].turnOrderModAction == 1) { - sub_80DD720(5); + DoJudgeSpeechBubble(JUDGE_SYMBOL_NUMBER_ONE); } - else if (eContestantStatus[r6].turnOrderModAction == 2) + else if (eContestantStatus[contestant].turnOrderModAction == 2) { - sub_80DD720(6); + DoJudgeSpeechBubble(JUDGE_SYMBOL_NUMBER_FOUR); } - else if (eContestantStatus[r6].turnOrderModAction == 3) + else if (eContestantStatus[contestant].turnOrderModAction == 3) { - sub_80DD720(7); + DoJudgeSpeechBubble(JUDGE_SYMBOL_QUESTION_MARK); } else { - gTasks[taskId].data[0] = 47; + gTasks[taskId].tState = APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX; return; } - gTasks[taskId].data[0] = 49; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_TURN_ORDER; return; - case 49: - if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 47; + case APPEALSTATE_WAIT_JUDGE_TURN_ORDER: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX; return; - case 47: - sub_80DE008(TRUE); - gTasks[taskId].data[0] = 12; + case APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX: + ShowHideNextTurnGfx(TRUE); + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_HEARTS; return; - case 12: - sub_80DC028(0, eContestantStatus[r6].appeal2, r6); - gTasks[taskId].data[0] = 13; + case APPEALSTATE_UPDATE_MOVE_USERS_HEARTS: + UpdateAppealHearts(0, eContestantStatus[contestant].appeal, contestant); + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS; return; - case 13: - if (!gContestResources->field_14[eContest.unk19215].unk2_2) - gTasks[taskId].data[0] = 35; + case APPEALSTATE_WAIT_MOVE_USERS_HEARTS: + if (!eContestGfxState[eContest.currentContestant].updatingAppealHearts) + gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR; return; - case 35: - if (eContestantStatus[r6].conditionMod == 1) - sub_80DD720(8); - gTasks[taskId].data[0] = 36; + case APPEALSTATE_TRY_JUDGE_STAR: + if (eContestantStatus[contestant].conditionMod == CONDITION_GAIN) + DoJudgeSpeechBubble(JUDGE_SYMBOL_STAR); + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_STAR; return; - case 36: - if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 37; + case APPEALSTATE_WAIT_JUDGE_STAR: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STARS; return; - case 37: - if (sub_80DB5B8(r6, 1)) + case APPEALSTATE_UPDATE_MOVE_USERS_STARS: + if (UpdateConditionStars(contestant, TRUE)) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 38; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_STARS; } else { - gTasks[taskId].data[0] = 50; + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STATUS; } return; - case 38: - if (++gTasks[taskId].data[10] > 20) + case APPEALSTATE_WAIT_MOVE_USERS_STARS: + if (++gTasks[taskId].tCounter > 20) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 50; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STATUS; } return; - case 50: - if (sub_80DB798(r6)) - PlaySE(SE_C_PASI); - gTasks[taskId].data[0] = 25; + case APPEALSTATE_UPDATE_MOVE_USERS_STATUS: + if (DrawStatusSymbol(contestant)) + PlaySE(SE_CONTEST_ICON_CHANGE); + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENTS; return; - case 25: + case APPEALSTATE_UPDATE_OPPONENTS: gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0] = 26; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT; return; - case 26: + case APPEALSTATE_UPDATE_OPPONENT: { - s32 r2 = 0; + // Update each other contestant as a result of this move appeal + s32 j = 0; - r3 = 0; + r3 = FALSE; // Can't get this to use local variable. Should be "needsUpdate" for (i = gTasks[taskId].data[1]; i < CONTESTANT_COUNT; i++) { - r3 = 0; - for (r2 = 0; r2 < CONTESTANT_COUNT; r2++) + r3 = FALSE; + for (j = 0; j < CONTESTANT_COUNT; j++) { - if (r2 != r6 && gContestantTurnOrder[r2] == i - && eContestantStatus[r2].effectStringId != CONTEST_STRING_NONE) + if (j != contestant && gContestantTurnOrder[j] == i + && eContestantStatus[j].effectStringId != CONTEST_STRING_NONE) { - r3 = 1; + r3 = TRUE; break; } } - if (r3 != 0) + if (r3) break; } if (r3) { - gTasks[taskId].data[1] = gContestantTurnOrder[r2]; - sub_80DD45C(r2, eContestantStatus[r2].effectStringId); - eContestantStatus[r2].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 27; + // Update contestant + gTasks[taskId].data[1] = gContestantTurnOrder[j]; + PrintAppealMoveResultText(j, eContestantStatus[j].effectStringId); + eContestantStatus[j].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG; } else { + // Done updating contestants gTasks[taskId].data[1] = 0; - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 51; - sub_80DB884(); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG; + DrawStatusSymbols(); } } return; - case 27: + case APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG: + // Wait for contestants response to current appeal + // i.e. "Contestant managed to avert its gaze" if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 28; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_HEARTS; return; - case 28: + case APPEALSTATE_UPDATE_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - sub_80DC028(eContestantStatus[i].appeal2 + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); - gTasks[taskId].data[0] = 29; + UpdateAppealHearts(eContestantStatus[i].appeal + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_HEARTS; return; - case 29: + case APPEALSTATE_WAIT_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (!gContestResources->field_14[i].unk2_2) - gTasks[taskId].data[0] = 39; + if (!eContestGfxState[i].updatingAppealHearts) + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STARS; return; - case 39: + case APPEALSTATE_UPDATE_OPPONENT_STARS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (sub_80DB5B8(i, 1)) + if (UpdateConditionStars(i, TRUE)) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 40; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_STARS; } else { - gTasks[taskId].data[0] = 30; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STATUS; } return; - case 40: - if (++gTasks[taskId].data[10] > 20) + case APPEALSTATE_WAIT_OPPONENT_STARS: + if (++gTasks[taskId].tCounter > 20) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 30; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STATUS; } return; - case 30: + case APPEALSTATE_UPDATE_OPPONENT_STATUS: for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestantTurnOrder[i] == gTasks[taskId].data[1]) break; } - if (sub_80DB798(i)) - PlaySE(SE_C_PASI); + if (DrawStatusSymbol(i)) + PlaySE(SE_CONTEST_ICON_CHANGE); else - PlaySE(SE_C_SYU); + PlaySE(SE_CONTEST_ICON_CLEAR); if (eContestantStatus[i].judgesAttentionWasRemoved) { - sub_80DC674(i); - eContestantStatus[i].judgesAttentionWasRemoved = 0; + StopFlashJudgeAttentionEye(i); + eContestantStatus[i].judgesAttentionWasRemoved = FALSE; } gTasks[taskId].data[1]++; - gTasks[taskId].data[0] = 26; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT; return; - case 51: - if (gTasks[taskId].data[10]++ > 9) + case APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG: + if (gTasks[taskId].tCounter++ > 9) { - gTasks[taskId].data[10] = 0; - if (eContestantStatus[r6].numTurnsSkipped != 0 - || eContestantStatus[r6].turnSkipped) + gTasks[taskId].tCounter = 0; + if (eContestantStatus[contestant].numTurnsSkipped != 0 + || eContestantStatus[contestant].turnSkipped) { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_MonCantAppealNextTurn); Contest_StartTextPrinter(gStringVar4, 1); } - gTasks[taskId].data[0] = 52; + gTasks[taskId].tState = APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG; } return; - case 52: + case APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG: if (!Contest_RunTextPrinters()) { - if (!eContestantStatus[r6].unk15_6) - gTasks[taskId].data[0] = 17; + if (!eContestantStatus[contestant].usedComboMove) + gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; else - gTasks[taskId].data[0] = 14; + gTasks[taskId].tState = APPEALSTATE_PRINT_COMBO_MSG; } return; - case 14: - r3 = eContestantStatus[r6].unk16; - if (eContestantStatus[r6].unk16 != 0) + case APPEALSTATE_PRINT_COMBO_MSG: + { + s8 completedCombo = eContestantStatus[contestant].completedCombo; + if (eContestantStatus[contestant].completedCombo) { + // Finished combo + + // Looks like there were originally meant to be move combos of + // different effectivenesses. completedCombo however is only ever 0 or 1, + // so in here only "Went over well" will ever be used ContestClearGeneralTextWindow(); - if (r3 == 1) + if (completedCombo == 1) Contest_StartTextPrinter(gText_AppealComboWentOverWell, TRUE); - else if (r3 == 2) + else if (completedCombo == 2) Contest_StartTextPrinter(gText_AppealComboWentOverVeryWell, TRUE); else Contest_StartTextPrinter(gText_AppealComboWentOverExcellently, TRUE); - sub_80DD720(3); - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 45; + + DoJudgeSpeechBubble(JUDGE_SYMBOL_TWO_EXCLAMATIONS); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_COMBO; } else { + // Started combo ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_JudgeLookedAtMonExpectantly); Contest_StartTextPrinter(gStringVar4, 1); - sub_80DD720(2); - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 45; + DoJudgeSpeechBubble(JUDGE_SYMBOL_ONE_EXCLAMATION); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_COMBO; } return; - case 45: - if (!eContest.unk1920A_4) + } + case APPEALSTATE_WAIT_JUDGE_COMBO: + if (!eContest.waitForJudgeSpeechBubble) { - sub_80DC9B4(eContest.unk19215); - gTasks[taskId].data[0] = 15; + StartStopFlashJudgeAttentionEye(eContest.currentContestant); + gTasks[taskId].tState = APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO; } return; - case 15: + case APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO: if (!Contest_RunTextPrinters()) { - if (++gTasks[taskId].data[10] > 50) + if (++gTasks[taskId].tCounter > 50) { - if (!eContestantStatus[r6].hasJudgesAttention) + if (!eContestantStatus[contestant].hasJudgesAttention) { - sub_80DC028( - eContestantStatus[r6].appeal2, - eContestantStatus[r6].unk17, - r6); - eContestantStatus[r6].appeal2 += eContestantStatus[r6].unk17; + UpdateAppealHearts( + eContestantStatus[contestant].appeal, + eContestantStatus[contestant].comboAppealBonus, + contestant); + eContestantStatus[contestant].appeal += eContestantStatus[contestant].comboAppealBonus; } - gTasks[taskId].data[0] = 16; + gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO; } } return; - case 16: - if (!gContestResources->field_14[r6].unk2_2) + case APPEALSTATE_WAIT_HEARTS_FROM_COMBO: + if (!eContestGfxState[contestant].updatingAppealHearts) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 17; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; } return; - case 17: - if (eContestantStatus[r6].disappointedRepeat) + case APPEALSTATE_CHECK_REPEATED_MOVE: + if (eContestantStatus[contestant].repeatedMove) { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_RepeatedAppeal); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[10] = 0; - sub_80DD720(0); - gTasks[taskId].data[0] = 46; + gTasks[taskId].tCounter = 0; + DoJudgeSpeechBubble(JUDGE_SYMBOL_SWIRL); + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE; } else { - gTasks[taskId].data[0] = 41; + gTasks[taskId].tState = APPEALSTATE_UPDATE_CROWD; } return; - case 46: - if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 19; + case APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT; return; - case 19: + case APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT: if (!Contest_RunTextPrinters()) { - sub_80DC028(eContestantStatus[r6].appeal2, -eContestantStatus[r6].unk18, r6); - eContestantStatus[r6].appeal2 -= eContestantStatus[r6].unk18; - gTasks[taskId].data[0] = 18; + UpdateAppealHearts(eContestantStatus[contestant].appeal, -eContestantStatus[contestant].repeatJam, contestant); + eContestantStatus[contestant].appeal -= eContestantStatus[contestant].repeatJam; + gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_REPEAT; } return; - case 18: + case APPEALSTATE_WAIT_HEARTS_FROM_REPEAT: ContestDebugDoPrint(); - if (!gContestResources->field_14[r6].unk2_2) + if (!eContestGfxState[contestant].updatingAppealHearts) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 41; + gTasks[taskId].tState = APPEALSTATE_UPDATE_CROWD; } return; - case 41: - if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer) + case APPEALSTATE_UPDATE_CROWD: + if (eContestExcitement.frozen && contestant != eContestExcitement.freezer) { - gTasks[taskId].data[0] = 57; + gTasks[taskId].tState = APPEALSTATE_PRINT_CROWD_WATCHES_MSG; } else { - r3 = gContestResources->field_10->bits_0; - if (eContestantStatus[r6].overrideCategoryExcitementMod) + r3 = eContestExcitement.moveExcitement; // Can't get this to use local variable. Should be "moveExcitement" + if (eContestantStatus[contestant].overrideCategoryExcitementMod) { r3 = 1; - StringCopy(gStringVar3, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar3, gMoveNames[eContestantStatus[contestant].currMove]); } else { - StringCopy(gStringVar3, sContestConditions[gContestMoves[eContestantStatus[r6].currMove].contestCategory]); - } - if (r3 > 0) - { - if (eContestantStatus[r6].disappointedRepeat) - r3 = 0; + StringCopy(gStringVar3, sContestConditions[gContestMoves[eContestantStatus[contestant].currMove].contestCategory]); } + + if (r3 > 0 && eContestantStatus[contestant].repeatedMove) + r3 = 0; + ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); eContest.applauseLevel += r3; if (eContest.applauseLevel < 0) eContest.applauseLevel = 0; if (r3 == 0) { - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } else { @@ -2059,28 +2229,28 @@ static void sub_80D8B38(u8 taskId) else StringExpandPlaceholders(gStringVar4, gText_MonsXGotTheCrowdGoing); Contest_StartTextPrinter(gStringVar4, 1); - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; if (r3 < 0) - gTasks[taskId].data[0] = 53; + gTasks[taskId].tState = APPEALSTATE_DO_CROWD_UNEXCITED; else - gTasks[taskId].data[0] = 54; + gTasks[taskId].tState = APPEALSTATE_DO_CROWD_EXCITED; } } return; - case 53: - switch (gTasks[taskId].data[10]) + case APPEALSTATE_DO_CROWD_UNEXCITED: + switch (gTasks[taskId].tCounter) { case 0: - sub_80DDED0(-1, 1); - PlayFanfare(MUS_ME_ZANNEN); - gTasks[taskId].data[10]++; + BlendAudienceBackground(-1, 1); + PlayFanfare(MUS_TOO_BAD); + gTasks[taskId].tCounter++; break; case 1: - if (!eContest.unk1920B_0 && !Contest_RunTextPrinters()) + if (!eContest.waitForAudienceBlend && !Contest_RunTextPrinters()) { ShowAndUpdateApplauseMeter(-1); - gTasks[taskId].data[10]++; + gTasks[taskId].tCounter++; } break; case 2: @@ -2089,38 +2259,38 @@ static void sub_80D8B38(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - sub_80DDED0(-1, -1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(-1, -1); + gTasks[taskId].tCounter++; } } break; case 3: if (!gPaletteFade.active) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].data[0] = 43; + gTasks[taskId].tState = APPEALSTATE_WAIT_EXCITEMENT_HEARTS; } break; } return; - case 54: - switch (gTasks[taskId].data[10]) + case APPEALSTATE_DO_CROWD_EXCITED: + switch (gTasks[taskId].tCounter) { case 0: if (!Contest_RunTextPrinters()) { - sub_80DDED0(1, 1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(1, 1); + gTasks[taskId].tCounter++; } break; case 1: - if (!eContest.unk1920B_0) + if (!eContest.waitForAudienceBlend) { - sub_80DDE0C(); - PlaySE(SE_W227B); + AnimateAudience(); + PlaySE(SE_M_ENCORE2); ShowAndUpdateApplauseMeter(1); - gTasks[taskId].data[10]++; + gTasks[taskId].tCounter++; } break; case 2: @@ -2129,83 +2299,83 @@ static void sub_80D8B38(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - sub_80DC028(eContestantStatus[r6].appeal2, gContestResources->field_10->unk2, r6); - eContestantStatus[r6].appeal2 += gContestResources->field_10->unk2; - gTasks[taskId].data[10]++; + UpdateAppealHearts(eContestantStatus[contestant].appeal, eContestExcitement.excitementAppealBonus, contestant); + eContestantStatus[contestant].appeal += eContestExcitement.excitementAppealBonus; + gTasks[taskId].tCounter++; } } break; case 3: - if (!gContestResources->field_14[r6].unk2_2) + if (!eContestGfxState[contestant].updatingAppealHearts) { - if (!eContest.unk1920A_7) + if (!eContest.animatingAudience) { - sub_80DDED0(1, -1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(1, -1); + gTasks[taskId].tCounter++; } } break; case 4: if (!gPaletteFade.active) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].data[0] = 43; + gTasks[taskId].tState = APPEALSTATE_WAIT_EXCITEMENT_HEARTS; } break; } return; - case 43: - if (!gContestResources->field_14[r6].unk2_2) + case APPEALSTATE_WAIT_EXCITEMENT_HEARTS: + if (!eContestGfxState[contestant].updatingAppealHearts) { ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } return; - case 57: + case APPEALSTATE_PRINT_CROWD_WATCHES_MSG: ContestClearGeneralTextWindow(); - StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname); - StringCopy(gStringVar1, gContestMons[r6].nickname); - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar3, gContestMons[eContestExcitement.freezer].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 58; + gTasks[taskId].tState = APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG; return; - case 58: + case APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG: if (!Contest_RunTextPrinters()) { ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, gText_MonsMoveIsIgnored); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 59; + gTasks[taskId].tState = APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG; } return; - case 59: + case APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG: if (!Contest_RunTextPrinters()) { ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } return; - case 33: - if (eContestantStatus[r6].hasJudgesAttention) - eContestantStatus[r6].hasJudgesAttention = 0; - sub_80DC9B4(r6); - StringCopy(gStringVar1, gContestMons[r6].nickname); - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + case APPEALSTATE_PRINT_TOO_NERVOUS_MSG: + if (eContestantStatus[contestant].hasJudgesAttention) + eContestantStatus[contestant].hasJudgesAttention = FALSE; + StartStopFlashJudgeAttentionEye(contestant); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringExpandPlaceholders(gStringVar4, gText_MonWasTooNervousToMove); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 34; + gTasks[taskId].tState = APPEALSTATE_WAIT_TOO_NERVOUS_MSG; return; - case 34: + case APPEALSTATE_WAIT_TOO_NERVOUS_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; return; - case 55: - TryMoveApplauseMeterOffscreen(); - gTasks[taskId].data[0] = 56; + case APPEALSTATE_SLIDE_APPLAUSE_OUT: + SlideApplauseMeterOut(); + gTasks[taskId].tState = APPEALSTATE_WAIT_SLIDE_APPLAUSE; return; - case 56: + case APPEALSTATE_WAIT_SLIDE_APPLAUSE: if (!eContest.applauseMeterIsMoving) { if (eContest.applauseLevel > 4) @@ -2213,68 +2383,68 @@ static void sub_80D8B38(u8 taskId) eContest.applauseLevel = 0; UpdateApplauseMeter(); } - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = APPEALSTATE_SLIDE_MON_OUT; } return; - case 10: - spriteId = gTasks[taskId].data[2]; - gSprites[spriteId].callback = sub_80DA164; - gTasks[taskId].data[0] = 11; + case APPEALSTATE_SLIDE_MON_OUT: + spriteId = gTasks[taskId].tMonSpriteId; + gSprites[spriteId].callback = SpriteCB_MonSlideOut; + gTasks[taskId].tState = APPEALSTATE_FREE_MON_SPRITE; return; - case 11: - spriteId = gTasks[taskId].data[2]; + case APPEALSTATE_FREE_MON_SPRITE: + spriteId = gTasks[taskId].tMonSpriteId; if (gSprites[spriteId].invisible) { FreeSpriteOamMatrix(&gSprites[spriteId]); DestroySprite(&gSprites[spriteId]); - gTasks[taskId].data[0] = 20; + gTasks[taskId].tState = APPEALSTATE_START_TURN_END_DELAY; } return; - case 20: - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 21; + case APPEALSTATE_START_TURN_END_DELAY: + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_TURN_END_DELAY; return; - case 31: + case APPEALSTATE_PRINT_SKIP_TURN_MSG: ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_MonWasWatchingOthers); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 32; + gTasks[taskId].tState = APPEALSTATE_WAIT_SKIP_TURN_MSG; return; - case 32: + case APPEALSTATE_WAIT_SKIP_TURN_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 21; + gTasks[taskId].tState = APPEALSTATE_TURN_END_DELAY; return; - case 21: - if (++gTasks[taskId].data[10] > 29) + case APPEALSTATE_TURN_END_DELAY: + if (++gTasks[taskId].tCounter > 29) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 22; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_START_NEXT_TURN; } return; - case 22: - if (++eContest.unk19214 == 4) + case APPEALSTATE_START_NEXT_TURN: + if (++eContest.turnNumber == CONTESTANT_COUNT) { - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DA198; + gTasks[taskId].tMonSpriteId = 0; + gTasks[taskId].func = Task_FinishRoundOfAppeals; } else { - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = APPEALSTATE_START_TURN; } return; } } -static void sub_80DA110(u8 taskId) +static void Task_EndWaitForLink(u8 taskId) { - eContest.unk1920B_2 = 0; + eContest.waitForLink = FALSE; DestroyTask(taskId); } -static void sub_80DA134(struct Sprite *sprite) +static void SpriteCB_MonSlideIn(struct Sprite *sprite) { if (sprite->pos2.x != 0) { @@ -2290,7 +2460,7 @@ static void sub_80DA134(struct Sprite *sprite) } } -static void sub_80DA164(struct Sprite *sprite) +static void SpriteCB_MonSlideOut(struct Sprite *sprite) { sprite->pos2.x -= 6; if (sprite->pos1.x + sprite->pos2.x < -32) @@ -2300,7 +2470,7 @@ static void sub_80DA164(struct Sprite *sprite) } } -static void sub_80DA198(u8 taskId) +static void Task_FinishRoundOfAppeals(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2309,57 +2479,57 @@ static void sub_80DA198(u8 taskId) { u8 taskId2; - eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) + eContest.waitForLink = TRUE; + if (IsPlayerLinkLeader()) { RankContestants(); - sub_80DBA18(); + SetAttentionLevels(); } - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 1; } else { RankContestants(); - sub_80DBA18(); + SetAttentionLevels(); gTasks[taskId].data[0] = 2; } break; case 1: - if (!eContest.unk1920B_2) + if (!eContest.waitForLink) gTasks[taskId].data[0] = 2; break; case 2: gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA25C; + gTasks[taskId].func = Task_ReadyUpdateHeartSliders; break; } } -static void sub_80DA25C(u8 taskId) +static void Task_ReadyUpdateHeartSliders(u8 taskId) { - sub_80DE008(FALSE); + ShowHideNextTurnGfx(FALSE); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80DA28C; + gTasks[taskId].func = Task_UpdateHeartSliders; } -static void sub_80DA28C(u8 taskId) +static void Task_UpdateHeartSliders(u8 taskId) { switch (gTasks[taskId].data[0]) { case 0: if (++gTasks[taskId].data[1] > 20) { - sub_80DE69C(2); + AnimateSliderHearts(SLIDER_HEART_ANIM_APPEAR); gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; } break; case 1: - if (!eContest.unk1920B_1) + if (!eContest.sliderHeartsAnimating) { if (++gTasks[taskId].data[1] > 20) { @@ -2369,17 +2539,17 @@ static void sub_80DA28C(u8 taskId) } break; case 2: - sub_80DC3AC(); + UpdateHeartSliders(); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80DA31C; + gTasks[taskId].func = Task_WaitForHeartSliders; break; } } -static void sub_80DA31C(u8 taskId) +static void Task_WaitForHeartSliders(u8 taskId) { - if (sub_80DC3C4()) + if (SlidersDoneUpdating()) gTasks[taskId].func = sub_80DA348; } @@ -2388,20 +2558,20 @@ static void sub_80DA348(u8 taskId) DmaCopy32Defvars(3, eUnknownHeap1A004.unk18204, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 2; - gTasks[taskId].func = sub_80DA38C; + gTasks[taskId].func = Task_WaitPrintRoundResult; } -static void sub_80DA38C(u8 taskId) +static void Task_WaitPrintRoundResult(u8 taskId) { if (++gTasks[taskId].data[0] > 2) { gTasks[taskId].data[0] = 0; if (--gTasks[taskId].data[1] == 0) - gTasks[taskId].func = sub_80DA3CC; + gTasks[taskId].func = Task_PrintRoundResultText; } } -static void sub_80DA3CC(u8 taskId) +static void Task_PrintRoundResultText(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2418,44 +2588,44 @@ static void sub_80DA3CC(u8 taskId) if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA464; + gTasks[taskId].func = Task_ReUpdateHeartSliders; ContestDebugDoPrint(); } } } -static void sub_80DA464(u8 taskId) +static void Task_ReUpdateHeartSliders(u8 taskId) { if (gTasks[taskId].data[0]++ > 29) { gTasks[taskId].data[0] = 0; - sub_80DC3AC(); - gTasks[taskId].func = sub_80DA49C; + UpdateHeartSliders(); // ? Sliders have already been updated + gTasks[taskId].func = Task_WaitForHeartSlidersAgain; } } -static void sub_80DA49C(u8 taskId) +static void Task_WaitForHeartSlidersAgain(u8 taskId) { - if (sub_80DC3C4()) + if (SlidersDoneUpdating()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA4CC; + gTasks[taskId].func = Task_DropCurtainAtRoundEnd; } } -static void sub_80DA4CC(u8 taskId) +static void Task_DropCurtainAtRoundEnd(u8 taskId) { - sub_80DE224(); - gTasks[taskId].func = sub_80DE424; + SetBgForCurtainDrop(); + gTasks[taskId].func = Task_StartDropCurtainAtRoundEnd; } -static void sub_80DA4F4(u8 taskId) +static void Task_UpdateContestantBoxOrder(u8 taskId) { - sub_80DE350(); - gTasks[taskId].func = sub_80DA51C; + UpdateContestantBoxOrder(); + gTasks[taskId].func = Task_TryStartNextRoundOfAppeals; } -static void sub_80DA51C(u8 taskId) +static void Task_TryStartNextRoundOfAppeals(u8 taskId) { vu16 sp0 = GetGpuReg(REG_OFFSET_BG0CNT); vu16 sp2 = GetGpuReg(REG_OFFSET_BG2CNT); @@ -2463,114 +2633,114 @@ static void sub_80DA51C(u8 taskId) ((vBgCnt *)&sp2)->priority = 0; SetGpuReg(REG_OFFSET_BG0CNT, sp0); SetGpuReg(REG_OFFSET_BG2CNT, sp2); - eContest.turnNumber++; - if (eContest.turnNumber == 5) + eContest.appealNumber++; + if (eContest.appealNumber == CONTEST_NUM_APPEALS) { - gTasks[taskId].func = sub_80DA5E8; + gTasks[taskId].func = Task_EndAppeals; } else { - StartMoveApplauseMeterOnscreen(); - gTasks[taskId].func = sub_80DA5B4; + SlideApplauseMeterIn(); + gTasks[taskId].func = Task_StartNewRoundOfAppeals; } } -static void sub_80DA5B4(u8 taskId) +static void Task_StartNewRoundOfAppeals(u8 taskId) { if (!eContest.applauseMeterIsMoving) - gTasks[taskId].func = sub_80D833C; + gTasks[taskId].func = Task_DisplayAppealNumberText; } -static void sub_80DA5E8(u8 taskId) +static void Task_EndAppeals(u8 taskId) { s32 i; gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; for (i = 0; i < CONTESTANT_COUNT; i++) - gUnknown_02039F10[i] = eContestantStatus[i].pointTotal; + gContestMonAppealPointTotals[i] = eContestantStatus[i].pointTotal; CalculateFinalScores(); ContestClearGeneralTextWindow(); if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) BravoTrainerPokemonProfile_BeforeInterview1(eContestantStatus[gContestPlayerMonIndex].prevMove); else { - sub_80DF250(); - sub_80DF4F8(); + CalculateContestLiveUpdateData(); + SetConestLiveUpdateTVData(); ContestDebugPrintBitStrings(); } gContestRngValue = gRngValue; StringExpandPlaceholders(gStringVar4, gText_AllOutOfAppealTime); Contest_StartTextPrinter(gStringVar4, TRUE); gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DA6B4; + gTasks[taskId].func = Task_WaitForOutOfTimeMsg; } -static void sub_80DA6B4(u8 taskId) +static void Task_WaitForOutOfTimeMsg(u8 taskId) { if (!Contest_RunTextPrinters()) { - sub_80DE224(); + SetBgForCurtainDrop(); gBattle_BG1_X = 0; gBattle_BG1_Y = 160; - PlaySE12WithPanning(SE_C_MAKU_D, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0); gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA700; + gTasks[taskId].func = Task_DropCurtainAtAppealsEnd; } } -static void sub_80DA700(u8 taskId) +static void Task_DropCurtainAtAppealsEnd(u8 taskId) { gBattle_BG1_Y -= 7; if ((s16)gBattle_BG1_Y < 0) gBattle_BG1_Y = 0; if (gBattle_BG1_Y == 0) { - gTasks[taskId].func = sub_80DA740; + gTasks[taskId].func = Task_TryCommunicateFinalStandings; gTasks[taskId].data[0] = 0; } } -static void sub_80DA740(u8 taskId) +static void Task_TryCommunicateFinalStandings(u8 taskId) { if (gTasks[taskId].data[0]++ >= 50) { gTasks[taskId].data[0] = 0; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - gTasks[taskId].func = sub_80DA7A0; + gTasks[taskId].func = Task_CommunicateFinalStandings; } else { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = sub_80DA830; + gTasks[taskId].func = Task_ContestReturnToField; } } } -static void sub_80DA7A0(u8 taskId) +static void Task_CommunicateFinalStandings(u8 taskId) { - u8 taskId2 = CreateTask(sub_80FCACC, 0); + u8 taskId2 = CreateTask(Task_LinkContest_CommunicateFinalStandings, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCACC, sub_80DA7EC); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateFinalStandings, Task_EndCommunicateFinalStandings); gTasks[taskId].func = TaskDummy1; ContestPrintLinkStandby(); - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); } -static void sub_80DA7EC(u8 taskId) +static void Task_EndCommunicateFinalStandings(u8 taskId) { DestroyTask(taskId); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[eContest.mainTaskId].func = sub_80DA830; + gTasks[eContest.mainTaskId].func = Task_ContestReturnToField; } -static void sub_80DA830(u8 taskId) +static void Task_ContestReturnToField(u8 taskId) { if (!gPaletteFade.active) { DestroyTask(taskId); - gFieldCallback = sub_80DA874; + gFieldCallback = FieldCB_ContestReturnToField; FreeAllWindowBuffers(); FreeContestResources(); FreeMonSpritesGfx(); @@ -2578,7 +2748,7 @@ static void sub_80DA830(u8 taskId) } } -static void sub_80DA874(void) +static void FieldCB_ContestReturnToField(void) { ScriptContext2_Disable(); EnableBothScriptContexts(); @@ -2587,17 +2757,17 @@ static void sub_80DA874(void) static void TryPutPlayerLast(void) { if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) - gContestPlayerMonIndex = 3; + gContestPlayerMonIndex = CONTESTANT_COUNT - 1; } -static bool8 sub_80DA8A4(void) +static bool8 IsPlayerLinkLeader(void) { - if (gContestPlayerMonIndex == gUnknown_02039F2B) + if (gContestPlayerMonIndex == gContestLinkLeaderIndex) return TRUE; return FALSE; } -void sub_80DA8C8(u8 partyIndex) +void CreateContestMonFromParty(u8 partyIndex) { u8 name[20]; u16 heldItem; @@ -2610,21 +2780,21 @@ void sub_80DA8C8(u8 partyIndex) StringCopy(name, gSaveBlock2Ptr->playerName); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - sub_80DF9D4(name); + StripPlayerNameForLinkContest(name); } memcpy(gContestMons[gContestPlayerMonIndex].trainerName, name, 8); if (gSaveBlock2Ptr->playerGender == MALE) gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_BRENDAN; else gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_MAY; - gContestMons[gContestPlayerMonIndex].aiChecks = 0; - gContestMons[gContestPlayerMonIndex].unk2C[0] = 0; + gContestMons[gContestPlayerMonIndex].aiFlags = 0; + gContestMons[gContestPlayerMonIndex].highestRank = 0; gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name); StringGetEnd10(name); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - sub_80DF9E0(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); + StripMonNameForLinkContest(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); } memcpy(gContestMons[gContestPlayerMonIndex].nickname, name, POKEMON_NAME_LENGTH + 1); StringCopy(gContestMons[gContestPlayerMonIndex].nickname, name); @@ -2674,33 +2844,33 @@ void sub_80DA8C8(u8 partyIndex) gContestMons[gContestPlayerMonIndex].tough = tough; } -void sub_80DAB8C(u8 contestType, u8 rank) +void SetContestants(u8 contestType, u8 rank) { s32 i; u8 opponentsCount = 0; u8 opponents[100]; - bool8 r7 = FALSE; - const u8 * r3; + bool8 allowPostgameContestants = FALSE; + const u8 * filter; TryPutPlayerLast(); if (FlagGet(FLAG_SYS_GAME_CLEAR) && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) - r7 = TRUE; + allowPostgameContestants = TRUE; // Find all suitable opponents - r3 = gPostgameContestOpponentFilter; + filter = gPostgameContestOpponentFilter; for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) { if (rank == gContestOpponents[i].whichRank) { - if (r7 == TRUE) + if (allowPostgameContestants == TRUE) { - if (r3[i] == 1) + if (filter[i] == CONTEST_FILTER_NO_POSTGAME) continue; } else { - if (r3[i] == 2) + if (filter[i] == CONTEST_FILTER_ONLY_POSTGAME) continue; } if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool) @@ -2718,7 +2888,7 @@ void sub_80DAB8C(u8 contestType, u8 rank) opponents[opponentsCount] = 0xFF; // Choose three random opponents from the list - for (i = 0; i < 3; i++) + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { u16 rnd = Random() % opponentsCount; s32 j; @@ -2729,18 +2899,19 @@ void sub_80DAB8C(u8 contestType, u8 rank) opponentsCount--; } - sub_80DA8C8(gContestMonPartyIndex); + CreateContestMonFromParty(gContestMonPartyIndex); } -void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) +void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame) { s32 i, j; u8 opponentsCount = 0; u8 opponents[100]; - if (gNumLinkContestPlayers == 4) + if (gNumLinkContestPlayers == CONTESTANT_COUNT) return; + // Find all suitable AI opponents for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) { if (rank != gContestOpponents[i].whichRank) @@ -2764,13 +2935,15 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) opponents[opponentsCount++] = i; } opponents[opponentsCount] = 0xFF; + + // Fill remaining contestant slots with random AI opponents from the list for (i = 0; i < CONTESTANT_COUNT - gNumLinkContestPlayers; i++) { u16 rnd = GetContestRand() % opponentsCount; gContestMons[gNumLinkContestPlayers + i] = gContestOpponents[opponents[rnd]]; - sub_80DF9D4(gContestMons[gNumLinkContestPlayers + i].trainerName); - sub_80DF9E0(gContestMons[gNumLinkContestPlayers + i].nickname, GAME_LANGUAGE); + StripPlayerNameForLinkContest(gContestMons[gNumLinkContestPlayers + i].trainerName); + StripMonNameForLinkContest(gContestMons[gNumLinkContestPlayers + i].nickname, GAME_LANGUAGE); for (j = rnd; opponents[j] != 0xFF; j++) opponents[j] = opponents[j + 1]; opponentsCount--; @@ -2870,7 +3043,7 @@ static void PrintContestantMonNameWithColor(u8 contestant, u8 color) Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[contestant], gDisplayedStringBattle, 5, 1, 7); } -static u16 sub_80DAFE0(u8 who, u8 contestCategory) +static u16 CalculateContestantRound1Points(u8 who, u8 contestCategory) { u8 statMain; u8 statSub1; @@ -2908,47 +3081,47 @@ static u16 sub_80DAFE0(u8 who, u8 contestCategory) return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2; } -void sub_80DB09C(u8 contestCategory) +void CalculateRound1Points(u8 contestCategory) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gContestMonConditions[i] = sub_80DAFE0(i, contestCategory); + gContestMonRound1Points[i] = CalculateContestantRound1Points(i, contestCategory); } -static u8 sub_80DB0C4(void) +static u8 CreateJudgeSprite(void) { u8 spriteId; - LoadCompressedSpriteSheet(&gUnknown_08587C00); + LoadCompressedSpriteSheet(&sSpriteSheet_Judge); LoadCompressedPalette(gContest2Pal, 0x110, 32); - spriteId = CreateSprite(&gSpriteTemplate_8587BE8, 112, 36, 30); + spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30); gSprites[spriteId].oam.paletteNum = 1; gSprites[spriteId].callback = SpriteCallbackDummy; return spriteId; } -static u8 sub_80DB120(void) +static u8 CreateJudgeSpeechBubbleSprite(void) { u8 spriteId; - LoadCompressedSpriteSheet(&gUnknown_08587C08); - LoadCompressedSpritePalette(&gUnknown_08587C10); - spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29); + LoadCompressedSpriteSheet(&sSpriteSheet_JudgeSymbols); + LoadCompressedSpritePalette(&sSpritePalette_JudgeSymbols); + spriteId = CreateSprite(&sSpriteTemplate_JudgeSpeechBubble, 96, 10, 29); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum; return spriteId; } -static u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index) +static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 index) { u8 spriteId; species = SanitizeSpecies(species); if (index == gContestPlayerMonIndex) - HandleLoadSpecialPokePic_2(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality); else - HandleLoadSpecialPokePic_DontHandleDeoxys(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality); LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); SetMultiuseSpriteTemplateToPokemon(species, 0); @@ -2986,27 +3159,28 @@ static void SwapMoveDescAndContestTilemaps(void) CpuCopy16(gContestResources->contestBgTilemaps[2], gContestResources->contestBgTilemaps[2] + 0x500, 32 * 20); } -static u16 sub_80DB2EC(u16 a0, u8 a1) +// Functionally unused +static u16 GetMoveEffectSymbolTileOffset(u16 move, u8 contestant) { - u16 var; + u16 offset; - switch (gContestEffects[gContestMoves[a0].effect].effectType) + switch (gContestEffects[gContestMoves[move].effect].effectType) { case 0: case 1: case 8: - var = 0x9082; + offset = 0x9082; break; case 2: case 3: - var = 0x9088; + offset = 0x9088; break; default: - var = 0x9086; + offset = 0x9086; break; } - var += 0x9000 + (a1 << 12); - return var; + offset += 0x9000 + (contestant << 12); + return offset; } static void PrintContestMoveDescription(u16 a) @@ -3053,158 +3227,163 @@ static void PrintContestMoveDescription(u16 a) // Empty hearts ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); - FillWindowPixelBuffer(CONTEST_WINDOW_MOVE_DESCRIPTION, PIXEL_FILL(0)); - Contest_PrintTextToBg0WindowStd(CONTEST_WINDOW_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]); - Contest_PrintTextToBg0WindowStd(CONTEST_WINDOW_SLASH, gText_Slash); + FillWindowPixelBuffer(WIN_MOVE_DESCRIPTION, PIXEL_FILL(0)); + Contest_PrintTextToBg0WindowStd(WIN_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]); + Contest_PrintTextToBg0WindowStd(WIN_SLASH, gText_Slash); } -static void sub_80DB4E0(u16 move, u8 b) +static void DrawMoveEffectSymbol(u16 move, u8 contestant) { - u8 r7 = gContestantTurnOrder[b] * 5 + 2; + u8 contestantOffset = gContestantTurnOrder[contestant] * 5 + 2; - if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE) + if (!Contest_IsMonsTurnDisabled(contestant) && move != MOVE_NONE) { - u16 tile = sub_80DB2EC(move, b); + u16 tile = GetMoveEffectSymbolTileOffset(move, contestant); - ContestBG_FillBoxWithIncrementingTile(0, tile, 20, r7, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, r7 + 1, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, tile, 20, contestantOffset, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, contestantOffset + 1, 2, 1, 17, 1); } else { - ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + ContestBG_FillBoxWithTile(0, 0, 20, contestantOffset, 2, 2, 17); } } -static void sub_80DB584(void) +// Unused +static void DrawMoveEffectSymbols(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DB4E0(eContestantStatus[i].currMove, i); + DrawMoveEffectSymbol(eContestantStatus[i].currMove, i); } -static u16 sub_80DB5B0(void) +static u16 GetStarTileOffset(void) { return 0x2034; } -static bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod) +static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod) { - u8 r6; - s32 r4; + u8 contestantOffset; + s32 numStars; - if (eContestantStatus[contestantIdx].conditionMod == 0) + if (eContestantStatus[contestantIdx].conditionMod == CONDITION_NO_CHANGE) return FALSE; - r6 = gContestantTurnOrder[contestantIdx] * 5 + 2; - r4 = eContestantStatus[contestantIdx].condition / 10; - if (eContestantStatus[contestantIdx].conditionMod == 1) + contestantOffset = gContestantTurnOrder[contestantIdx] * 5 + 2; + numStars = eContestantStatus[contestantIdx].condition / 10; + if (eContestantStatus[contestantIdx].conditionMod == CONDITION_GAIN) { - ContestBG_FillBoxWithTile(0, sub_80DB5B0(), 19, r6, 1, r4, 17); + ContestBG_FillBoxWithTile(0, GetStarTileOffset(), 19, contestantOffset, 1, numStars, 17); if (resetMod) { - PlaySE(SE_EXPMAX); - eContestantStatus[contestantIdx].conditionMod = 0; + PlaySE(SE_EXP_MAX); + eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } - else + else // CONDITION_LOSE { - ContestBG_FillBoxWithTile(0, 0, 19, r6 + r4, 1, 3 - r4, 17); + ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); if (resetMod) { - PlaySE(SE_FU_ZAKU2); - eContestantStatus[contestantIdx].conditionMod = 0; + PlaySE(SE_CONTEST_CONDITION_LOSE); + eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } return TRUE; } -static void sub_80DB69C(void) +static void DrawConditionStars(void) { s32 i; - s32 r6; + s32 numStars; for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r4 = gContestantTurnOrder[i] * 5 + 2; - u16 r5 = sub_80DB5B0(); + u8 contestantOffset = gContestantTurnOrder[i] * 5 + 2; + u16 starOffset = GetStarTileOffset(); - r6 = eContestantStatus[i].condition / 10; - ContestBG_FillBoxWithTile(0, r5, 19, r4, 1, r6, 17); - ContestBG_FillBoxWithTile(0, 0, 19, r4 + r6, 1, 3 - r6, 17); + numStars = eContestantStatus[i].condition / 10; + ContestBG_FillBoxWithTile(0, starOffset, 19, contestantOffset, 1, numStars, 17); + ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); } } -static u16 sub_80DB748(u8 status) +static u16 GetStatusSymbolTileOffset(u8 status) { - u16 var = 0; + u16 offset = 0; switch (status) { - case 0: - var = 0x80; + case STAT_SYMBOL_CIRCLE: // For resistant + offset = 0x80; break; - case 1: - var = 0x84; + case STAT_SYMBOL_WAVE: // For nervous + offset = 0x84; break; - case 2: - var = 0x86; + case STAT_SYMBOL_X: // For turn skipped + offset = 0x86; break; - case 3: - var = 0x88; + case STAT_SYMBOL_SWIRL: // For jammed/unnerved + offset = 0x88; break; - case 4: - var = 0x82; + case STAT_SYMBOL_SQUARE: // Never used + offset = 0x82; break; } - var += 0x9000; - return var; + offset += 0x9000; + return offset; } -static bool8 sub_80DB798(u8 a) +static bool8 DrawStatusSymbol(u8 contestant) { - bool8 r9 = TRUE; - u16 r8 = 0; - u8 r7 = gContestantTurnOrder[a] * 5 + 2; + bool8 statused = TRUE; + u16 symbolOffset = 0; + u8 contestantOffset = gContestantTurnOrder[contestant] * 5 + 2; - if (eContestantStatus[a].resistant != 0 || eContestantStatus[a].immune != 0 || eContestantStatus[a].jamSafetyCount != 0 || eContestantStatus[a].jamReduction != 0) - r8 = sub_80DB748(0); - else if (eContestantStatus[a].nervous) - r8 = sub_80DB748(1); - else if (eContestantStatus[a].numTurnsSkipped != 0 || eContestantStatus[a].noMoreTurns) - r8 = sub_80DB748(2); + if (eContestantStatus[contestant].resistant + || eContestantStatus[contestant].immune + || eContestantStatus[contestant].jamSafetyCount != 0 + || eContestantStatus[contestant].jamReduction != 0) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_CIRCLE); + else if (eContestantStatus[contestant].nervous) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_WAVE); + else if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_X); else - r9 = FALSE; - if (r9) + statused = FALSE; + + if (statused) { - ContestBG_FillBoxWithIncrementingTile(0, r8, 20, r7, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(0, r8 + 16, 20, r7 + 1, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset + 16, 20, contestantOffset + 1, 2, 1, 17, 1); } else { - ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + ContestBG_FillBoxWithTile(0, 0, 20, contestantOffset, 2, 2, 17); } - return r9; + return statused; } -static void sub_80DB884(void) +static void DrawStatusSymbols(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DB798(i); + DrawStatusSymbol(i); } static void ContestClearGeneralTextWindow(void) { - FillWindowPixelBuffer(CONTEST_WINDOW_GENERAL_TEXT, PIXEL_FILL(0)); - CopyWindowToVram(CONTEST_WINDOW_GENERAL_TEXT, 2); + FillWindowPixelBuffer(WIN_GENERAL_TEXT, PIXEL_FILL(0)); + CopyWindowToVram(WIN_GENERAL_TEXT, 2); Contest_SetBgCopyFlags(0); } static u16 GetChosenMove(u8 contestant) { if (Contest_IsMonsTurnDisabled(contestant)) - return 0; + return MOVE_NONE; if (contestant == gContestPlayerMonIndex) { return gContestMons[contestant].moves[eContest.playerMoveChoice]; @@ -3229,27 +3408,24 @@ static void GetAllChosenMoves(void) static void RankContestants(void) { - s32 i; - s32 j; + s32 i, j; s16 arr[CONTESTANT_COUNT]; for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestantStatus[i].pointTotal += eContestantStatus[i].appeal2; + eContestantStatus[i].pointTotal += eContestantStatus[i].appeal; arr[i] = eContestantStatus[i].pointTotal; } // Sort the point totals using bubble-sort. - for (i = 0; i < 3; i++) + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { - for (j = 3; j > i; j--) + for (j = CONTESTANT_COUNT - 1; j > i; j--) { if (arr[j - 1] < arr[j]) { - u16 temp = arr[j]; - - arr[j] = arr[j - 1]; - arr[j - 1] = temp; + u16 temp; + SWAP(arr[j], arr[j - 1], temp); } } } @@ -3278,7 +3454,7 @@ static void RankContestants(void) ApplyNextTurnOrder(); } -static void sub_80DBA18(void) +static void SetAttentionLevels(void) { s32 i; @@ -3288,13 +3464,13 @@ static void sub_80DBA18(void) if (eContestantStatus[i].currMove == MOVE_NONE) attentionLevel = 5; - else if (eContestantStatus[i].appeal2 <= 0) + else if (eContestantStatus[i].appeal <= 0) attentionLevel = 0; - else if (eContestantStatus[i].appeal2 < 30) + else if (eContestantStatus[i].appeal < 30) attentionLevel = 1; - else if (eContestantStatus[i].appeal2 < 60) + else if (eContestantStatus[i].appeal < 60) attentionLevel = 2; - else if (eContestantStatus[i].appeal2 < 80) + else if (eContestantStatus[i].appeal < 80) attentionLevel = 3; else attentionLevel = 4; @@ -3307,18 +3483,17 @@ static bool8 ContestantCanUseTurn(u8 contestant) { if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return FALSE; - else - return TRUE; + return TRUE; } -static void sub_80DBAA0(void) +static void SetContestantStatusesForNextRound(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestantStatus[i].appeal2 = 0; - eContestantStatus[i].appeal1 = 0; + eContestantStatus[i].appeal = 0; + eContestantStatus[i].baseAppeal = 0; eContestantStatus[i].jamSafetyCount = 0; if (eContestantStatus[i].numTurnsSkipped > 0) eContestantStatus[i].numTurnsSkipped--; @@ -3331,9 +3506,9 @@ static void sub_80DBAA0(void) eContestantStatus[i].nervous = FALSE; eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; - eContestantStatus[i].conditionMod = 0; - eContestantStatus[i].unk15_2 = eContestantStatus[i].disappointedRepeat; - eContestantStatus[i].disappointedRepeat = FALSE; + eContestantStatus[i].conditionMod = CONDITION_NO_CHANGE; + eContestantStatus[i].repeatedPrevMove = eContestantStatus[i].repeatedMove; + eContestantStatus[i].repeatedMove = FALSE; eContestantStatus[i].turnOrderModAction = 0; eContestantStatus[i].appealTripleCondition = 0; if (eContestantStatus[i].turnSkipped) @@ -3343,33 +3518,32 @@ static void sub_80DBAA0(void) } if (eContestantStatus[i].exploded) { - eContestantStatus[i].noMoreTurns = 1; - eContestantStatus[i].exploded = 0; + eContestantStatus[i].noMoreTurns = TRUE; + eContestantStatus[i].exploded = FALSE; } eContestantStatus[i].overrideCategoryExcitementMod = 0; } for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].prevMove = eContestantStatus[i].currMove; - eContest.moveHistory[eContest.turnNumber][i] = eContestantStatus[i].currMove; - eContest.excitementHistory[eContest.turnNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); + eContest.moveHistory[eContest.appealNumber][i] = eContestantStatus[i].currMove; + eContest.excitementHistory[eContest.appealNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); eContestantStatus[i].currMove = MOVE_NONE; } - eContestResources10.excitementFrozen = 0; + eContestExcitement.frozen = FALSE; } -bool8 Contest_IsMonsTurnDisabled(u8 a) +bool8 Contest_IsMonsTurnDisabled(u8 contestant) { - if (eContestantStatus[a].numTurnsSkipped != 0 || eContestantStatus[a].noMoreTurns) + if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return TRUE; - else - return FALSE; + return FALSE; } static void CalculateTotalPointsForContestant(u8 contestant) { gContestMonRound2Points[contestant] = GetContestantRound2Points(contestant); - gContestMonTotalPoints[contestant] = gContestMonConditions[contestant] + gContestMonRound2Points[contestant]; + gContestMonTotalPoints[contestant] = gContestMonRound1Points[contestant] + gContestMonRound2Points[contestant]; } static void CalculateFinalScores(void) @@ -3383,24 +3557,23 @@ static void CalculateFinalScores(void) static s16 GetContestantRound2Points(u8 contestant) { - return gUnknown_02039F10[contestant] * 2; + return gContestMonAppealPointTotals[contestant] * 2; } static void DetermineFinalStandings(void) { u16 randomOrdering[CONTESTANT_COUNT] = {0}; - struct UnknownContestStruct6 sp8[CONTESTANT_COUNT]; + struct ContestFinalStandings standings[CONTESTANT_COUNT]; s32 i; - s32 j; + // Seed random order in case of ties for (i = 0; i < CONTESTANT_COUNT; i++) { - s32 r2; - + s32 j; randomOrdering[i] = Random(); - for (r2 = 0; r2 < i; r2++) + for (j = 0; j < i; j++) { - if (randomOrdering[i] == randomOrdering[r2]) + if (randomOrdering[i] == randomOrdering[j]) { i--; break; @@ -3408,42 +3581,47 @@ static void DetermineFinalStandings(void) } } + // Init data for ranking contestants for (i = 0; i < CONTESTANT_COUNT; i++) { - sp8[i].unk0 = gContestMonTotalPoints[i]; - sp8[i].unk4 = gContestMonConditions[i]; - sp8[i].unk8 = randomOrdering[i]; - sp8[i].unkC = i; + standings[i].totalPoints = gContestMonTotalPoints[i]; + standings[i].round1Points = gContestMonRound1Points[i]; + standings[i].random = randomOrdering[i]; + standings[i].contestant = i; } - for (i = 0; i < 3; i++) + // Rank contestants + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { - for (j = 3; j > i; j--) + s32 j; + for (j = CONTESTANT_COUNT - 1; j > i; j--) { - if (sub_80DBF30(j - 1, j, sp8)) + if (DidContestantPlaceHigher(j - 1, j, standings)) { - struct UnknownContestStruct6 temp; - - temp.unk0 = sp8[j - 1].unk0; - temp.unk4 = sp8[j - 1].unk4; - temp.unk8 = sp8[j - 1].unk8; - temp.unkC = sp8[j - 1].unkC; - - sp8[j - 1].unk0 = sp8[j].unk0; - sp8[j - 1].unk4 = sp8[j].unk4; - sp8[j - 1].unk8 = sp8[j].unk8; - sp8[j - 1].unkC = sp8[j].unkC; - - sp8[j].unk0 = temp.unk0; - sp8[j].unk4 = temp.unk4; - sp8[j].unk8 = temp.unk8; - sp8[j].unkC = temp.unkC; + // Swap contestants in array + struct ContestFinalStandings temp; + + temp.totalPoints = standings[j - 1].totalPoints; + temp.round1Points = standings[j - 1].round1Points; + temp.random = standings[j - 1].random; + temp.contestant = standings[j - 1].contestant; + + standings[j - 1].totalPoints = standings[j].totalPoints; + standings[j - 1].round1Points = standings[j].round1Points; + standings[j - 1].random = standings[j].random; + standings[j - 1].contestant = standings[j].contestant; + + standings[j].totalPoints = temp.totalPoints; + standings[j].round1Points = temp.round1Points; + standings[j].random = temp.random; + standings[j].contestant = temp.contestant; } } } + // Assign placements. i is the placing (0 is 1st, 1 is 2nd...) for (i = 0; i < CONTESTANT_COUNT; i++) - gContestFinalStandings[sp8[i].unkC] = i; + gContestFinalStandings[standings[i].contestant] = i; } void SaveLinkContestResults(void) @@ -3457,19 +3635,22 @@ void SaveLinkContestResults(void) } } -static bool8 sub_80DBF30(s32 a, s32 b, struct UnknownContestStruct6 *c) +static bool8 DidContestantPlaceHigher(s32 a, s32 b, struct ContestFinalStandings *standings) { bool8 retVal; - if (c[a].unk0 < c[b].unk0) + // Rank contestants first based on total points + if (standings[a].totalPoints < standings[b].totalPoints) retVal = TRUE; - else if (c[a].unk0 > c[b].unk0) + else if (standings[a].totalPoints > standings[b].totalPoints) retVal = FALSE; - else if (c[a].unk4 < c[b].unk4) + // If tied, rank on round 1 points + else if (standings[a].round1Points < standings[b].round1Points) retVal = TRUE; - else if (c[a].unk4 > c[b].unk4) + else if (standings[a].round1Points > standings[b].round1Points) retVal = FALSE; - else if (c[a].unk8 < c[b].unk8) + // If tied again, choose randomly + else if (standings[a].random < standings[b].random) retVal = TRUE; else retVal = FALSE; @@ -3489,200 +3670,218 @@ static void FillContestantWindowBgs(void) int i; for(i = 0; i < CONTESTANT_COUNT; i++) - { ContestBG_FillBoxWithTile(0, 0, 0x16, 2 + i * 5, 8, 2, 0x11); - } } -static u16 sub_80DBFC8(u8 a) +static u16 GetAppealHeartTileOffset(u8 contestant) { - u16 var; + u16 offset; - if (a == 0) - var = 0x5011; - else if (a == 1) - var = 0x6011; - else if (a == 2) - var = 0x7011; + if (contestant == 0) + offset = 0x5011; + else if (contestant == 1) + offset = 0x6011; + else if (contestant == 2) + offset = 0x7011; else - var = 0x8011; - return var + 1; + offset = 0x8011; + return offset + 1; } -static s8 sub_80DBFFC(s16 a) +static s8 GetNumHeartsFromAppealPoints(s16 appeal) { - s8 retVal = a / 10; + s8 hearts = appeal / 10; - if (retVal > 16) - retVal = 16; - else if (retVal < -16) - retVal = -16; - return retVal; + if (hearts > 16) + hearts = 16; + else if (hearts < -16) + hearts = -16; + return hearts; } -static u8 sub_80DC028(s16 a, s16 b, u8 c) +#define tNumHearts data[0] +#define tHeartsDelta data[1] +#define tHeartsSign data[2] +#define tContestant data[3] +#define tDelayTimer data[10] + +static u8 UpdateAppealHearts(s16 startAppeal, s16 appealDelta, u8 contestant) { u8 taskId; - s8 r4; - s8 r5; - - gContestResources->field_14[c].unk2_2 = 1; - taskId = CreateTask(sub_80DC0F4, 20); - r4 = sub_80DBFFC(a); - r5 = sub_80DBFFC(a + b) - r4; - sub_80DBFC8(c); // unused return value - gTasks[taskId].data[0] = abs(r4); - gTasks[taskId].data[1] = r5; - if (r4 > 0 || (r4 == 0 && r5 > 0)) - gTasks[taskId].data[2] = 1; + s8 startHearts; + s8 heartsDelta; + + eContestGfxState[contestant].updatingAppealHearts = TRUE; + taskId = CreateTask(Task_UpdateAppealHearts, 20); + startHearts = GetNumHeartsFromAppealPoints(startAppeal); + heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + appealDelta) - startHearts; + GetAppealHeartTileOffset(contestant); // unused return value + gTasks[taskId].tNumHearts = abs(startHearts); + gTasks[taskId].tHeartsDelta = heartsDelta; + if (startHearts > 0 || (startHearts == 0 && heartsDelta > 0)) + gTasks[taskId].tHeartsSign = 1; else - gTasks[taskId].data[2] = -1; - gTasks[taskId].data[3] = c; + gTasks[taskId].tHeartsSign = -1; + gTasks[taskId].tContestant = contestant; return taskId; } -static void sub_80DC0F4(u8 taskId) +static void Task_UpdateAppealHearts(u8 taskId) { - u8 r7 = gTasks[taskId].data[3]; - s16 r3 = gTasks[taskId].data[0]; - s16 r1 = gTasks[taskId].data[1]; + u8 contestant = gTasks[taskId].tContestant; + s16 startHearts = gTasks[taskId].tNumHearts; + s16 heartsDelta = gTasks[taskId].tHeartsDelta; - if (++gTasks[taskId].data[10] > 14) + if (++gTasks[taskId].tDelayTimer > 14) { - u16 r6; - u8 r5; - u8 r10; - u8 r11; + u16 heartOffset; + u8 newNumHearts; + u8 pitchMod; + bool8 onSecondLine; - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[1] == 0) + gTasks[taskId].tDelayTimer = 0; + if (gTasks[taskId].tHeartsDelta == 0) { + // No more hearts to add/remove, end DestroyTask(taskId); - gContestResources->field_14[r7].unk2_2 = 0; + eContestGfxState[contestant].updatingAppealHearts = FALSE; return; } - else if (r3 == 0) + else if (startHearts == 0) { - if (r1 < 0) + if (heartsDelta < 0) { - r6 = sub_80DBFC8(r7) + 2; - gTasks[taskId].data[1]++; + // Losing hearts, get black heart offset + heartOffset = GetAppealHeartTileOffset(contestant) + 2; + gTasks[taskId].tHeartsDelta++; } else { - r6 = sub_80DBFC8(r7); - gTasks[taskId].data[1]--; + // Gaining hearts, get red heart offset + heartOffset = GetAppealHeartTileOffset(contestant); + gTasks[taskId].tHeartsDelta--; } - r5 = gTasks[taskId].data[0]++; + newNumHearts = gTasks[taskId].tNumHearts++; } else { - if (gTasks[taskId].data[2] < 0) + if (gTasks[taskId].tHeartsSign < 0) { - if (r1 < 0) + // Hearts currently black (negative) + if (heartsDelta < 0) { - r5 = gTasks[taskId].data[0]++; - gTasks[taskId].data[1]++; - r6 = sub_80DBFC8(r7) + 2; + // Losing points, add black heart + newNumHearts = gTasks[taskId].tNumHearts++; + gTasks[taskId].tHeartsDelta++; + heartOffset = GetAppealHeartTileOffset(contestant) + 2; } else { - r5 = --gTasks[taskId].data[0]; - r6 = 0; - gTasks[taskId].data[1]--; + // Gaining points, remove black heart + newNumHearts = --gTasks[taskId].tNumHearts; + heartOffset = 0; + gTasks[taskId].tHeartsDelta--; } } else { - if (r1 < 0) + // Hearts currently red (positive) + if (heartsDelta < 0) { - r5 = --gTasks[taskId].data[0]; - r6 = 0; - gTasks[taskId].data[1]++; + // Losing points, remove red heart + newNumHearts = --gTasks[taskId].tNumHearts; + heartOffset = 0; + gTasks[taskId].tHeartsDelta++; } else { - r5 = gTasks[taskId].data[0]++; - gTasks[taskId].data[1]--; - r6 = sub_80DBFC8(r7); + // Gaining points, add red heart + newNumHearts = gTasks[taskId].tNumHearts++; + gTasks[taskId].tHeartsDelta--; + heartOffset = GetAppealHeartTileOffset(contestant); } } } - r10 = r5; - r11 = 0; + pitchMod = newNumHearts; + onSecondLine = FALSE; - if (r5 > 7) + // Check if wrapping to second line of hearts + if (newNumHearts > 7) { - r11 = 1; - r5-= 8; + onSecondLine = TRUE; + newNumHearts -= 8; } - ContestBG_FillBoxWithTile(0, r6, r5 + 22, gContestantTurnOrder[r7] * 5 + 2 + r11, 1, 1, 17); - if (r1 > 0) + ContestBG_FillBoxWithTile(0, heartOffset, newNumHearts + 22, gContestantTurnOrder[contestant] * 5 + 2 + onSecondLine, 1, 1, 17); + if (heartsDelta > 0) { - PlaySE(SE_C_GAJI); + PlaySE(SE_CONTEST_HEART); m4aMPlayImmInit(&gMPlayInfo_SE1); - m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, r10 * 256); + m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, pitchMod * 256); } else { PlaySE(SE_BOO); } - if (!r11 && !r5 && !r6) - gTasks[taskId].data[2] = -gTasks[taskId].data[2]; + if (!onSecondLine && newNumHearts == 0 && heartOffset == 0) + gTasks[taskId].tHeartsSign = -gTasks[taskId].tHeartsSign; } } -static void sub_80DC2BC(void) +static void CreateSliderHeartSprites(void) { s32 i; - LoadSpriteSheet(&gUnknown_08587A74); + LoadSpriteSheet(&sSpriteSheet_SliderHeart); for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 y = gUnknown_08587A6C[gContestantTurnOrder[i]]; + u8 y = sSliderHeartYPositions[gContestantTurnOrder[i]]; - gContestResources->field_14[i].unk0 = CreateSprite(&gSpriteTemplate_8587AD0, 180, y, 1); + eContestGfxState[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1); } } -static void sub_80DC308(u8 contestant) +#define sContestant data[0] +#define sTargetX data[1] +#define sMoveX data[2] + +static void UpdateHeartSlider(u8 contestant) { u8 spriteId; - s16 r5; - - gContestResources->field_14[contestant].unk2_0 = 1; - spriteId = gContestResources->field_14[contestant].unk0; - r5 = eContestantStatus[contestant].pointTotal / 10 * 2; - if (r5 > 56) - r5 = 56; - else if (r5 < 0) - r5 = 0; + s16 slideTarget; + + eContestGfxState[contestant].sliderUpdating = TRUE; + spriteId = eContestGfxState[contestant].sliderHeartSpriteId; + slideTarget = eContestantStatus[contestant].pointTotal / 10 * 2; + if (slideTarget > 56) + slideTarget = 56; + else if (slideTarget < 0) + slideTarget = 0; gSprites[spriteId].invisible = FALSE; - gSprites[spriteId].data[0] = contestant; - gSprites[spriteId].data[1] = r5; - if (gSprites[spriteId].data[1] > gSprites[spriteId].pos2.x) - gSprites[spriteId].data[2] = 1; + gSprites[spriteId].sContestant = contestant; + gSprites[spriteId].sTargetX = slideTarget; + if (gSprites[spriteId].sTargetX > gSprites[spriteId].pos2.x) + gSprites[spriteId].sMoveX = 1; else - gSprites[spriteId].data[2] = -1; - gSprites[spriteId].callback = sub_80DC408; + gSprites[spriteId].sMoveX = -1; + gSprites[spriteId].callback = SpriteCB_UpdateHeartSlider; } -static void sub_80DC3AC(void) +static void UpdateHeartSliders(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC308(i); + UpdateHeartSlider(i); } -static bool8 sub_80DC3C4(void) +static bool8 SlidersDoneUpdating(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestResources->field_14[i].unk2_0) + if (eContestGfxState[i].sliderUpdating) break; } if (i == CONTESTANT_COUNT) @@ -3691,57 +3890,64 @@ static bool8 sub_80DC3C4(void) return FALSE; } -static void sub_80DC408(struct Sprite *sprite) +static void SpriteCB_UpdateHeartSlider(struct Sprite *sprite) { - if (sprite->pos2.x == sprite->data[1]) + if (sprite->pos2.x == sprite->sTargetX) { - gContestResources->field_14[sprite->data[0]].unk2_0 = 0; + eContestGfxState[sprite->sContestant].sliderUpdating = FALSE; sprite->callback = SpriteCallbackDummy; } else { - sprite->pos2.x += sprite->data[2]; + sprite->pos2.x += sprite->sMoveX; } } -static void sub_80DC44C(void) +#undef sContestant +#undef sTargetX +#undef sMoveX + +// Y positions change as the contestants change order +static void UpdateSliderHeartSpriteYPositions(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].unk0].pos1.y = gUnknown_08587A6C[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; } -static void sub_80DC490(bool8 a) +// Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen +static void SetBottomSliderHeartsInvisibility(bool8 invisible) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { + // Skip the top two contestants sliders if (gContestantTurnOrder[i] > 1) { - if (!a) - gSprites[gContestResources->field_14[i].unk0].pos1.x = 180; + if (!invisible) + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 180; else - gSprites[gContestResources->field_14[i].unk0].pos1.x = 256; + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 256; } } } -static void sub_80DC4F0(void) +static void CreateNextTurnSprites(void) { s32 i; - LoadSpritePalette(&gUnknown_08587B08); + LoadSpritePalette(&sSpritePalette_NextTurn); for (i = 0; i < CONTESTANT_COUNT; i++) { - LoadCompressedSpriteSheet(&gUnknown_08587AE8[i]); - gContestResources->field_14[i].unk1 = CreateSprite(&gSpriteTemplate_8587B18[i], + LoadCompressedSpriteSheet(&sSpriteSheet_NextTurn[i]); + eContestGfxState[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i], 204, - gUnknown_08587A70[gContestantTurnOrder[i]], + sNextTurnSpriteYPositions[gContestantTurnOrder[i]], 0); - SetSubspriteTables(&gSprites[gContestResources->field_14[i].unk1], gSubspriteTables_8587B80); - gSprites[gContestResources->field_14[i].unk1].invisible = TRUE; + SetSubspriteTables(&gSprites[eContestGfxState[i].nextTurnSpriteId], sSubspriteTable_NextTurn); + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE; } } @@ -3749,189 +3955,193 @@ static void CreateApplauseMeterSprite(void) { u8 spriteId; - LoadCompressedSpriteSheet(&sApplauseMeterSpriteSheet); - LoadSpritePalette(&sApplauseMeterPalette); - spriteId = CreateSprite(&sApplauseMeterSpriteTemplate, 30, 44, 1); + LoadCompressedSpriteSheet(&sSpriteSheet_ApplauseMeter); + LoadSpritePalette(&sSpritePalette_ApplauseMeter); + spriteId = CreateSprite(&sSpriteTemplate_ApplauseMeter, 30, 44, 1); gSprites[spriteId].invisible = TRUE; eContest.applauseMeterSpriteId = spriteId; } -static void sub_80DC5E8(void) +static void CreateJudgeAttentionEyeTask(void) { u8 i; - u8 taskId = CreateTask(sub_80DC728, 30); + u8 taskId = CreateTask(Task_FlashJudgeAttentionEye, 30); - eContest.unk19211 = taskId; + eContest.judgeAttentionTaskId = taskId; for (i = 0; i < CONTESTANT_COUNT; i++) gTasks[taskId].data[i * 4] = 0xFF; } -static void sub_80DC630(u8 a) +static void StartFlashJudgeAttentionEye(u8 contestant) { - gTasks[eContest.unk19211].data[a * 4 + 0] = 0; - gTasks[eContest.unk19211].data[a * 4 + 1] = 0; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; } -static void sub_80DC674(u8 a) +static void StopFlashJudgeAttentionEye(u8 contestant) { - u8 taskId = CreateTask(sub_80DC6A4, 31); - - gTasks[taskId].data[0] = a; + u8 taskId = CreateTask(Task_StopFlashJudgeAttentionEye, 31); + gTasks[taskId].data[0] = contestant; } -static void sub_80DC6A4(u8 taskId) +static void Task_StopFlashJudgeAttentionEye(u8 taskId) { - u8 r4 = gTasks[taskId].data[0]; + u8 contestant = gTasks[taskId].data[0]; - if (gTasks[eContest.unk19211].data[r4 * 4 + 0] == 0 - || gTasks[eContest.unk19211].data[r4 * 4 + 0] == 0xFF) + if (gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] == 0 + || gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] == 0xFF) { - gTasks[eContest.unk19211].data[r4 * 4 + 0] = 0xFF; - gTasks[eContest.unk19211].data[r4 * 4 + 1] = 0; - BlendPalette((eContest.prevTurnOrder[r4] + MOVE_WINDOWS_START) * 16 + 6, 2, 0, RGB(31, 31, 18)); + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; + BlendPalette((eContest.prevTurnOrder[contestant] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18)); DestroyTask(taskId); } } -static void sub_80DC728(u8 taskId) +static void Task_FlashJudgeAttentionEye(u8 taskId) { u8 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r3 = i * 4; + u8 offset = i * 4; - if (gTasks[taskId].data[r3 + 0] != 0xFF) + if (gTasks[taskId].data[offset + 0] != 0xFF) { - if (gTasks[taskId].data[r3 + 1] == 0) - gTasks[taskId].data[r3 + 0]++; + if (gTasks[taskId].data[offset + 1] == 0) + gTasks[taskId].data[offset + 0]++; else - gTasks[taskId].data[r3 + 0]--; + gTasks[taskId].data[offset + 0]--; - if (gTasks[taskId].data[r3 + 0] == 16 - || gTasks[taskId].data[r3 + 0] == 0) - gTasks[taskId].data[r3 + 1] ^= 1; + if (gTasks[taskId].data[offset + 0] == 16 + || gTasks[taskId].data[offset + 0] == 0) + gTasks[taskId].data[offset + 1] ^= 1; - BlendPalette( - (eContest.prevTurnOrder[i] + MOVE_WINDOWS_START) * 16 + 6, - 2, - gTasks[taskId].data[r3 + 0], - RGB(31, 31, 18)); + BlendPalette((eContest.prevTurnOrder[i] + 5) * 16 + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); } } } -static void sub_80DC7EC(void) +// Note: While the below task is run for the entire Appeals portion of the contest, +// because data[i * 4] is always 0xFF it never does anything +// If turned on by setting that data between 0 and 16, it blends +// an odd selection of palette colors (e.g. the text box, the appeal hearts +// for only one contestant, the heart outlines in the move selection box, etc) +// Given the similarities, it's possible this was an incorrect attempt +// at something similar to what CreateJudgeAttentionEyeTask does +static void CreateUnusedBlendTask(void) { s32 i; - eContest.unk19212 = CreateTask(sub_80DC8D0, 30); + eContest.blendTaskId = CreateTask(Task_UnusedBlend, 30); for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC81C(i); + InitUnusedBlendTaskData(i); } -static void sub_80DC81C(u8 contestant) +static void InitUnusedBlendTaskData(u8 contestant) { - gTasks[eContest.unk19212].data[contestant * 4 + 0] = 0xFF; - gTasks[eContest.unk19212].data[contestant * 4 + 1] = 0; + gTasks[eContest.blendTaskId].data[contestant * 4] = 0xFF; + gTasks[eContest.blendTaskId].data[contestant * 4 + 1] = 0; } -static void sub_80DC864(void) +static void UpdateBlendTaskContestantsData(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC87C(i); + UpdateBlendTaskContestantData(i); } -static void sub_80DC87C(u8 contestant) +static void UpdateBlendTaskContestantData(u8 contestant) { - u32 windowId1; - u32 windowId2; + u32 palOffset1; + u32 palOffset2; - sub_80DC81C(contestant); + InitUnusedBlendTaskData(contestant); - windowId1 = contestant + MOVE_WINDOWS_START; + palOffset1 = contestant + 5; DmaCopy16Defvars(3, - gPlttBufferUnfaded + windowId1 * 16 + 10, - gPlttBufferFaded + windowId1 * 16 + 10, + gPlttBufferUnfaded + palOffset1 * 16 + 10, + gPlttBufferFaded + palOffset1 * 16 + 10, 2); - windowId2 = (contestant + MOVE_WINDOWS_START) * 16 + 12 + contestant; + palOffset2 = (contestant + 5) * 16 + 12 + contestant; DmaCopy16Defvars(3, - gPlttBufferUnfaded + windowId2, - gPlttBufferFaded + windowId2, + gPlttBufferUnfaded + palOffset2, + gPlttBufferFaded + palOffset2, 2); } -static void sub_80DC8D0(u8 taskId) +// See comments on CreateUnusedBlendTask +static void Task_UnusedBlend(u8 taskId) { u8 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r3 = i * 4; + u8 idx = i * 4; - if (gTasks[taskId].data[r3 + 0] != 0xFF) + // Below is never true + if (gTasks[taskId].data[idx] != 0xFF) { - if (++gTasks[taskId].data[r3 + 2] > 2) + if (++gTasks[taskId].data[idx + 2] > 2) { - gTasks[taskId].data[r3 + 2] = 0; + gTasks[taskId].data[idx + 2] = 0; - if (gTasks[taskId].data[r3 + 1] == 0) - gTasks[taskId].data[r3 + 0]++; + if (gTasks[taskId].data[idx + 1] == 0) + gTasks[taskId].data[idx]++; else - gTasks[taskId].data[r3 + 0]--; + gTasks[taskId].data[idx]--; - if (gTasks[taskId].data[r3 + 0] == 16 - || gTasks[taskId].data[r3 + 0] == 0) - gTasks[taskId].data[r3 + 1] ^= 1; + if (gTasks[taskId].data[idx] == 16 + || gTasks[taskId].data[idx] == 0) + gTasks[taskId].data[idx + 1] ^= 1; - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 10, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18)); - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 12 + i, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18)); + BlendPalette((i + 5) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette((i + 5) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); } } } } -static void sub_80DC9B4(u8 contestant) +static void StartStopFlashJudgeAttentionEye(u8 contestant) { if (eContestantStatus[contestant].hasJudgesAttention) - sub_80DC630(contestant); + StartFlashJudgeAttentionEye(contestant); else - sub_80DC674(contestant); + StopFlashJudgeAttentionEye(contestant); } -static u8 sub_80DC9EC(u8 contestant) +static u8 CreateContestantBoxBlinkSprites(u8 contestant) { u8 spriteId1, spriteId2; u8 x = gContestantTurnOrder[contestant] * 40 + 32; - LoadCompressedSpriteSheet(&sUnknown_08589904[contestant]); - LoadSpritePalette(&sUnknown_08589924[contestant]); - spriteId1 = CreateSprite(&gSpriteTemplate_858998C[contestant], 184, x, 29); - spriteId2 = CreateSprite(&gSpriteTemplate_858998C[contestant], 248, x, 29); + LoadCompressedSpriteSheet(&sSpriteSheets_ContestantsTurnBlinkEffect[contestant]); + LoadSpritePalette(&sSpritePalettes_ContestantsTurnBlinkEffect[contestant]); + spriteId1 = CreateSprite(&sSpriteTemplates_ContestantsTurnBlinkEffect[contestant], 184, x, 29); + spriteId2 = CreateSprite(&sSpriteTemplates_ContestantsTurnBlinkEffect[contestant], 248, x, 29); gSprites[spriteId2].oam.tileNum += 64; CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(BG_SCREEN_ADDR(28) + gContestantTurnOrder[contestant] * 5 * 64 + 0x26), - gContestResources->field_34); + gContestResources->boxBlinkTiles1); CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(BG_SCREEN_ADDR(28) + gContestantTurnOrder[contestant] * 5 * 64 + 0x36), - gContestResources->field_38); + gContestResources->boxBlinkTiles2); - CpuFill32(0, gContestResources->field_34 + 0x500, 0x300); - CpuFill32(0, gContestResources->field_38 + 0x500, 0x300); + CpuFill32(0, gContestResources->boxBlinkTiles1 + 0x500, 0x300); + CpuFill32(0, gContestResources->boxBlinkTiles2 + 0x500, 0x300); - RequestDma3Copy(gContestResources->field_34, + RequestDma3Copy(gContestResources->boxBlinkTiles1, (u8 *)(VRAM + 0x10000 + gSprites[spriteId1].oam.tileNum * 32), 0x800, 1); - RequestDma3Copy(gContestResources->field_38, + RequestDma3Copy(gContestResources->boxBlinkTiles2, (u8 *)(VRAM + 0x10000 + gSprites[spriteId2].oam.tileNum * 32), 0x800, 1); @@ -3945,7 +4155,7 @@ static u8 sub_80DC9EC(u8 contestant) return spriteId1; } -static void sub_80DCB78(u8 spriteId) +static void DestroyContestantBoxBlinkSprites(u8 spriteId) { u8 spriteId2 = gSprites[spriteId].data[0]; @@ -3954,55 +4164,56 @@ static void sub_80DCB78(u8 spriteId) DestroySpriteAndFreeResources(&gSprites[spriteId]); } -static void sub_80DCBB4(void) +static void SetBlendForContestantBoxBlink(void) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 9)); } -static void sub_80DCBD0(void) +static void ResetBlendForContestantBoxBlink(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); } -static void sub_80DCBE8(u8 a, bool8 b) +// To indicate whose turn is up +static void BlinkContestantBox(u8 spriteId, bool8 b) { - u8 r5; + u8 spriteId2; - sub_80DCBB4(); - gContestResources->field_14[gSprites[a].data[1]].unk2_1 = 1; - r5 = gSprites[a].data[0]; - StartSpriteAffineAnim(&gSprites[a], 1); - StartSpriteAffineAnim(&gSprites[r5], 1); - gSprites[a].callback = sub_80DCC84; - gSprites[r5].callback = SpriteCallbackDummy; + SetBlendForContestantBoxBlink(); + eContestGfxState[gSprites[spriteId].data[1]].boxBlinking = TRUE; + spriteId2 = gSprites[spriteId].data[0]; + StartSpriteAffineAnim(&gSprites[spriteId], 1); + StartSpriteAffineAnim(&gSprites[spriteId2], 1); + gSprites[spriteId].callback = SpriteCB_BlinkContestantBox; + gSprites[spriteId2].callback = SpriteCallbackDummy; if (b == FALSE) - PlaySE(SE_C_PIKON); + PlaySE(SE_CONTEST_MONS_TURN); else PlaySE(SE_PC_LOGIN); } -static void sub_80DCC84(struct Sprite *sprite) +static void SpriteCB_BlinkContestantBox(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - u8 r1 = sprite->data[0]; + u8 spriteId2 = sprite->data[0]; - if (gSprites[r1].affineAnimEnded) + if (gSprites[spriteId2].affineAnimEnded) { sprite->invisible = TRUE; - gSprites[r1].invisible = TRUE; - sprite->callback = sub_80DCCD8; + gSprites[spriteId2].invisible = TRUE; + sprite->callback = SpriteCB_EndBlinkContestantBox; } } } -static void sub_80DCCD8(struct Sprite *sprite) +static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite) { - gContestResources->field_14[sprite->data[1]].unk2_1 = 0; - sub_80DCB78(sprite->data[0]); - sub_80DCBD0(); + eContestGfxState[sprite->data[1]].boxBlinking = FALSE; + DestroyContestantBoxBlinkSprites(sprite->data[0]); + ResetBlendForContestantBoxBlink(); } // Unused. @@ -4038,8 +4249,8 @@ static void ContestDebugDoPrint(void) { case CONTEST_DEBUG_MODE_OFF: break; - case CONTEST_DEBUG_MODE_PRINT_UNK_C: - case CONTEST_DEBUG_MODE_PRINT_UNK_D: + case CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS: + case CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS: ContestDebugPrintBitStrings(); break; // The only other possible value is 1, which is only set by ContestDebugTogglePointTotal. @@ -4062,9 +4273,9 @@ static void ContestDebugDoPrint(void) } for (i = 0; i < CONTESTANT_COUNT; i++) { - value = eContestantStatus[i].appeal2; + value = eContestantStatus[i].appeal; txtPtr = text; - if (eContestantStatus[i].appeal2 < 0) + if (eContestantStatus[i].appeal < 0) { value *= -1; txtPtr = StringCopy(txtPtr, gText_OneDash); @@ -4114,8 +4325,8 @@ void SortContestants(bool8 useRanking) // Determine where the contestant should be ordered. for (v3 = 0; v3 < i; v3++) { - if (gContestMonConditions[gContestantTurnOrder[v3]] < gContestMonConditions[i] - || (gContestMonConditions[gContestantTurnOrder[v3]] == gContestMonConditions[i] && randomOrdering[gContestantTurnOrder[v3]] < randomOrdering[i])) + if (gContestMonRound1Points[gContestantTurnOrder[v3]] < gContestMonRound1Points[i] + || (gContestMonRound1Points[gContestantTurnOrder[v3]] == gContestMonRound1Points[i] && randomOrdering[gContestantTurnOrder[v3]] < randomOrdering[i])) { // Shift everything larger up to make room. s32 j; @@ -4198,24 +4409,23 @@ static void DrawContestantWindows(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - s32 windowId = i + MOVE_WINDOWS_START; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + MOVE_WINDOWS_START) * 16, sizeof(eUnknownHeap1A004.cachedWindowPalettes[0])); + s32 windowId = i + 5; + LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eUnknownHeap1A004.cachedWindowPalettes[0])); } DrawContestantWindowText(); } -static void sub_80DD080(u8 contestant) +static void CalculateAppealMoveImpact(u8 contestant) { u16 move; u8 effect; u8 rnd; - bool8 r8; + bool8 canUseTurn; s32 i; - eContestantStatus[contestant].appeal2 = 0; - eContestantStatus[contestant].appeal1 = 0; - r8 = ContestantCanUseTurn(contestant); - if (!r8) + eContestantStatus[contestant].appeal = 0; + eContestantStatus[contestant].baseAppeal = 0; + if (!ContestantCanUseTurn(contestant)) return; move = eContestantStatus[contestant].currMove; @@ -4224,93 +4434,93 @@ static void sub_80DD080(u8 contestant) eContestantStatus[contestant].moveCategory = gContestMoves[eContestantStatus[contestant].currMove].contestCategory; if (eContestantStatus[contestant].currMove == eContestantStatus[contestant].prevMove && eContestantStatus[contestant].currMove != MOVE_NONE) { - eContestantStatus[contestant].disappointedRepeat = TRUE; + eContestantStatus[contestant].repeatedMove = TRUE; eContestantStatus[contestant].moveRepeatCount++; } else { eContestantStatus[contestant].moveRepeatCount = 0; } - eContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal; - eContestantStatus[contestant].appeal2 = eContestantStatus[contestant].appeal1; - eContestResources8.jam = gContestEffects[effect].jam; - eContestResources8.jam2 = eContestResources8.jam; + eContestantStatus[contestant].baseAppeal = gContestEffects[effect].appeal; + eContestantStatus[contestant].appeal = eContestantStatus[contestant].baseAppeal; + eContestAppealResults.jam = gContestEffects[effect].jam; + eContestAppealResults.jam2 = eContestAppealResults.jam; - eContestResources8.contestant = contestant; + eContestAppealResults.contestant = contestant; for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].jam = 0; - eContestResources8.unnervedPokes[i] = 0; + eContestAppealResults.unnervedPokes[i] = 0; } if (eContestantStatus[contestant].hasJudgesAttention && !AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove)) - eContestantStatus[contestant].hasJudgesAttention = 0; + eContestantStatus[contestant].hasJudgesAttention = FALSE; gContestEffectFuncs[effect](); - if (eContestantStatus[contestant].conditionMod == 1) - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition - 10; + if (eContestantStatus[contestant].conditionMod == CONDITION_GAIN) + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition - 10; else if (eContestantStatus[contestant].appealTripleCondition) - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition * 3; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition * 3; else - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition; - eContestantStatus[contestant].unk16 = 0; - eContestantStatus[contestant].unk15_6 = 0; - if (sub_80DE1E8(contestant)) + eContestantStatus[contestant].completedCombo = FALSE; + eContestantStatus[contestant].usedComboMove = FALSE; + if (IsContestantAllowedToCombo(contestant)) { - u8 r2 = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); + bool8 completedCombo = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); - if (r2 != 0 && eContestantStatus[contestant].hasJudgesAttention) + if (completedCombo && eContestantStatus[contestant].hasJudgesAttention) + { + eContestantStatus[contestant].completedCombo = completedCombo; + eContestantStatus[contestant].usedComboMove = TRUE; + eContestantStatus[contestant].hasJudgesAttention = FALSE; + eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo; + eContestantStatus[contestant].completedComboFlag = TRUE; // Redundant with completedCombo, used by AI + } + else if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) { - eContestantStatus[contestant].unk16 = r2; - eContestantStatus[contestant].unk15_6 = 1; - eContestantStatus[contestant].hasJudgesAttention = 0; - eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].unk16; - eContestantStatus[contestant].unk15_3 = 1; + eContestantStatus[contestant].hasJudgesAttention = TRUE; + eContestantStatus[contestant].usedComboMove = TRUE; } else { - if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) - { - eContestantStatus[contestant].hasJudgesAttention = 1; - eContestantStatus[contestant].unk15_6 = 1; - } - else - { - eContestantStatus[contestant].hasJudgesAttention = 0; - } + eContestantStatus[contestant].hasJudgesAttention = FALSE; } } - if (eContestantStatus[contestant].disappointedRepeat) - eContestantStatus[contestant].unk18 = (eContestantStatus[contestant].moveRepeatCount + 1) * 10; + if (eContestantStatus[contestant].repeatedMove) + eContestantStatus[contestant].repeatJam = (eContestantStatus[contestant].moveRepeatCount + 1) * 10; if (eContestantStatus[contestant].nervous) { - eContestantStatus[contestant].hasJudgesAttention = 0; - eContestantStatus[contestant].appeal2 = 0; - eContestantStatus[contestant].appeal1 = 0; + eContestantStatus[contestant].hasJudgesAttention = FALSE; + eContestantStatus[contestant].appeal = 0; + eContestantStatus[contestant].baseAppeal = 0; } - eContestResources10.bits_0 = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); + eContestExcitement.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); if (eContestantStatus[contestant].overrideCategoryExcitementMod) - eContestResources10.bits_0 = 1; + eContestExcitement.moveExcitement = 1; - if (eContestResources10.bits_0 > 0) + if (eContestExcitement.moveExcitement > 0) { - if (eContest.applauseLevel + eContestResources10.bits_0 > 4) - eContestResources10.unk2 = 60; + if (eContest.applauseLevel + eContestExcitement.moveExcitement > 4) + eContestExcitement.excitementAppealBonus = 60; else - eContestResources10.unk2 = 10; + eContestExcitement.excitementAppealBonus = 10; } else { - eContestResources10.unk2 = 0; + eContestExcitement.excitementAppealBonus = 0; } - rnd = Random() % 3; + // Transform and Role Play require a visible target mon + // so randomly choose a contestant to be the "target" + rnd = Random() % (CONTESTANT_COUNT - 1); for (i = 0; i < CONTESTANT_COUNT; i++) { + // Target can't be the attacker if (i != contestant) { if (rnd == 0) @@ -4318,7 +4528,7 @@ static void sub_80DD080(u8 contestant) rnd--; } } - eContestantStatus[contestant].unk1B = i; + eContestantStatus[contestant].contestantAnimTarget = i; } void SetContestantEffectStringID(u8 a, u8 b) @@ -4345,17 +4555,17 @@ void SetStartledString(u8 contestant, u8 jam) SetContestantEffectStringID(contestant, CONTEST_STRING_LOOKED_DOWN); } -static void sub_80DD45C(u8 contestant, u8 stringId) +static void PrintAppealMoveResultText(u8 contestant, u8 stringId) { StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); - if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) + if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) StringCopy(gStringVar3, gText_Contest_Shyness); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) StringCopy(gStringVar3, gText_Contest_Anxiety); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) StringCopy(gStringVar3, gText_Contest_Laziness); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) StringCopy(gStringVar3, gText_Contest_Hesitancy); else StringCopy(gStringVar3, gText_Contest_Fear); @@ -4441,69 +4651,69 @@ static void ApplyNextTurnOrder(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestResources8.turnOrder[i] = newTurnOrder[i]; + eContestAppealResults.turnOrder[i] = newTurnOrder[i]; eContestantStatus[i].nextTurnOrder = 0xFF; eContestantStatus[i].turnOrderMod = 0; gContestantTurnOrder[i] = newTurnOrder[i]; } } -static void sub_80DD6DC(struct Sprite *sprite) +static void SpriteCB_JudgeSpeechBubble(struct Sprite *sprite) { if (sprite->data[1]++ > 84) { sprite->data[1] = 0; sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; - eContest.unk1920A_4 = 0; + eContest.waitForJudgeSpeechBubble = FALSE; } } -static void sub_80DD720(u8 a) +static void DoJudgeSpeechBubble(u8 symbolId) { - u8 spriteId = eContest.unk19216; + u8 spriteId = eContest.judgeSpeechBubbleSpriteId; - switch (a) + switch (symbolId) { - case 0: - case 1: + case JUDGE_SYMBOL_SWIRL: + case JUDGE_SYMBOL_SWIRL_UNUSED: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0]; - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; - case 2: + case JUDGE_SYMBOL_ONE_EXCLAMATION: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 4; - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); break; - case 3: + case JUDGE_SYMBOL_TWO_EXCLAMATIONS: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 8; - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); break; - case 4: + case JUDGE_SYMBOL_NUMBER_ONE_UNUSED: // Identical to JUDGE_SYMBOL_NUMBER_ONE gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; - case 5: // exactly the same as case 4 + case JUDGE_SYMBOL_NUMBER_ONE: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; - case 6: + case JUDGE_SYMBOL_NUMBER_FOUR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 16; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; - case 8: + case JUDGE_SYMBOL_STAR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 24; - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); break; - case 7: + case JUDGE_SYMBOL_QUESTION_MARK: default: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 20; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; } gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = FALSE; - gSprites[spriteId].callback = sub_80DD6DC; - eContest.unk1920A_4 = 1; + gSprites[spriteId].callback = SpriteCB_JudgeSpeechBubble; + eContest.waitForJudgeSpeechBubble = TRUE; } static void UpdateApplauseMeter(void) @@ -4536,7 +4746,7 @@ static u8 StartApplauseOverflowAnimation(void) u8 taskId = CreateTask(Task_ApplauseOverflowAnimation, 10); gTasks[taskId].data[1] = 1; - gTasks[taskId].data[2] = IndexOfSpritePaletteTag(APPLAUSE_METER_GFX_TAG); + gTasks[taskId].data[2] = IndexOfSpritePaletteTag(TAG_APPLAUSE_METER); return taskId; } @@ -4570,15 +4780,15 @@ static void Task_ApplauseOverflowAnimation(u8 taskId) } } -static void StartMoveApplauseMeterOnscreen(void) +static void SlideApplauseMeterIn(void) { - CreateTask(Task_MoveApplauseMeterOnscreen, 10); + CreateTask(Task_SlideApplauseMeterIn, 10); gSprites[eContest.applauseMeterSpriteId].pos2.x = -70; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; eContest.applauseMeterIsMoving = TRUE; } -static void Task_MoveApplauseMeterOnscreen(u8 taskId) +static void Task_SlideApplauseMeterIn(u8 taskId) { struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; @@ -4594,7 +4804,7 @@ static void Task_MoveApplauseMeterOnscreen(u8 taskId) } } -static void TryMoveApplauseMeterOffscreen(void) +static void SlideApplauseMeterOut(void) { if (gSprites[eContest.applauseMeterSpriteId].invisible == TRUE) { @@ -4602,13 +4812,13 @@ static void TryMoveApplauseMeterOffscreen(void) } else { - CreateTask(Task_MoveApplauseMeterOffscreen, 10); + CreateTask(Task_SlideApplauseMeterOut, 10); gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; eContest.applauseMeterIsMoving = TRUE; } } -static void Task_MoveApplauseMeterOffscreen(u8 taskId) +static void Task_SlideApplauseMeterOut(u8 taskId) { struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; @@ -4638,7 +4848,7 @@ static void Task_ShowAndUpdateApplauseMeter(u8 taskId) switch (gTasks[taskId].data[10]) { case 0: - StartMoveApplauseMeterOnscreen(); + SlideApplauseMeterIn(); gTasks[taskId].data[10]++; break; case 1: @@ -4660,131 +4870,153 @@ static void Task_ShowAndUpdateApplauseMeter(u8 taskId) } // Unused. -void HideApplauseMeterNoAnim(void) +static void HideApplauseMeterNoAnim(void) { gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; } // Unused. -void ShowApplauseMeterNoAnim(void) +static void ShowApplauseMeterNoAnim(void) { gSprites[eContest.applauseMeterSpriteId].invisible = TRUE; } -static void sub_80DDE0C(void) +#define tDelay data[10] +#define tFrame data[11] +#define tCycles data[12] + +static void AnimateAudience(void) { - CreateTask(sub_80DDE30, 15); - eContest.unk1920A_7 = 1; + CreateTask(Task_AnimateAudience, 15); + eContest.animatingAudience = TRUE; } -static void sub_80DDE30(u8 taskId) +static void Task_AnimateAudience(u8 taskId) { - if (gTasks[taskId].data[10]++ > 6) + if (gTasks[taskId].tDelay++ > 6) { - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[11] == 0) + gTasks[taskId].tDelay = 0; + if (gTasks[taskId].tFrame == 0) { - RequestDma3Copy(eUnknownHeap19000, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); + RequestDma3Copy(eContestAudienceFrame2_Gfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); } else { - RequestDma3Copy(eUnzippedContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); - gTasks[taskId].data[12]++; + RequestDma3Copy(eUnzippedContestAudience_Gfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); + gTasks[taskId].tCycles++; } - gTasks[taskId].data[11] ^= 1; + gTasks[taskId].tFrame ^= 1; - if (gTasks[taskId].data[12] == 9) + if (gTasks[taskId].tCycles == 9) { - eContest.unk1920A_7 = 0; + eContest.animatingAudience = FALSE; DestroyTask(taskId); } } } -#define tBlendColor data[0] -#define tBlendCoeff data[1] +#undef tDelay +#undef tFrame +#undef tCycles + +#define tBlendColor data[0] +#define tBlendCoeff data[1] +#define tBlendDir data[2] +#define tTargetBlendCoeff data[3] +#define tBlendDelay data[10] -static void sub_80DDED0(s8 a, s8 b) +static void BlendAudienceBackground(s8 excitementDir, s8 blendDir) { - u8 taskId = CreateTask(sub_80DDF80, 10); + u8 taskId = CreateTask(Task_BlendAudienceBackground, 10); u16 blendColor; u8 blendCoeff; - u8 r3; + u8 targetBlendCoeff; - if (a > 0) + if (excitementDir > 0) { blendColor = RGB(30, 27, 8); - if (b > 0) + if (blendDir > 0) { + // Blend to yellow (amount depends on applause meter) blendCoeff = 0; - r3 = eContest.applauseLevel * 3; + targetBlendCoeff = eContest.applauseLevel * 3; } else { + // Blend back to original blendCoeff = eContest.applauseLevel * 3; - r3 = 0; + targetBlendCoeff = 0; } } else { - blendColor = 0; - if (b > 0) + blendColor = RGB_BLACK; + if (blendDir > 0) { + // Blend to black blendCoeff = 0; - r3 = 12; + targetBlendCoeff = 12; } else { + // Black back to original blendCoeff = 12; - r3 = 0; + targetBlendCoeff = 0; } } gTasks[taskId].tBlendColor = blendColor; gTasks[taskId].tBlendCoeff = blendCoeff; - gTasks[taskId].data[2] = b; - gTasks[taskId].data[3] = r3; - eContest.unk1920B_0 = 0; + gTasks[taskId].tBlendDir = blendDir; + gTasks[taskId].tTargetBlendCoeff = targetBlendCoeff; + // Because this isn't set to TRUE here, the main task doesn't wait for the color blend + // Unclear if this was intentional or not (perhaps waiting added too much delay). In any case it does nothing now + eContest.waitForAudienceBlend = FALSE; + } -static void sub_80DDF80(u8 taskId) +static void Task_BlendAudienceBackground(u8 taskId) { - if (gTasks[taskId].data[10]++ >= 0) + if (gTasks[taskId].tBlendDelay++ >= 0) { - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[2] > 0) + gTasks[taskId].tBlendDelay = 0; + if (gTasks[taskId].tBlendDir > 0) gTasks[taskId].tBlendCoeff++; else gTasks[taskId].tBlendCoeff--; + BlendPalette(17, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); BlendPalette(26, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); - if (gTasks[taskId].tBlendCoeff == gTasks[taskId].data[3]) + + if (gTasks[taskId].tBlendCoeff == gTasks[taskId].tTargetBlendCoeff) { DestroyTask(taskId); - eContest.unk1920B_0 = 0; + eContest.waitForAudienceBlend = FALSE; } } } #undef tBlendColor #undef tBlendCoeff +#undef tTargetBlendCoeff +#undef tBlendDelay -static void sub_80DE008(bool8 a) +static void ShowHideNextTurnGfx(bool8 show) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestantStatus[i].turnOrderMod != 0 && a) + if (eContestantStatus[i].turnOrderMod != 0 && show) { - CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); - gSprites[gContestResources->field_14[i].unk1].pos1.y = gUnknown_08587A70[gContestantTurnOrder[i]]; - gSprites[gContestResources->field_14[i].unk1].invisible = FALSE; + CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); + gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE; } else { - gSprites[gContestResources->field_14[i].unk1].invisible = TRUE; + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE; } } } @@ -4797,37 +5029,33 @@ static const u8 *GetTurnOrderNumberGfx(u8 contestant) return gContestNextTurnNumbersGfx + eContestantStatus[contestant].nextTurnOrder * 32; } -static void sub_80DE12C(void) +static void DrawUnnervedSymbols(void) { - s32 r7 = 0; - u8 r10 = 2; - u8 r8 = 1; - u8 r9 = 0x11; - - for (r7 = 0; r7 < CONTESTANT_COUNT; r7++) + s32 i = 0; + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.unnervedPokes[r7] != 0 && !Contest_IsMonsTurnDisabled(r7)) + if (eContestAppealResults.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { - u32 r6 = gContestantTurnOrder[r7] * 5 + 2; - u16 var = sub_80DB748(3); + u32 contestantOffset = gContestantTurnOrder[i] * 5 + 2; + u16 symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_SWIRL); - ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6, r10, r8, r9, r8); - var += 16; - ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6 + 1, r10, r8, r9, r8); - PlaySE(SE_C_PASI); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1); + symbolOffset += 16; + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset + 1, 2, 1, 17, 1); + PlaySE(SE_CONTEST_ICON_CHANGE); } } } -bool8 sub_80DE1E8(u8 contestant) +bool8 IsContestantAllowedToCombo(u8 contestant) { - if (eContestantStatus[contestant].disappointedRepeat || eContestantStatus[contestant].nervous) + if (eContestantStatus[contestant].repeatedMove || eContestantStatus[contestant].nervous) return FALSE; else return TRUE; } -static void sub_80DE224(void) +static void SetBgForCurtainDrop(void) { s32 i; u16 bg0Cnt, bg1Cnt, bg2Cnt; @@ -4858,14 +5086,14 @@ static void sub_80DE224(void) CopyToBgTilemapBuffer(1, gUnknown_08C17980, 0, 0); Contest_SetBgCopyFlags(1); - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.priority = 1; - gSprites[gContestResources->field_14[i].unk1].oam.priority = 1; + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 1; + gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 1; } } -static void sub_80DE350(void) +static void UpdateContestantBoxOrder(void) { s32 i; u16 bg1Cnt; @@ -4886,20 +5114,20 @@ static void sub_80DE350(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.priority = 0; - gSprites[gContestResources->field_14[i].unk1].oam.priority = 0; + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 0; + gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 0; } } -static void sub_80DE424(u8 taskId) +static void Task_StartDropCurtainAtRoundEnd(u8 taskId) { gBattle_BG1_X = 0; gBattle_BG1_Y = DISPLAY_HEIGHT; - PlaySE12WithPanning(SE_C_MAKU_D, 0); - gTasks[taskId].func = sub_80DE464; + PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0); + gTasks[taskId].func = Task_UpdateCurtainDropAtRoundEnd; } -static void sub_80DE464(u8 taskId) +static void Task_UpdateCurtainDropAtRoundEnd(u8 taskId) { if ((s16)(gBattle_BG1_Y -= 7) < 0) gBattle_BG1_Y = 0; @@ -4908,11 +5136,11 @@ static void sub_80DE464(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DE4A8; + gTasks[taskId].func = Task_ResetForNextRound; } } -static void sub_80DE4A8(u8 taskId) +static void Task_ResetForNextRound(u8 taskId) { s32 i; @@ -4922,11 +5150,11 @@ static void sub_80DE4A8(u8 taskId) for (i = 0; i < CONTESTANT_COUNT; i++) eContest.prevTurnOrder[i] = gContestantTurnOrder[i]; FillContestantWindowBgs(); - sub_80DC864(); - sub_80DB69C(); + UpdateBlendTaskContestantsData(); + DrawConditionStars(); DrawContestantWindows(); - sub_80DE008(TRUE); - sub_80DC44C(); + ShowHideNextTurnGfx(TRUE); + UpdateSliderHeartSpriteYPositions(); gTasks[taskId].data[0] = 1; break; case 1: @@ -4934,40 +5162,40 @@ static void sub_80DE4A8(u8 taskId) { u8 taskId2; - eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) - sub_80DBAA0(); - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + eContest.waitForLink = TRUE; + if (IsPlayerLinkLeader()) + SetContestantStatusesForNextRound(); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 2; } else { - sub_80DBAA0(); + SetContestantStatusesForNextRound(); gTasks[taskId].data[0] = 3; } break; case 2: - if (!eContest.unk1920B_2) + if (!eContest.waitForLink) gTasks[taskId].data[0] = 3; break; case 3: - sub_80DB884(); + DrawStatusSymbols(); SwapMoveDescAndContestTilemaps(); gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DE5F4; + gTasks[taskId].func = Task_WaitRaiseCurtainAtRoundEnd; break; } } -static void sub_80DE5C0(u8 taskId) +static void Task_UpdateRaiseCurtainAtRoundEnd(u8 taskId) { if ((s16)(gBattle_BG1_Y += 7) > DISPLAY_HEIGHT) - gTasks[taskId].func = sub_80DA4F4; + gTasks[taskId].func = Task_UpdateContestantBoxOrder; } -static void sub_80DE5F4(u8 taskId) +static void Task_WaitRaiseCurtainAtRoundEnd(u8 taskId) { if (gTasks[taskId].data[2] < 10) { @@ -4988,7 +5216,7 @@ static void sub_80DE5F4(u8 taskId) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DE65C; + gTasks[taskId].func = Task_StartRaiseCurtainAtRoundEnd; } else { @@ -4998,7 +5226,7 @@ static void sub_80DE5F4(u8 taskId) } } -static void sub_80DE65C(u8 taskId) +static void Task_StartRaiseCurtainAtRoundEnd(u8 taskId) { if (gTasks[taskId].data[2] < 10) { @@ -5007,50 +5235,54 @@ static void sub_80DE65C(u8 taskId) else { gTasks[taskId].data[2] = 0; - PlaySE12WithPanning(SE_C_MAKU_U, 0); - gTasks[taskId].func = sub_80DE5C0; + PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0); + gTasks[taskId].func = Task_UpdateRaiseCurtainAtRoundEnd; } } -static void sub_80DE69C(u8 a) +#define tAnimId data[0] + +static void AnimateSliderHearts(u8 animId) { s32 i; u8 taskId; for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.matrixNum = AllocOamMatrix(); - gSprites[gContestResources->field_14[i].unk0].oam.affineMode = ST_OAM_AFFINE_NORMAL; - StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].unk0], a); - if (a == 2) + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix(); + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + StartSpriteAffineAnim(&gSprites[eContestGfxState[i].sliderHeartSpriteId], animId); + if (animId == SLIDER_HEART_ANIM_APPEAR) { - AnimateSprite(&gSprites[gContestResources->field_14[i].unk0]); - gSprites[gContestResources->field_14[i].unk0].invisible = FALSE; + AnimateSprite(&gSprites[eContestGfxState[i].sliderHeartSpriteId]); + gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = FALSE; } } - taskId = CreateTask(sub_80DE794, 5); - gTasks[taskId].data[0] = a; - eContest.unk1920B_1 = 1; + taskId = CreateTask(Task_WaitForSliderHeartAnim, 5); + gTasks[taskId].tAnimId = animId; + eContest.sliderHeartsAnimating = TRUE; } -static void sub_80DE794(u8 taskId) +static void Task_WaitForSliderHeartAnim(u8 taskId) { s32 i; - if (gSprites[gContestResources->field_14[0].unk0].affineAnimEnded) + if (gSprites[eContestGfxState[0].sliderHeartSpriteId].affineAnimEnded) { - if ((u8)gTasks[taskId].data[0] == 1) + if ((u8)gTasks[taskId].tAnimId == SLIDER_HEART_ANIM_DISAPPEAR) { for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].unk0].invisible = TRUE; + gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = TRUE; } for (i = 0; i < CONTESTANT_COUNT; i++) - FreeSpriteOamMatrix(&gSprites[gContestResources->field_14[i].unk0]); - eContest.unk1920B_1 = 0; + FreeSpriteOamMatrix(&gSprites[eContestGfxState[i].sliderHeartSpriteId]); + eContest.sliderHeartsAnimating = FALSE; DestroyTask(taskId); } } +#undef tAnimId + static u16 SanitizeMove(u16 move) { if (move >= MOVES_COUNT) @@ -5065,14 +5297,14 @@ static u16 SanitizeSpecies(u16 species) return species; } -static void sub_80DE864(u8 a) +static void SetMoveSpecificAnimData(u8 contestant) { s32 i; - u16 move = SanitizeMove(eContestantStatus[a].currMove); - u16 species = SanitizeSpecies(gContestMons[a].species); - u8 r5_2; + u16 move = SanitizeMove(eContestantStatus[contestant].currMove); + u16 species = SanitizeSpecies(gContestMons[contestant].species); + u8 targetContestant; - memset(&gContestResources->field_18->species, 0, 0x14); + memset(&gContestResources->moveAnim->species, 0, 20); ClearBattleAnimationVars(); for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; @@ -5086,10 +5318,10 @@ static void sub_80DE864(u8 a) break; case MOVE_TRANSFORM: case MOVE_ROLE_PLAY: - r5_2 = eContestantStatus[a].unk1B; - gContestResources->field_18->unk2 = SanitizeSpecies(gContestMons[r5_2].species); - gContestResources->field_18->unk10 = gContestMons[r5_2].personality; - gContestResources->field_18->unk4_0 = 1; + targetContestant = eContestantStatus[contestant].contestantAnimTarget; + gContestResources->moveAnim->targetSpecies = SanitizeSpecies(gContestMons[targetContestant].species); + gContestResources->moveAnim->targetPersonality = gContestMons[targetContestant].personality; + gContestResources->moveAnim->hasTargetAnim = TRUE; break; case MOVE_RETURN: gAnimFriendship = MAX_FRIENDSHIP; @@ -5101,9 +5333,9 @@ static void sub_80DE864(u8 a) case MOVE_RAZOR_WIND: case MOVE_SKULL_BASH: case MOVE_SKY_ATTACK: - if (eContest.unk1925E == 0) + if (eContest.moveAnimTurnCount == 0) { - eContest.unk1925E = 2; + eContest.moveAnimTurnCount = 2; gAnimMoveTurn = 0; } else @@ -5112,66 +5344,66 @@ static void sub_80DE864(u8 a) } break; } - sub_80DEA5C(); + SetBattleTargetSpritePosition(); } -static void sub_80DE9B0(u8 unused) +static void ClearMoveAnimData(u8 contestant) { - memset(gContestResources->field_18, 0, sizeof(struct ContestStruct_field_18)); - if (eContest.unk1925E != 0) - eContest.unk1925E--; + memset(gContestResources->moveAnim, 0, sizeof(struct ContestMoveAnimData)); + if (eContest.moveAnimTurnCount != 0) + eContest.moveAnimTurnCount--; } -static void sub_80DE9DC(u8 contestant) +static void SetMoveAnimAttackerData(u8 contestant) { - gContestResources->field_18->unk5 = contestant; - gContestResources->field_18->species = SanitizeSpecies(gContestMons[contestant].species); - gContestResources->field_18->unk8 = gContestMons[contestant].personality; - gContestResources->field_18->unkC = gContestMons[contestant].otId; + gContestResources->moveAnim->contestant = contestant; + gContestResources->moveAnim->species = SanitizeSpecies(gContestMons[contestant].species); + gContestResources->moveAnim->personality = gContestMons[contestant].personality; + gContestResources->moveAnim->otId = gContestMons[contestant].otId; } -static void sub_80DEA20(void) +static void CreateInvisibleBattleTargetSprite(void) { - gBattlerSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + gBattlerSpriteIds[B_POSITION_OPPONENT_RIGHT] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); InitSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]]); - sub_80DEA5C(); + SetBattleTargetSpritePosition(); } -static void sub_80DEA5C(void) +static void SetBattleTargetSpritePosition(void) { - struct Sprite *sprite = &gSprites[gBattlerSpriteIds[3]]; + struct Sprite *sprite = &gSprites[gBattlerSpriteIds[B_POSITION_OPPONENT_RIGHT]]; sprite->pos2.x = 0; sprite->pos2.y = 0; - sprite->pos1.x = GetBattlerSpriteCoord(3, 0); - sprite->pos1.y = GetBattlerSpriteCoord(3, 1); + sprite->pos1.x = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_Y); sprite->invisible = TRUE; } -static void SelectContestMoveBankTarget(u16 move) +static void SetMoveTargetPosition(u16 move) { switch (gBattleMoves[move].target) { case MOVE_TARGET_USER_OR_SELECTED: case MOVE_TARGET_USER: - gBattlerTarget = 2; + gBattlerTarget = B_POSITION_PLAYER_RIGHT; break; case MOVE_TARGET_SELECTED: case MOVE_TARGET_RANDOM: case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: default: - gBattlerTarget = 3; + gBattlerTarget = B_POSITION_OPPONENT_RIGHT; break; } } -static void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b) +static void Contest_PrintTextToBg0WindowStd(u32 windowId, const u8 *b) { struct TextPrinterTemplate printerTemplate; printerTemplate.currentChar = b; - printerTemplate.windowId = a; + printerTemplate.windowId = windowId; printerTemplate.fontId = 1; printerTemplate.x = 0; printerTemplate.y = 1; @@ -5185,7 +5417,7 @@ static void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b) printerTemplate.shadowColor = 8; AddTextPrinter(&printerTemplate, 0, 0); - PutWindowTilemap(a); + PutWindowTilemap(windowId); Contest_SetBgCopyFlags(0); } @@ -5276,7 +5508,7 @@ void ResetContestLinkResults(void) s32 j; for(i = 0; i < CONTEST_CATEGORIES_COUNT; i++) - for(j = 0; j < 4; j++) + for(j = 0; j < CONTESTANT_COUNT; j++) gSaveBlock2Ptr->contestLinkResults[i][j] = 0; } @@ -5380,290 +5612,303 @@ void ClearContestWinnerPicsInContestHall(void) s32 i; for (i = 0; i < 8; i++) - gSaveBlock1Ptr->contestWinners[i] = gUnknown_08587FA4[i]; + gSaveBlock1Ptr->contestWinners[i] = gDefaultContestWinners[i]; } -// The functions below are probably related to Contests in TV. -static void sub_80DF080(u8 contestant) +static void SetContestLiveUpdateFlags(u8 contestant) { s32 i; - if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 > 0 - && !eContestantStatus[contestant].disappointedRepeat) + if (!eContestExcitement.frozen + && eContestExcitement.moveExcitement > 0 + && !eContestantStatus[contestant].repeatedMove) { - gContestResources->field_1c[contestant].unkC |= 1; - gContestResources->field_1c[contestant].unkE_2 = 1; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_EXCITING_APPEAL; + gContestResources->tv[contestant].madeExcitingAppeal = TRUE; } if (eContestantStatus[contestant].nervous) - gContestResources->field_1c[contestant].unkC |= 2; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_GOT_NERVOUS; - if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 != 0 - && gContestResources->field_10->unk2 == 60) + if (!eContestExcitement.frozen + && eContestExcitement.moveExcitement != 0 + && eContestExcitement.excitementAppealBonus == 60) { - gContestResources->field_1c[contestant].unkC |= 4; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_MAXED_EXCITEMENT; } - if (eContestantStatus[contestant].unk15_6 - && eContestantStatus[contestant].unk16 != 0) + if (eContestantStatus[contestant].usedComboMove + && eContestantStatus[contestant].completedCombo) { - gContestResources->field_1c[contestant].unkC |= 8; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_USED_COMBO; } for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != contestant && eContestantStatus[i].jam != 0) { - gContestResources->field_1c[contestant].unkC |= 0x10; - gContestResources->field_1c[i].unkC |= 0x40; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_STARTLED_OTHER; + gContestResources->tv[i].winnerFlags |= CONTESTLIVE_FLAG_GOT_STARTLED; } } if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) { - gContestResources->field_1c[contestant].unkC |= 0x20; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_SKIPPED_TURN; } else if (!eContestantStatus[contestant].nervous) { - gContestResources->field_1c[contestant].unkC |= 0x80; - gContestResources->field_1c[contestant].unkE_1 = 1; - gContestResources->field_1c[contestant].unk0[eContest.turnNumber] = eContestantStatus[contestant].currMove; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_MADE_APPEAL; + gContestResources->tv[contestant].madeAppeal = TRUE; + gContestResources->tv[contestant].appeals[eContest.appealNumber] = eContestantStatus[contestant].currMove; } - if (eContestantStatus[contestant].disappointedRepeat) - gContestResources->field_1c[contestant].unkD |= 2; + if (eContestantStatus[contestant].repeatedMove) + gContestResources->tv[contestant].loserFlags |= CONTESTLIVE_FLAG_REPEATED_MOVE; if (eContest.applauseLevel == 4 - && !gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 < 0) + && !eContestExcitement.frozen + && eContestExcitement.moveExcitement < 0) { - gContestResources->field_1c[contestant].unkD |= 0x20; + gContestResources->tv[contestant].loserFlags |= CONTESTLIVE_FLAG_MISSED_EXCITEMENT; } } -static void sub_80DF250(void) +static void CalculateContestLiveUpdateData(void) { - u8 r1; + u8 loser; s32 i, j; - bool32 r12, r8; - u16 sp0[6]; - u8 spC[6]; - u16 sp14[5]; - u8 var_38; - u8 r3; - u8 count; - - r1 = 0; - var_38 = 0; - + bool32 notLastInRound1, notLastInRound2; + u16 appealMoves[CONTEST_NUM_APPEALS + 1]; + u8 numMoveUses[CONTEST_NUM_APPEALS + 1]; + u16 moveCandidates[CONTEST_NUM_APPEALS]; + u8 winner; + u8 mostUses; + u8 numMoveCandidates; + + loser = 0; + winner = 0; + + // Get loser/winner ids for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestFinalStandings[i] == 0) - var_38 = i; - else if (gContestFinalStandings[i] == 3) - r1 = i; + winner = i; + else if (gContestFinalStandings[i] == CONTESTANT_COUNT - 1) + loser = i; } - gContestResources->field_1c[r1].unkD |= 1; + // Set flags for commenting on loser + gContestResources->tv[loser].loserFlags |= CONTESTLIVE_FLAG_LOST; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (i != var_38 && gContestMonTotalPoints[var_38] - gContestMonTotalPoints[i] <= 50) - gContestResources->field_1c[i].unkD |= 4; + if (i != winner && gContestMonTotalPoints[winner] - gContestMonTotalPoints[i] <= 50) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_LOST_SMALL_MARGIN; - if (!gContestResources->field_1c[i].unkE_2) - gContestResources->field_1c[i].unkD |= 8; + if (!gContestResources->tv[i].madeExcitingAppeal) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_NO_EXCITEMENT; for (j = 0; j < CONTESTANT_COUNT; j++) { - if (gContestMonConditions[i] < gContestMonConditions[j]) + if (gContestMonRound1Points[i] < gContestMonRound1Points[j]) break; } - if (j == 4 && gContestFinalStandings[i] != 0) - gContestResources->field_1c[i].unkD |= 0x10; + if (j == CONTESTANT_COUNT && gContestFinalStandings[i] != 0) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_BLEW_LEAD; - r12 = FALSE; - r8 = FALSE; + notLastInRound1 = FALSE; + notLastInRound2 = FALSE; for (j = 0; j < CONTESTANT_COUNT; j++) { - if (gContestMonConditions[i] > gContestMonConditions[j]) - r12 = TRUE; + if (gContestMonRound1Points[i] > gContestMonRound1Points[j]) + notLastInRound1 = TRUE; if (gContestMonRound2Points[i] > gContestMonRound2Points[j]) - r8 = TRUE; + notLastInRound2 = TRUE; } - if (!r12 && !r8) - gContestResources->field_1c[i].unkD |= 0x40; + if (!notLastInRound1 && !notLastInRound2) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS; - if (!gContestResources->field_1c[i].unkE_1) - gContestResources->field_1c[i].unkD |= 0x80; + if (!gContestResources->tv[i].madeAppeal) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_NO_APPEALS; } - for (i = 0; i < 5; i++) + // Get what moves the winner used and how many times they used them + for (i = 0; i < CONTEST_NUM_APPEALS; i++) { - sp0[i] = 0; - spC[i] = 0; + appealMoves[i] = MOVE_NONE; + numMoveUses[i] = 0; } - sp0[5] = 0xFFFF; - spC[5] = 0; + appealMoves[CONTEST_NUM_APPEALS] = 0xFFFF; + numMoveUses[CONTEST_NUM_APPEALS] = 0; - for (i = 0; i < 5; i++) + for (i = 0; i < CONTEST_NUM_APPEALS; i++) { - if (gContestResources->field_1c[var_38].unk0[i] != 0) + if (gContestResources->tv[winner].appeals[i] != MOVE_NONE) { - for (j = 0; j < 5; j++) + for (j = 0; j < CONTEST_NUM_APPEALS; j++) { - if (gContestResources->field_1c[var_38].unk0[i] != sp0[j]) + if (gContestResources->tv[winner].appeals[i] != appealMoves[j]) { - if (sp0[j] == 0) + if (appealMoves[j] == MOVE_NONE) { - sp0[j] = gContestResources->field_1c[var_38].unk0[i]; - spC[j]++; + appealMoves[j] = gContestResources->tv[winner].appeals[i]; + numMoveUses[j]++; } } else { - spC[j]++; + numMoveUses[j]++; } } } } - sp14[0] = sp0[0]; - r3 = spC[0]; - count = 0; - for (i = 1; sp0[i] != 0xFFFF; i++) + // Choose an appeal move to comment on for the winner (most commonly used) + moveCandidates[0] = appealMoves[0]; + mostUses = numMoveUses[0]; + numMoveCandidates = 0; + for (i = 1; appealMoves[i] != 0xFFFF; i++) { - if (r3 < spC[i]) + if (mostUses < numMoveUses[i]) { - sp14[0] = sp0[i]; - r3 = spC[i]; - count = 1; + moveCandidates[0] = appealMoves[i]; + mostUses = numMoveUses[i]; + numMoveCandidates = 1; } - else if (r3 == spC[i]) + else if (mostUses == numMoveUses[i]) { - sp14[count] = sp0[i]; - count++; + moveCandidates[numMoveCandidates] = appealMoves[i]; + numMoveCandidates++; } } - gContestResources->field_1c[var_38].unkA = sp14[Random() % count]; + gContestResources->tv[winner].move = moveCandidates[Random() % numMoveCandidates]; } -static void sub_80DF4F8(void) +static void SetConestLiveUpdateTVData(void) { s32 i; - u32 bits; - u8 r7; - u8 r9, r10; + u32 flags; + u8 winner; + u8 round1Placing, round2Placing; u8 count; - u8 r5; - u8 r2; - u16 var; - u8 r4; - u8 r6; - u8 sp0[4]; - + u8 randAction; + u8 numLoserCandidates; + u8 flagId; + u16 winnerFlag; + u8 loserFlag; + u8 loser; + u8 loserCandidates[CONTESTANT_COUNT - 1]; + + // Players mon didn't win, don't generate show if (gContestFinalStandings[gContestPlayerMonIndex] != 0) return; - r7 = 0; + // Get winner id (unnecessary, we now know it's gContestPlayerMonIndex) + winner = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestFinalStandings[i] == 0) - r7 = i; + winner = i; } - r9 = 0; - r10 = 0; + // Get winner's placement in Round 1 and 2 + round1Placing = 0; + round2Placing = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestMonConditions[r7] < gContestMonConditions[i]) - r9++; - if (gContestMonRound2Points[r7] < gContestMonRound2Points[i]) - r10++; + if (gContestMonRound1Points[winner] < gContestMonRound1Points[i]) + round1Placing++; + if (gContestMonRound2Points[winner] < gContestMonRound2Points[i]) + round2Placing++; } - bits = gContestResources->field_1c[r7].unkC; + // Count how many TV comment-worthy actions the winner took + flags = gContestResources->tv[winner].winnerFlags; count = 0; - for (i = 0; i < 8; bits >>= 1, i++) + for (i = 0; i < 8; flags >>= 1, i++) { - if (bits & 1) + if (flags & 1) count++; } - r5 = Random() % count; - bits = gContestResources->field_1c[r7].unkC; + // Randomly choose one of these actions to comment on + randAction = Random() % count; + flags = gContestResources->tv[winner].winnerFlags; count = 0; - r2 = 0; - for (i = 0; i < 8; bits >>= 1, r2++, i++) + flagId = 0; + for (i = 0; i < 8; flags >>= 1, flagId++, i++) { - if (!(bits & 1)) + if (!(flags & 1)) continue; - if (r5 == count) + if (randAction == count) break; count++; } + winnerFlag = 1 << flagId; - var = 1 << r2; - if (r7 == 0) + // Pick a losing player with the highest severity of bad actions to comment on + if (winner == 0) { - sp0[0] = 1; - r4 = gContestResources->field_1c[1].unkD; + loserCandidates[0] = 1; + loserFlag = gContestResources->tv[1].loserFlags; i = 2; } else { - sp0[0] = 0; - r4 = gContestResources->field_1c[0].unkD; + loserCandidates[0] = 0; + loserFlag = gContestResources->tv[0].loserFlags; i = 1; } - r5 = 1; + numLoserCandidates = 1; for (; i < CONTESTANT_COUNT; i++) { - if (i != r7) + if (i != winner) { - if (r4 < gContestResources->field_1c[i].unkD) + if (loserFlag < gContestResources->tv[i].loserFlags) { - sp0[0] = i; - r4 = gContestResources->field_1c[i].unkD; - r5 = 1; + // Losing player currently has the worst (highest) set of flags, only candidate + loserCandidates[0] = i; + loserFlag = gContestResources->tv[i].loserFlags; + numLoserCandidates = 1; } - else if (r4 == gContestResources->field_1c[i].unkD) + else if (loserFlag == gContestResources->tv[i].loserFlags) { - sp0[r5] = i; - r5++; + // Tie, increment number of loser candidates + loserCandidates[numLoserCandidates] = i; + numLoserCandidates++; } } } + loser = loserCandidates[Random() % numLoserCandidates]; - r6 = sp0[Random() % r5]; - r2 = 0x80; - for (i = 0; i < 8; r2 >>= 1, i++) + // Choose the "worst" action to comment on (flag with highest value) + flagId = CONTESTLIVE_FLAG_NO_APPEALS; + for (i = 0; i < 8; flagId >>= 1, i++) { - r4 = gContestResources->field_1c[r6].unkD & r2; - if (r4) + loserFlag = gContestResources->tv[loser].loserFlags & flagId; + if (loserFlag) break; } - ContestLiveUpdates_BeforeInterview_1(r9); - ContestLiveUpdates_BeforeInterview_2(r10); - ContestLiveUpdates_BeforeInterview_3(var); - ContestLiveUpdates_BeforeInterview_4(gContestResources->field_1c[r7].unkA); - ContestLiveUpdates_BeforeInterview_5(r4, r6); + ContestLiveUpdates_Init(round1Placing); + ContestLiveUpdates_SetRound2Placing(round2Placing); + ContestLiveUpdates_SetWinnerAppealFlag(winnerFlag); + ContestLiveUpdates_SetWinnerMoveUsed(gContestResources->tv[winner].move); + ContestLiveUpdates_SetLoserData(loserFlag, loser); } // Unused -void ContestDebugToggleBitfields(bool8 showUnkD) +void ContestDebugToggleBitfields(bool8 loserFlags) { if (eContestDebugMode == CONTEST_DEBUG_MODE_OFF) { - if (!showUnkD) - eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_UNK_C; + if (!loserFlags) + eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS; else - eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_UNK_D; + eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS; } else { @@ -5693,19 +5938,19 @@ static void ContestDebugPrintBitStrings(void) if (!gEnableContestDebugging) return; - if (eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_UNK_C && eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_UNK_D) + if (eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS && eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS) return; for (i = 0; i < CONTESTANT_COUNT; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - if (eContestDebugMode == CONTEST_DEBUG_MODE_PRINT_UNK_C) + if (eContestDebugMode == CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS) { for (i = 0; i < CONTESTANT_COUNT; i++) { txtPtr = StringCopy(text1, gText_CDot); Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1, 5, 1, 7); - bits = gContestResources->field_1c[i].unkC; + bits = gContestResources->tv[i].winnerFlags; for (j = 7; j > -1; j--) // Weird loop. { txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1); @@ -5720,12 +5965,12 @@ static void ContestDebugPrintBitStrings(void) Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1 + j, 55, 1, 7); } } - else + else // CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS { for (i = 0; i < CONTESTANT_COUNT; i++) { StringCopy(text1, gText_BDot); - bits = gContestResources->field_1c[i].unkD; + bits = gContestResources->tv[i].loserFlags; txtPtr = &text1[2]; for (j = 7; j > -1; j--) // Weird loop. { @@ -5744,14 +5989,14 @@ static void ContestDebugPrintBitStrings(void) SwapMoveDescAndContestTilemaps(); } -static u8 sub_80DF940(u8 *nickname) +static u8 GetMonNicknameLanguage(u8 *nickname) { u8 ret = GAME_LANGUAGE; if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN) return LANGUAGE_ENGLISH; - if (StringLength(nickname) < 6) + if (StringLength(nickname) < PLAYER_NAME_LENGTH - 1) { while (*nickname != EOS) { @@ -5785,7 +6030,7 @@ static u8 sub_80DF940(u8 *nickname) return ret; } -static void sub_80DF9D4(u8 *playerName) +static void StripPlayerNameForLinkContest(u8 *playerName) { u8 chr = playerName[5]; @@ -5793,7 +6038,7 @@ static void sub_80DF9D4(u8 *playerName) playerName[PLAYER_NAME_LENGTH] = chr; } -static void sub_80DF9E0(u8 *monName, s32 language) +static void StripMonNameForLinkContest(u8 *monName, s32 language) { u8 chr; @@ -5811,13 +6056,13 @@ static void sub_80DF9E0(u8 *monName, s32 language) } } -void sub_80DFA08(struct ContestPokemon *mon, s32 language) +void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language) { u8 *name = mon->nickname; if (language == LANGUAGE_JAPANESE) { - ConvertInternationalString(name, sub_80DF940(name)); + ConvertInternationalString(name, GetMonNicknameLanguage(name)); } else if (name[POKEMON_NAME_LENGTH] == EXT_CTRL_CODE_BEGIN) { diff --git a/src/contest_ai.c b/src/contest_ai.c index 723c503ab..2f048718f 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -4,16 +4,17 @@ #include "random.h" #include "contest_ai.h" #include "contest_effect.h" +#include "constants/moves.h" extern const u8 *gAIScriptPtr; -extern const u8 *gContestAIChecks[]; +extern const u8 *gContestAI_ScriptsTable[]; static void ContestAICmd_score(void); -static void ContestAICmd_get_turn(void); -static void ContestAICmd_if_turn_less_than(void); -static void ContestAICmd_if_turn_more_than(void); -static void ContestAICmd_if_turn_eq(void); -static void ContestAICmd_if_turn_not_eq(void); +static void ContestAICmd_get_appeal_num(void); +static void ContestAICmd_if_appeal_num_less_than(void); +static void ContestAICmd_if_appeal_num_more_than(void); +static void ContestAICmd_if_appeal_num_eq(void); +static void ContestAICmd_if_appeal_num_not_eq(void); static void ContestAICmd_get_excitement(void); static void ContestAICmd_if_excitement_less_than(void); static void ContestAICmd_if_excitement_more_than(void); @@ -29,22 +30,22 @@ static void ContestAICmd_if_user_condition_less_than(void); static void ContestAICmd_if_user_condition_more_than(void); static void ContestAICmd_if_user_condition_eq(void); static void ContestAICmd_if_user_condition_not_eq(void); -static void ContestAICmd_unk_15(void); -static void ContestAICmd_unk_16(void); -static void ContestAICmd_unk_17(void); -static void ContestAICmd_unk_18(void); -static void ContestAICmd_unk_19(void); -static void ContestAICmd_unk_1A(void); -static void ContestAICmd_unk_1B(void); -static void ContestAICmd_unk_1C(void); -static void ContestAICmd_unk_1D(void); -static void ContestAICmd_unk_1E(void); +static void ContestAICmd_get_points(void); +static void ContestAICmd_if_points_less_than(void); +static void ContestAICmd_if_points_more_than(void); +static void ContestAICmd_if_points_eq(void); +static void ContestAICmd_if_points_not_eq(void); +static void ContestAICmd_get_preliminary_points(void); +static void ContestAICmd_if_preliminary_points_less_than(void); +static void ContestAICmd_if_preliminary_points_more_than(void); +static void ContestAICmd_if_preliminary_points_eq(void); +static void ContestAICmd_if_preliminary_points_not_eq(void); static void ContestAICmd_get_contest_type(void); static void ContestAICmd_if_contest_type_eq(void); static void ContestAICmd_if_contest_type_not_eq(void); static void ContestAICmd_get_move_excitement(void); static void ContestAICmd_if_move_excitement_less_than(void); -static void ContestAICmd_if_move_excitement_greater_than(void); +static void ContestAICmd_if_move_excitement_more_than(void); static void ContestAICmd_if_move_excitement_eq(void); static void ContestAICmd_if_move_excitement_not_eq(void); static void ContestAICmd_get_move_effect(void); @@ -55,18 +56,18 @@ static void ContestAICmd_if_move_effect_type_eq(void); static void ContestAICmd_if_move_effect_type_not_eq(void); static void ContestAICmd_check_most_appealing_move(void); static void ContestAICmd_if_most_appealing_move(void); -static void ContestAICmd_unk_2F(void); -static void ContestAICmd_unk_30(void); -static void ContestAICmd_unk_31(void); -static void ContestAICmd_unk_32(void); -static void ContestAICmd_unk_33(void); -static void ContestAICmd_unk_34(void); -static void ContestAICmd_unk_35(void); -static void ContestAICmd_unk_36(void); -static void ContestAICmd_unk_37(void); -static void ContestAICmd_unk_38(void); -static void ContestAICmd_unk_39(void); -static void ContestAICmd_unk_3A(void); +static void ContestAICmd_check_most_jamming_move(void); +static void ContestAICmd_if_most_jamming_move(void); +static void ContestAICmd_get_num_move_hearts(void); +static void ContestAICmd_if_num_move_hearts_less_than(void); +static void ContestAICmd_if_num_move_hearts_more_than(void); +static void ContestAICmd_if_num_move_hearts_eq(void); +static void ContestAICmd_if_num_move_hearts_not_eq(void); +static void ContestAICmd_get_num_move_jam_hearts(void); +static void ContestAICmd_if_num_move_jam_hearts_less_than(void); +static void ContestAICmd_if_num_move_jam_hearts_more_than(void); +static void ContestAICmd_if_num_move_jam_hearts_eq(void); +static void ContestAICmd_if_num_move_jam_hearts_not_eq(void); static void ContestAICmd_get_move_used_count(void); static void ContestAICmd_if_most_used_count_less_than(void); static void ContestAICmd_if_most_used_count_more_than(void); @@ -94,201 +95,201 @@ static void ContestAICmd_if_used_combo_starter_not_eq(void); static void ContestAICmd_check_can_participate(void); static void ContestAICmd_if_can_participate(void); static void ContestAICmd_if_cannot_participate(void); -static void ContestAICmd_get_val_812A188(void); -static void ContestAICmd_unk_57(void); -static void ContestAICmd_contest_58(void); -static void ContestAICmd_unk_59(void); -static void ContestAICmd_unk_5A(void); -static void ContestAICmd_unk_5B(void); -static void ContestAICmd_unk_5C(void); -static void ContestAICmd_unk_5D(void); -static void ContestAICmd_unk_5E(void); -static void ContestAICmd_unk_5F(void); -static void ContestAICmd_unk_60(void); -static void ContestAICmd_unk_61(void); -static void ContestAICmd_unk_62(void); -static void ContestAICmd_unk_63(void); -static void ContestAICmd_unk_64(void); -static void ContestAICmd_unk_65(void); -static void ContestAICmd_unk_66(void); -static void ContestAICmd_unk_67(void); -static void ContestAICmd_unk_68(void); -static void ContestAICmd_unk_69(void); -static void ContestAICmd_unk_6A(void); -static void ContestAICmd_unk_6B(void); -static void ContestAICmd_unk_6C(void); -static void ContestAICmd_unk_6D(void); -static void ContestAICmd_unk_6E(void); -static void ContestAICmd_unk_6F(void); -static void ContestAICmd_unk_70(void); -static void ContestAICmd_unk_71(void); -static void ContestAICmd_unk_72(void); -static void ContestAICmd_unk_73(void); -static void ContestAICmd_unk_74(void); -static void ContestAICmd_unk_75(void); -static void ContestAICmd_unk_76(void); -static void ContestAICmd_unk_77(void); -static void ContestAICmd_unk_78(void); -static void ContestAICmd_unk_79(void); -static void ContestAICmd_unk_7A(void); -static void ContestAICmd_unk_7B(void); -static void ContestAICmd_unk_7C(void); -static void ContestAICmd_if_random(void); -static void ContestAICmd_unk_7E(void); -static void ContestAICmd_jump(void); +static void ContestAICmd_get_completed_combo(void); +static void ContestAICmd_if_completed_combo(void); +static void ContestAICmd_if_not_completed_combo(void); +static void ContestAICmd_get_points_diff(void); +static void ContestAICmd_if_points_more_than_mon(void); +static void ContestAICmd_if_points_less_than_mon(void); +static void ContestAICmd_if_points_eq_mon(void); +static void ContestAICmd_if_points_not_eq_mon(void); +static void ContestAICmd_get_preliminary_points_diff(void); +static void ContestAICmd_if_preliminary_points_more_than_mon(void); +static void ContestAICmd_if_preliminary_points_less_than_mon(void); +static void ContestAICmd_if_preliminary_points_eq_mon(void); +static void ContestAICmd_if_preliminary_points_not_eq_mon(void); +static void ContestAICmd_get_used_moves_effect(void); +static void ContestAICmd_if_used_moves_effect_less_than(void); +static void ContestAICmd_if_used_moves_effect_more_than(void); +static void ContestAICmd_if_used_moves_effect_eq(void); +static void ContestAICmd_if_used_moves_effect_not_eq(void); +static void ContestAICmd_get_used_moves_excitement(void); +static void ContestAICmd_if_used_moves_excitement_less_than(void); +static void ContestAICmd_if_used_moves_excitement_more_than(void); +static void ContestAICmd_if_used_moves_excitement_eq(void); +static void ContestAICmd_if_used_moves_excitement_not_eq(void); +static void ContestAICmd_get_used_moves_effect_type(void); +static void ContestAICmd_if_used_moves_effect_type_eq(void); +static void ContestAICmd_if_used_moves_effect_type_not_eq(void); +static void ContestAICmd_save_result(void); +static void ContestAICmd_setvar(void); +static void ContestAICmd_add(void); +static void ContestAICmd_addvar(void); +static void ContestAICmd_addvar_duplicate(void); +static void ContestAICmd_if_less_than(void); +static void ContestAICmd_if_greater_than(void); +static void ContestAICmd_if_eq(void); +static void ContestAICmd_if_not_eq(void); +static void ContestAICmd_if_less_than_var(void); +static void ContestAICmd_if_greater_than_var(void); +static void ContestAICmd_if_eq_var(void); +static void ContestAICmd_if_not_eq_var(void); +static void ContestAICmd_if_random_less_than(void); +static void ContestAICmd_if_random_greater_than(void); +static void ContestAICmd_goto(void); static void ContestAICmd_call(void); static void ContestAICmd_end(void); static void ContestAICmd_check_user_has_exciting_move(void); static void ContestAICmd_if_user_has_exciting_move(void); static void ContestAICmd_if_user_doesnt_have_exciting_move(void); -static void ContestAICmd_unk_85(void); -static void ContestAICmd_unk_86(void); -static void ContestAICmd_if_effect_in_user_moveset(void); +static void ContestAICmd_check_user_has_move(void); +static void ContestAICmd_if_user_has_move(void); +static void ContestAICmd_if_user_doesnt_have_move(void); typedef void (* ContestAICmdFunc)(void); static const ContestAICmdFunc sContestAICmdTable[] = { - ContestAICmd_score, // 0x00 - ContestAICmd_get_turn, // 0x01 - ContestAICmd_if_turn_less_than, // 0x02 - ContestAICmd_if_turn_more_than, // 0x03 - ContestAICmd_if_turn_eq, // 0x04 - ContestAICmd_if_turn_not_eq, // 0x05 - ContestAICmd_get_excitement, // 0x06 - ContestAICmd_if_excitement_less_than, // 0x07 - ContestAICmd_if_excitement_more_than, // 0x08 - ContestAICmd_if_excitement_eq, // 0x09 - ContestAICmd_if_excitement_not_eq, // 0x0A - ContestAICmd_get_user_order, // 0x0B - ContestAICmd_if_user_order_less_than, // 0x0C - ContestAICmd_if_user_order_more_than, // 0x0D - ContestAICmd_if_user_order_eq, // 0x0E - ContestAICmd_if_user_order_not_eq, // 0x0F - ContestAICmd_get_user_condition, // 0x10 - ContestAICmd_if_user_condition_less_than, // 0x11 - ContestAICmd_if_user_condition_more_than, // 0x12 - ContestAICmd_if_user_condition_eq, // 0x13 - ContestAICmd_if_user_condition_not_eq, // 0x14 - ContestAICmd_unk_15, // 0x15 - ContestAICmd_unk_16, // 0x16 - ContestAICmd_unk_17, // 0x17 - ContestAICmd_unk_18, // 0x18 - ContestAICmd_unk_19, // 0x19 - ContestAICmd_unk_1A, // 0x1A - ContestAICmd_unk_1B, // 0x1B - ContestAICmd_unk_1C, // 0x1C - ContestAICmd_unk_1D, // 0x1D - ContestAICmd_unk_1E, // 0x1E - ContestAICmd_get_contest_type, // 0x1F - ContestAICmd_if_contest_type_eq, // 0x20 - ContestAICmd_if_contest_type_not_eq, // 0x21 - ContestAICmd_get_move_excitement, // 0x22 - ContestAICmd_if_move_excitement_less_than, // 0x23 - ContestAICmd_if_move_excitement_greater_than, // 0x24 - ContestAICmd_if_move_excitement_eq, // 0x25 - ContestAICmd_if_move_excitement_not_eq, // 0x26 - ContestAICmd_get_move_effect, // 0x27 - ContestAICmd_if_move_effect_eq, // 0x28 - ContestAICmd_if_move_effect_not_eq, // 0x29 - ContestAICmd_get_move_effect_type, // 0x2A - ContestAICmd_if_move_effect_type_eq, // 0x2B - ContestAICmd_if_move_effect_type_not_eq, // 0x2C - ContestAICmd_check_most_appealing_move, // 0x2D - ContestAICmd_if_most_appealing_move, // 0x2E - ContestAICmd_unk_2F, // 0x2F - ContestAICmd_unk_30, // 0x30 - ContestAICmd_unk_31, // 0x31 - ContestAICmd_unk_32, // 0x32 - ContestAICmd_unk_33, // 0x33 - ContestAICmd_unk_34, // 0x34 - ContestAICmd_unk_35, // 0x35 - ContestAICmd_unk_36, // 0x36 - ContestAICmd_unk_37, // 0x37 - ContestAICmd_unk_38, // 0x38 - ContestAICmd_unk_39, // 0x39 - ContestAICmd_unk_3A, // 0x3A - ContestAICmd_get_move_used_count, // 0x3B - ContestAICmd_if_most_used_count_less_than, // 0x3C - ContestAICmd_if_most_used_count_more_than, // 0x3D - ContestAICmd_if_most_used_count_eq, // 0x3E - ContestAICmd_if_most_used_count_not_eq, // 0x3F - ContestAICmd_check_combo_starter, // 0x40 - ContestAICmd_if_combo_starter, // 0x41 - ContestAICmd_if_not_combo_starter, // 0x42 - ContestAICmd_check_combo_finisher, // 0x43 - ContestAICmd_if_combo_finisher, // 0x44 - ContestAICmd_if_not_combo_finisher, // 0x45 - ContestAICmd_check_would_finish_combo, // 0x46 - ContestAICmd_if_would_finish_combo, // 0x47 - ContestAICmd_if_would_not_finish_combo, // 0x48 - ContestAICmd_get_condition, // 0x49 - ContestAICmd_if_condition_less_than, // 0x4A - ContestAICmd_if_condition_more_than, // 0x4B - ContestAICmd_if_condition_eq, // 0x4C - ContestAICmd_if_condition_not_eq, // 0x4D - ContestAICmd_get_used_combo_starter, // 0x4E - ContestAICmd_if_used_combo_starter_less_than, // 0x4F - ContestAICmd_if_used_combo_starter_more_than, // 0x50 - ContestAICmd_if_used_combo_starter_eq, // 0x51 - ContestAICmd_if_used_combo_starter_not_eq, // 0x52 - ContestAICmd_check_can_participate, // 0x53 - ContestAICmd_if_can_participate, // 0x54 - ContestAICmd_if_cannot_participate, // 0x55 - ContestAICmd_get_val_812A188, // 0x56 - ContestAICmd_unk_57, // 0x57 - ContestAICmd_contest_58, // 0x58 - ContestAICmd_unk_59, // 0x59 - ContestAICmd_unk_5A, // 0x5A - ContestAICmd_unk_5B, // 0x5B - ContestAICmd_unk_5C, // 0x5C - ContestAICmd_unk_5D, // 0x5D - ContestAICmd_unk_5E, // 0x5E - ContestAICmd_unk_5F, // 0x5F - ContestAICmd_unk_60, // 0x60 - ContestAICmd_unk_61, // 0x61 - ContestAICmd_unk_62, // 0x62 - ContestAICmd_unk_63, // 0x63 - ContestAICmd_unk_64, // 0x64 - ContestAICmd_unk_65, // 0x65 - ContestAICmd_unk_66, // 0x66 - ContestAICmd_unk_67, // 0x67 - ContestAICmd_unk_68, // 0x68 - ContestAICmd_unk_69, // 0x69 - ContestAICmd_unk_6A, // 0x6A - ContestAICmd_unk_6B, // 0x6B - ContestAICmd_unk_6C, // 0x6C - ContestAICmd_unk_6D, // 0x6D - ContestAICmd_unk_6E, // 0x6E - ContestAICmd_unk_6F, // 0x6F - ContestAICmd_unk_70, // 0x70 - ContestAICmd_unk_71, // 0x71 - ContestAICmd_unk_72, // 0x72 - ContestAICmd_unk_73, // 0x73 - ContestAICmd_unk_74, // 0x74 - ContestAICmd_unk_75, // 0x75 - ContestAICmd_unk_76, // 0x76 - ContestAICmd_unk_77, // 0x77 - ContestAICmd_unk_78, // 0x78 - ContestAICmd_unk_79, // 0x79 - ContestAICmd_unk_7A, // 0x7A - ContestAICmd_unk_7B, // 0x7B - ContestAICmd_unk_7C, // 0x7C - ContestAICmd_if_random, // 0x7D - ContestAICmd_unk_7E, // 0x7E - ContestAICmd_jump, // 0x7F - ContestAICmd_call, // 0x80 - ContestAICmd_end, // 0x81 - ContestAICmd_check_user_has_exciting_move, // 0x82 - ContestAICmd_if_user_has_exciting_move, // 0x83 - ContestAICmd_if_user_doesnt_have_exciting_move, // 0x84 - ContestAICmd_unk_85, // 0x85 - ContestAICmd_unk_86, // 0x86 - ContestAICmd_if_effect_in_user_moveset, // 0x87 + ContestAICmd_score, // 0x00 + ContestAICmd_get_appeal_num, // 0x01 + ContestAICmd_if_appeal_num_less_than, // 0x02 + ContestAICmd_if_appeal_num_more_than, // 0x03 + ContestAICmd_if_appeal_num_eq, // 0x04 + ContestAICmd_if_appeal_num_not_eq, // 0x05 + ContestAICmd_get_excitement, // 0x06 + ContestAICmd_if_excitement_less_than, // 0x07 + ContestAICmd_if_excitement_more_than, // 0x08 + ContestAICmd_if_excitement_eq, // 0x09 + ContestAICmd_if_excitement_not_eq, // 0x0A + ContestAICmd_get_user_order, // 0x0B + ContestAICmd_if_user_order_less_than, // 0x0C + ContestAICmd_if_user_order_more_than, // 0x0D + ContestAICmd_if_user_order_eq, // 0x0E + ContestAICmd_if_user_order_not_eq, // 0x0F + ContestAICmd_get_user_condition, // 0x10 + ContestAICmd_if_user_condition_less_than, // 0x11 + ContestAICmd_if_user_condition_more_than, // 0x12 + ContestAICmd_if_user_condition_eq, // 0x13 + ContestAICmd_if_user_condition_not_eq, // 0x14 + ContestAICmd_get_points, // 0x15 + ContestAICmd_if_points_less_than, // 0x16 + ContestAICmd_if_points_more_than, // 0x17 + ContestAICmd_if_points_eq, // 0x18 + ContestAICmd_if_points_not_eq, // 0x19 + ContestAICmd_get_preliminary_points, // 0x1A + ContestAICmd_if_preliminary_points_less_than, // 0x1B + ContestAICmd_if_preliminary_points_more_than, // 0x1C + ContestAICmd_if_preliminary_points_eq, // 0x1D + ContestAICmd_if_preliminary_points_not_eq, // 0x1E + ContestAICmd_get_contest_type, // 0x1F + ContestAICmd_if_contest_type_eq, // 0x20 + ContestAICmd_if_contest_type_not_eq, // 0x21 + ContestAICmd_get_move_excitement, // 0x22 + ContestAICmd_if_move_excitement_less_than, // 0x23 + ContestAICmd_if_move_excitement_more_than, // 0x24 + ContestAICmd_if_move_excitement_eq, // 0x25 + ContestAICmd_if_move_excitement_not_eq, // 0x26 + ContestAICmd_get_move_effect, // 0x27 + ContestAICmd_if_move_effect_eq, // 0x28 + ContestAICmd_if_move_effect_not_eq, // 0x29 + ContestAICmd_get_move_effect_type, // 0x2A + ContestAICmd_if_move_effect_type_eq, // 0x2B + ContestAICmd_if_move_effect_type_not_eq, // 0x2C + ContestAICmd_check_most_appealing_move, // 0x2D + ContestAICmd_if_most_appealing_move, // 0x2E + ContestAICmd_check_most_jamming_move, // 0x2F + ContestAICmd_if_most_jamming_move, // 0x30 + ContestAICmd_get_num_move_hearts, // 0x31 + ContestAICmd_if_num_move_hearts_less_than, // 0x32 + ContestAICmd_if_num_move_hearts_more_than, // 0x33 + ContestAICmd_if_num_move_hearts_eq, // 0x34 + ContestAICmd_if_num_move_hearts_not_eq, // 0x35 + ContestAICmd_get_num_move_jam_hearts, // 0x36 + ContestAICmd_if_num_move_jam_hearts_less_than, // 0x37 + ContestAICmd_if_num_move_jam_hearts_more_than, // 0x38 + ContestAICmd_if_num_move_jam_hearts_eq, // 0x39 + ContestAICmd_if_num_move_jam_hearts_not_eq, // 0x3A + ContestAICmd_get_move_used_count, // 0x3B + ContestAICmd_if_most_used_count_less_than, // 0x3C + ContestAICmd_if_most_used_count_more_than, // 0x3D + ContestAICmd_if_most_used_count_eq, // 0x3E + ContestAICmd_if_most_used_count_not_eq, // 0x3F + ContestAICmd_check_combo_starter, // 0x40 + ContestAICmd_if_combo_starter, // 0x41 + ContestAICmd_if_not_combo_starter, // 0x42 + ContestAICmd_check_combo_finisher, // 0x43 + ContestAICmd_if_combo_finisher, // 0x44 + ContestAICmd_if_not_combo_finisher, // 0x45 + ContestAICmd_check_would_finish_combo, // 0x46 + ContestAICmd_if_would_finish_combo, // 0x47 + ContestAICmd_if_would_not_finish_combo, // 0x48 + ContestAICmd_get_condition, // 0x49 + ContestAICmd_if_condition_less_than, // 0x4A + ContestAICmd_if_condition_more_than, // 0x4B + ContestAICmd_if_condition_eq, // 0x4C + ContestAICmd_if_condition_not_eq, // 0x4D + ContestAICmd_get_used_combo_starter, // 0x4E + ContestAICmd_if_used_combo_starter_less_than, // 0x4F + ContestAICmd_if_used_combo_starter_more_than, // 0x50 + ContestAICmd_if_used_combo_starter_eq, // 0x51 + ContestAICmd_if_used_combo_starter_not_eq, // 0x52 + ContestAICmd_check_can_participate, // 0x53 + ContestAICmd_if_can_participate, // 0x54 + ContestAICmd_if_cannot_participate, // 0x55 + ContestAICmd_get_completed_combo, // 0x56 + ContestAICmd_if_completed_combo, // 0x57 + ContestAICmd_if_not_completed_combo, // 0x58 + ContestAICmd_get_points_diff, // 0x59 + ContestAICmd_if_points_more_than_mon, // 0x5A + ContestAICmd_if_points_less_than_mon, // 0x5B + ContestAICmd_if_points_eq_mon, // 0x5C + ContestAICmd_if_points_not_eq_mon, // 0x5D + ContestAICmd_get_preliminary_points_diff, // 0x5E + ContestAICmd_if_preliminary_points_more_than_mon, // 0x5F + ContestAICmd_if_preliminary_points_less_than_mon, // 0x60 + ContestAICmd_if_preliminary_points_eq_mon, // 0x61 + ContestAICmd_if_preliminary_points_not_eq_mon, // 0x62 + ContestAICmd_get_used_moves_effect, // 0x63 + ContestAICmd_if_used_moves_effect_less_than, // 0x64 + ContestAICmd_if_used_moves_effect_more_than, // 0x65 + ContestAICmd_if_used_moves_effect_eq, // 0x66 + ContestAICmd_if_used_moves_effect_not_eq, // 0x67 + ContestAICmd_get_used_moves_excitement, // 0x68 + ContestAICmd_if_used_moves_excitement_less_than, // 0x69 + ContestAICmd_if_used_moves_excitement_more_than, // 0x6A + ContestAICmd_if_used_moves_excitement_eq, // 0x6B + ContestAICmd_if_used_moves_excitement_not_eq, // 0x6C + ContestAICmd_get_used_moves_effect_type, // 0x6D + ContestAICmd_if_used_moves_effect_type_eq, // 0x6E + ContestAICmd_if_used_moves_effect_type_not_eq, // 0x6F + ContestAICmd_save_result, // 0x70 + ContestAICmd_setvar, // 0x71 + ContestAICmd_add, // 0x72 + ContestAICmd_addvar, // 0x73 + ContestAICmd_addvar_duplicate, // 0x74 + ContestAICmd_if_less_than, // 0x75 + ContestAICmd_if_greater_than, // 0x76 + ContestAICmd_if_eq, // 0x77 + ContestAICmd_if_not_eq, // 0x78 + ContestAICmd_if_less_than_var, // 0x79 + ContestAICmd_if_greater_than_var, // 0x7A + ContestAICmd_if_eq_var, // 0x7B + ContestAICmd_if_not_eq_var, // 0x7C + ContestAICmd_if_random_less_than, // 0x7D + ContestAICmd_if_random_greater_than, // 0x7E + ContestAICmd_goto, // 0x7F + ContestAICmd_call, // 0x80 + ContestAICmd_end, // 0x81 + ContestAICmd_check_user_has_exciting_move, // 0x82 + ContestAICmd_if_user_has_exciting_move, // 0x83 + ContestAICmd_if_user_doesnt_have_exciting_move, // 0x84 + ContestAICmd_check_user_has_move, // 0x85 + ContestAICmd_if_user_has_move, // 0x86 + ContestAICmd_if_user_doesnt_have_move, // 0x87 }; static void ContestAI_DoAIProcessing(void); -static bool8 sub_81563B0(u8); +static bool8 GetContestantIdByTurn(u8); static void AIStackPushVar(const u8 *); static u8 AIStackPop(void); @@ -297,40 +298,42 @@ void ContestAI_ResetAI(u8 contestantAI) int i; memset(&eContestAI, 0, sizeof(struct ContestAIInfo)); - for (i = 0; i < 4; i++) - eContestAI.unk5[i] = 100; + for (i = 0; i < MAX_MON_MOVES; i++) + eContestAI.moveScores[i] = 100; eContestAI.contestantId = contestantAI; eContestAI.stackSize = 0; - eContestAI.aiChecks = gContestMons[eContestAI.contestantId].aiChecks; + eContestAI.aiFlags = gContestMons[eContestAI.contestantId].aiFlags; } u8 ContestAI_GetActionToUse(void) { - while (eContestAI.aiChecks != 0) + while (eContestAI.aiFlags != 0) { - if (eContestAI.aiChecks & 1) + if (eContestAI.aiFlags & 1) { eContestAI.aiState = CONTESTAI_SETTING_UP; ContestAI_DoAIProcessing(); } - eContestAI.aiChecks >>= 1; - eContestAI.currentAICheck++; + eContestAI.aiFlags >>= 1; + eContestAI.currentAIFlag++; eContestAI.nextMoveIndex = 0; } while (1) { - u8 rval = Random() & 3; - u8 r2 = eContestAI.unk5[rval]; + // Randomly choose a move index. If it's the move + // with the highest (or tied highest) score, return + u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % MAX_MON_MOVES doesn't match + u8 score = eContestAI.moveScores[moveIdx]; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { - if (r2 < eContestAI.unk5[i]) + if (score < eContestAI.moveScores[i]) break; } - if (i == 4) - return rval; + if (i == MAX_MON_MOVES) + return moveIdx; } } @@ -343,28 +346,28 @@ static void ContestAI_DoAIProcessing(void) case CONTESTAI_DO_NOT_PROCESS: break; case CONTESTAI_SETTING_UP: - gAIScriptPtr = gContestAIChecks[eContestAI.currentAICheck]; + gAIScriptPtr = gContestAI_ScriptsTable[eContestAI.currentAIFlag]; - if (gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex] == 0) - eContestAI.nextMove = 0; // don't process a move that doesn't exist. + if (gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex] == MOVE_NONE) + eContestAI.nextMove = MOVE_NONE; // don't process a move that doesn't exist. else eContestAI.nextMove = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; eContestAI.aiState++; break; case CONTESTAI_PROCESSING: - if (eContestAI.nextMove != 0) + if (eContestAI.nextMove != MOVE_NONE) { sContestAICmdTable[*gAIScriptPtr](); // run the command. } else { - eContestAI.unk5[eContestAI.nextMoveIndex] = 0; // don't consider a move that doesn't exist. + eContestAI.moveScores[eContestAI.nextMoveIndex] = 0; // don't consider a move that doesn't exist. eContestAI.aiAction |= 1; } if (eContestAI.aiAction & 1) { eContestAI.nextMoveIndex++; - if (eContestAI.nextMoveIndex < 4) + if (eContestAI.nextMoveIndex < MAX_MON_MOVES) eContestAI.aiState = 0; else // aiState = CONTESTAI_FINISHED @@ -376,12 +379,12 @@ static void ContestAI_DoAIProcessing(void) } } -static u8 sub_81563B0(u8 var) +static u8 GetContestantIdByTurn(u8 turn) { int i; - for (i = 0; i < 4; i++) - if (eContestResources8.turnOrder[i] == var) + for (i = 0; i < CONTESTANT_COUNT; i++) + if (eContestAppealResults.turnOrder[i] == turn) break; return i; @@ -389,27 +392,27 @@ static u8 sub_81563B0(u8 var) static void ContestAICmd_score(void) { - s16 score = eContestAI.unk5[eContestAI.nextMoveIndex] + (s8)gAIScriptPtr[1]; + s16 score = eContestAI.moveScores[eContestAI.nextMoveIndex] + (s8)gAIScriptPtr[1]; if (score > 255) score = 255; else if (score < 0) score = 0; - eContestAI.unk5[eContestAI.nextMoveIndex] = score; + eContestAI.moveScores[eContestAI.nextMoveIndex] = score; gAIScriptPtr += 2; } -static void ContestAICmd_get_turn(void) +static void ContestAICmd_get_appeal_num(void) { - eContestAI.scriptResult = eContest.turnNumber; + eContestAI.scriptResult = eContest.appealNumber; gAIScriptPtr += 1; } -static void ContestAICmd_if_turn_less_than(void) +static void ContestAICmd_if_appeal_num_less_than(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -417,9 +420,9 @@ static void ContestAICmd_if_turn_less_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_more_than(void) +static void ContestAICmd_if_appeal_num_more_than(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -427,9 +430,9 @@ static void ContestAICmd_if_turn_more_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_eq(void) +static void ContestAICmd_if_appeal_num_eq(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -437,9 +440,9 @@ static void ContestAICmd_if_turn_eq(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_not_eq(void) +static void ContestAICmd_if_appeal_num_not_eq(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -495,7 +498,7 @@ static void ContestAICmd_if_excitement_not_eq(void) static void ContestAICmd_get_user_order(void) { - eContestAI.scriptResult = eContestResources8.turnOrder[eContestAI.contestantId]; + eContestAI.scriptResult = eContestAppealResults.turnOrder[eContestAI.contestantId]; gAIScriptPtr += 1; } @@ -585,15 +588,15 @@ static void ContestAICmd_if_user_condition_not_eq(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_15(void) +static void ContestAICmd_get_points(void) { eContestAI.scriptResult = eContestantStatus[eContestAI.contestantId].pointTotal; gAIScriptPtr += 1; } -static void ContestAICmd_unk_16(void) +static void ContestAICmd_if_points_less_than(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -601,9 +604,9 @@ static void ContestAICmd_unk_16(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_17(void) +static void ContestAICmd_if_points_more_than(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -611,9 +614,9 @@ static void ContestAICmd_unk_17(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_18(void) +static void ContestAICmd_if_points_eq(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -621,9 +624,9 @@ static void ContestAICmd_unk_18(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_19(void) +static void ContestAICmd_if_points_not_eq(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -631,15 +634,15 @@ static void ContestAICmd_unk_19(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1A(void) +static void ContestAICmd_get_preliminary_points(void) { - eContestAI.scriptResult = gContestMonConditions[eContestAI.contestantId]; + eContestAI.scriptResult = gContestMonRound1Points[eContestAI.contestantId]; gAIScriptPtr += 1; } -static void ContestAICmd_unk_1B(void) +static void ContestAICmd_if_preliminary_points_less_than(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -647,9 +650,9 @@ static void ContestAICmd_unk_1B(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1C(void) +static void ContestAICmd_if_preliminary_points_more_than(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -657,9 +660,9 @@ static void ContestAICmd_unk_1C(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1D(void) +static void ContestAICmd_if_preliminary_points_eq(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -667,9 +670,9 @@ static void ContestAICmd_unk_1D(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1E(void) +static void ContestAICmd_if_preliminary_points_not_eq(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -719,7 +722,7 @@ static void ContestAICmd_if_move_excitement_less_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_move_excitement_greater_than(void) +static void ContestAICmd_if_move_excitement_more_than(void) { ContestAICmd_get_move_excitement(); @@ -836,7 +839,7 @@ static void ContestAICmd_if_most_appealing_move(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_2F(void) +static void ContestAICmd_check_most_jamming_move(void) { int i; u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -845,7 +848,7 @@ static void ContestAICmd_unk_2F(void) for (i = 0; i < MAX_MON_MOVES; i++) { u16 newMove = gContestMons[eContestAI.contestantId].moves[i]; - if (newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam) + if (newMove != MOVE_NONE && jam < gContestEffects[gContestMoves[newMove].effect].jam) break; } @@ -857,9 +860,9 @@ static void ContestAICmd_unk_2F(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_30(void) +static void ContestAICmd_if_most_jamming_move(void) { - ContestAICmd_unk_2F(); + ContestAICmd_check_most_jamming_move(); if (eContestAI.scriptResult != FALSE) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -867,7 +870,7 @@ static void ContestAICmd_unk_30(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_31(void) +static void ContestAICmd_get_num_move_hearts(void) { u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -875,9 +878,9 @@ static void ContestAICmd_unk_31(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_32(void) +static void ContestAICmd_if_num_move_hearts_less_than(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -885,9 +888,9 @@ static void ContestAICmd_unk_32(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_33(void) +static void ContestAICmd_if_num_move_hearts_more_than(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -895,9 +898,9 @@ static void ContestAICmd_unk_33(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_34(void) +static void ContestAICmd_if_num_move_hearts_eq(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -905,9 +908,9 @@ static void ContestAICmd_unk_34(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_35(void) +static void ContestAICmd_if_num_move_hearts_not_eq(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -915,7 +918,7 @@ static void ContestAICmd_unk_35(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_36(void) +static void ContestAICmd_get_num_move_jam_hearts(void) { u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -923,9 +926,9 @@ static void ContestAICmd_unk_36(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_37(void) +static void ContestAICmd_if_num_move_jam_hearts_less_than(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -933,9 +936,9 @@ static void ContestAICmd_unk_37(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_38(void) +static void ContestAICmd_if_num_move_jam_hearts_more_than(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -943,9 +946,9 @@ static void ContestAICmd_unk_38(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_39(void) +static void ContestAICmd_if_num_move_jam_hearts_eq(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -953,9 +956,9 @@ static void ContestAICmd_unk_39(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_3A(void) +static void ContestAICmd_if_num_move_jam_hearts_not_eq(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1047,7 +1050,7 @@ static void ContestAICmd_if_combo_starter(void) { ContestAICmd_check_combo_starter(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1057,7 +1060,7 @@ static void ContestAICmd_if_not_combo_starter(void) { ContestAICmd_check_combo_starter(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1093,7 +1096,7 @@ static void ContestAICmd_if_combo_finisher(void) { ContestAICmd_check_combo_finisher(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1103,7 +1106,7 @@ static void ContestAICmd_if_not_combo_finisher(void) { ContestAICmd_check_combo_finisher(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1128,7 +1131,7 @@ static void ContestAICmd_if_would_finish_combo(void) { ContestAICmd_check_would_finish_combo(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1138,7 +1141,7 @@ static void ContestAICmd_if_would_not_finish_combo(void) { ContestAICmd_check_would_finish_combo(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1146,9 +1149,9 @@ static void ContestAICmd_if_would_not_finish_combo(void) static void ContestAICmd_get_condition(void) { - int var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].condition / 10; + eContestAI.scriptResult = eContestantStatus[contestant].condition / 10; gAIScriptPtr += 2; } @@ -1194,11 +1197,11 @@ static void ContestAICmd_if_condition_not_eq(void) static void ContestAICmd_get_used_combo_starter(void) { - u16 result = 0; - u8 var = sub_81563B0(gAIScriptPtr[1]); + u16 result = FALSE; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - if (sub_80DE1E8(var)) - result = gContestMoves[eContestantStatus[var].prevMove].comboStarterId ? 1 : 0; + if (IsContestantAllowedToCombo(contestant)) + result = gContestMoves[eContestantStatus[contestant].prevMove].comboStarterId ? TRUE : FALSE; eContestAI.scriptResult = result; gAIScriptPtr += 2; @@ -1246,7 +1249,7 @@ static void ContestAICmd_if_used_combo_starter_not_eq(void) static void ContestAICmd_check_can_participate(void) { - if (Contest_IsMonsTurnDisabled(sub_81563B0(gAIScriptPtr[1]))) + if (Contest_IsMonsTurnDisabled(GetContestantIdByTurn(gAIScriptPtr[1]))) eContestAI.scriptResult = FALSE; else eContestAI.scriptResult = TRUE; @@ -1258,7 +1261,7 @@ static void ContestAICmd_if_can_participate(void) { ContestAICmd_check_can_participate(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1268,51 +1271,51 @@ static void ContestAICmd_if_cannot_participate(void) { ContestAICmd_check_can_participate(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_get_val_812A188(void) +static void ContestAICmd_get_completed_combo(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].unk15_3; + eContestAI.scriptResult = eContestantStatus[contestant].completedComboFlag; gAIScriptPtr += 2; } -static void ContestAICmd_unk_57(void) +static void ContestAICmd_if_completed_combo(void) { - ContestAICmd_get_val_812A188(); + ContestAICmd_get_completed_combo(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_contest_58(void) +static void ContestAICmd_if_not_completed_combo(void) { - ContestAICmd_get_val_812A188(); + ContestAICmd_get_completed_combo(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_unk_59(void) +static void ContestAICmd_get_points_diff(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].pointTotal - eContestantStatus[eContestAI.contestantId].pointTotal; + eContestAI.scriptResult = eContestantStatus[contestant].pointTotal - eContestantStatus[eContestAI.contestantId].pointTotal; gAIScriptPtr += 2; } -static void ContestAICmd_unk_5A(void) +static void ContestAICmd_if_points_more_than_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult < 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1320,9 +1323,9 @@ static void ContestAICmd_unk_5A(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5B(void) +static void ContestAICmd_if_points_less_than_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult > 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1330,9 +1333,9 @@ static void ContestAICmd_unk_5B(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5C(void) +static void ContestAICmd_if_points_eq_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult == 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1340,9 +1343,9 @@ static void ContestAICmd_unk_5C(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5D(void) +static void ContestAICmd_if_points_not_eq_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult != 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1350,17 +1353,17 @@ static void ContestAICmd_unk_5D(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5E(void) +static void ContestAICmd_get_preliminary_points_diff(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = gContestMonConditions[var] - gContestMonConditions[eContestAI.contestantId]; + eContestAI.scriptResult = gContestMonRound1Points[contestant] - gContestMonRound1Points[eContestAI.contestantId]; gAIScriptPtr += 2; } -static void ContestAICmd_unk_5F(void) +static void ContestAICmd_if_preliminary_points_more_than_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult < 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1368,9 +1371,9 @@ static void ContestAICmd_unk_5F(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_60(void) +static void ContestAICmd_if_preliminary_points_less_than_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult > 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1378,9 +1381,9 @@ static void ContestAICmd_unk_60(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_61(void) +static void ContestAICmd_if_preliminary_points_eq_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult == 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1388,9 +1391,9 @@ static void ContestAICmd_unk_61(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_62(void) +static void ContestAICmd_if_preliminary_points_not_eq_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult != 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1398,19 +1401,19 @@ static void ContestAICmd_unk_62(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_63(void) +static void ContestAICmd_get_used_moves_effect(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 round = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[round][contestant]; eContestAI.scriptResult = gContestMoves[move].effect; gAIScriptPtr += 3; } -static void ContestAICmd_unk_64(void) +static void ContestAICmd_if_used_moves_effect_less_than(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1418,9 +1421,9 @@ static void ContestAICmd_unk_64(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_65(void) +static void ContestAICmd_if_used_moves_effect_more_than(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1428,9 +1431,9 @@ static void ContestAICmd_unk_65(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_66(void) +static void ContestAICmd_if_used_moves_effect_eq(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1438,9 +1441,9 @@ static void ContestAICmd_unk_66(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_67(void) +static void ContestAICmd_if_used_moves_effect_not_eq(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1448,19 +1451,19 @@ static void ContestAICmd_unk_67(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_68(void) +static void ContestAICmd_get_used_moves_excitement(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - s8 result = eContest.excitementHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 round = gAIScriptPtr[2]; + s8 result = eContest.excitementHistory[round][contestant]; eContestAI.scriptResult = result; gAIScriptPtr += 3; } -static void ContestAICmd_unk_69(void) +static void ContestAICmd_if_used_moves_excitement_less_than(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1468,9 +1471,9 @@ static void ContestAICmd_unk_69(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6A(void) +static void ContestAICmd_if_used_moves_excitement_more_than(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1478,9 +1481,9 @@ static void ContestAICmd_unk_6A(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6B(void) +static void ContestAICmd_if_used_moves_excitement_eq(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1488,9 +1491,9 @@ static void ContestAICmd_unk_6B(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6C(void) +static void ContestAICmd_if_used_moves_excitement_not_eq(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1498,19 +1501,19 @@ static void ContestAICmd_unk_6C(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6D(void) +static void ContestAICmd_get_used_moves_effect_type(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 round = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[round][contestant]; eContestAI.scriptResult = gContestEffects[gContestMoves[move].effect].effectType; gAIScriptPtr += 3; } -static void ContestAICmd_unk_6E(void) +static void ContestAICmd_if_used_moves_effect_type_eq(void) { - ContestAICmd_unk_6D(); + ContestAICmd_get_used_moves_effect_type(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1518,9 +1521,9 @@ static void ContestAICmd_unk_6E(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6F(void) +static void ContestAICmd_if_used_moves_effect_type_not_eq(void) { - ContestAICmd_unk_6D(); + ContestAICmd_get_used_moves_effect_type(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1528,119 +1531,129 @@ static void ContestAICmd_unk_6F(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_70(void) +static void ContestAICmd_save_result(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] = eContestAI.scriptResult; + eContestAI.vars[gAIScriptPtr[1]] = eContestAI.scriptResult; gAIScriptPtr += 2; } -static void ContestAICmd_unk_71(void) +static void ContestAICmd_setvar(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2); + eContestAI.vars[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2); gAIScriptPtr += 4; } -static void ContestAICmd_unk_72(void) +static void ContestAICmd_add(void) { // wtf? shouldn't T1_READ_16 work here? why the signed 8 load by gAIScriptPtr[2]? - eContestAI.scriptArr[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8); + eContestAI.vars[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8); gAIScriptPtr += 4; } -static void ContestAICmd_unk_73(void) +static void ContestAICmd_addvar(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] += eContestAI.scriptArr[gAIScriptPtr[2]]; + eContestAI.vars[gAIScriptPtr[1]] += eContestAI.vars[gAIScriptPtr[2]]; gAIScriptPtr += 3; } -static void ContestAICmd_unk_74(void) +static void ContestAICmd_addvar_duplicate(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] += eContestAI.scriptArr[gAIScriptPtr[2]]; + eContestAI.vars[gAIScriptPtr[1]] += eContestAI.vars[gAIScriptPtr[2]]; gAIScriptPtr += 3; } -static void ContestAICmd_unk_75(void) +static void ContestAICmd_if_less_than(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_76(void) +static void ContestAICmd_if_greater_than(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_77(void) +static void ContestAICmd_if_eq(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_78(void) +static void ContestAICmd_if_not_eq(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_79(void) +static void ContestAICmd_if_less_than_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] < (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] < (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7A(void) +static void ContestAICmd_if_greater_than_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] > (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] > (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7B(void) +static void ContestAICmd_if_eq_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] == (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] == (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7C(void) +static void ContestAICmd_if_not_eq_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] != (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] != (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_if_random(void) +// UB: Should just be comparing to gAIScriptPtr[1] in the functions below +// The values passed via gAIScriptPtr[1] range from 0-255 +// and vars is an s16[3], so this goes way out of bounds +static void ContestAICmd_if_random_less_than(void) { - if ((Random() & 0xFF) < eContestAI.scriptArr[gAIScriptPtr[1]]) +#ifndef UBFIX + if ((Random() & 0xFF) < eContestAI.vars[gAIScriptPtr[1]]) +#else + if ((Random() & 0xFF) < gAIScriptPtr[1]) +#endif gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void ContestAICmd_unk_7E(void) +static void ContestAICmd_if_random_greater_than(void) { - if ((Random() & 0xFF) > eContestAI.scriptArr[gAIScriptPtr[1]]) +#ifndef UBFIX + if (((Random()) & 0xFF) > eContestAI.vars[gAIScriptPtr[1]]) +#else + if (((Random()) & 0xFF) > gAIScriptPtr[1]) +#endif gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -// jump -static void ContestAICmd_jump(void) +static void ContestAICmd_goto(void) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); } @@ -1701,7 +1714,7 @@ static void ContestAICmd_if_user_has_exciting_move(void) { ContestAICmd_check_user_has_exciting_move(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1711,47 +1724,53 @@ static void ContestAICmd_if_user_doesnt_have_exciting_move(void) { ContestAICmd_check_user_has_exciting_move(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_unk_85(void) +// BUG: This is checking if the user has a specific move, but when it's used in the AI script +// they're checking for an effect. Checking for a specific effect would make more sense, +// but given that effects are normally read as a single byte and this reads 2 bytes, it +// seems reading a move was intended and the AI script is using it incorrectly. +// In any case, to fix it to correctly check for effects replace the u16 move assignment with +// u16 move = gContestMoves[gContestMons[eContestAI.contestantId].moves[i]].effect; +static void ContestAICmd_check_user_has_move(void) { - int result = 0; + int hasMove = FALSE; int i; - u16 arg = T1_READ_16(gAIScriptPtr + 1); + u16 targetMove = T1_READ_16(gAIScriptPtr + 1); for (i = 0; i < MAX_MON_MOVES; i++) { u16 move = gContestMons[eContestAI.contestantId].moves[i]; - if (move == arg) + if (move == targetMove) { - result = 1; + hasMove = TRUE; break; } } - eContestAI.scriptResult = result; + eContestAI.scriptResult = hasMove; gAIScriptPtr += 3; } -static void ContestAICmd_unk_86(void) +static void ContestAICmd_if_user_has_move(void) { - ContestAICmd_unk_85(); + ContestAICmd_check_user_has_move(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_if_effect_in_user_moveset(void) +static void ContestAICmd_if_user_doesnt_have_move(void) { - ContestAICmd_unk_85(); + ContestAICmd_check_user_has_move(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; diff --git a/src/contest_effect.c b/src/contest_effect.c index d6b06c3ba..1fe21daab 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -68,7 +68,10 @@ bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) if (lastMoveComboStarterId == 0) return FALSE; - else if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + else if (lastMoveComboStarterId == nextMoveComboMoves[0] + || lastMoveComboStarterId == nextMoveComboMoves[1] + || lastMoveComboStarterId == nextMoveComboMoves[2] + || lastMoveComboStarterId == nextMoveComboMoves[3]) return gComboStarterLookupTable[lastMoveComboStarterId]; else return FALSE; @@ -82,98 +85,98 @@ static void ContestEffect_HighlyAppealing(void) // After this move, the user is more easily startled. static void ContestEffect_UserMoreEasilyStartled(void) { - eContestantStatus[eContestResources8.contestant].moreEasilyStartled = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MORE_CONSCIOUS); + eContestantStatus[eContestAppealResults.contestant].moreEasilyStartled = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MORE_CONSCIOUS); } // Makes a great appeal, but allows no more to the end. static void ContestEffect_GreatAppealButNoMoreMoves(void) { - eContestantStatus[eContestResources8.contestant].exploded = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_APPEAL); + eContestantStatus[eContestAppealResults.contestant].exploded = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_APPEAL); } // Can be used repeatedly without boring the JUDGE. static void ContestEffect_RepetitionNotBoring(void) { - eContestantStatus[eContestResources8.contestant].usedRepeatableMove = TRUE; - eContestantStatus[eContestResources8.contestant].disappointedRepeat = FALSE; - eContestantStatus[eContestResources8.contestant].moveRepeatCount = 0; + eContestantStatus[eContestAppealResults.contestant].usedRepeatableMove = TRUE; + eContestantStatus[eContestAppealResults.contestant].repeatedMove = FALSE; + eContestantStatus[eContestAppealResults.contestant].moveRepeatCount = 0; } // Can avoid being startled by others once. static void ContestEffect_AvoidStartleOnce(void) { - eContestantStatus[eContestResources8.contestant].jamSafetyCount = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SETTLE_DOWN); + eContestantStatus[eContestAppealResults.contestant].jamSafetyCount = 1; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SETTLE_DOWN); } // Can avoid being startled by others. static void ContestEffect_AvoidStartle(void) { - eContestantStatus[eContestResources8.contestant].immune = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); + eContestantStatus[eContestAppealResults.contestant].immune = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); } // Can avoid being startled by others a little. static void ContestEffect_AvoidStartleSlightly(void) { - eContestantStatus[eContestResources8.contestant].jamReduction = 20; - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_LESS_AWARE); + eContestantStatus[eContestAppealResults.contestant].jamReduction = 20; + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_LESS_AWARE); } // After this move, the user is less likely to be startled. static void ContestEffect_UserLessEasilyStartled(void) { - eContestantStatus[eContestResources8.contestant].resistant = TRUE; - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_STOPPED_CARING); + eContestantStatus[eContestAppealResults.contestant].resistant = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_STOPPED_CARING); } // Slightly startles the POKéMON in front. static void ContestEffect_StartleFrontMon(void) { u8 idx = 0; - u8 a = eContestResources8.contestant; + u8 a = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[a] != 0) { + if (eContestAppealResults.turnOrder[a] != 0) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[a] - 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[a] - 1 == eContestAppealResults.turnOrder[i]) break; } - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; idx = WasAtLeastOneOpponentJammed(); } if (idx == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Slightly startles those that have made appeals. static void ContestEffect_StartlePrevMons(void) { u8 idx = 0; - u8 a = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[a] != 0) + if (eContestAppealResults.turnOrder[contestant] != 0) { int i, j; - for (i = 0, j = 0; i < 4; i++) + for (i = 0, j = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[a] > eContestResources8.turnOrder[i]) - eContestResources8.jamQueue[j++] = i; + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) + eContestAppealResults.jamQueue[j++] = i; } - eContestResources8.jamQueue[j] = 0xFF; + eContestAppealResults.jamQueue[j] = 0xFF; idx = WasAtLeastOneOpponentJammed(); } if (idx == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Startles the POKéMON that appealed before the user. @@ -189,7 +192,7 @@ static void ContestEffect_StartlePrevMon2(void) else jam = 60; - eContestResources8.jam = jam; + eContestAppealResults.jam = jam; ContestEffect_StartleFrontMon(); } @@ -197,8 +200,8 @@ static void ContestEffect_StartlePrevMon2(void) static void ContestEffect_StartlePrevMons2(void) { u8 numStartled = 0; - u8 contestant = eContestResources8.contestant; - u8 turnOrder = eContestResources8.turnOrder[contestant]; + u8 contestant = eContestAppealResults.contestant; + u8 turnOrder = eContestAppealResults.turnOrder[contestant]; if (turnOrder != 0) { @@ -206,12 +209,12 @@ static void ContestEffect_StartlePrevMons2(void) for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) { u8 rval, jam; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; rval = Random() % 10; if (rval == 0) @@ -227,31 +230,31 @@ static void ContestEffect_StartlePrevMons2(void) else jam = 60; - eContestResources8.jam = jam; + eContestAppealResults.jam = jam; if (WasAtLeastOneOpponentJammed()) numStartled++; } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); if (numStartled == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Shifts the JUDGE's attention from others. static void ContestEffect_ShiftJudgeAttention(void) { bool32 hitAny = FALSE; - u8 contestant = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i] && eContestantStatus[i].hasJudgesAttention && CanUnnerveContestant(i)) { @@ -262,10 +265,10 @@ static void ContestEffect_ShiftJudgeAttention(void) } } } - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); if (!hitAny) { - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } } @@ -273,81 +276,81 @@ static void ContestEffect_ShiftJudgeAttention(void) static void ContestEffect_StartleMonWithJudgesAttention(void) { u8 numStartled = 0; - u8 contestant = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) { if (eContestantStatus[i].hasJudgesAttention) - eContestResources8.jam = 50; + eContestAppealResults.jam = 50; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numStartled++; } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); if (numStartled == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Jams the others, and misses one turn of appeals. static void ContestEffect_JamsOthersButMissOneTurn(void) { - eContestantStatus[eContestResources8.contestant].turnSkipped = TRUE; + eContestantStatus[eContestAppealResults.contestant].turnSkipped = TRUE; ContestEffect_StartlePrevMons(); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Startles POKéMON that made a same-type appeal. static void ContestEffect_StartleMonsSameTypeAppeal(void) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; JamByMoveCategory(gContestMoves[move].contestCategory); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made COOL appeals. static void ContestEffect_StartleMonsCoolAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_COOL); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made BEAUTY appeals. static void ContestEffect_StartleMonsBeautyAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_BEAUTY); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made CUTE appeals. static void ContestEffect_StartleMonsCuteAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_CUTE); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made SMART appeals. static void ContestEffect_StartleMonsSmartAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_SMART); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made TOUGH appeals. static void ContestEffect_StartleMonsToughAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_TOUGH); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Makes one POKéMON after the user nervous. @@ -355,13 +358,13 @@ static void ContestEffect_MakeFollowingMonNervous(void) { bool32 hitAny = FALSE; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 3) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 3) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] + 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] + 1 == eContestAppealResults.turnOrder[i]) { if (CanUnnerveContestant(i)) { @@ -377,9 +380,9 @@ static void ContestEffect_MakeFollowingMonNervous(void) } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); if (!hitAny) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Makes all POKéMON after the user nervous. @@ -390,13 +393,13 @@ static void ContestEffect_MakeFollowingMonsNervous(void) u8 contestantIds[5]; int i; int numAfter; - s16 oddsMod[4]; - s16 odds[4]; + s16 oddsMod[CONTESTANT_COUNT]; + s16 odds[CONTESTANT_COUNT]; memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); - for (i = 0, numAfter = 0; i < 4; i++) + for (i = 0, numAfter = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] < eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] < eContestAppealResults.turnOrder[i] && !eContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) contestantIds[numAfter++] = i; } @@ -418,12 +421,12 @@ static void ContestEffect_MakeFollowingMonsNervous(void) } else { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) odds[i] = 0; } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestantStatus[i].hasJudgesAttention && sub_80DE1E8(i)) + if (eContestantStatus[i].hasJudgesAttention && IsContestantAllowedToCombo(i)) oddsMod[i] = gComboStarterLookupTable[gContestMoves[eContestantStatus[i].prevMove].comboStarterId] * 10; else oddsMod[i] = 0; @@ -457,12 +460,12 @@ static void ContestEffect_MakeFollowingMonsNervous(void) SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED); numUnnerved++; } - eContestResources8.unnervedPokes[contestantIds[i]] = 1; + eContestAppealResults.unnervedPokes[contestantIds[i]] = 1; } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_WAITING); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_WAITING); if (numUnnerved == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Worsens the condition of those that made appeals. @@ -471,22 +474,22 @@ static void ContestEffect_WorsenConditionOfPrevMons(void) u8 numHit = 0; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i] && eContestantStatus[i].condition > 0 && CanUnnerveContestant(i)) { eContestantStatus[i].condition = 0; - eContestantStatus[i].conditionMod = 2; + eContestantStatus[i].conditionMod = CONDITION_LOSE; SetContestantEffectStringID(i, CONTEST_STRING_REGAINED_FORM); numHit++; } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_TAUNT_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_TAUNT_WELL); if (numHit == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED); } // Badly startles POKéMON in good condition. @@ -495,44 +498,44 @@ static void ContestEffect_BadlyStartlesMonsInGoodCondition(void) u8 numHit = 0; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { if (eContestantStatus[i].condition > 0) - eContestResources8.jam = 40; + eContestAppealResults.jam = 40; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numHit++; } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_JAM_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_JAM_WELL); if (numHit == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED); } // The appeal works great if performed first. static void ContestEffect_BetterIfFirst(void) { - if (gContestantTurnOrder[eContestResources8.contestant] == 0) + if (gContestantTurnOrder[eContestAppealResults.contestant] == 0) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; - eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HUSTLE_STANDOUT); + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; + eContestantStatus[eContestAppealResults.contestant].appeal += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HUSTLE_STANDOUT); } } // The appeal works great if performed last. static void ContestEffect_BetterIfLast(void) { - if (gContestantTurnOrder[eContestResources8.contestant] == 3) + if (gContestantTurnOrder[eContestAppealResults.contestant] == 3) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; - eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; + eContestantStatus[eContestAppealResults.contestant].appeal += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); } } @@ -542,24 +545,24 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) int i; int appealSum; - for (i = 0, appealSum = 0; i < 4; i++) + for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) - appealSum += eContestantStatus[i].appeal2; + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) + appealSum += eContestantStatus[i].appeal; } if (appealSum < 0) appealSum = 0; - if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appealSum == 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appealSum == 0) { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL); } else { - eContestantStatus[eContestResources8.contestant].appeal2 += appealSum / 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_BEFORE); + eContestantStatus[eContestAppealResults.contestant].appeal += appealSum / 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_BEFORE); } - eContestantStatus[eContestResources8.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestResources8.contestant].appeal2); + eContestantStatus[eContestAppealResults.contestant].appeal = RoundTowardsZero(eContestantStatus[eContestAppealResults.contestant].appeal); } // Makes the appeal as good as the one before it. @@ -567,42 +570,42 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) { s16 appeal = 0; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) - appeal = eContestantStatus[i].appeal2; + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) + appeal = eContestantStatus[i].appeal; } } - if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appeal <= 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appeal <= 0) { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); } else { - eContestantStatus[eContestResources8.contestant].appeal2 += appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_PRECEDING); + eContestantStatus[eContestAppealResults.contestant].appeal += appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_PRECEDING); } } // The appeal works better the later it is performed. static void ContestEffect_BetterWhenLater(void) { - u8 whichTurn = eContestResources8.turnOrder[eContestResources8.contestant]; + u8 whichTurn = eContestAppealResults.turnOrder[eContestAppealResults.contestant]; if (whichTurn == 0) - eContestantStatus[eContestResources8.contestant].appeal2 = 10; + eContestantStatus[eContestAppealResults.contestant].appeal = 10; else - eContestantStatus[eContestResources8.contestant].appeal2 = 20 * whichTurn; + eContestantStatus[eContestAppealResults.contestant].appeal = 20 * whichTurn; if (whichTurn == 0) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); else if (whichTurn == 1) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); else if (whichTurn == 2) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); else - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); } // The appeal's quality varies depending on its timing. @@ -614,31 +617,31 @@ static void ContestEffect_QualityDependsOnTiming(void) if (rval < 3) { appeal = 10; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); } else if (rval < 6) { appeal = 20; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); } else if (rval < 8) { appeal = 40; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); } else if (rval < 9) { appeal = 60; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL); } else { appeal = 80; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestResources8.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal = appeal; } static void ContestEffect_BetterIfSameType(void) { - s8 turnOrder = eContestResources8.turnOrder[eContestResources8.contestant]; + s8 turnOrder = eContestAppealResults.turnOrder[eContestAppealResults.contestant]; s8 i = turnOrder - 1, j; u16 move; @@ -647,9 +650,9 @@ static void ContestEffect_BetterIfSameType(void) while (1) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { - if (eContestResources8.turnOrder[j] == i) + if (eContestAppealResults.turnOrder[j] == i) break; } if (eContestantStatus[j].noMoreTurns || eContestantStatus[j].nervous || eContestantStatus[j].numTurnsSkipped) @@ -663,29 +666,29 @@ static void ContestEffect_BetterIfSameType(void) } } - move = eContestantStatus[eContestResources8.contestant].currMove; + move = eContestantStatus[eContestAppealResults.contestant].currMove; if (gContestMoves[move].contestCategory == gContestMoves[eContestantStatus[j].currMove].contestCategory) { - eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SAME_TYPE_GOOD); + eContestantStatus[eContestAppealResults.contestant].appeal += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SAME_TYPE_GOOD); } } // Works well if different in type than the one before. static void ContestEffect_BetterIfDiffType(void) { - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i] && gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory) { - eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); + eContestantStatus[eContestAppealResults.contestant].appeal += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); break; } } @@ -695,23 +698,23 @@ static void ContestEffect_BetterIfDiffType(void) // Affected by how well the appeal in front goes. static void ContestEffect_AffectedByPrevAppeal(void) { - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) { - if (eContestantStatus[eContestResources8.contestant].appeal2 > eContestantStatus[i].appeal2) + if (eContestantStatus[eContestAppealResults.contestant].appeal > eContestantStatus[i].appeal) { - eContestantStatus[eContestResources8.contestant].appeal2 *= 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); + eContestantStatus[eContestAppealResults.contestant].appeal *= 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); } - else if (eContestantStatus[eContestResources8.contestant].appeal2 < eContestantStatus[i].appeal2) + else if (eContestantStatus[eContestAppealResults.contestant].appeal < eContestantStatus[i].appeal) { - eContestantStatus[eContestResources8.contestant].appeal2 = 0; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NOT_AS_WELL); + eContestantStatus[eContestAppealResults.contestant].appeal = 0; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NOT_AS_WELL); } } } @@ -721,26 +724,26 @@ static void ContestEffect_AffectedByPrevAppeal(void) // Ups the user's condition. Helps prevent nervousness. static void ContestEffect_ImproveConditionPreventNervousness(void) { - if (eContestantStatus[eContestResources8.contestant].condition < 30) + if (eContestantStatus[eContestAppealResults.contestant].condition < 30) { - eContestantStatus[eContestResources8.contestant].condition += 10; - eContestantStatus[eContestResources8.contestant].conditionMod = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_CONDITION_ROSE); + eContestantStatus[eContestAppealResults.contestant].condition += 10; + eContestantStatus[eContestAppealResults.contestant].conditionMod = CONDITION_GAIN; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_CONDITION_ROSE); } else { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); } } // The appeal works well if the user's condition is good. static void ContestEffect_BetterWithGoodCondition(void) { - eContestantStatus[eContestResources8.contestant].appealTripleCondition = TRUE; - if (eContestantStatus[eContestResources8.contestant].condition != 0) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HOT_STATUS); + eContestantStatus[eContestAppealResults.contestant].appealTripleCondition = TRUE; + if (eContestantStatus[eContestAppealResults.contestant].condition != 0) + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HOT_STATUS); else - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); } // The next appeal can be made earlier next turn. @@ -748,20 +751,20 @@ static void ContestEffect_NextAppealEarlier(void) { s8 i; s8 j; - u8 turnOrder[4]; + u8 turnOrder[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; - turnOrder[eContestResources8.contestant] = 0xFF; + turnOrder[eContestAppealResults.contestant] = 0xFF; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { - if (j != eContestResources8.contestant && + if (j != eContestAppealResults.contestant && i == turnOrder[j] && turnOrder[j] == eContestantStatus[j].nextTurnOrder) { @@ -769,19 +772,19 @@ static void ContestEffect_NextAppealEarlier(void) break; } } - if (j == 4) + if (j == CONTESTANT_COUNT) break; } - turnOrder[eContestResources8.contestant] = 0; - eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; + turnOrder[eContestAppealResults.contestant] = 0; + eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_UP_LINE); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 1; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_UP_LINE); } } @@ -790,20 +793,20 @@ static void ContestEffect_NextAppealLater(void) { s8 i; s8 j; - u8 turnOrder[4]; + u8 turnOrder[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; - turnOrder[eContestResources8.contestant] = 0xFF; + turnOrder[eContestAppealResults.contestant] = 0xFF; - for (i = 3; i > -1; i--) + for (i = CONTESTANT_COUNT - 1; i > -1; i--) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { - if (j != eContestResources8.contestant && + if (j != eContestAppealResults.contestant && i == turnOrder[j] && turnOrder[j] == eContestantStatus[j].nextTurnOrder) { @@ -811,19 +814,19 @@ static void ContestEffect_NextAppealLater(void) break; } } - if (j == 4) + if (j == CONTESTANT_COUNT) break; } - turnOrder[eContestResources8.contestant] = 3; - eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; + turnOrder[eContestAppealResults.contestant] = CONTESTANT_COUNT - 1; + eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_BACK_LINE); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_BACK_LINE); } } @@ -838,22 +841,22 @@ static void ContestEffect_ScrambleNextTurnOrder(void) { s8 i; s8 j; - u8 turnOrder[4]; - u8 unselectedContestants[4]; + u8 turnOrder[CONTESTANT_COUNT]; + u8 unselectedContestants[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { turnOrder[i] = eContestantStatus[i].nextTurnOrder; unselectedContestants[i] = i; } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 rval = Random() % (4 - i); + u8 rval = Random() % (CONTESTANT_COUNT - i); - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (unselectedContestants[j] != 0xFF) { @@ -869,22 +872,22 @@ static void ContestEffect_ScrambleNextTurnOrder(void) } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].turnOrderMod = 2; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 3; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SCRAMBLE_ORDER); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 3; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SCRAMBLE_ORDER); } } // An appeal that excites the audience in any CONTEST. static void ContestEffect_ExciteAudienceInAnyContest(void) { - if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) + if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) { - eContestantStatus[eContestResources8.contestant].overrideCategoryExcitementMod = TRUE; + eContestantStatus[eContestAppealResults.contestant].overrideCategoryExcitementMod = TRUE; } } @@ -894,26 +897,26 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) int i; u8 numJammed = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { - if (eContestantStatus[i].appeal2 > 0) + if (eContestantStatus[i].appeal > 0) { - eContestResources8.jam = eContestantStatus[i].appeal2 / 2; - eContestResources8.jam = RoundUp(eContestResources8.jam); + eContestAppealResults.jam = eContestantStatus[i].appeal / 2; + eContestAppealResults.jam = RoundUp(eContestAppealResults.jam); } else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numJammed++; } } if (numJammed == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // The appeal works best the more the crowd is excited. @@ -924,39 +927,39 @@ static void ContestEffect_BetterWhenAudienceExcited(void) if (eContest.applauseLevel == 0) { appeal = 10; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); } else if (eContest.applauseLevel == 1) { appeal = 20; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); } else if (eContest.applauseLevel == 2) { appeal = 30; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); } else if (eContest.applauseLevel == 3) { appeal = 50; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL); } else { appeal = 60; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestResources8.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal = appeal; } // Temporarily stops the crowd from growing excited. static void ContestEffect_DontExciteAudience(void) { - if (!eContestResources10.excitementFrozen) + if (!eContestExcitement.frozen) { - eContestResources10.excitementFrozen = TRUE; - eContestResources10.excitementFreezer = eContestResources8.contestant; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); + eContestExcitement.frozen = TRUE; + eContestExcitement.freezer = eContestAppealResults.contestant; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); } } @@ -965,28 +968,28 @@ static void JamByMoveCategory(u8 category) int i; int numJammed = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { if (category == gContestMoves[eContestantStatus[i].currMove].contestCategory) - eContestResources8.jam = 40; + eContestAppealResults.jam = 40; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numJammed++; } } if (numJammed == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } static bool8 CanUnnerveContestant(u8 i) { - eContestResources8.unnervedPokes[i] = 1; + eContestAppealResults.unnervedPokes[i] = 1; if (eContestantStatus[i].immune) { SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING); @@ -1010,41 +1013,41 @@ static bool8 CanUnnerveContestant(u8 i) static bool8 WasAtLeastOneOpponentJammed(void) { - s16 jamBuffer[4] = {0}; + s16 jamBuffer[CONTESTANT_COUNT] = {0}; int i; - for (i = 0; eContestResources8.jamQueue[i] != 0xFF; i++) + for (i = 0; eContestAppealResults.jamQueue[i] != 0xFF; i++) { - u8 contestant = eContestResources8.jamQueue[i]; + u8 contestant = eContestAppealResults.jamQueue[i]; if (CanUnnerveContestant(contestant)) { - eContestResources8.jam2 = eContestResources8.jam; + eContestAppealResults.jam2 = eContestAppealResults.jam; if (eContestantStatus[contestant].moreEasilyStartled) - eContestResources8.jam2 *= 2; + eContestAppealResults.jam2 *= 2; if (eContestantStatus[contestant].resistant) { - eContestResources8.jam2 = 10; + eContestAppealResults.jam2 = 10; SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); } else { - eContestResources8.jam2 -= eContestantStatus[contestant].jamReduction; - if (eContestResources8.jam2 <= 0) + eContestAppealResults.jam2 -= eContestantStatus[contestant].jamReduction; + if (eContestAppealResults.jam2 <= 0) { - eContestResources8.jam2 = 0; + eContestAppealResults.jam2 = 0; SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); } else { - JamContestant(contestant, eContestResources8.jam2); - SetStartledString(contestant, eContestResources8.jam2); - jamBuffer[contestant] = eContestResources8.jam2; + JamContestant(contestant, eContestAppealResults.jam2); + SetStartledString(contestant, eContestAppealResults.jam2); + jamBuffer[contestant] = eContestAppealResults.jam2; } } } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (jamBuffer[i] != 0) return TRUE; @@ -1054,7 +1057,7 @@ static bool8 WasAtLeastOneOpponentJammed(void) static void JamContestant(u8 i, u8 jam) { - eContestantStatus[i].appeal2 -= jam; + eContestantStatus[i].appeal -= jam; eContestantStatus[i].jam += jam; } diff --git a/src/contest_link.c b/src/contest_link.c index 692c58603..ae6975268 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -8,10 +8,18 @@ #include "task.h" #include "contest_link.h" -static void sub_80FC5C0(u8); -static void sub_80FC5DC(u8); - -bool32 sub_80FC4F4(void *src, u16 size) +static void Task_LinkContest_StartInitFlags(u8); +static void Task_LinkContest_InitFlags(u8); + +#define tState data[0] +#define tDelayTimer data[1] +#define tCategories(i) data[(i) + 1] +#define tLeaderIds(i) data[(i) + 5] +#define tCategory data[9] +#define tTimer data[11] +#define tStandbyState data[12] + +bool32 LinkContest_SendBlock(void *src, u16 size) { memcpy(gDecompressionBuffer, src, size); if (SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, size)) @@ -20,21 +28,21 @@ bool32 sub_80FC4F4(void *src, u16 size) return FALSE; } -bool8 sub_80FC530(u8 arg0) +bool8 LinkContest_GetBlockReceived(u8 flag) { - u8 mask = (1 << arg0); + u8 mask = (1 << flag); if (!(GetBlockReceivedStatus() & mask)) { return FALSE; } else { - ResetBlockReceivedFlag(arg0); + ResetBlockReceivedFlag(flag); return TRUE; } } -bool8 sub_80FC55C(void) +bool8 LinkContest_GetBlockReceivedFromAllPlayers(void) { if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { @@ -47,23 +55,23 @@ bool8 sub_80FC55C(void) } } -void sub_80FC580(u8 taskId) +void Task_LinkContest_Init(u8 taskId) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gBlockRecvBuffer[i][0] = 0xFF; - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80FC5C0; + gTasks[taskId].tState = 0; + gTasks[taskId].func = Task_LinkContest_StartInitFlags; } -static void sub_80FC5C0(u8 taskId) +static void Task_LinkContest_StartInitFlags(u8 taskId) { - gTasks[taskId].func = sub_80FC5DC; + gTasks[taskId].func = Task_LinkContest_InitFlags; } -static void sub_80FC5DC(u8 taskId) +static void Task_LinkContest_InitFlags(u8 taskId) { int i; @@ -76,6 +84,7 @@ static void sub_80FC5DC(u8 taskId) if (gWirelessCommType == 1) gLinkContestFlags = LINK_CONTEST_FLAG_IS_LINK | LINK_CONTEST_FLAG_IS_WIRELESS; + // Get number of players using Emerald/FRLG for (i = 0; i < gNumLinkContestPlayers && (u32)(gLinkPlayers[i].version & 0xFF) - 1 > VERSION_RUBY - 1; i++) ; @@ -85,22 +94,23 @@ static void sub_80FC5DC(u8 taskId) SwitchTaskToFollowupFunc(taskId); } -bool32 sub_80FC670(s16 *arg0) +bool32 LinkContest_TryLinkStandby(s16 *state) { + // Skip standby for RS cabled links if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) return TRUE; - switch (*arg0) + switch (*state) { case 0: if (IsLinkTaskFinished()) { - sub_800ADF8(); - (*arg0)++; + SetLinkStandbyCallback(); + (*state)++; } return FALSE; case 1: - (*arg0)++; + (*state)++; return FALSE; default: if (IsLinkTaskFinished() != TRUE) @@ -110,438 +120,443 @@ bool32 sub_80FC670(s16 *arg0) } } -void sub_80FC6BC(u8 taskId) +void Task_LinkContest_CommunicateMonsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: + // Send players mon if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) { memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)); - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } } else { memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } break; case 1: - if (sub_80FC55C()) + // Wait for other players data + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon)); - sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language); + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[i].language); } - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 300) + // Only if leader. Request other players data + if (++gTasks[taskId].tTimer > 300) { - sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + SendBlockRequest(2); + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC804(u8 taskId) +void Task_LinkContest_CommunicateRngRS(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (GetMultiplayerId() == 0) { - if (IsLinkTaskFinished() && sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == TRUE) - gTasks[taskId].data[0]++; + if (IsLinkTaskFinished() && LinkContest_SendBlock(&gRngValue, sizeof(gRngValue)) == TRUE) + gTasks[taskId].tState++; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC530(0)) + if (LinkContest_GetBlockReceived(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue)); memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC894(u8 taskId) +void Task_LinkContest_CommunicateCategoryRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - gBlockSendBuffer[0] = gTasks[taskId].data[9]; + gBlockSendBuffer[0] = gTasks[taskId].tCategory; if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) - gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0]; + gTasks[taskId].tCategories(i) = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 10) + if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + SendBlockRequest(2); + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC998(u8 taskId) +void Task_LinkContest_CommunicateMonIdxs(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) - gTasks[taskId].data[0]++; + if (LinkContest_GetBlockReceivedFromAllPlayers()) + gTasks[taskId].tState++; break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC9F8(u8 taskId) +void Task_LinkContest_CommunicateMoveSelections(u8 taskId) { int i; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE) - gTasks[taskId].data[0]++; + // Send player's move selection + if (LinkContest_SendBlock(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { + // Receive partners' move selections for (i = 0; i < gNumLinkContestPlayers; i++) eContestantStatus[i].currMove = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FCACC(u8 taskId) +void Task_LinkContest_CommunicateFinalStandings(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonTotalPoints)); - gTasks[taskId].data[0]++; + memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonTotalPoints)); + gTasks[taskId].tState++; } break; case 2: case 5: case 8: case 11: - if (gTasks[taskId].data[1]++ > 10) + if (gTasks[taskId].tDelayTimer++ > 10) { - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].tDelayTimer = 0; + gTasks[taskId].tState++; } break; case 3: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonAppealPointTotals, sizeof(gContestMonAppealPointTotals)) == 1) + gTasks[taskId].tState++; } break; case 4: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10)); - gTasks[taskId].data[0]++; + memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonAppealPointTotals)); + gTasks[taskId].tState++; } break; case 6: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1) + gTasks[taskId].tState++; } break; case 7: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonRound2Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound2Points)); - gTasks[taskId].data[0]++; + memcpy(gContestMonRound2Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound2Points)); + gTasks[taskId].tState++; } break; case 9: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1) + gTasks[taskId].tState++; } break; case 10: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings)); - gTasks[taskId].data[0]++; + memcpy(gContestFinalStandings, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestFinalStandings)); + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FCC88(u8 taskId) +void Task_LinkContest_CommunicateAppealsState(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(eContestantStatus, CONTESTANT_COUNT * sizeof(struct ContestantStatus)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus)); - gTasks[taskId].data[0]++; + memcpy(eContestantStatus, gBlockRecvBuffer[gContestLinkLeaderIndex], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); + gTasks[taskId].tState++; } break; case 2: case 5: case 8: case 11: - if (gTasks[taskId].data[1]++ > 10) + if (gTasks[taskId].tDelayTimer++ > 10) { - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].tDelayTimer = 0; + gTasks[taskId].tState++; } break; case 3: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestResources->appealResults, sizeof(struct ContestAppealMoveResults)) == 1) + gTasks[taskId].tState++; } break; case 4: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7)); - gTasks[taskId].data[0]++; + memcpy(gContestResources->appealResults, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestAppealMoveResults)); + gTasks[taskId].tState++; } break; case 6: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestResources->excitement, sizeof(struct ContestExcitement)) == 1) + gTasks[taskId].tState++; } break; case 7: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5)); - gTasks[taskId].data[0]++; + memcpy(gContestResources->excitement, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestExcitement)); + gTasks[taskId].tState++; } break; case 9: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) + gTasks[taskId].tState++; } break; case 10: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); - gTasks[taskId].data[0]++; + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FCE48(u8 taskId) +void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: gBlockSendBuffer[0] = 0x6E; if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - for (i = 0; i < 4; i++) - gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0]; + for (i = 0; i < CONTESTANT_COUNT; i++) + gTasks[taskId].tLeaderIds(i) = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 10) + if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + SendBlockRequest(2); + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FCF40(u8 taskId) +void Task_LinkContest_CommunicateRound1Points(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonConditions, sizeof(gContestMonConditions)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonRound1Points, sizeof(gContestMonRound1Points)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions)); - gTasks[taskId].data[0]++; + memcpy(gContestMonRound1Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound1Points)); + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FCFD0(u8 taskId) +void Task_LinkContest_CommunicateTurnOrder(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); - gTasks[taskId].data[0]++; + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } diff --git a/src/contest_link_util.c b/src/contest_link_util.c index 8060b6cdc..31ffb5fdb 100644 --- a/src/contest_link_util.c +++ b/src/contest_link_util.c @@ -1,148 +1,158 @@ #include "global.h" #include "contest.h" +#include "contest_link.h" #include "event_data.h" #include "link.h" #include "random.h" #include "task.h" -static void sub_81D9F14(u8); -static void sub_81D9F30(u8); -static void sub_81D9F4C(u8); -static void sub_81D9F68(u8); -static void sub_81DA10C(u8); -static void sub_81DA138(u8); -static void sub_81DA160(u8); -static void sub_81DA244(u8); -static void sub_81DA2E8(u8); -static void sub_81DA3B8(u8); -static void sub_81DA488(u8); - -void sub_81D9DE4(u8 taskId) +/* + The functions in this file handle preliminary communication + for Emerald-only link contests. If the link contest has an RS + player linked, none of these functions are used. + + The equivalent functions for RS-linked contests are spread + between contest_link.c and contest_util.c, and are suffixed RS + instead of Em +*/ + +static void Task_LinkContest_CommunicateMonsEm(u8); +static void Task_LinkContest_StartCommunicateRngEm(u8); +static void Task_LinkContest_CommunicateRngEm(u8); +static void Task_LinkContest_StartCommunicateLeaderIdsEm(u8); +static void Task_LinkContest_CommunicateLeaderIdsEm(u8); +static void Task_LinkContest_StartCommunicateCategoryEm(u8); +static void Task_LinkContest_CommunicateCategoryEm(u8); +static void Task_LinkContest_SetUpContestEm(u8); +static void Task_LinkContest_CommunicateAIMonsEm(u8); +static void Task_LinkContest_CalculateRound1Em(u8); +static void Task_LinkContest_CalculateTurnOrderEm(u8); + +#define tCategory data[9] + +void Task_LinkContest_StartCommunicationEm(u8 taskId) { int gameCleared; - switch (gTasks[taskId].data[9]) + switch (gTasks[taskId].tCategory) { - case 0: + case CONTEST_CATEGORY_COOL: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); break; - case 1: + case CONTEST_CATEGORY_BEAUTY: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); break; - case 2: + case CONTEST_CATEGORY_CUTE: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); break; - case 3: + case CONTEST_CATEGORY_SMART: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); break; - case 4: + case CONTEST_CATEGORY_TOUGH: default: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); break; } - gContestMons[gContestPlayerMonIndex].unk2C[0] = gHighestRibbonRank; + gContestMons[gContestPlayerMonIndex].highestRank = gHighestRibbonRank; gameCleared = FlagGet(FLAG_SYS_GAME_CLEAR) > 0; - gContestMons[gContestPlayerMonIndex].unk2C[1] = gameCleared; - SetTaskFuncWithFollowupFunc(taskId, sub_81DA160, sub_81D9F14); + gContestMons[gContestPlayerMonIndex].gameCleared = gameCleared; + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonsEm, Task_LinkContest_StartCommunicateRngEm); } -static void sub_81D9F14(u8 taskId) +static void Task_LinkContest_StartCommunicateRngEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA244, sub_81D9F30); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRngEm, Task_LinkContest_StartCommunicateLeaderIdsEm); } -static void sub_81D9F30(u8 taskId) +static void Task_LinkContest_StartCommunicateLeaderIdsEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA2E8, sub_81D9F4C); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateLeaderIdsEm, Task_LinkContest_StartCommunicateCategoryEm); } -static void sub_81D9F4C(u8 taskId) +static void Task_LinkContest_StartCommunicateCategoryEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA3B8, sub_81D9F68); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateCategoryEm, Task_LinkContest_SetUpContestEm); } -static void sub_81D9F68(u8 taskId) +static void Task_LinkContest_SetUpContestEm(u8 taskId) { u8 i; u8 rank; int gameCleared; - u8 data1[4]; - u8 data2[4]; + u8 categories[CONTESTANT_COUNT]; + u8 leaderIds[CONTESTANT_COUNT]; - memset(data1, 0, sizeof(data1)); - memset(data2, 0, sizeof(data2)); + memset(categories, 0, sizeof(categories)); + memset(leaderIds, 0, sizeof(leaderIds)); for (i = 0; i < gNumLinkContestPlayers; i++) - data1[i] = gTasks[taskId].data[i + 1]; + categories[i] = gTasks[taskId].data[i + 1]; - i = 0; - if (i < gNumLinkContestPlayers) - { - while (++i < gNumLinkContestPlayers) - { - if (data1[0] != data1[i]) - break; - } - } + // Ensure all players are doing the same category + for (i = 0; i < gNumLinkContestPlayers && categories[0] == categories[i]; i++) + ; if (i == gNumLinkContestPlayers) - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; // Category choices the same else - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; // Category choices differ for (i = 0; i < gNumLinkContestPlayers; i++) - data2[i] = gTasks[taskId].data[i + 5]; + leaderIds[i] = gTasks[taskId].data[i + 5]; - if (gNumLinkContestPlayers != 4 && GetMultiplayerId() == 0) + // If < 4 players and player is leader, set AI contestants based on rank and game clear + if (gNumLinkContestPlayers != CONTESTANT_COUNT && GetMultiplayerId() == 0) { - rank = gContestMons[0].unk2C[0]; + rank = gContestMons[0].highestRank; for (i = 1; i < gNumLinkContestPlayers; i++) { - if (rank < gContestMons[i].unk2C[0]) - rank = gContestMons[i].unk2C[0]; + if (rank < gContestMons[i].highestRank) + rank = gContestMons[i].highestRank; } if (rank) rank--; - gameCleared = 1; + gameCleared = TRUE; for (i = 0; i < gNumLinkContestPlayers; i++) { - if (!gContestMons[i].unk2C[1]) + if (!gContestMons[i].gameCleared) { - gameCleared = 0; + gameCleared = FALSE; break; } } - sub_80DACBC(data1[0], rank, gameCleared); + SetLinkAIContestants(categories[0], rank, gameCleared); } - gUnknown_02039F2B = sub_80F86E0(data2); - if (gNumLinkContestPlayers < 4) - SetTaskFuncWithFollowupFunc(taskId, sub_81DA488, sub_81DA10C); + // Assign link leader. After initial communication all players will read data only from them + gContestLinkLeaderIndex = LinkContest_GetLeaderIndex(leaderIds); + + if (gNumLinkContestPlayers < CONTESTANT_COUNT) + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateAIMonsEm, Task_LinkContest_CalculateRound1Em); else - gTasks[taskId].func = sub_81DA10C; + gTasks[taskId].func = Task_LinkContest_CalculateRound1Em; } -static void sub_81DA10C(u8 taskId) +static void Task_LinkContest_CalculateRound1Em(u8 taskId) { - sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_81DA138); + CalculateRound1Points(gSpecialVar_ContestCategory); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, Task_LinkContest_CalculateTurnOrderEm); } -static void sub_81DA138(u8 taskId) +static void Task_LinkContest_CalculateTurnOrderEm(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, Task_LinkContest_FinalizeConnection); } -static void sub_81DA160(u8 taskId) +static void Task_LinkContest_CommunicateMonsEm(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -155,17 +165,17 @@ static void sub_81DA160(u8 taskId) case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)) == 1) + if (LinkContest_SendBlock(&gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon)); - sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language); + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[i].language); } gTasks[taskId].data[0]++; @@ -174,9 +184,9 @@ static void sub_81DA160(u8 taskId) } } -static void sub_81DA244(u8 taskId) +static void Task_LinkContest_CommunicateRngEm(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -189,19 +199,22 @@ static void sub_81DA244(u8 taskId) case 0: if (GetMultiplayerId() == 0) { + // Only the leader sends the RNG seed if (!IsLinkTaskFinished()) return; - if (sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == 1) + if (LinkContest_SendBlock(&gRngValue, sizeof(gRngValue)) == 1) gTasks[taskId].data[0]++; } else { + // Other link members skip to waiting gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC530(0)) + // Wait to receive RNG data + if (LinkContest_GetBlockReceived(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue)); memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue)); @@ -211,13 +224,13 @@ static void sub_81DA244(u8 taskId) } } -static void sub_81DA2E8(u8 taskId) +static void Task_LinkContest_CommunicateLeaderIdsEm(u8 taskId) { int i; - u16 data[4]; - u16 var0; + u16 data[CONTESTANT_COUNT]; + u16 leaderId; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -230,13 +243,13 @@ static void sub_81DA2E8(u8 taskId) case 0: if (IsLinkTaskFinished()) { - var0 = 0x6E; - if (sub_80FC4F4(&var0, sizeof(var0)) == 1) + leaderId = 0x6E; + if (LinkContest_SendBlock(&leaderId, sizeof(leaderId)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { @@ -250,13 +263,13 @@ static void sub_81DA2E8(u8 taskId) } } -static void sub_81DA3B8(u8 taskId) +static void Task_LinkContest_CommunicateCategoryEm(u8 taskId) { int i; - u16 data[4]; - u16 var0; + u16 data[CONTESTANT_COUNT]; + u16 category; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -269,13 +282,13 @@ static void sub_81DA3B8(u8 taskId) case 0: if (IsLinkTaskFinished()) { - var0 = gTasks[taskId].data[9]; - if (sub_80FC4F4(&var0, sizeof(var0)) == 1) + category = gTasks[taskId].tCategory; + if (LinkContest_SendBlock(&category, sizeof(category)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { @@ -289,11 +302,11 @@ static void sub_81DA3B8(u8 taskId) } } -static void sub_81DA488(u8 taskId) +static void Task_LinkContest_CommunicateAIMonsEm(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -309,7 +322,7 @@ static void sub_81DA488(u8 taskId) if (!IsLinkTaskFinished()) return; - if (sub_80FC4F4(&gContestMons[gNumLinkContestPlayers], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)) == 1) + if (LinkContest_SendBlock(&gContestMons[gNumLinkContestPlayers], (CONTESTANT_COUNT - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)) == 1) gTasks[taskId].data[0]++; } else @@ -318,11 +331,11 @@ static void sub_81DA488(u8 taskId) } break; case 1: - if (sub_80FC530(0)) + if (LinkContest_GetBlockReceived(0)) { - memcpy(&gContestMons[gNumLinkContestPlayers], gBlockRecvBuffer[0], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)); - for (i = gNumLinkContestPlayers; i < 4; i++) - sub_80DFA08(&gContestMons[i], gLinkPlayers[0].language); + memcpy(&gContestMons[gNumLinkContestPlayers], gBlockRecvBuffer[0], (CONTESTANT_COUNT - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)); + for (i = gNumLinkContestPlayers; i < CONTESTANT_COUNT; i++) + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[0].language); gTasks[taskId].data[0]++; } diff --git a/src/contest_painting.c b/src/contest_painting.c index 5dd4a70a5..a0c39dfc7 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -384,8 +384,6 @@ static void InitContestMonPixels(u16 species, u8 whichSprite) } } -#ifdef NONMATCHING -// functionally equivalent. static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { u16 tileY, tileX, pixelY, pixelX; @@ -399,125 +397,21 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) { for (pixelX = 0; pixelX < 8; pixelX++) { - int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2); - colorIndex = spriteGfx[offset]; + colorIndex = spriteGfx[((tileY * 8) + tileX) * 32 + (pixelY << 2) + (pixelX >> 1)]; if (pixelX & 1) colorIndex >>= 4; else - colorIndex &= 0xF; + colorIndex &= 0xF; // %=16 works here too. Both match - if (colorIndex == 0) // transparent pixel - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000; + if (colorIndex == 0) // transparent pixel + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000; else - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; } } } } } -#else -NAKED -static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - mov r10, r0\n\ - mov r9, r1\n\ - str r2, [sp]\n\ - movs r0, 0\n\ -_08130394:\n\ - movs r3, 0\n\ - adds r1, r0, 0x1\n\ - str r1, [sp, 0x4]\n\ - lsls r0, 3\n\ - str r0, [sp, 0x8]\n\ -_0813039E:\n\ - movs r1, 0\n\ - adds r2, r3, 0x1\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r3\n\ - lsls r0, 5\n\ - mov r12, r0\n\ - lsls r4, r3, 3\n\ -_081303AE:\n\ - movs r3, 0\n\ - lsls r0, r1, 2\n\ - adds r6, r1, 0x1\n\ - mov r2, r12\n\ - adds r5, r2, r0\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r1\n\ - lsls r0, 7\n\ - ldr r1, [sp]\n\ - adds r2, r0, r1\n\ -_081303C2:\n\ - lsrs r0, r3, 1\n\ - adds r0, r5, r0\n\ - add r0, r10\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _081303D6\n\ - lsrs r1, 4\n\ - b _081303DA\n\ -_081303D6:\n\ - movs r0, 0xF\n\ - ands r1, r0\n\ -_081303DA:\n\ - cmp r1, 0\n\ - bne _081303EC\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - movs r7, 0x80\n\ - lsls r7, 8\n\ - adds r1, r7, 0\n\ - b _081303F8\n\ -_081303EC:\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - lsls r1, 1\n\ - add r1, r9\n\ - ldrh r1, [r1]\n\ -_081303F8:\n\ - strh r1, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _081303C2\n\ - lsls r0, r6, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0x7\n\ - bls _081303AE\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _0813039E\n\ - ldr r2, [sp, 0x4]\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x7\n\ - bls _08130394\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} -#endif #define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) diff --git a/src/contest_util.c b/src/contest_util.c index e82560a6e..c60e885f2 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -6,10 +6,12 @@ #include "contest.h" #include "contest_util.h" #include "contest_link.h" +#include "contest_painting.h" #include "data.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" +#include "event_object_movement.h" #include "field_specials.h" #include "gpu_regs.h" #include "graphics.h" @@ -27,6 +29,7 @@ #include "save.h" #include "scanline_effect.h" #include "script.h" +#include "script_menu.h" #include "sound.h" #include "string_util.h" #include "strings.h" @@ -36,6 +39,7 @@ #include "tv.h" #include "util.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/field_specials.h" #include "constants/game_stat.h" #include "constants/rgb.h" @@ -117,8 +121,8 @@ static void CB2_ShowContestResults(void); static void VBlankCB_ShowContestResults(void); static void Task_SlideContestResultsBg(u8); static void Task_WaitForLinkPartnersBeforeResults(u8); -static void sub_80F5F14(u8); -static void sub_80F5F30(u8); +static void Task_CommunicateMonIdxsForResults(u8); +static void Task_WaitForLinkPartnerMonIdxs(u8); static void Task_AnnouncePreliminaryResults(u8); static void Task_FlashStarsAndHearts(u8); static void Task_ShowPreliminaryResults(u8); @@ -150,15 +154,22 @@ static void Task_CreateConfetti(u8); static void SpriteCB_TextBoxSlideIn(struct Sprite *); static void SpriteCB_TextBoxSlideOut(struct Sprite *); static void SpriteCB_EndTextBoxSlideIn(struct Sprite *); -static void sub_80F8508(u8); -static void sub_80F8568(u8); -static void sub_80F8584(u8); -static void sub_80F85A0(u8); -static void sub_80F85BC(u8); -static void sub_80F86B8(u8); -static void sub_80F878C(u8); -static void sub_80F87B4(u8); +static void Task_StartCommunication(u8); +static void Task_StartCommunicateRngRS(u8); +static void Task_StartCommunicateLeaderIdsRS(u8); +static void Task_StartCommunicateCategoryRS(u8); +static void Task_LinkContest_SetUpContestRS(u8); +static void Task_LinkContest_CalculateTurnOrderRS(u8); +static void Task_LinkContest_Disconnect(u8); +static void Task_LinkContest_WaitDisconnect(u8); static void SpriteCB_Confetti(struct Sprite *sprite); +static void Task_ShowContestEntryMonPic(u8 taskId); +static void Task_LinkContestWaitForConnection(u8 taskId); + +extern const u16 gObjectEventPalette8[]; +extern const u16 gObjectEventPalette17[]; +extern const u16 gObjectEventPalette33[]; +extern const u16 gObjectEventPalette34[]; static const u16 sUnknown_0858D6B0[] = INCBIN_U16("graphics/unknown/unknown_58D6B0.gbapal"); static const u8 sUnknown_0858D6D0[] = INCBIN_U8("graphics/unknown/unknown_58D6D0.4bpp"); @@ -522,7 +533,7 @@ static void CB2_StartShowContestResults(void) if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) gPaletteFade.bufferTransferDisabled = TRUE; else - PlayBGM(MUS_CON_K); + PlayBGM(MUS_CONTEST_RESULTS); SetVBlankCallback(VBlankCB_ShowContestResults); } @@ -601,14 +612,14 @@ static void Task_ShowContestResults(u8 taskId) case 2: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].tState++; } return; case 3: if (IsLinkTaskFinished() == TRUE) { - PlayBGM(MUS_CON_K); + PlayBGM(MUS_CONTEST_RESULTS); gPaletteFade.bufferTransferDisabled = FALSE; gTasks[taskId].tState++; break; @@ -645,17 +656,17 @@ static void Task_WaitForLinkPartnersBeforeResults(u8 taskId) { if (gReceivedRemoteLinkPlayers) { - CreateTask(sub_80F5F14, 0); + CreateTask(Task_CommunicateMonIdxsForResults, 0); gTasks[taskId].func = TaskDummy; } } -static void sub_80F5F14(u8 taskId) +static void Task_CommunicateMonIdxsForResults(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80F5F30); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, Task_WaitForLinkPartnerMonIdxs); } -static void sub_80F5F30(u8 taskId) +static void Task_WaitForLinkPartnerMonIdxs(u8 taskId) { if (IsLinkTaskFinished()) { @@ -974,7 +985,7 @@ static void Task_TryDisconnectLinkPartners(u8 taskId) if (!gTasks[taskId].data[10]) { ShowLinkResultsTextBox(gText_CommunicationStandby); - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_WaitForLinkPartnersDisconnect; } } @@ -1717,7 +1728,7 @@ static void LoadContestResultsTilemaps(void) // Represented on results board as stars static u8 GetNumPreliminaryPoints(u8 monIndex, bool8 capPoints) { - u32 condition = gContestMonConditions[monIndex] << 16; + u32 condition = gContestMonRound1Points[monIndex] << 16; u32 numStars = condition / 0x3F; if (numStars & 0xFFFF) @@ -1785,7 +1796,7 @@ static void Task_DrawFinalStandingNumber(u8 taskId) WriteSequenceToBgTilemapBuffer(2, firstTileNum + 0x10, 1, gTasks[taskId].tMonIndex * 3 + 6, 2, 1, 17, 1); sContestResults->data->numStandingsPrinted++; DestroyTask(taskId); - PlaySE(SE_JYUNI); + PlaySE(SE_CONTEST_PLACE); } } } @@ -1965,7 +1976,7 @@ static void CalculateContestantsResultData(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - relativePoints = (gContestMonConditions[i] * 1000) / abs(highestPoints); + relativePoints = (gContestMonRound1Points[i] * 1000) / abs(highestPoints); if (relativePoints % 10 > 4) relativePoints += 10; (*sContestResults->monResults)[i].relativePreliminaryPoints = relativePoints / 10; @@ -2205,8 +2216,8 @@ void TryEnterContestMon(void) // Nonzero eligibility can still be non-eligibile, if mon is fainted or egg if (eligibility) { - sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); - sub_80DB09C(gSpecialVar_ContestCategory); + SetContestants(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); + CalculateRound1Points(gSpecialVar_ContestCategory); } gSpecialVar_Result = eligibility; @@ -2323,7 +2334,7 @@ void GetContestMonConditionRanking(void) for (i = 0, rank = 0; i < CONTESTANT_COUNT; i++) { - if (gContestMonConditions[gSpecialVar_0x8006] < gContestMonConditions[i]) + if (gContestMonRound1Points[gSpecialVar_0x8006] < gContestMonRound1Points[i]) rank++; } @@ -2332,7 +2343,7 @@ void GetContestMonConditionRanking(void) void GetContestMonCondition(void) { - gSpecialVar_0x8004 = gContestMonConditions[gSpecialVar_0x8006]; + gSpecialVar_0x8004 = gContestMonRound1Points[gSpecialVar_0x8006]; } void GetContestWinnerId(void) @@ -2404,107 +2415,106 @@ void GetContestPlayerId(void) gSpecialVar_0x8004 = gContestPlayerMonIndex; } -void ContestLinkTransfer(u8 taskId) +void ContestLinkTransfer(u8 category) { u8 newTaskId; ScriptContext2_Enable(); - newTaskId = CreateTask(sub_80FC580, 0); - SetTaskFuncWithFollowupFunc(newTaskId, sub_80FC580, sub_80F8508); - gTasks[newTaskId].data[9] = taskId; + newTaskId = CreateTask(Task_LinkContest_Init, 0); + SetTaskFuncWithFollowupFunc(newTaskId, Task_LinkContest_Init, Task_StartCommunication); + gTasks[newTaskId].data[9] = category; } -static void sub_80F8508(u8 taskId) +static void Task_StartCommunication(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) { - sub_80DA8C8(gContestMonPartyIndex); - SetTaskFuncWithFollowupFunc(taskId, sub_80FC6BC, sub_80F8568); + CreateContestMonFromParty(gContestMonPartyIndex); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonsRS, Task_StartCommunicateRngRS); } else { - sub_80DA8C8(gContestMonPartyIndex); - gTasks[taskId].func = sub_81D9DE4; + CreateContestMonFromParty(gContestMonPartyIndex); + gTasks[taskId].func = Task_LinkContest_StartCommunicationEm; } } -static void sub_80F8568(u8 taskId) +static void Task_StartCommunicateRngRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC804, sub_80F8584); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRngRS, Task_StartCommunicateLeaderIdsRS); } -static void sub_80F8584(u8 taskId) +static void Task_StartCommunicateLeaderIdsRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FCE48, sub_80F85A0); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateLeaderIdsRS, Task_StartCommunicateCategoryRS); } -static void sub_80F85A0(u8 taskId) +static void Task_StartCommunicateCategoryRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC894, sub_80F85BC); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateCategoryRS, Task_LinkContest_SetUpContestRS); } -static void sub_80F85BC(u8 taskId) +static void Task_LinkContest_SetUpContestRS(u8 taskId) { u8 i; - u8 sp0[4]; - u8 sp4[4]; + u8 categories[CONTESTANT_COUNT]; + u8 leaderIds[CONTESTANT_COUNT]; - memset(sp0, 0, sizeof(sp0)); - memset(sp4, 0, sizeof(sp4)); + memset(categories, 0, sizeof(categories)); + memset(leaderIds, 0, sizeof(leaderIds)); for (i = 0; i < gNumLinkContestPlayers; i++) - sp0[i] = gTasks[taskId].data[i + 1]; + categories[i] = gTasks[taskId].data[i + 1]; - for (i = 0; i < gNumLinkContestPlayers;) - { - i++; - if (i >= gNumLinkContestPlayers || sp0[0] != sp0[i]) - break; - } + // Ensure all players are doing the same category + for (i = 0; i < gNumLinkContestPlayers && categories[0] == categories[i]; i++) + ; if (i == gNumLinkContestPlayers) - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; // Category choices the same else - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; // Category choices differ for (i = 0; i < gNumLinkContestPlayers; i++) - sp4[i] = gTasks[taskId].data[i + 5]; + leaderIds[i] = gTasks[taskId].data[i + 5]; - gUnknown_02039F2B = sub_80F86E0(sp4); - sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_80F86B8); + gContestLinkLeaderIndex = LinkContest_GetLeaderIndex(leaderIds); + CalculateRound1Points(gSpecialVar_ContestCategory); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, Task_LinkContest_CalculateTurnOrderRS); } -static void sub_80F86B8(u8 taskId) +static void Task_LinkContest_CalculateTurnOrderRS(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, Task_LinkContest_FinalizeConnection); } -u8 sub_80F86E0(u8 *arg0) +u8 LinkContest_GetLeaderIndex(u8 *ids) { int i; - u8 result = 0; + u8 leaderIdx = 0; for (i = 1; i < gNumLinkContestPlayers; i++) { - if (arg0[result] < arg0[i]) - result = i; + if (ids[leaderIdx] < ids[i]) + leaderIdx = i; } - return result; + return leaderIdx; } -void sub_80F8714(u8 taskId) +void Task_LinkContest_FinalizeConnection(u8 taskId) { int i; - if (gSpecialVar_0x8004 == 1) + if (gSpecialVar_0x8004 == TRUE) { + // Link partner data doesn't agree, disconnect if (IsLinkTaskFinished()) - gTasks[taskId].func = sub_80F878C; + gTasks[taskId].func = Task_LinkContest_Disconnect; } else { + // Succesfully connected for (i = 0; i < CONTESTANT_COUNT; i++) StringGetEnd10(gContestMons[i].nickname); @@ -2515,13 +2525,13 @@ void sub_80F8714(u8 taskId) } } -static void sub_80F878C(u8 taskId) +static void Task_LinkContest_Disconnect(u8 taskId) { - sub_800AC34(); - gTasks[taskId].func = sub_80F87B4; + SetCloseLinkCallback(); + gTasks[taskId].func = Task_LinkContest_WaitDisconnect; } -static void sub_80F87B4(u8 taskId) +static void Task_LinkContest_WaitDisconnect(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { @@ -2530,3 +2540,479 @@ static void sub_80F87B4(u8 taskId) EnableBothScriptContexts(); } } + +void SetContestTrainerGfxIds(void) +{ + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_0 - VARS_START] = gContestMons[0].trainerGfxId; + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_1 - VARS_START] = gContestMons[1].trainerGfxId; + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; +} + +// Unused +void sub_80F8814(void) +{ + u16 var1; + u8 var0 = gSpecialVar_0x8005; + switch (var0) + { + case 0: + var1 = 3; + break; + case 1: + var1 = 4; + break; + case 2: + var1 = 5; + break; + default: + var1 = 100; + break; + } + + gSpecialVar_0x8004 = var1; +} + +void BufferContestTrainerAndMonNames(void) +{ + BufferContestantTrainerName(); + BufferContestantMonNickname(); + BufferContestantMonSpecies(); +} + +// Unused +void DoesContestCategoryHaveWinner(void) +{ + int contestWinner; + switch (gSpecialVar_ContestCategory) + { + case CONTEST_CATEGORY_COOL: + contestWinner = 8; + break; + case CONTEST_CATEGORY_BEAUTY: + contestWinner = 9; + break; + case CONTEST_CATEGORY_CUTE: + contestWinner = 10; + break; + case CONTEST_CATEGORY_SMART: + contestWinner = 11; + break; + case CONTEST_CATEGORY_TOUGH: + default: + contestWinner = 12; + break; + } + + if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE) + gSpecialVar_0x8004 = FALSE; + else + gSpecialVar_0x8004 = TRUE; +} + +void SaveMuseumContestPainting(void) +{ + sub_80DEDA8(0xFF); +} + +void ShouldReadyContestArtist(void) +{ + if (gContestFinalStandings[gContestPlayerMonIndex] == 0 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER + && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) + { + gSpecialVar_0x8004 = TRUE; + } + else + { + gSpecialVar_0x8004 = FALSE; + } +} + +u8 CountPlayerContestPaintings(void) +{ + int i; + u8 count = 0; + + for (i = 0; i < 5; i++) + { + if (gSaveBlock1Ptr->contestWinners[8 + i].species) + count++; + } + + return count; +} + +// Unused +void sub_80F8970(void) +{ + s16 conditions[CONTESTANT_COUNT]; + int i, j; + s16 condition; + s8 var0; + u8 var2; + u8 r8; + u8 r7; + + for (i = 0; i < CONTESTANT_COUNT; i++) + conditions[i] = gContestMonRound1Points[i]; + + for (i = 0; i < CONTESTANT_COUNT - 1; i++) + { + for (j = CONTESTANT_COUNT - 1; j > i; j--) + { + if (conditions[j - 1] < conditions[j]) + { + int temp; + SWAP(conditions[j], conditions[j - 1], temp) + } + } + } + + condition = conditions[gSpecialVar_0x8006]; + var0 = 0; + r8 = 0; + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (conditions[i] == condition) + { + var0++; + if (i == gSpecialVar_0x8006) + r8 = var0; + } + } + + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (conditions[i] == condition) + break; + } + + r7 = i; + var2 = r8; + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (condition == gContestMonRound1Points[i]) + { + if (var2 == 1) + break; + var2--; + } + } + + StringCopy(gStringVar1, gContestMons[i].nickname); + StringCopy(gStringVar2, gContestMons[i].trainerName); + sub_81DB5AC(gStringVar2); + + if (var0 == 1) + gSpecialVar_0x8006 = r7; + else if (r8 == var0) + gSpecialVar_0x8006 = r7; + else + gSpecialVar_0x8006 = r7 + 4; +} + +static void ExitContestWinnerPainting(void) +{ + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ShowContestWinnerPainting(void) +{ + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = ExitContestWinnerPainting; +} + +void SetLinkContestPlayerGfx(void) +{ + int i; + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + for (i = 0; i < gNumLinkContestPlayers; i++) + { + int version = (u8)gLinkPlayers[i].version; + if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) + { + if (gLinkPlayers[i].gender == MALE) + gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; + else + gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_MAY; + } + } + + VarSet(VAR_OBJ_GFX_ID_0, gContestMons[0].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_1, gContestMons[1].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_2, gContestMons[2].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_3, gContestMons[3].trainerGfxId); + } +} + +void LoadLinkContestPlayerPalettes(void) +{ + int i; + u8 objectEventId; + int version; + struct Sprite *sprite; + static const u8 sContestantLocalIds[CONTESTANT_COUNT] = { 3, 4, 5, 14 }; + + gReservedSpritePaletteCount = 12; + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + for (i = 0; i < gNumLinkContestPlayers; i++) + { + objectEventId = GetObjectEventIdByLocalIdAndMap(sContestantLocalIds[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; + sprite->oam.paletteNum = 6 + i; + version = (u8)gLinkPlayers[i].version; + if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) + { + if (gLinkPlayers[i].gender == MALE) + LoadPalette(gObjectEventPalette33, 0x160 + i * 0x10, 0x20); + else + LoadPalette(gObjectEventPalette34, 0x160 + i * 0x10, 0x20); + } + else + { + if (gLinkPlayers[i].gender == MALE) + LoadPalette(gObjectEventPalette8, 0x160 + i * 0x10, 0x20); + else + LoadPalette(gObjectEventPalette17, 0x160 + i * 0x10, 0x20); + } + } + } +} + +bool8 GiveMonArtistRibbon(void) +{ + u8 hasArtistRibbon; + + hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); + if (!hasArtistRibbon + && gContestFinalStandings[gContestPlayerMonIndex] == 0 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER + && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) + { + hasArtistRibbon = 1; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); + + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 IsContestDebugActive(void) +{ + return FALSE; // gUnknown_0203856C in pokeruby +} + +void ShowContestEntryMonPic(void) +{ + const struct CompressedSpritePalette *palette; + u32 personality, otId; + u16 species; + u8 spriteId; + u8 taskId; + u8 left, top; + + if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) + { + AllocateMonSpritesGfx(); + left = 10; + top = 3; + species = gContestMons[gSpecialVar_0x8006].species; + personality = gContestMons[gSpecialVar_0x8006].personality; + otId = gContestMons[gSpecialVar_0x8006].otId; + taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = species; + if (gSpecialVar_0x8006 == gContestPlayerMonIndex) + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); + else + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); + + palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(species, 1); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0); + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + if (!(gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)) + DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); + } + else + { + DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); + } + + gTasks[taskId].data[2] = spriteId; + gTasks[taskId].data[3] = left; + gTasks[taskId].data[4] = top; + gSprites[spriteId].callback = SpriteCallbackDummy; + gSprites[spriteId].oam.priority = 0; + } +} + +void HideContestEntryMonPic(void) +{ + u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); + if (taskId != 0xFF) + { + gTasks[taskId].data[0]++; + FreeMonSpritesGfx(); + } +} + +static void Task_ShowContestEntryMonPic(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + struct Sprite *sprite; + + switch(task->data[0]) + { + case 0: + task->data[0]++; + break; + case 1: + task->data[5] = CreateWindowFromRect(10, 3, 8, 8); + SetStandardWindowBorderStyle(task->data[5], 1); + task->data[0]++; + break; + case 2: + break; + case 3: + sprite = &gSprites[task->data[2]]; + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); + + if(sprite->oam.affineMode) + FreeOamMatrix(sprite->oam.matrixNum); + + DestroySprite(sprite); + task->data[0]++; + break; + case 4: + ClearToTransparentAndRemoveWindow(gTasks[taskId].data[5]); + DestroyTask(taskId); + break; + } +} + +void GetContestMultiplayerId(void) +{ + if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + && gNumLinkContestPlayers == CONTESTANT_COUNT + && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) + gSpecialVar_Result = GetMultiplayerId(); + else + gSpecialVar_Result = MAX_LINK_PLAYERS; +} + +void GenerateContestRand(void) +{ + u16 random; + u16 *result; + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); + random = gContestRngValue >> 16; + result = &gSpecialVar_Result; + } + else + { + result = &gSpecialVar_Result; + random = Random(); + } + *result = random % *result; +} + +u16 GetContestRand(void) +{ + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); + return gContestRngValue >> 16; +} + +bool8 LinkContestWaitForConnection(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + CreateTask(Task_LinkContestWaitForConnection, 5); + return TRUE; + } + else + { + return FALSE; + } +} + +static void Task_LinkContestWaitForConnection(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (IsLinkTaskFinished()) + { + SetLinkStandbyCallback(); + gTasks[taskId].data[0]++; + } + break; + case 1: + gTasks[taskId].data[0]++; + break; + default: + if (IsLinkTaskFinished() == 1) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } + break; + } +} + +void LinkContestTryShowWirelessIndicator(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + if (gReceivedRemoteLinkPlayers) + { + LoadWirelessStatusIndicatorSpriteGfx(); + CreateWirelessStatusIndicatorSprite(8, 8); + } + } +} + +void LinkContestTryHideWirelessIndicator(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + if (gReceivedRemoteLinkPlayers) + DestroyWirelessStatusIndicatorSprite(); + } +} + +bool8 IsContestWithRSPlayer(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) + return TRUE; + else + return FALSE; +} + +void ClearLinkContestFlags(void) +{ + gLinkContestFlags = 0; +} + +bool8 IsWirelessContest(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + return TRUE; + else + return FALSE; +} diff --git a/src/credits.c b/src/credits.c index 8fc8a1f88..020221f30 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1239,7 +1239,7 @@ void CB2_StartCreditsSequence(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(CreditsVBlankCallback); - m4aSongNumStart(MUS_THANKFOR); + m4aSongNumStart(MUS_CREDITS); SetMainCallback2(CB2_RunCreditsSequence); gUnknown_0203BCE5 = 0; sCreditsData = AllocZeroed(sizeof(struct CreditsData)); diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index 5460ac806..658528210 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -2838,289 +2838,289 @@ const struct ContestEffect gContestEffects[] = { [CONTEST_EFFECT_HIGHLY_APPEALING] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 40, .jam = 0, }, [CONTEST_EFFECT_USER_MORE_EASILY_STARTLED] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 60, .jam = 0, }, [CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 80, .jam = 0, }, [CONTEST_EFFECT_REPETITION_NOT_BORING] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE_ONCE] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_USER_LESS_EASILY_STARTLED] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_STARTLE_FRONT_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 30, .jam = 20, }, [CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_STARTLE_PREV_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 20, .jam = 30, }, [CONTEST_EFFECT_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 20, }, [CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 10, .jam = 40, }, [CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 10, .jam = 30, }, [CONTEST_EFFECT_STARTLE_PREV_MON_2] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 30, .jam = 20, }, [CONTEST_EFFECT_STARTLE_PREV_MONS_2] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 40, .jam = 40, }, [CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_BETTER_IF_FIRST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_LAST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_WHEN_LATER] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_SAME_TYPE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_DIFF_TYPE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_NEXT_APPEAL_EARLIER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_NEXT_APPEAL_LATER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_DONT_EXCITE_AUDIENCE] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 8fa746725..6de931ef2 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -100,7 +100,44 @@ #define CONTEST_OPPONENT_TREY 94 #define CONTEST_OPPONENT_LANE 95 -const struct ContestWinner gUnknown_08587FA4[] = +// All contest opponents have a common set of AI flags (which contains all of the actually +// useful AI scripts, as well as some dummys) and a random combination of 2-3 dummy flags. +// Seems that like the battle AI they had more plans for this than what ended up in the final game +#define CONTEST_AI_SET_1 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_2 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_3 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_4 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_5 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_6 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_7 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_8 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_9 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_11 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_22 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_10 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_11 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_12 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_13 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_14 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_15 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_16 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_17 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_23 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_18 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_19 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_20 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_21 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_25) + +const struct ContestWinner gDefaultContestWinners[] = { { .personality = 0, @@ -183,7 +220,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POOCHY"), .trainerName = _("JIMMY"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -203,7 +240,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 3, .tough = 4, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -212,7 +248,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MUSILLE"), .trainerName = _("EDITH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -232,7 +268,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 2, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -241,7 +276,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUSTER"), .trainerName = _("EVAN"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -261,7 +296,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 12, .tough = 4, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -270,7 +304,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DOTS"), .trainerName = _("KELSEY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -290,7 +324,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 7, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -299,7 +332,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TATAY"), .trainerName = _("MADISON"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -319,7 +352,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 4, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -328,7 +360,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NINDA"), .trainerName = _("RAYMOND"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -348,7 +380,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 7, .tough = 8, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -357,7 +388,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SMISH"), .trainerName = _("GRANT"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -377,7 +408,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 2, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -386,7 +416,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLEAL"), .trainerName = _("PAIGE"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -406,7 +436,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 10, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -415,7 +444,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLOKTH"), .trainerName = _("ALEC"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -435,7 +464,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 18, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -444,7 +472,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WHIRIS"), .trainerName = _("SYDNEY"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -464,7 +492,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 7, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -473,7 +500,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MAHITA"), .trainerName = _("MORRIS"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x8010FFF, + .aiFlags = CONTEST_AI_SET_B, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -493,7 +520,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 8, .tough = 1, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -502,7 +528,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RONAR"), .trainerName = _("MARIAH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x8008FFF, + .aiFlags = CONTEST_AI_SET_C, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -522,7 +548,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 2, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -531,7 +556,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BATRO"), .trainerName = _("RUSSELL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x90004FFF, + .aiFlags = CONTEST_AI_SET_D, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -551,7 +576,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 10, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -560,7 +584,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GULIN"), .trainerName = _("MELANIE"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x40002FFF, + .aiFlags = CONTEST_AI_SET_E, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -580,7 +604,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 5, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -589,7 +612,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RIKELEC"), .trainerName = _("CHANCE"), .trainerGfxId = OBJ_EVENT_GFX_RICH_BOY, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -609,7 +632,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 1, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -618,7 +640,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BULBY"), .trainerName = _("AGATHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -638,7 +660,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 4, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -647,7 +668,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -667,7 +688,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 4, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -676,7 +696,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PIDEOT"), .trainerName = _("KAY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -696,7 +716,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 3, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -705,7 +724,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DIGLE"), .trainerName = _("CALE"), .trainerGfxId = OBJ_EVENT_GFX_HIKER, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -725,7 +744,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 10, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -734,7 +752,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WAGIL"), .trainerName = _("CAITLIN"), .trainerGfxId = OBJ_EVENT_GFX_TUBER_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -754,7 +772,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 3, .tough = 10, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -763,7 +780,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TOTDIL"), .trainerName = _("COLBY"), .trainerGfxId = OBJ_EVENT_GFX_NINJA_BOY, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -783,7 +800,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 5, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -792,7 +808,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BALEDY"), .trainerName = _("KYLIE"), .trainerGfxId = OBJ_EVENT_GFX_BEAUTY, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -812,7 +828,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 6, .tough = 2, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -821,7 +836,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BIRDLY"), .trainerName = _("LIAM"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -841,7 +856,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 3, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -850,7 +864,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TARVITAR"), .trainerName = _("MILO"), .trainerGfxId = OBJ_EVENT_GFX_MANIAC, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -870,7 +884,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 8, .tough = 10, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -879,7 +892,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RELIA"), .trainerName = _("KARINA"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0x24000FFF, + .aiFlags = CONTEST_AI_SET_10, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -899,7 +912,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 20, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -908,7 +920,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUODO"), .trainerName = _("BOBBY"), .trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -928,7 +940,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 85, .tough = 35, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -937,7 +948,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PINCHIN"), .trainerName = _("CLAIRE"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -957,7 +968,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 25, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -966,7 +976,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NACAC"), .trainerName = _("WILLIE"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -986,7 +996,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 65, .tough = 25, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -995,7 +1004,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHRAND"), .trainerName = _("CASSIDY"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x10400FFF, + .aiFlags = CONTEST_AI_SET_13, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1015,7 +1024,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 100, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1024,7 +1032,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TOYBAL"), .trainerName = _("MORGAN"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x8200FFF, + .aiFlags = CONTEST_AI_SET_14, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1044,7 +1052,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 35, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1053,7 +1060,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHAMCHAM"), .trainerName = _("SUMMER"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x10100FFF, + .aiFlags = CONTEST_AI_SET_15, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1073,7 +1080,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 40, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1082,7 +1088,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SPININ"), .trainerName = _("MILES"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1102,7 +1108,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 25, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1111,7 +1116,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SWABY"), .trainerName = _("AUDREY"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0xA0040FFF, + .aiFlags = CONTEST_AI_SET_17, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1131,7 +1136,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 25, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1140,7 +1144,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POINKER"), .trainerName = _("AVERY"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1160,7 +1164,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 30, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1169,7 +1172,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KECON"), .trainerName = _("ARIANA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1189,7 +1192,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 35, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1198,7 +1200,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GOLDEN"), .trainerName = _("ASHTON"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1218,7 +1220,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 25, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1227,7 +1228,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BOBOACH"), .trainerName = _("SANDRA"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1247,7 +1248,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 15, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1256,7 +1256,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CORPY"), .trainerName = _("CARSON"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x8002FFF, + .aiFlags = CONTEST_AI_SET_1B, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1276,7 +1276,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 60, .tough = 20, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1285,7 +1284,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TADO"), .trainerName = _("KATRINA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x8001FFF, + .aiFlags = CONTEST_AI_SET_1C, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1305,7 +1304,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 15, .tough = 75, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1314,7 +1312,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BROWLO"), .trainerName = _("LUKE"), .trainerGfxId = OBJ_EVENT_GFX_FAT_MAN, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1334,7 +1332,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 20, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1343,7 +1340,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FETCHIN"), .trainerName = _("RAUL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1363,7 +1360,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1372,7 +1368,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SEELEY"), .trainerName = _("JADA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1392,7 +1388,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1401,7 +1396,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DROWZIN"), .trainerName = _("ZEEK"), .trainerGfxId = OBJ_EVENT_GFX_PSYCHIC_M, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1421,7 +1416,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 45, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1430,7 +1424,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITEMON"), .trainerName = _("DIEGO"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1450,7 +1444,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 45, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1459,7 +1452,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BLISS"), .trainerName = _("ALIYAH"), .trainerGfxId = OBJ_EVENT_GFX_TEALA, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1479,7 +1472,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1488,7 +1480,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KIDLEK"), .trainerName = _("NATALIA"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1508,7 +1500,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 25, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1517,7 +1508,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SNUBBINS"), .trainerName = _("DEVIN"), .trainerGfxId = OBJ_EVENT_GFX_GENTLEMAN, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1537,7 +1528,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1546,7 +1536,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DREAVIS"), .trainerName = _("TYLOR"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1566,7 +1556,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 45, .tough = 20, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1575,7 +1564,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LAIRN"), .trainerName = _("RONNIE"), .trainerGfxId = OBJ_EVENT_GFX_HIKER, - .aiChecks = 0x84000FFF, + .aiFlags = CONTEST_AI_SET_1D, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1595,7 +1584,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 100, .tough = 90, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1604,7 +1592,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1624,7 +1612,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 70, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1633,7 +1620,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NINAS"), .trainerName = _("ELIAS"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1653,7 +1640,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 70, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1662,7 +1648,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WELOW"), .trainerName = _("JADE"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1682,7 +1668,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 40, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1691,7 +1676,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("YENA"), .trainerName = _("FRANCIS"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1711,7 +1696,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 70, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1720,7 +1704,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TIFLY"), .trainerName = _("ALISHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x80200FFF, + .aiFlags = CONTEST_AI_SET_1E, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1740,7 +1724,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 100, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1749,7 +1732,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KINGSEA"), .trainerName = _("SAUL"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80100FFF, + .aiFlags = CONTEST_AI_SET_1F, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1769,7 +1752,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 90, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1778,7 +1760,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CASTER"), .trainerName = _("FELICIA"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1798,7 +1780,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 65, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1807,7 +1788,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHOKEM"), .trainerName = _("EMILIO"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80040FFF, + .aiFlags = CONTEST_AI_SET_20, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1827,7 +1808,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 60, .tough = 50, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1836,7 +1816,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOMBE"), .trainerName = _("KARLA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1856,7 +1836,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 45, .tough = 70, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1865,7 +1844,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("VIPES"), .trainerName = _("DARRYL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1885,7 +1864,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 100, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1894,7 +1872,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MERAIL"), .trainerName = _("SELENA"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1914,7 +1892,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 30, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1923,7 +1900,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KARPAG"), .trainerName = _("NOEL"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1943,7 +1920,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1952,7 +1928,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LUNONE"), .trainerName = _("LACEY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x80002FFF, + .aiFlags = CONTEST_AI_SET_21, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1972,7 +1948,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 50, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1981,7 +1956,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("ABSO"), .trainerName = _("CORBIN"), .trainerGfxId = OBJ_EVENT_GFX_MANIAC, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2001,7 +1976,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 35, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2010,7 +1984,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2030,7 +2004,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 100, .tough = 80, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2039,7 +2012,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CUBIN"), .trainerName = _("COLTIN"), .trainerGfxId = OBJ_EVENT_GFX_MAN_4, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2059,7 +2032,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 100, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2068,7 +2040,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITMON"), .trainerName = _("ELLIE"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2088,7 +2060,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 100, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2097,7 +2068,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SURTLE"), .trainerName = _("MARCUS"), .trainerGfxId = OBJ_EVENT_GFX_SAILOR, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2117,7 +2088,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 95, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2126,7 +2096,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KHANKAN"), .trainerName = _("KIARA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_3, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2146,7 +2116,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 100, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2155,7 +2124,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PINOC"), .trainerName = _("BRYCE"), .trainerGfxId = OBJ_EVENT_GFX_BUG_CATCHER, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2175,7 +2144,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 80, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2184,7 +2152,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DILTOT"), .trainerName = _("JAMIE"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2204,7 +2172,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 110, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2213,7 +2180,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DOOMOND"), .trainerName = _("JORGE"), .trainerGfxId = OBJ_EVENT_GFX_GENTLEMAN, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2233,7 +2200,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 80, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2242,7 +2208,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MILKAN"), .trainerName = _("DEVON"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_M, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2262,7 +2228,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 40, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2271,7 +2236,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RADOS"), .trainerName = _("JUSTINA"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0x84000FFF, + .aiFlags = CONTEST_AI_SET_1D, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2291,7 +2256,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2300,7 +2264,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOUDERD"), .trainerName = _("RALPH"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2320,7 +2284,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2329,7 +2292,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SITTY"), .trainerName = _("ROSA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2349,7 +2312,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 185, .tough = 60, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2358,7 +2320,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLING"), .trainerName = _("KEATON"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2378,7 +2340,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 110, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2387,7 +2348,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TARIA"), .trainerName = _("MAYRA"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2407,7 +2368,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 90, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2416,7 +2376,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LIRKI"), .trainerName = _("LAMAR"), .trainerGfxId = OBJ_EVENT_GFX_RICH_BOY, - .aiChecks = 0x80200FFF, + .aiFlags = CONTEST_AI_SET_1E, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2436,7 +2396,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 230, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2445,7 +2404,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BLOSSOM"), .trainerName = _("AUBREY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x80100FFF, + .aiFlags = CONTEST_AI_SET_1F, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2465,7 +2424,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 40, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2474,7 +2432,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EYESAB"), .trainerName = _("NIGEL"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2494,7 +2452,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2503,7 +2460,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("UTAN"), .trainerName = _("CAMILLE"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80040FFF, + .aiFlags = CONTEST_AI_SET_20, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2523,7 +2480,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 170, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2532,7 +2488,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PEDOS"), .trainerName = _("DEON"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2552,7 +2508,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 100, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2561,7 +2516,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LUVIS"), .trainerName = _("JANELLE"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2581,7 +2536,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 190, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2590,7 +2544,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HEROSS"), .trainerName = _("HEATH"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2610,7 +2564,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 240, .tough = 140, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2619,7 +2572,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RODLECT"), .trainerName = _("SASHA"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2639,7 +2592,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 50, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2648,7 +2600,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHUPY"), .trainerName = _("FRANKIE"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x80002FFF, + .aiFlags = CONTEST_AI_SET_21, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2668,7 +2620,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 115, .tough = 120, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2677,7 +2628,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WOBET"), .trainerName = _("HELEN"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2697,7 +2648,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 220, .tough = 210, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2706,7 +2656,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GAREN"), .trainerName = _("CAMILE"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2726,7 +2676,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 180, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2735,7 +2684,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GONPOR"), .trainerName = _("MARTIN"), .trainerGfxId = OBJ_EVENT_GFX_SCIENTIST_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2755,7 +2704,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 130, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2764,7 +2712,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DRITE"), .trainerName = _("SERGIO"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2784,7 +2732,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 120, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2793,7 +2740,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MEOWY"), .trainerName = _("KAILEY"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2813,7 +2760,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 170, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2822,7 +2768,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NYX"), .trainerName = _("PERLA"), .trainerGfxId = OBJ_EVENT_GFX_BEAUTY, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2842,7 +2788,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 120, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2851,7 +2796,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GEPITO"), .trainerName = _("CLARA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2871,7 +2816,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 120, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2880,7 +2824,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SPEON"), .trainerName = _("JAKOB"), .trainerGfxId = OBJ_EVENT_GFX_PSYCHIC_M, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2900,7 +2844,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2909,7 +2852,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLOWGO"), .trainerName = _("TREY"), .trainerGfxId = OBJ_EVENT_GFX_SAILOR, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2929,7 +2872,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 110, .tough = 170, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2938,7 +2880,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("URSING"), .trainerName = _("LANE"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2958,7 +2900,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 190, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF } diff --git a/src/data/field_effects/field_effect_object_template_pointers.h b/src/data/field_effects/field_effect_object_template_pointers.h index de39e6db3..41d6271bf 100755 --- a/src/data/field_effects/field_effect_object_template_pointers.h +++ b/src/data/field_effects/field_effect_object_template_pointers.h @@ -8,70 +8,70 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Ash; const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob; const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow; const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash; const struct SpriteTemplate gFieldEffectObjectTemplate_Splash; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash; const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown20; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21; -const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand; +const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing; +const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; +const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle; const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints; const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise; const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise; const struct SpriteTemplate gFieldEffectObjectTemplate_Bird; const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks; const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile; const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh; -const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp; +const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff; +const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch; const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35; +const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle; const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza; const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { - &gFieldEffectObjectTemplate_ShadowSmall, - &gFieldEffectObjectTemplate_ShadowMedium, - &gFieldEffectObjectTemplate_ShadowLarge, - &gFieldEffectObjectTemplate_ShadowExtraLarge, - &gFieldEffectObjectTemplate_TallGrass, - &gFieldEffectObjectTemplate_Ripple, - &gFieldEffectObjectTemplate_Ash, - &gFieldEffectObjectTemplate_SurfBlob, - &gFieldEffectObjectTemplate_Arrow, - &gFieldEffectObjectTemplate_GroundImpactDust, - &gFieldEffectObjectTemplate_BikeHopTallGrass, - &gFieldEffectObjectTemplate_SandFootprints, - &gFieldEffectObjectTemplate_BikeHopBigSplash, - &gFieldEffectObjectTemplate_Splash, - &gFieldEffectObjectTemplate_BikeHopSmallSplash, - &gFieldEffectObjectTemplate_LongGrass, - &gFieldEffectObjectTemplate_Unknown16, - &gFieldEffectObjectTemplate_Unknown17, - &gFieldEffectObjectTemplate_Unknown18, - &gFieldEffectObjectTemplate_Unknown19, - &gFieldEffectObjectTemplate_Unknown20, - &gFieldEffectObjectTemplate_Unknown21, - &gFieldEffectObjectTemplate_BerryTreeGrowthSparkle, - &gFieldEffectObjectTemplate_DeepSandFootprints, - &gFieldEffectObjectTemplate_TreeDisguise, - &gFieldEffectObjectTemplate_MountainDisguise, - &gFieldEffectObjectTemplate_Bird, - &gFieldEffectObjectTemplate_BikeTireTracks, - &gFieldEffectObjectTemplate_SandDisguisePlaceholder, - &gFieldEffectObjectTemplate_Unknown29, - &gFieldEffectObjectTemplate_ShortGrass, - &gFieldEffectObjectTemplate_HotSpringsWater, - &gFieldEffectObjectTemplate_JumpOutOfAsh, - &gFieldEffectObjectTemplate_LavaridgeGymWarp, - &gFieldEffectObjectTemplate_Bubbles, - &gFieldEffectObjectTemplate_Unknown35, - &gFieldEffectObjectTemplate_Rayquaza, + [FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall, + [FLDEFFOBJ_SHADOW_M] = &gFieldEffectObjectTemplate_ShadowMedium, + [FLDEFFOBJ_SHADOW_L] = &gFieldEffectObjectTemplate_ShadowLarge, + [FLDEFFOBJ_SHADOW_XL] = &gFieldEffectObjectTemplate_ShadowExtraLarge, + [FLDEFFOBJ_TALL_GRASS] = &gFieldEffectObjectTemplate_TallGrass, + [FLDEFFOBJ_RIPPLE] = &gFieldEffectObjectTemplate_Ripple, + [FLDEFFOBJ_ASH] = &gFieldEffectObjectTemplate_Ash, + [FLDEFFOBJ_SURF_BLOB] = &gFieldEffectObjectTemplate_SurfBlob, + [FLDEFFOBJ_ARROW] = &gFieldEffectObjectTemplate_Arrow, + [FLDEFFOBJ_GROUND_IMPACT_DUST] = &gFieldEffectObjectTemplate_GroundImpactDust, + [FLDEFFOBJ_JUMP_TALL_GRASS] = &gFieldEffectObjectTemplate_JumpTallGrass, + [FLDEFFOBJ_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_SandFootprints, + [FLDEFFOBJ_JUMP_BIG_SPLASH] = &gFieldEffectObjectTemplate_JumpBigSplash, + [FLDEFFOBJ_SPLASH] = &gFieldEffectObjectTemplate_Splash, + [FLDEFFOBJ_JUMP_SMALL_SPLASH] = &gFieldEffectObjectTemplate_JumpSmallSplash, + [FLDEFFOBJ_LONG_GRASS] = &gFieldEffectObjectTemplate_LongGrass, + [FLDEFFOBJ_JUMP_LONG_GRASS] = &gFieldEffectObjectTemplate_JumpLongGrass, + [FLDEFFOBJ_UNUSED_GRASS] = &gFieldEffectObjectTemplate_UnusedGrass, + [FLDEFFOBJ_UNUSED_GRASS_2] = &gFieldEffectObjectTemplate_UnusedGrass2, + [FLDEFFOBJ_UNUSED_SAND] = &gFieldEffectObjectTemplate_UnusedSand, + [FLDEFFOBJ_WATER_SURFACING] = &gFieldEffectObjectTemplate_WaterSurfacing, + [FLDEFFOBJ_REFLECTION_DISTORTION] = &gFieldEffectObjectTemplate_ReflectionDistortion, + [FLDEFFOBJ_SPARKLE] = &gFieldEffectObjectTemplate_Sparkle, + [FLDEFFOBJ_DEEP_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_DeepSandFootprints, + [FLDEFFOBJ_TREE_DISGUISE] = &gFieldEffectObjectTemplate_TreeDisguise, + [FLDEFFOBJ_MOUNTAIN_DISGUISE] = &gFieldEffectObjectTemplate_MountainDisguise, + [FLDEFFOBJ_BIRD] = &gFieldEffectObjectTemplate_Bird, + [FLDEFFOBJ_BIKE_TIRE_TRACKS] = &gFieldEffectObjectTemplate_BikeTireTracks, + [FLDEFFOBJ_SAND_DISGUISE] = &gFieldEffectObjectTemplate_SandDisguisePlaceholder, + [FLDEFFOBJ_SAND_PILE] = &gFieldEffectObjectTemplate_SandPile, + [FLDEFFOBJ_SHORT_GRASS] = &gFieldEffectObjectTemplate_ShortGrass, + [FLDEFFOBJ_HOT_SPRINGS_WATER] = &gFieldEffectObjectTemplate_HotSpringsWater, + [FLDEFFOBJ_ASH_PUFF] = &gFieldEffectObjectTemplate_AshPuff, + [FLDEFFOBJ_ASH_LAUNCH] = &gFieldEffectObjectTemplate_AshLaunch, + [FLDEFFOBJ_BUBBLES] = &gFieldEffectObjectTemplate_Bubbles, + [FLDEFFOBJ_SMALL_SPARKLE] = &gFieldEffectObjectTemplate_SmallSparkle, + [FLDEFFOBJ_RAYQUAZA] = &gFieldEffectObjectTemplate_Rayquaza, }; diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h index 65f35107d..1626b9f32 100755 --- a/src/data/field_effects/field_effect_objects.h +++ b/src/data/field_effects/field_effect_objects.h @@ -1,43 +1,74 @@ -const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, 0x1004}; +const struct SpritePalette gSpritePalette_GeneralFieldEffect0 = {gFieldEffectObjectPalette0, FLDEFF_PAL_TAG_GENERAL_0}; +const struct SpritePalette gSpritePalette_GeneralFieldEffect1 = {gFieldEffectObjectPalette1, FLDEFF_PAL_TAG_GENERAL_1}; -const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, 0x1005}; - -const union AnimCmd gFieldEffectObjectImageAnim_850C9D0[] = +static const union AnimCmd sAnim_Shadow[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Shadow[] = +static const union AnimCmd *const sAnimTable_Shadow[] = { - gFieldEffectObjectImageAnim_850C9D0, + sAnim_Shadow, }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowSmall[] = { +static const struct SpriteFrameImage sPicTable_ShadowSmall[] = { obj_frame_tiles(gFieldEffectObjectPic_ShadowSmall), }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowMedium[] = { +static const struct SpriteFrameImage sPicTable_ShadowMedium[] = { obj_frame_tiles(gFieldEffectObjectPic_ShadowMedium), }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowLarge[] = { +static const struct SpriteFrameImage sPicTable_ShadowLarge[] = { obj_frame_tiles(gFieldEffectObjectPic_ShadowLarge), }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowExtraLarge[] = { +static const struct SpriteFrameImage sPicTable_ShadowExtraLarge[] = { obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge), }; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_8x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_8x8, + .anims = sAnimTable_Shadow, + .images = sPicTable_ShadowSmall, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateShadowFieldEffect, +}; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_Shadow, + .images = sPicTable_ShadowMedium, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateShadowFieldEffect, +}; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_32x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_32x8, + .anims = sAnimTable_Shadow, + .images = sPicTable_ShadowLarge, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateShadowFieldEffect, +}; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_64x32, + .anims = sAnimTable_Shadow, + .images = sPicTable_ShadowExtraLarge, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateShadowFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_TallGrass[] = { +static const struct SpriteFrameImage sPicTable_TallGrass[] = { overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 2), @@ -45,7 +76,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_TallGrass[] = { overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 4), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CA84[] = +static const union AnimCmd sAnim_TallGrass[] = { ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(2, 10), @@ -55,14 +86,22 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CA84[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_TallGrass[] = +static const union AnimCmd *const sAnimTable_TallGrass[] = { - gFieldEffectObjectImageAnim_850CA84, + sAnim_TallGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_TallGrass, gFieldEffectObjectPicTable_TallGrass, gDummySpriteAffineAnimTable, UpdateTallGrassFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_TallGrass, + .images = sPicTable_TallGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateTallGrassFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Ripple[] = { +static const struct SpriteFrameImage sPicTable_Ripple[] = { overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 2), @@ -70,7 +109,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Ripple[] = { overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 4), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CAE0[] = +static const union AnimCmd sAnim_Ripple[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(1, 9), @@ -83,14 +122,22 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CAE0[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ripple[] = +static const union AnimCmd *const sAnimTable_Ripple[] = { - gFieldEffectObjectImageAnim_850CAE0, + sAnim_Ripple, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ripple, gFieldEffectObjectPicTable_Ripple, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_Ripple, + .images = sPicTable_Ripple, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Ash[] = { +static const struct SpriteFrameImage sPicTable_Ash[] = { overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 2), @@ -98,7 +145,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Ash[] = { overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 4), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CB48[] = +static const union AnimCmd sAnim_Ash[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(1, 12), @@ -108,54 +155,70 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CB48[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ash[] = +static const union AnimCmd *const sAnimTable_Ash[] = { - gFieldEffectObjectImageAnim_850CB48, + sAnim_Ash, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ash, gFieldEffectObjectPicTable_Ash, gDummySpriteAffineAnimTable, UpdateAshFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_Ash, + .images = sPicTable_Ash, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateAshFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_SurfBlob[] = { +static const struct SpriteFrameImage sPicTable_SurfBlob[] = { overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 0), overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 1), overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 2), }; -const union AnimCmd gSurfBlobAnim_FaceSouth[] = +static const union AnimCmd sSurfBlobAnim_FaceSouth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gSurfBlobAnim_FaceNorth[] = +static const union AnimCmd sSurfBlobAnim_FaceNorth[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gSurfBlobAnim_FaceWest[] = +static const union AnimCmd sSurfBlobAnim_FaceWest[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gSurfBlobAnim_FaceEast[] = +static const union AnimCmd sSurfBlobAnim_FaceEast[] = { ANIMCMD_FRAME(2, 1, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_SurfBlob[] = +static const union AnimCmd *const sAnimTable_SurfBlob[] = { - gSurfBlobAnim_FaceSouth, - gSurfBlobAnim_FaceNorth, - gSurfBlobAnim_FaceWest, - gSurfBlobAnim_FaceEast, + sSurfBlobAnim_FaceSouth, + sSurfBlobAnim_FaceNorth, + sSurfBlobAnim_FaceWest, + sSurfBlobAnim_FaceEast, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, UpdateSurfBlobFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_32x32, + .anims = sAnimTable_SurfBlob, + .images = sPicTable_SurfBlob, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateSurfBlobFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Arrow[] = { +static const struct SpriteFrameImage sPicTable_Arrow[] = { overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 2), @@ -166,51 +229,59 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Arrow[] = { overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 7), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CC1C[] = +static const union AnimCmd sArrowAnim_South[] = { ANIMCMD_FRAME(3, 32), ANIMCMD_FRAME(7, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CC28[] = +static const union AnimCmd sArrowAnim_North[] = { ANIMCMD_FRAME(0, 32), ANIMCMD_FRAME(4, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CC34[] = +static const union AnimCmd sArrowAnim_West[] = { ANIMCMD_FRAME(1, 32), ANIMCMD_FRAME(5, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CC40[] = +static const union AnimCmd sArrowAnim_East[] = { ANIMCMD_FRAME(2, 32), ANIMCMD_FRAME(6, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Arrow[] = +static const union AnimCmd *const sAnimTable_Arrow[] = { - gFieldEffectObjectImageAnim_850CC1C, - gFieldEffectObjectImageAnim_850CC28, - gFieldEffectObjectImageAnim_850CC34, - gFieldEffectObjectImageAnim_850CC40, + sArrowAnim_South, + sArrowAnim_North, + sArrowAnim_West, + sArrowAnim_East, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Arrow, gFieldEffectObjectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_Arrow, + .images = sPicTable_Arrow, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_GroundImpactDust[] = { +static const struct SpriteFrameImage sPicTable_GroundImpactDust[] = { overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 0), overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 1), overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 2), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CC8C[] = +static const union AnimCmd sAnim_GroundImpactDust[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -218,21 +289,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CC8C[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] = +static const union AnimCmd *const sAnimTable_GroundImpactDust[] = { - gFieldEffectObjectImageAnim_850CC8C, + sAnim_GroundImpactDust, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_GroundImpactDust, + .images = sPicTable_GroundImpactDust, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateJumpImpactEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 2), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 3), +static const struct SpriteFrameImage sPicTable_JumpTallGrass[] = { + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 2), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = +static const union AnimCmd sAnim_JumpTallGrass[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -241,171 +320,203 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] = +static const union AnimCmd *const sAnimTable_JumpTallGrass[] = { - gFieldEffectObjectImageAnim_850CCD8, + sAnim_JumpTallGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_JumpTallGrass, + .images = sPicTable_JumpTallGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateJumpImpactEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = { +static const struct SpriteFrameImage sPicTable_SandFootprints[] = { overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 1), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD18[] = +static const union AnimCmd sSandFootprintsAnim_South[] = { ANIMCMD_FRAME(0, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD20[] = +static const union AnimCmd sSandFootprintsAnim_North[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD28[] = +static const union AnimCmd sSandFootprintsAnim_West[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD30[] = +static const union AnimCmd sSandFootprintsAnim_East[] = { ANIMCMD_FRAME(1, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandFootprints[] = +static const union AnimCmd *const sAnimTable_SandFootprints[] = { - gFieldEffectObjectImageAnim_850CD18, - gFieldEffectObjectImageAnim_850CD18, - gFieldEffectObjectImageAnim_850CD20, - gFieldEffectObjectImageAnim_850CD28, - gFieldEffectObjectImageAnim_850CD30, + sSandFootprintsAnim_South, + sSandFootprintsAnim_South, + sSandFootprintsAnim_North, + sSandFootprintsAnim_West, + sSandFootprintsAnim_East, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_SandFootprints, + .images = sPicTable_SandFootprints, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateFootprintsTireTracksFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_DeepSandFootprints[] = { +static const struct SpriteFrameImage sPicTable_DeepSandFootprints[] = { overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 1), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD74[] = +static const union AnimCmd sDeepSandFootprintsAnim_South[] = { ANIMCMD_FRAME(0, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD7C[] = +static const union AnimCmd sDeepSandFootprintsAnim_North[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD84[] = +static const union AnimCmd sDeepSandFootprintsAnim_West[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CD8C[] = +static const union AnimCmd sDeepSandFootprintsAnim_East[] = { ANIMCMD_FRAME(1, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_DeepSandFootprints[] = +static const union AnimCmd *const sAnimTable_DeepSandFootprints[] = { - gFieldEffectObjectImageAnim_850CD74, - gFieldEffectObjectImageAnim_850CD74, - gFieldEffectObjectImageAnim_850CD7C, - gFieldEffectObjectImageAnim_850CD84, - gFieldEffectObjectImageAnim_850CD8C, + sDeepSandFootprintsAnim_South, + sDeepSandFootprintsAnim_South, + sDeepSandFootprintsAnim_North, + sDeepSandFootprintsAnim_West, + sDeepSandFootprintsAnim_East, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_DeepSandFootprints, + .images = sPicTable_DeepSandFootprints, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateFootprintsTireTracksFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeTireTracks[] = { +static const struct SpriteFrameImage sPicTable_BikeTireTracks[] = { overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 2), overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CDE0[] = +static const union AnimCmd sBikeTireTracksAnim_South[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CDE8[] = +static const union AnimCmd sBikeTireTracksAnim_North[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CDF0[] = +static const union AnimCmd sBikeTireTracksAnim_West[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CDF8[] = +static const union AnimCmd sBikeTireTracksAnim_East[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CE00[] = +static const union AnimCmd sBikeTireTracksAnim_SECornerTurn[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CE08[] = +static const union AnimCmd sBikeTireTracksAnim_SWCornerTurn[] = { ANIMCMD_FRAME(0, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CE10[] = +static const union AnimCmd sBikeTireTracksAnim_NWCornerTurn[] = { ANIMCMD_FRAME(3, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CE18[] = +static const union AnimCmd sBikeTireTracksAnim_NECornerTurn[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] = +static const union AnimCmd *const sAnimTable_BikeTireTracks[] = { - gFieldEffectObjectImageAnim_850CDE0, - gFieldEffectObjectImageAnim_850CDE0, - gFieldEffectObjectImageAnim_850CDE8, - gFieldEffectObjectImageAnim_850CDF0, - gFieldEffectObjectImageAnim_850CDF8, - gFieldEffectObjectImageAnim_850CE00, - gFieldEffectObjectImageAnim_850CE08, - gFieldEffectObjectImageAnim_850CE10, - gFieldEffectObjectImageAnim_850CE18, + sBikeTireTracksAnim_South, + sBikeTireTracksAnim_South, + sBikeTireTracksAnim_North, + sBikeTireTracksAnim_West, + sBikeTireTracksAnim_East, + sBikeTireTracksAnim_SECornerTurn, + sBikeTireTracksAnim_SWCornerTurn, + sBikeTireTracksAnim_NWCornerTurn, + sBikeTireTracksAnim_NECornerTurn, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_BikeTireTracks, + .images = sPicTable_BikeTireTracks, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateFootprintsTireTracksFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 3), +static const struct SpriteFrameImage sPicTable_JumpBigSplash[] = { + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = +static const union AnimCmd sAnim_JumpBigSplash[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -414,26 +525,34 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopBigSplash[] = +static const union AnimCmd *const sAnimTable_JumpBigSplash[] = { - gFieldEffectObjectImageAnim_850CE7C, + sAnim_JumpBigSplash, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeHopBigSplash, gFieldEffectObjectPicTable_BikeHopBigSplash, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_JumpBigSplash, + .images = sPicTable_JumpBigSplash, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateJumpImpactEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Splash[] = { +static const struct SpriteFrameImage sPicTable_Splash[] = { overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 0), overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 1), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CEBC[] = +static const union AnimCmd sAnim_Splash_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850CEC8[] = +static const union AnimCmd sAnim_Splash_1[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -446,21 +565,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CEC8[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] = +static const union AnimCmd *const sAnimTable_Splash[] = { - gFieldEffectObjectImageAnim_850CEBC, - gFieldEffectObjectImageAnim_850CEC8, + sAnim_Splash_0, + sAnim_Splash_1, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, UpdateSplashFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_Splash, + .images = sPicTable_Splash, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateSplashFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 2), +static const struct SpriteFrameImage sPicTable_JumpSmallSplash[] = { + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 2), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = +static const union AnimCmd sAnim_JumpSmallSplash[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -468,21 +595,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] = +static const union AnimCmd *const sAnimTable_JumpSmallSplash[] = { - gFieldEffectObjectImageAnim_850CF24, + sAnim_JumpSmallSplash, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_JumpSmallSplash, + .images = sPicTable_JumpSmallSplash, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateJumpImpactEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = { +static const struct SpriteFrameImage sPicTable_LongGrass[] = { overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 2), overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CF70[] = +static const union AnimCmd sAnim_LongGrass[] = { ANIMCMD_FRAME(1, 3), ANIMCMD_FRAME(2, 3), @@ -494,23 +629,31 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CF70[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] = +static const union AnimCmd *const sAnimTable_LongGrass[] = { - gFieldEffectObjectImageAnim_850CF70, + sAnim_LongGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, UpdateLongGrassFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_LongGrass, + .images = sPicTable_LongGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateLongGrassFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = { - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 4), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), +static const struct SpriteFrameImage sPicTable_JumpLongGrass[] = { + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6), }; -const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = +static const union AnimCmd sAnim_JumpLongGrass[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -521,15 +664,23 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] = +static const union AnimCmd *const sAnimTable_JumpLongGrass[] = { - gFieldEffectObjectImageAnim_850CFDC, + sAnim_JumpLongGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_JumpLongGrass, + .images = sPicTable_JumpLongGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateJumpImpactEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), +static const struct SpriteFrameImage sPicTable_UnusedGrass[] = { + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2), @@ -540,7 +691,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 7), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D05C[] = +static const union AnimCmd sAnim_UnusedGrass[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 4), @@ -554,21 +705,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D05C[] = ANIMCMD_JUMP(7), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] = +static const union AnimCmd *const sAnimTable_UnusedGrass[] = { - gFieldEffectObjectImageAnim_850D05C, + sAnim_UnusedGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_UnusedGrass, + .images = sPicTable_UnusedGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = { - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 3), +static const struct SpriteFrameImage sPicTable_UnusedGrass2[] = { + overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_UnusedGrass2, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = +static const union AnimCmd sAnim_UnusedGrass2[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -579,21 +738,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] = +static const union AnimCmd *const sAnimTable_UnusedGrass2[] = { - gFieldEffectObjectImageAnim_850D0C0, + sAnim_UnusedGrass2, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2 = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_UnusedGrass2, + .images = sPicTable_UnusedGrass2, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = { - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 3), +static const struct SpriteFrameImage sPicTable_UnusedSand[] = { + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D118[] = +static const union AnimCmd sAnim_UnusedSand[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -602,20 +769,28 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D118[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] = +static const union AnimCmd *const sAnimTable_UnusedSand[] = { - gFieldEffectObjectImageAnim_850D118, + sAnim_UnusedSand, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_UnusedSand, + .images = sPicTable_UnusedSand, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = { - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 2), +static const struct SpriteFrameImage sPicTable_SandPile[] = { + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 2), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = +static const union AnimCmd sAnim_SandPile[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -623,21 +798,29 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] = +static const union AnimCmd *const sAnimTable_SandPile[] = { - gFieldEffectObjectImageAnim_850D160, + sAnim_SandPile, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x8, + .anims = sAnimTable_SandPile, + .images = sPicTable_SandPile, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateSandPileFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = { - overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 3), +static const struct SpriteFrameImage sPicTable_WaterSurfacing[] = { + overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_WaterSurfacing, 2, 2, 3), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D1AC[] = +static const union AnimCmd sAnim_WaterSurfacing[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -648,14 +831,22 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D1AC[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown20[] = +static const union AnimCmd *const sAnimTable_WaterSurfacing[] = { - gFieldEffectObjectImageAnim_850D1AC, + sAnim_WaterSurfacing, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown20 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown20, gFieldEffectObjectPicTable_Unknown20, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_WaterSurfacing, + .images = sPicTable_WaterSurfacing, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D1E4[] = +static const union AffineAnimCmd sAffineAnim_ReflectionDistortion_0[] = { AFFINEANIMCMD_FRAME(0xFF00, 0x100, -128, 0), AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), @@ -669,7 +860,7 @@ const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D1E4[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D234[] = +static const union AffineAnimCmd sAffineAnim_ReflectionDistortion_1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0), AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), @@ -683,24 +874,32 @@ const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D234[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] = +static const union AffineAnimCmd *const sAffineAnims_ReflectionDistortion[] = { - gFieldEffectObjectRotScalAnim_850D1E4, - gFieldEffectObjectRotScalAnim_850D234, + sAffineAnim_ReflectionDistortion_0, + sAffineAnim_ReflectionDistortion_1, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion = { + .tileTag = 0x0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_ReflectionDistortion, + .callback = SpriteCallbackDummy, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = { - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 4), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 5), +static const struct SpriteFrameImage sPicTable_Sparkle[] = { + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 5), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = +static const union AnimCmd sAnim_Sparkle[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -725,14 +924,22 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle[] = +static const union AnimCmd *const sAnimTable_Sparkle[] = { - gFieldEffectObjectImageAnim_850D2D4, + sAnim_Sparkle, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle, gFieldEffectObjectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_Sparkle, + .images = sPicTable_Sparkle, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = WaitFieldEffectSpriteAnim, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = { +static const struct SpriteFrameImage sPicTable_TreeDisguise[] = { overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 0), overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 1), overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 2), @@ -742,13 +949,13 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = { overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 6), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D37C[] = +static const union AnimCmd sAnim_TreeDisguise[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850D384[] = +static const union AnimCmd sAnim_TreeDisguiseReveal[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -760,15 +967,23 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D384[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_TreeDisguise[] = +static const union AnimCmd *const sAnimTable_TreeDisguise[] = { - gFieldEffectObjectImageAnim_850D37C, - gFieldEffectObjectImageAnim_850D384, + sAnim_TreeDisguise, + sAnim_TreeDisguiseReveal, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x32, + .anims = sAnimTable_TreeDisguise, + .images = sPicTable_TreeDisguise, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateDisguiseFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_MountainDisguise[] = { +static const struct SpriteFrameImage sPicTable_MountainDisguise[] = { overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 0), overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 1), overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 2), @@ -778,13 +993,13 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_MountainDisguise[] = { overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 6), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D3FC[] = +static const union AnimCmd sAnim_MountainDisguise[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -const union AnimCmd gFieldEffectObjectImageAnim_850D404[] = +static const union AnimCmd sAnim_MountainDisguiseReveal[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -796,15 +1011,23 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D404[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_MountainDisguise[] = +static const union AnimCmd *const sAnimTable_MountainDisguise[] = { - gFieldEffectObjectImageAnim_850D3FC, - gFieldEffectObjectImageAnim_850D404, + sAnim_MountainDisguise, + sAnim_MountainDisguiseReveal, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_MountainDisguise, gFieldEffectObjectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x32, + .anims = sAnimTable_MountainDisguise, + .images = sPicTable_MountainDisguise, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateDisguiseFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder[] = { +static const struct SpriteFrameImage sPicTable_SandDisguisePlaceholder[] = { overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 0), overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 1), overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 2), @@ -814,70 +1037,102 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 6), }; -const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_SandDisguisePlaceholder, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_16x32, + .anims = sAnimTable_TreeDisguise, + .images = sPicTable_SandDisguisePlaceholder, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateDisguiseFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Bird[] = { +static const struct SpriteFrameImage sPicTable_Bird[] = { obj_frame_tiles(gFieldEffectObjectPic_Bird), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D49C[] = +static const union AnimCmd sAnim_Bird[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bird[] = +static const union AnimCmd *const sAnimTable_Bird[] = { - gFieldEffectObjectImageAnim_850D49C, + sAnim_Bird, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_32x32, gFieldEffectObjectImageAnimTable_Bird, gFieldEffectObjectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_32x32, + .anims = sAnimTable_Bird, + .images = sPicTable_Bird, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_ShortGrass[] = { +static const struct SpriteFrameImage sPicTable_ShortGrass[] = { overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 1), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D4D0[] = +static const union AnimCmd sAnim_ShortGrass[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_ShortGrass[] = +static const union AnimCmd *const sAnimTable_ShortGrass[] = { - gFieldEffectObjectImageAnim_850D4D0, + sAnim_ShortGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_ShortGrass, gFieldEffectObjectPicTable_ShortGrass, gDummySpriteAffineAnimTable, UpdateShortGrassFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_ShortGrass, + .images = sPicTable_ShortGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateShortGrassFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_HotSpringsWater[] = { +static const struct SpriteFrameImage sPicTable_HotSpringsWater[] = { obj_frame_tiles(gFieldEffectObjectPic_HotSpringsWater), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D500[] = +static const union AnimCmd sAnim_HotSpringsWater[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_HotSpringsWater[] = +static const union AnimCmd *const sAnimTable_HotSpringsWater[] = { - gFieldEffectObjectImageAnim_850D500, + sAnim_HotSpringsWater, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_HotSpringsWater, gFieldEffectObjectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, UpdateHotSpringsWaterFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_HotSpringsWater, + .images = sPicTable_HotSpringsWater, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateHotSpringsWaterFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpOutOfAsh[] = { - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 4), +static const struct SpriteFrameImage sPicTable_AshPuff[] = { + overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_AshPuff, 2, 2, 4), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D54C[] = +static const union AnimCmd sAnim_AshPuff[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -887,33 +1142,33 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D54C[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpOutOfAsh[] = +static const union AnimCmd *const sAnimTable_AshPuff[] = { - gFieldEffectObjectImageAnim_850D54C, + sAnim_AshPuff, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh = +const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff = { .tileTag = 0xFFFF, - .paletteTag = 0x100D, + .paletteTag = FLDEFF_PAL_TAG_ASH, .oam = &gObjectEventBaseOam_16x16, - .anims = gFieldEffectObjectImageAnimTable_JumpOutOfAsh, - .images = gFieldEffectObjectPicTable_JumpOutOfAsh, + .anims = sAnimTable_AshPuff, + .images = sPicTable_AshPuff, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_PopOutOfAsh + .callback = SpriteCB_AshPuff }; -const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D}; +const struct SpritePalette gSpritePalette_Ash = {gFieldEffectPal_Ash, FLDEFF_PAL_TAG_ASH}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_LavaridgeGymWarp[] = { - overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 4), +static const struct SpriteFrameImage sPicTable_AshLaunch[] = { + overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 4), }; -const union AnimCmd gFieldEffectObjectImageAnim_LavaridgeGymWarp[] = +static const union AnimCmd sAnim_AshLaunch[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -923,23 +1178,23 @@ const union AnimCmd gFieldEffectObjectImageAnim_LavaridgeGymWarp[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_LavaridgeGymWarp[] = +static const union AnimCmd *const sAnimTable_AshLaunch[] = { - gFieldEffectObjectImageAnim_LavaridgeGymWarp, + sAnim_AshLaunch, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp = +const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch = { .tileTag = 0xFFFF, - .paletteTag = 0x100D, + .paletteTag = FLDEFF_PAL_TAG_ASH, .oam = &gObjectEventBaseOam_16x16, - .anims = gFieldEffectObjectImageAnimTable_LavaridgeGymWarp, - .images = gFieldEffectObjectPicTable_LavaridgeGymWarp, + .anims = sAnimTable_AshLaunch, + .images = sPicTable_AshLaunch, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_LavaridgeGymWarp + .callback = SpriteCB_AshLaunch }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Bubbles[] = { +static const struct SpriteFrameImage sPicTable_Bubbles[] = { overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 0), overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 1), overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 2), @@ -950,7 +1205,7 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Bubbles[] = { overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 7), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D624[] = +static const union AnimCmd sAnim_Bubbles[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -963,19 +1218,27 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D624[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] = +static const union AnimCmd *const sAnimTable_Bubbles[] = { - gFieldEffectObjectImageAnim_850D624, + sAnim_Bubbles, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, UpdateBubblesFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &gObjectEventBaseOam_16x32, + .anims = sAnimTable_Bubbles, + .images = sPicTable_Bubbles, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateBubblesFieldEffect, +}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = { - overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 1), +static const struct SpriteFrameImage sPicTable_SmallSparkle[] = { + overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 1), }; -const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = +static const union AnimCmd sAnim_SmallSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(1, 5), @@ -983,28 +1246,44 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown35[] = +static const union AnimCmd *const sAnimTable_SmallSparkle[] = { - gFieldEffectObjectImageAnim_850D674, + sAnim_SmallSparkle, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35 = {0xFFFF, 0x100F, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown35, gFieldEffectObjectPicTable_Unknown35, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = { + .tileTag = 0xFFFF, + .paletteTag = FLDEFF_PAL_TAG_SMALL_SPARKLE, + .oam = &gObjectEventBaseOam_16x16, + .anims = sAnimTable_SmallSparkle, + .images = sPicTable_SmallSparkle, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateSparkleFieldEffect, +}; -const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F}; +const struct SpritePalette gSpritePalette_SmallSparkle = {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE}; -const union AnimCmd gFieldEffectObjectImageAnim_850D6A8[] = { +static const union AnimCmd sAnim_Rayquaza[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Rayquaza[] = { - gFieldEffectObjectImageAnim_850D6A8, +static const union AnimCmd *const sAnimTable_Rayquaza[] = { + sAnim_Rayquaza, }; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Rayquaza[] = { +const struct SpriteFrameImage sPicTable_Rayquaza[] = { overworld_frame(gObjectEventPic_Rayquaza, 4, 4, 0), }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_32x32, gFieldEffectObjectImageAnimTable_Rayquaza, gFieldEffectObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable, sub_8155F80}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = { + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &gObjectEventBaseOam_32x32, + .anims = sAnimTable_Rayquaza, + .images = sPicTable_Rayquaza, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateRayquazaSpotlightEffect, +}; -const struct SpritePalette gFieldEffectObjectPaletteInfoUnused = {gObjectEventPalette2, 0x1011}; +static const struct SpritePalette sSpritePalette_Unused = {gObjectEventPalette2, FLDEFF_PAL_TAG_UNKNOWN}; diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index fd4d8b95d..bce0b7a21 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -2698,7 +2698,8 @@ const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/icon_speed.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); -asm(".space 0x6800"); +// Probably the leftover space from the other Deoxys forms +static const u8 sEmpty[0x6800] = {0}; const u16 gUnknown_D437F8[] = INCBIN_U16("graphics/unknown/unknown_D437F8.bin"); diff --git a/src/data/graphics/slot_machine.h b/src/data/graphics/slot_machine.h index a94f2b622..6500ad7f3 100644 --- a/src/data/graphics/slot_machine.h +++ b/src/data/graphics/slot_machine.h @@ -2,21 +2,15 @@ const u16 gSlotMachineMenu_Pal[] = INCBIN_U16("graphics/slot_machine/menu.gbapal const u32 gSlotMachineMenu_Gfx[] = INCBIN_U32("graphics/slot_machine/menu.4bpp.lz"); const u16 gSlotMachineMenu_Tilemap[] = INCBIN_U16("graphics/slot_machine/menu.bin"); -const u16 gUnknown_08DCEC70[] = INCBIN_U16("graphics/slot_machine/slots_layout.bin"); +const u16 gSlotMachineInfoBox_Tilemap[] = INCBIN_U16("graphics/slot_machine/info_box.bin"); -const u16 gUnknown_08DCF170[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); - -const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.gbapal"); - -const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); - -const u16 gSlotMachineReelTime_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time.gbapal"); - -const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura - -const u16 gUnknown_08DCF210[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); - -const u16 gUnknown_08DCF230[] = INCBIN_U16("graphics/slot_machine/spr6.gbapal"); +const u16 gSlotMachineReelSymbols_Pal[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); +const u16 gSlotMachineReelTimePikachu_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_pikachu.gbapal"); +const u16 gSlotMachineReelTimeMisc_Pal[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); +const u16 gSlotMachineReelTimeMachine_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_machine.gbapal"); +const u16 gSlotMachineMisc_Pal[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); +const u16 gSlotMachineReelTimeExplosion_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); +const u16 gSlotMachineDigitalDisplay_Pal[] = INCBIN_U16("graphics/slot_machine/digital_display.gbapal"); const u8 gSlotMachineReelSymbol1Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/1.4bpp"); const u8 gSlotMachineReelSymbol2Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/2.4bpp"); @@ -26,7 +20,7 @@ const u8 gSlotMachineReelSymbol5Tiles[] = INCBIN_U8("graphics/slot_machine/reel_ const u8 gSlotMachineReelSymbol6Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/6.4bpp"); const u8 gSlotMachineReelSymbol7Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/7.4bpp"); -const u32 gSlotMachineReelTime_Gfx[] = INCBIN_U32("graphics/slot_machine/reel_time.4bpp.lz"); +const u32 gSlotMachineDigitalDisplay_Gfx[] = INCBIN_U32("graphics/slot_machine/digital_display.4bpp.lz"); const u8 gSlotMachineNumber0Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/0.4bpp"); const u8 gSlotMachineNumber1Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/1.4bpp"); @@ -39,7 +33,7 @@ const u8 gSlotMachineNumber7Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/7 const u8 gSlotMachineNumber8Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/8.4bpp"); const u8 gSlotMachineNumber9Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/9.4bpp"); -const u8 gSlotMachineReelTimeBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); +const u8 gSlotMachinePikaPowerBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); const u8 gSlotMachineReelTimeDuck[] = INCBIN_U8("graphics/slot_machine/duck.4bpp"); const u8 gSlotMachineReelTimeSmoke[] = INCBIN_U8("graphics/slot_machine/smoke.4bpp"); @@ -50,8 +44,8 @@ const u8 gSlotMachineReelTimeNumber3[] = INCBIN_U8("graphics/slot_machine/reel_t const u8 gSlotMachineReelTimeNumber4[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/4.4bpp"); const u8 gSlotMachineReelTimeNumber5[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/5.4bpp"); -const u8 gSlotMachineReelTimeLargeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); -const u8 gSlotMachineReelTimeLargeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); +const u8 gSlotMachineReelTimeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); +const u8 gSlotMachineReelTimeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); const u8 gSlotMachineReelTimeExplosion0[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/0.4bpp"); const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/1.4bpp"); @@ -59,5 +53,5 @@ const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/ree const u8 gSlotMachineReelTimeShadow[] = INCBIN_U8("graphics/slot_machine/shadow.4bpp"); const u8 gSlotMachineReelTimePikaAura[] = INCBIN_U8("graphics/slot_machine/pika_aura.4bpp"); -const u8 gUnknown_08DD19F8[] = INCBIN_U8("graphics/unknown/unknown_DD19F8.bin"); -const u8 gUnknown_08DD1A18[] = INCBIN_U8("graphics/unknown/unknown_DD1A18.4bpp"); +const u8 gSlotMachineReelBackground_Tilemap[] = INCBIN_U8("graphics/slot_machine/reel_background.bin"); +const u8 gSlotMachineReelTimeNumberGap_Gfx[] = INCBIN_U8("graphics/slot_machine/reel_time_number_gap.4bpp"); diff --git a/src/data/items.h b/src/data/items.h index 4d262e683..30beb5352 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -3426,7 +3426,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 0, + .secondaryId = OLD_ROD, }, [ITEM_GOOD_ROD] = @@ -3440,7 +3440,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 1, + .secondaryId = GOOD_ROD, }, [ITEM_SUPER_ROD] = @@ -3454,7 +3454,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 2, + .secondaryId = SUPER_ROD, }, [ITEM_SS_TICKET] = diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 769a6bb0a..50fc6715c 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -252,7 +252,7 @@ const u32 gObjectEventPic_CableCar[] = INCBIN_U32("graphics/object_events/pics/m const u16 gObjectEventPalette20[] = INCBIN_U16("graphics/object_events/palettes/20.gbapal"); const u32 gObjectEventPic_SSTidal[] = INCBIN_U32("graphics/object_events/pics/misc/ss_tidal.4bpp"); const u16 gObjectEventPalette21[] = INCBIN_U16("graphics/object_events/palettes/21.gbapal"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/field_effects/pics/berry_tree_growth_sparkle.4bpp"); +const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp"); const u32 gObjectEventPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/object_events/pics/berry_trees/dirt_pile.4bpp"); const u32 gObjectEventPic_BerryTreeSprout[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sprout.4bpp"); const u32 gObjectEventPic_PechaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pecha.4bpp"); @@ -293,43 +293,43 @@ const u32 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U32("graphics/field_effec const u32 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U32("graphics/field_effects/pics/shadow_medium.4bpp"); const u32 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U32("graphics/field_effects/pics/shadow_large.4bpp"); const u32 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U32("graphics/field_effects/pics/shadow_extra_large.4bpp"); -const u32 filler_8368A08[0x48] = {}; +static const u32 sFiller[0x48] = {}; const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/field_effects/pics/cut_grass.4bpp"); const u32 gFieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/field_effects/pics/cut_grass.4bpp"); -const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/field_effects/palettes/06.gbapal"); +const u16 gFieldEffectPal_CutGrass[] = INCBIN_U16("graphics/field_effects/palettes/cut_grass.gbapal"); const u32 gFieldEffectObjectPic_Ripple[] = INCBIN_U32("graphics/field_effects/pics/ripple.4bpp"); const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/field_effects/pics/ash.4bpp"); const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/field_effects/pics/arrow.4bpp"); -const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/00.gbapal"); -const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/01.gbapal"); +const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/general_0.gbapal"); +const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/general_1.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/field_effects/pics/ground_impact_dust.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_tall_grass.4bpp"); -const u32 gUnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp"); +const u32 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U32("graphics/field_effects/pics/jump_tall_grass.4bpp"); +const u32 gUnusedGrass3[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_3.4bpp"); +const u32 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/field_effects/pics/unknown_17.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/field_effects/pics/unknown_18.4bpp"); +const u32 gFieldEffectObjectPic_UnusedGrass2[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_2.4bpp"); const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/field_effects/pics/long_grass.4bpp"); const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/field_effects/pics/tall_grass.4bpp"); const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/field_effects/pics/short_grass.4bpp"); const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/field_effects/pics/sand_footprints.4bpp"); const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/field_effects/pics/deep_sand_footprints.4bpp"); const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/field_effects/pics/bike_tire_tracks.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/field_effects/pics/unknown_19.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/field_effects/pics/unknown_29.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_big_splash.4bpp"); +const u32 gFieldEffectObjectPic_UnusedSand[] = INCBIN_U32("graphics/field_effects/pics/unused_sand.4bpp"); +const u32 gFieldEffectObjectPic_SandPile[] = INCBIN_U32("graphics/field_effects/pics/sand_pile.4bpp"); +const u32 gFieldEffectObjectPic_JumpBigSplash[] = INCBIN_U32("graphics/field_effects/pics/jump_big_splash.4bpp"); const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/field_effects/pics/splash.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_small_splash.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/field_effects/pics/unknown_20.4bpp"); +const u32 gFieldEffectObjectPic_JumpSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/jump_small_splash.4bpp"); +const u32 gFieldEffectObjectPic_WaterSurfacing[] = INCBIN_U32("graphics/field_effects/pics/water_surfacing.4bpp"); const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/field_effects/pics/tree_disguise.4bpp"); const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/field_effects/pics/mountain_disguise.4bpp"); const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/field_effects/pics/sand_disguise_placeholder.4bpp"); const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/field_effects/pics/hot_springs_water.4bpp"); -const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/field_effects/palettes/02.gbapal"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/field_effects/pics/jump_out_of_ash.4bpp"); -const u32 gFieldEffectObjectPic_LavaridgeGymWarp[] = INCBIN_U32("graphics/field_effects/pics/lavaridge_gym_warp.4bpp"); +const u16 gFieldEffectPal_Ash[] = INCBIN_U16("graphics/field_effects/palettes/ash.gbapal"); +const u32 gFieldEffectObjectPic_AshPuff[] = INCBIN_U32("graphics/field_effects/pics/ash_puff.4bpp"); +const u32 gFieldEffectObjectPic_AshLaunch[] = INCBIN_U32("graphics/field_effects/pics/ash_launch.4bpp"); const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/field_effects/pics/bubbles.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/field_effects/pics/unknown_35.4bpp"); -const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/field_effects/palettes/03.gbapal"); +const u32 gFieldEffectObjectPic_SmallSparkle[] = INCBIN_U32("graphics/field_effects/pics/small_sparkle.4bpp"); +const u16 gFieldEffectPal_SmallSparkle[] = INCBIN_U16("graphics/field_effects/palettes/small_sparkle.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/field_effects/pics/bird.4bpp"); const u32 gObjectEventPic_Juan[] = INCBIN_U32("graphics/object_events/pics/people/gym_leaders/juan.4bpp"); const u32 gObjectEventPic_Scott[] = INCBIN_U32("graphics/object_events/pics/people/scott.4bpp"); diff --git a/src/data/union_room.h b/src/data/union_room.h index 704978766..be7bfae71 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -222,7 +222,7 @@ static const u8 *const sAwaitingResponseTexts[] = { ALIGNED(4) const u8 sText_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); ALIGNED(4) const u8 sText_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); ALIGNED(4) const u8 sText_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); -ALIGNED(4) const u8 sText_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?"); +ALIGNED(4) const u8 sText_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); ALIGNED(4) const u8 sText_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); ALIGNED(4) const u8 sText_ChatDropped[] = _("The chat has been dropped.\p"); ALIGNED(4) const u8 sText_OfferDeclined1[] = _("You declined the offer.\p"); @@ -567,17 +567,17 @@ static const u8 *const sCardColorTexts[] = { sText_ItsGoldCard }; -ALIGNED(4) const u8 sText_TrainerCardInfoPage1[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); -ALIGNED(4) const u8 sText_TrainerCardInfoPage2[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); -ALIGNED(4) const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); -ALIGNED(4) const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); +ALIGNED(4) const u8 sText_TrainerCardInfoPage1[] = _("This is {DYNAMIC 0} {DYNAMIC 1}'s\nTRAINER CARD…\l{DYNAMIC 2}\pPOKéDEX: {DYNAMIC 3}\nTIME: {DYNAMIC 4}:{DYNAMIC 5}\p"); +ALIGNED(4) const u8 sText_TrainerCardInfoPage2[] = _("BATTLES: WINS: {DYNAMIC 0} LOSSES: {DYNAMIC 2}\nTRADES: {DYNAMIC 3}\p“{DYNAMIC 4} {DYNAMIC 5}\n{DYNAMIC 6} {DYNAMIC 7}”\p"); +ALIGNED(4) const u8 sText_GladToMeetYouMale[] = _("{DYNAMIC 1}: Glad to have met you!{PAUSE 60}"); +ALIGNED(4) const u8 sText_GladToMeetYouFemale[] = _("{DYNAMIC 1}: Glad to meet you!{PAUSE 60}"); const u8 *const sGladToMeetYouTexts[GENDER_COUNT] = { sText_GladToMeetYouMale, sText_GladToMeetYouFemale }; -ALIGNED(4) const u8 sText_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); +ALIGNED(4) const u8 sText_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {DYNAMIC 1}'s\nTRAINER CARD.{PAUSE 60}"); static const u8 *const sLinkGroupActivityNameTexts[] = { [ACTIVITY_NONE] = sText_EmptyString, diff --git a/src/decoration.c b/src/decoration.c index f566cc7c9..40cccbe5e 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1623,7 +1623,7 @@ static void AttemptPlaceDecoration_(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); StringExpandPlaceholders(gStringVar4, gText_CantBePlacedHere); DisplayItemMessageOnField(taskId, gStringVar4, CantPlaceDecorationPrompt); } diff --git a/src/dewford_trend.c b/src/dewford_trend.c index 9c5e69d99..e3b98859c 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -225,7 +225,9 @@ void TrendyPhraseIsOld(void) if (gSaveBlock1Ptr->easyChatPairs[0].unk0_0 - gSaveBlock1Ptr->easyChatPairs[1].unk0_0 < 2) { - asm("":::"r2"); //Force the compiler to store address of gSaveBlock1 in r3 instead of r2 + #ifndef NONMATCHING + asm("":::"r2"); //Force the compiler to store address of gSaveBlock1 in r3 instead of r2 + #endif if (!gSaveBlock1Ptr->easyChatPairs[0].unk1_6 && gSaveBlock1Ptr->easyChatPairs[1].unk1_6) result = 1; } diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c index fe5d49e69..f887dafb9 100644 --- a/src/digit_obj_util.c +++ b/src/digit_obj_util.c @@ -33,7 +33,7 @@ struct DigitPrinterAlloc }; // this file's functions -static u8 GetFirstOamId(u8 oamCount);; +static u8 GetFirstOamId(u8 oamCount); static void CopyWorkToOam(struct DigitPrinter *objWork); static void DrawNumObjsLeadingZeros(struct DigitPrinter *objWork, s32 num, bool32 sign); static void DrawNumObjsMinusInFront(struct DigitPrinter *objWork, s32 num, bool32 sign); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 3ca7a1cf7..f44ecb31c 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -467,7 +467,7 @@ void StartDodrioBerryPicking(u16 a0, void (*callback)(void)) sub_80273F0(); sub_8026B5C(gUnknown_02022C98->unk24, &gUnknown_02022C98->unk44, &gUnknown_02022C98->unk48); StopMapMusic(); - PlayNewMapMusic(MUS_RG_KINOMIKUI); + PlayNewMapMusic(MUS_RG_BERRY_PICK); } else { @@ -558,7 +558,7 @@ static void sub_8024BC8(u8 taskId) case 2: if (!sub_802A770()) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk0C++; } break; @@ -671,7 +671,7 @@ static void sub_8024E38(void) gUnknown_02022C98->unk10++; break; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk10++; break; case 2: @@ -690,7 +690,7 @@ static void sub_8024E38(void) case 4: if (++gUnknown_02022C98->unk30 > 5) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk10++; } break; @@ -877,7 +877,7 @@ static void sub_8025198(void) if (WaitFanfare(TRUE)) { sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); } break; } @@ -916,7 +916,7 @@ static void sub_8025230(void) if (WaitFanfare(TRUE)) { gUnknown_02022C98->unk114 = gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][5]; sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); } break; } @@ -1081,7 +1081,7 @@ static void sub_8025644(void) switch (gUnknown_02022C98->unk10) { case 0: - sub_800AC34(); + SetCloseLinkCallback(); sub_80292E0(7); gUnknown_02022C98->unk10++; break; @@ -1174,7 +1174,7 @@ static void sub_8025758(void) gUnknown_02022C98->unk10++; break; case 4: - PlayNewMapMusic(MUS_RG_KINOMIKUI); + PlayNewMapMusic(MUS_RG_BERRY_PICK); sub_8028E4C(); gUnknown_02022C98->unk10++; break; @@ -1458,8 +1458,8 @@ static void sub_8025F48(void) { if (gUnknown_02022C98->unk144 == 0) { - m4aSongNumStop(SE_SEIKAI); - PlaySE(SE_SEIKAI); + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); gUnknown_02022C98->unk144 = 1; } } @@ -1480,7 +1480,7 @@ static void sub_8025F48(void) } else if (gUnknown_02022C98->unk154 == 1) { - PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN + PlayFanfareByFanfareNum(11); // MUS_TOO_BAD gUnknown_02022C98->unk154 = 2; } } @@ -1501,8 +1501,8 @@ static void sub_8026044(void) { if (gUnknown_02022C98->unk144 == 0) { - m4aSongNumStop(SE_SEIKAI); - PlaySE(SE_SEIKAI); + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); gUnknown_02022C98->unk144 = 1; } } @@ -1522,7 +1522,7 @@ static void sub_8026044(void) { if (gUnknown_02022C98->unk148[r4] == 0) { - PlaySE(SE_FUUSEN1 + ptr->unk0[r4]); + PlaySE(SE_BALLOON_RED + ptr->unk0[r4]); gUnknown_02022C98->unk148[r4] = 1; } } @@ -1538,7 +1538,7 @@ static void sub_8026044(void) } else if (gUnknown_02022C98->unk154 == 1) { - PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN + PlayFanfareByFanfareNum(11); // MUS_TOO_BAD gUnknown_02022C98->unk154 = 2; } } @@ -1792,7 +1792,7 @@ static void sub_802671C(void) if (gUnknown_02022C98->unk148[i] == 0) { gUnknown_02022C98->unk148[i] = 1; - PlaySE(SE_FUUSEN1 + ptr->unk32CC.unk14.unk0[i]); + PlaySE(SE_BALLOON_RED + ptr->unk32CC.unk14.unk0[i]); } if (gUnknown_02022C98->unk40 < 10 || r10 == 1) { @@ -2359,19 +2359,19 @@ static void sub_8027554(void) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 2; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else if (gMain.newKeys & DPAD_LEFT) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 3; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else if (gMain.newKeys & DPAD_RIGHT) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 1; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else { @@ -3450,7 +3450,7 @@ static u32 sub_80285AC(struct Sprite *sprite) u8 mod = (++sprite->data[1] / 13) % 4; if (sprite->data[1] % 13 == 0 && mod != 0) - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); if (sprite->data[1] >= 104) { sprite->data[0] = 0; @@ -3567,7 +3567,7 @@ static bool32 sub_8028828(void) continue; gUnknown_02022CF4->unkC[i] = 1; gUnknown_02022CF4->unk16[i] = -16; - PlaySE(SE_TK_KASYA); + PlaySE(SE_CLICK); } sprite->pos1.y += gUnknown_02022CF4->unk16[i]; } @@ -4320,7 +4320,7 @@ static void sub_802988C(void) } break; case 9: - PlayNewMapMusic(MUS_FANFA1); + PlayNewMapMusic(MUS_LEVEL_UP); FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); strWidth = GetStringWidth(1, gText_AnnouncingPrizes, -1); @@ -4354,7 +4354,7 @@ static void sub_802988C(void) PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); } CopyBgTilemapBufferToVram(0); - FadeOutAndFadeInNewMapMusic(MUS_RG_WIN_YASEI, 20, 10); + FadeOutAndFadeInNewMapMusic(MUS_RG_VICTORY_WILD, 20, 10); gUnknown_02022CF8->state++; break; case 11: @@ -4629,7 +4629,7 @@ static void sub_802A7A8(void) ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); SetBgTilemapBuffer(3, gUnknown_02022CF8->tilemapBuffers[0]); SetBgTilemapBuffer(1, gUnknown_02022CF8->tilemapBuffers[1]); @@ -4657,7 +4657,7 @@ static bool32 sub_802A8E8(void) return FALSE; break; case 5: - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); break; default: gUnknown_02022CF8->unk3018 = 0; diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c index bdfcf6653..1ec0c1e06 100644 --- a/src/dynamic_placeholder_text_util.c +++ b/src/dynamic_placeholder_text_util.c @@ -32,7 +32,7 @@ u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src) { while (*src != EOS) { - if (*src != CHAR_SPECIAL_F7) + if (*src != CHAR_DYNAMIC) { *dest++ = *src++; } diff --git a/src/easy_chat.c b/src/easy_chat.c index 44a7b90c1..8e1044591 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2023,7 +2023,7 @@ static int sub_811B368(void) { if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else @@ -2038,7 +2038,7 @@ static int sub_811B394(void) u16 easyChatWord = sub_811F578(sub_811B940()); if (sub_811BF88(easyChatWord)) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else @@ -2537,7 +2537,7 @@ u8 sub_811BBBC(void) return sEasyChatScreen->unk_0c; } -void sub_811BBC8(u8 *arg0, u8 *arg1) +static void sub_811BBC8(s8 *arg0, s8 *arg1) { *arg0 = sEasyChatScreen->unk_10; *arg1 = sEasyChatScreen->unk_11; @@ -4529,18 +4529,18 @@ static void sub_811E30C(void) x = var0 * 13; x = x * 8 + 28; y = var1 * 16 + 96; - sub_811E34C(x, y); + sub_811E34C((u8)x, (u8)y); } static void sub_811E34C(u8 x, u8 y) { - if (sUnknown_0203A11C->unk2E4) - { - sUnknown_0203A11C->unk2E4->pos1.x = x; - sUnknown_0203A11C->unk2E4->pos1.y = y; - sUnknown_0203A11C->unk2E4->pos2.x = 0; - sUnknown_0203A11C->unk2E4->data[0] = 0; - } + if (!sUnknown_0203A11C->unk2E4) + return; + + sUnknown_0203A11C->unk2E4->pos1.x = (s16)x; + sUnknown_0203A11C->unk2E4->pos1.y = (s16)y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } static void sub_811E380(void) diff --git a/src/egg_hatch.c b/src/egg_hatch.c index db25dbbb8..87f0a13fd 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -578,10 +578,10 @@ static void Task_EggHatchPlayBGM(u8 taskID) PlayRainStoppingSoundEffect(); } if (gTasks[taskID].data[0] == 1) - PlayBGM(MUS_ME_SHINKA); + PlayBGM(MUS_EVOLUTION_INTRO); if (gTasks[taskID].data[0] > 60) { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); DestroyTask(taskID); // UB: task is destroyed, yet the value is incremented } @@ -637,7 +637,7 @@ static void CB2_EggHatch_1(void) GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); sEggHatchData->CB2_state++; PutWindowTilemap(sEggHatchData->windowId); CopyWindowToVram(sEggHatchData->windowId, 3); @@ -672,7 +672,7 @@ static void CB2_EggHatch_1(void) species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); - DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar3, species, gender, personality, EggHatchSetMonNickname); break; case 1: case -1: @@ -716,7 +716,7 @@ static void SpriteCB_Egg_0(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 1); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 1); CreateRandomEggShardSprite(); } @@ -739,7 +739,7 @@ static void SpriteCB_Egg_1(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 2); } } @@ -766,13 +766,13 @@ static void SpriteCB_Egg_2(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 2); CreateRandomEggShardSprite(); CreateRandomEggShardSprite(); } if (sprite->data[0] == 30) - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } } @@ -799,7 +799,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite) sprite->data[0]++; if (!gPaletteFade.active) { - PlaySE(SE_TAMAGO); + PlaySE(SE_EGG_HATCH); sprite->invisible = TRUE; sprite->callback = SpriteCB_Egg_5; sprite->data[0] = 0; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 26f7eb679..b4a9164b3 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -153,7 +153,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) case 2: if (GetLinkPlayerCount_2() == 2) { - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); CheckShouldAdvanceLinkState(); *arg1 = 0; *arg0 = 3; @@ -192,7 +192,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) } break; case 4: - sub_800ABF4(0); + SetCloseLinkCallbackAndType(0); *arg0 = 5; break; case 5: @@ -403,7 +403,7 @@ static void sub_81D5084(u8 taskId) break; case 15: data->unkE = EReader_IsReceivedDataValid((struct EReaderTrainerHillSet *)gDecompressionBuffer); - sub_800ABF4(data->unkE); + SetCloseLinkCallbackAndType(data->unkE); data->unk8 = 16; break; case 16: @@ -431,7 +431,7 @@ static void sub_81D5084(u8 taskId) if (sub_81D5064(&data->unk0, 120)) { AddTextPrinterToWindow1(gJPText_NewTrainerHasComeToHoenn); - PlayFanfare(MUS_FANFA4); + PlayFanfare(MUS_OBTAIN_ITEM); data->unk8 = 19; } break; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index de5536240..72de880c8 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -130,6 +130,9 @@ static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); static void oamt_npc_ministep_reset(struct Sprite *, u8, u8); +static void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *); +static void InitSpriteForFigure8Anim(struct Sprite *sprite); +static bool8 AnimateSpriteInFigure8(struct Sprite *sprite); static void UpdateObjectEventSprite(struct Sprite *); const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; @@ -1122,13 +1125,13 @@ void ResetObjectEvents(void) static void CreateReflectionEffectSprites(void) { - u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); gSprites[spriteId].invisible = TRUE; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 1); @@ -1220,7 +1223,6 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->movementType = template->movementType; objectEvent->localId = template->localId; objectEvent->mapNum = mapNum; - objectEvent++; objectEvent--; objectEvent->mapGroup = mapGroup; objectEvent->initialCoords.x = x; objectEvent->initialCoords.y = y; @@ -1233,13 +1235,11 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->range.as_nybbles.x = template->movementRangeX; objectEvent->range.as_nybbles.y = template->movementRangeY; objectEvent->trainerType = template->trainerType; + objectEvent->mapNum = mapNum; //redundant, but needed to match objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId; objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType]; SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection); SetObjectEventDynamicGraphicsId(objectEvent); -#ifndef NONMATCHING - asm("":::"r5", "r6"); -#endif if (gRangedMovementTypes[objectEvent->movementType]) { if (objectEvent->range.as_nybbles.x == 0) @@ -1949,7 +1949,7 @@ void sub_808E7E4(u8 localId, u8 mapNum, u8 mapGroup) } } -void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) { u8 objectEventId; struct Sprite *sprite; @@ -2340,7 +2340,13 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId) static u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { - return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->flagId; + struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); +#ifdef UBFIX + // BUG: The function may return NULL, and attempting to read from NULL may freeze the game using modern compilers. + if (obj == NULL) + return 0; +#endif // UBFIX + return obj->flagId; } static u16 GetObjectEventFlagIdByObjectEventId(u8 objectEventId) @@ -6868,15 +6874,15 @@ bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *objectEvent return FALSE; } -void sub_8095AF0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +void InitFigure8Anim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8097750(sprite); + InitSpriteForFigure8Anim(sprite); sprite->animPaused = FALSE; } -bool8 sub_8095B0C(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 DoFigure8Anim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8097758(sprite)) + if (AnimateSpriteInFigure8(sprite)) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -6888,14 +6894,14 @@ bool8 sub_8095B0C(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 MovementAction_Figure8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095AF0(objectEvent, sprite); + InitFigure8Anim(objectEvent, sprite); sprite->data[2] = 1; return MovementAction_Figure8_Step1(objectEvent, sprite); } bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8095B0C(objectEvent, sprite)) + if (DoFigure8Anim(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -8098,26 +8104,26 @@ void GroundEffect_Seaweed(struct ObjectEvent *objEvent, struct Sprite *sprite) } static void (*const sGroundEffectFuncs[])(struct ObjectEvent *objEvent, struct Sprite *sprite) = { - GroundEffect_SpawnOnTallGrass, - GroundEffect_StepOnTallGrass, - GroundEffect_SpawnOnLongGrass, - GroundEffect_StepOnLongGrass, - GroundEffect_WaterReflection, - GroundEffect_IceReflection, - GroundEffect_FlowingWater, - GroundEffect_SandTracks, - GroundEffect_DeepSandTracks, - GroundEffect_Ripple, - GroundEffect_StepOnPuddle, - GroundEffect_SandHeap, - GroundEffect_JumpOnTallGrass, - GroundEffect_JumpOnLongGrass, - GroundEffect_JumpOnShallowWater, - GroundEffect_JumpOnWater, - GroundEffect_JumpLandingDust, - GroundEffect_ShortGrass, - GroundEffect_HotSprings, - GroundEffect_Seaweed + GroundEffect_SpawnOnTallGrass, // GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN + GroundEffect_StepOnTallGrass, // GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE + GroundEffect_SpawnOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN + GroundEffect_StepOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE + GroundEffect_WaterReflection, // GROUND_EFFECT_FLAG_ICE_REFLECTION + GroundEffect_IceReflection, // GROUND_EFFECT_FLAG_REFLECTION + GroundEffect_FlowingWater, // GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER + GroundEffect_SandTracks, // GROUND_EFFECT_FLAG_SAND + GroundEffect_DeepSandTracks, // GROUND_EFFECT_FLAG_DEEP_SAND + GroundEffect_Ripple, // GROUND_EFFECT_FLAG_RIPPLES + GroundEffect_StepOnPuddle, // GROUND_EFFECT_FLAG_PUDDLE + GroundEffect_SandHeap, // GROUND_EFFECT_FLAG_SAND_PILE + GroundEffect_JumpOnTallGrass, // GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS + GroundEffect_JumpOnLongGrass, // GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS + GroundEffect_JumpOnShallowWater, // GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER + GroundEffect_JumpOnWater, // GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER + GroundEffect_JumpLandingDust, // GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND + GroundEffect_ShortGrass, // GROUND_EFFECT_FLAG_SHORT_GRASS + GroundEffect_HotSprings, // GROUND_EFFECT_FLAG_HOT_SPRINGS + GroundEffect_Seaweed // GROUND_EFFECT_FLAG_SEAWEED }; static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite *sprite, u32 flags) @@ -8210,15 +8216,13 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent) { return TRUE; } - else - { - objectEvent->frozen = 1; - objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; - objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; - gSprites[objectEvent->spriteId].animPaused = 1; - gSprites[objectEvent->spriteId].affineAnimPaused = 1; - return FALSE; - } + + objectEvent->frozen = 1; + objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; + objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; + gSprites[objectEvent->spriteId].animPaused = 1; + gSprites[objectEvent->spriteId].affineAnimPaused = 1; + return FALSE; } void FreezeObjectEvents(void) @@ -8391,11 +8395,11 @@ bool8 sub_80976EC(struct Sprite *sprite) if (sprite->data[5] > 15) return TRUE; - else - return FALSE; + + return FALSE; } -static const s8 gUnknown_0850E772[] = { +static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, @@ -8407,7 +8411,7 @@ static const s8 gUnknown_0850E772[] = { 0, 1, 0, 0, 0, 0, 0, 0, }; -static const s8 gUnknown_0850E7BA[] = { +static const s8 sFigure8YOffsets[FIGURE_8_LENGTH] = { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, @@ -8419,68 +8423,68 @@ static const s8 gUnknown_0850E7BA[] = { -1, -1, -1, -1, -1, -1, -1, -2, }; -s16 sub_8097728(s16 a1) +s16 GetFigure8YOffset(s16 idx) { - return gUnknown_0850E7BA[a1]; + return sFigure8YOffsets[idx]; } -s16 sub_809773C(s16 a1) +s16 GetFigure8XOffset(s16 idx) { - return gUnknown_0850E772[a1]; + return sFigure8XOffsets[idx]; } -void sub_8097750(struct Sprite *sprite) +static void InitSpriteForFigure8Anim(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 0; } -bool8 sub_8097758(struct Sprite *sprite) +static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) { - bool8 result = FALSE; + bool8 finished = FALSE; switch(sprite->data[7]) { - case 0: - sprite->pos2.x += sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 1: - sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; - case 2: - sprite->pos2.x -= sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 3: - sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; - } - if(++sprite->data[6] == 0x48) + case 0: + sprite->pos2.x += GetFigure8XOffset(sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + break; + case 1: + sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + break; + case 2: + sprite->pos2.x -= GetFigure8XOffset(sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + break; + case 3: + sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + break; + } + if (++sprite->data[6] == FIGURE_8_LENGTH) { sprite->data[6] = 0; sprite->data[7]++; } - if(sprite->data[7] == 0x4) + if (sprite->data[7] == 4) { sprite->pos2.y = 0; sprite->pos2.x = 0; - result = TRUE; + finished = TRUE; } - return result; + return finished; } -static const s8 gUnknown_0850E802[] = { +static const s8 gUnknown_0850E802[16] = { -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 }; -static const s8 gUnknown_0850E812[] = { +static const s8 gUnknown_0850E812[16] = { 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 }; -static const s8 gUnknown_0850E822[] = { +static const s8 gUnknown_0850E822[16] = { -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 }; @@ -8503,23 +8507,11 @@ void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) sprite->data[6] = 0; } -static const s16 gUnknown_0850E840[] = { - 16, 16, 32, -}; - -static const u8 gUnknown_0850E846[] = { - 0, 0, 1, -}; - u8 sub_809785C(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy - memcpy(v6, gUnknown_0850E846, 3); - v2 = 0; + s16 v5[] = {16, 16, 32}; + u8 v6[] = {0, 0, 1}; + u8 v2 = 0; if (sprite->data[4]) Step1(sprite, sprite->data[3]); @@ -8540,23 +8532,11 @@ u8 sub_809785C(struct Sprite *sprite) return v2; } -static const s16 gUnknown_0850E84A[] = { - 32, 32, 64, -}; - -static const u8 gUnknown_0850E850[] = { - 1, 1, 2, -}; - u8 sub_80978E4(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E84A, 6); - memcpy(v6, gUnknown_0850E850, 3); - v2 = 0; + s16 v5[] = {32, 32, 64}; + u8 v6[] = {1, 1, 2}; + u8 v2 = 0; if (sprite->data[4] && !(sprite->data[6] & 1)) Step1(sprite, sprite->data[3]); @@ -8584,12 +8564,9 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer) static bool8 WaitForMovementDelay(struct Sprite *sprite) { - sprite->data[3]--; - - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) return TRUE; - else - return FALSE; + return FALSE; } void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex) @@ -8603,8 +8580,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) { if (sprite->animEnded) return TRUE; - else - return FALSE; + return FALSE; } void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) @@ -8783,14 +8759,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite) { switch(sprite->tAnimNum) { + case 0: + break; case UNION_ROOM_SPAWN_IN: MoveUnionRoomObjectDown(sprite); break; case UNION_ROOM_SPAWN_OUT: MoveUnionRoomObjectUp(sprite); break; - case 0: - break; default: sprite->tAnimNum = 0; break; @@ -8871,8 +8847,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct } else { - u8 i; - u8 firstFreeSlot; + u8 i, firstFreeSlot; bool32 found; for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) { @@ -8950,7 +8925,7 @@ void CreateLevitateMovementTask(struct ObjectEvent *objectEvent) u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF); struct Task *task = &gTasks[taskId]; - StoreWordInTwoHalfwords(&task->data[0], (u32)objectEvent); + StoreWordInTwoHalfwords((u16 *)&task->data[0], (u32)objectEvent); objectEvent->warpArrowSpriteId = taskId; task->data[3] = 0xFFFF; } @@ -8961,7 +8936,7 @@ static void ApplyLevitateMovement(u8 taskId) struct Sprite *sprite; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer. + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // load the map object pointer. sprite = &gSprites[objectEvent->spriteId]; if(!(task->data[2] & 0x3)) @@ -8978,7 +8953,7 @@ void DestroyExtraMovementTask(u8 taskId) struct ObjectEvent *objectEvent; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // unused objectEvent + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // unused objectEvent DestroyTask(taskId); } diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 849c676b3..28bbd4ef7 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -271,7 +271,7 @@ static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID) gTasks[taskID].tFrameCounter = 0; BeginNormalPaletteFade(3 << gTasks[taskID].data[1], 0xA, 0, 0x10, RGB_WHITE); gTasks[taskID].func = EvoTask_CreatePreEvoSparkleSet1; - PlaySE(SE_W025); + PlaySE(SE_M_MEGA_KICK); } static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID) @@ -311,7 +311,7 @@ static void EvoTask_BeginPreSparklesSet2(u8 taskID) SetEvoSparklesMatrices(); gTasks[taskID].tFrameCounter = 0; gTasks[taskID].func = EvoTask_CreatePreEvoSparklesSet2; - PlaySE(SE_W062B); + PlaySE(SE_M_BUBBLE_BEAM2); } static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID) @@ -345,7 +345,7 @@ static void EvoTask_BeginPostSparklesSet1(u8 taskID) SetEvoSparklesMatrices(); gTasks[taskID].tFrameCounter = 0; gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet1; - PlaySE(SE_REAPOKE); + PlaySE(SE_SHINY); } static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID) @@ -389,7 +389,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID) CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF9041C, 0, 0, 0x10, RGB_WHITE); // was 0xFFF9001C in R/S gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash; - PlaySE(SE_W080); + PlaySE(SE_M_PETAL_DANCE); } static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID) @@ -437,7 +437,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID) CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF90400, 0, 0, 0x10, RGB_WHITE); // was 0xFFFF0001 in R/S gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade; - PlaySE(SE_W080); + PlaySE(SE_M_PETAL_DANCE); } static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 019d48416..41d4900f7 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -630,14 +630,14 @@ static void Task_EvolutionScene(u8 taskID) case 3: if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) // wait for animation, play tu du SE { - PlaySE(MUS_ME_SHINKA); + PlaySE(MUS_EVOLUTION_INTRO); gTasks[taskID].tState++; } break; case 4: // play evolution music and fade screen black if (!IsSEPlaying()) { - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } @@ -713,7 +713,7 @@ static void Task_EvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); BattlePutTextOnWindow(gStringVar4, 0); - PlayBGM(MUS_FANFA5); + PlayBGM(MUS_EVOLVED); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -808,7 +808,7 @@ static void Task_EvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter @@ -998,15 +998,15 @@ static void Task_TradeEvolutionScene(u8 taskID) case 2: if (IsCryFinished()) { - m4aSongNumStop(MUS_SHINKA); - PlaySE(MUS_ME_SHINKA); + m4aSongNumStop(MUS_EVOLUTION); + PlaySE(MUS_EVOLUTION_INTRO); gTasks[taskID].tState++; } break; case 3: if (!IsSEPlaying()) { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } @@ -1076,7 +1076,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); DrawTextOnTradeWindow(0, gStringVar4, 1); - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -1109,7 +1109,7 @@ static void Task_TradeEvolutionScene(u8 taskID) } else { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); DrawTextOnTradeWindow(0, gText_CommunicationStandby5, 1); gTasks[taskID].tState++; } @@ -1153,7 +1153,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter diff --git a/src/faraway_island.c b/src/faraway_island.c index 57d31057f..e3d8444c9 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -6,6 +6,7 @@ #include "metatile_behavior.h" #include "sprite.h" #include "constants/event_objects.h" +#include "constants/field_effects.h" #include "constants/maps.h" #include "constants/metatile_behaviors.h" @@ -23,7 +24,7 @@ static s16 sPlayerToMewDeltaX; static s16 sPlayerToMewDeltaY; static u8 sMewDirectionCandidates[4]; -extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpritePalette gSpritePalette_GeneralFieldEffect1; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static const s16 sFarawayIslandRockCoords[4][2] = @@ -392,13 +393,13 @@ void SetMewAboveGrass(void) if (gSpecialVar_Facing != DIR_NORTH) gSprites[mew->spriteId].subpriority = 1; - LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); - UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + LoadSpritePalette(&gSpritePalette_GeneralFieldEffect1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gSpritePalette_GeneralFieldEffect1.tag)); x = mew->currentCoords.x; y = mew->currentCoords.y; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - sGrassSpriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + sGrassSpriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, gSprites[mew->spriteId].subpriority - 1); if (sGrassSpriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[sGrassSpriteId]; diff --git a/src/field_camera.c b/src/field_camera.c index 038b6932e..57be52221 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -39,7 +39,7 @@ static void CameraPanningCB_PanAhead(void); static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; -static u8 gUnknown_03000E2C; +static bool8 gUnknown_03000E2C; static void (*sFieldCameraPanningCallback)(void); struct CameraObject gFieldCamera; @@ -47,7 +47,7 @@ u16 gTotalCameraPixelOffsetY; u16 gTotalCameraPixelOffsetX; // text -static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset *cameraOffset) +static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset) { cameraOffset->xTileOffset = 0; cameraOffset->yTileOffset = 0; @@ -56,23 +56,23 @@ static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset * cameraOffset->copyBGToVRAM = TRUE; } -static void tilemap_move_something(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +static void AddCameraTileOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset) { - cameraOffset->xTileOffset += b; + cameraOffset->xTileOffset += xOffset; cameraOffset->xTileOffset %= 32; - cameraOffset->yTileOffset += c; + cameraOffset->yTileOffset += yOffset; cameraOffset->yTileOffset %= 32; } -static void coords8_add(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +static void AddCameraPixelOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset) { - cameraOffset->xPixelOffset += b; - cameraOffset->yPixelOffset += c; + cameraOffset->xPixelOffset += xOffset; + cameraOffset->yPixelOffset += yOffset; } -void move_tilemap_camera_to_upper_left_corner(void) +void ResetFieldCamera(void) { - move_tilemap_camera_to_upper_left_corner_(&sFieldCameraOffset); + ResetCameraOffset(&sFieldCameraOffset); } void FieldUpdateBgTilemapScroll(void) @@ -89,10 +89,10 @@ void FieldUpdateBgTilemapScroll(void) SetGpuReg(REG_OFFSET_BG3VOFS, r4); } -void sub_8089C08(s16 *a, s16 *b) +void sub_8089C08(s16 *x, s16 *y) { - *a = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; - *b = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; + *x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; + *y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; } void DrawWholeMapView(void) @@ -418,11 +418,11 @@ void CameraUpdate(void) UpdateObjectEventsForCameraUpdate(deltaX, deltaY); RotatingGatePuzzleCameraUpdate(deltaX, deltaY); ResetBerryTreeSparkleFlags(); - tilemap_move_something(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + AddCameraTileOffset(&sFieldCameraOffset, deltaX * 2, deltaY * 2); RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2); } - coords8_add(&sFieldCameraOffset, movementSpeedX, movementSpeedY); + AddCameraPixelOffset(&sFieldCameraOffset, movementSpeedX, movementSpeedY); gTotalCameraPixelOffsetX -= movementSpeedX; gTotalCameraPixelOffsetY -= movementSpeedY; } @@ -436,9 +436,9 @@ void MoveCameraAndRedrawMap(int deltaX, int deltaY) //unused gTotalCameraPixelOffsetY -= deltaY * 16; } -void SetCameraPanningCallback(void (*a)(void)) +void SetCameraPanningCallback(void (*callback)(void)) { - sFieldCameraPanningCallback = a; + sFieldCameraPanningCallback = callback; } void SetCameraPanning(s16 a, s16 b) @@ -450,7 +450,7 @@ void SetCameraPanning(s16 a, s16 b) void InstallCameraPanAheadCallback(void) { sFieldCameraPanningCallback = CameraPanningCB_PanAhead; - gUnknown_03000E2C = 0; + gUnknown_03000E2C = FALSE; sHorizontalCameraPan = 0; sVerticalCameraPan = 32; } @@ -478,12 +478,12 @@ static void CameraPanningCB_PanAhead(void) if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION) { gUnknown_03000E2C ^= 1; - if (gUnknown_03000E2C == 0) + if (gUnknown_03000E2C == FALSE) return; } else { - gUnknown_03000E2C = 0; + gUnknown_03000E2C = FALSE; } var = GetPlayerMovementDirection(); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index e41b5a69a..fab14c577 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -545,7 +545,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) UpdateHappinessStepCounter(); UpdateFarawayIslandStepCounter(); - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { if (UpdatePoisonStepCounter() == TRUE) { @@ -725,7 +725,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB } if (MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) == TRUE) { - DoTeleportWarp(); + DoTeleportTileWarp(); return TRUE; } if (MetatileBehavior_IsWarpOrBridge(metatileBehavior) == TRUE) @@ -938,7 +938,7 @@ static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, return NULL; } -bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) +bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { @@ -946,7 +946,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { StoreInitialPlayerAvatarState(); DoDiveWarp(); - PlaySE(SE_W291); + PlaySE(SE_M_DIVE); return TRUE; } } @@ -956,7 +956,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { StoreInitialPlayerAvatarState(); DoDiveWarp(); - PlaySE(SE_W291); + PlaySE(SE_M_DIVE); return TRUE; } } diff --git a/src/field_door.c b/src/field_door.c index e81c3dc4b..4dcb07cca 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -526,9 +526,9 @@ u32 GetDoorSoundEffect(u32 x, u32 y) if (sound == DOOR_SOUND_NORMAL) return SE_DOOR; else if (sound == DOOR_SOUND_SLIDING) - return SE_JIDO_DOA; + return SE_SLIDING_DOOR; else if (sound == DOOR_SOUND_ARENA) - return SE_TU_SAA; + return SE_REPEL; else return SE_DOOR; } diff --git a/src/field_effect.c b/src/field_effect.c index 07579f55d..b64902c0e 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -39,195 +39,197 @@ EWRAM_DATA s32 gFieldEffectArguments[8] = {0}; // Static type declarations static void Task_PokecenterHeal(u8 taskId); -static void PokecenterHealEffect_0(struct Task *); -static void PokecenterHealEffect_1(struct Task *); -static void PokecenterHealEffect_2(struct Task *); -static void PokecenterHealEffect_3(struct Task *); +static void PokecenterHealEffect_Init(struct Task *); +static void PokecenterHealEffect_WaitForBallPlacement(struct Task *); +static void PokecenterHealEffect_WaitForBallFlashing(struct Task *); +static void PokecenterHealEffect_WaitForSoundAndEnd(struct Task *); +static u8 CreatePokecenterMonitorSprite(s16, s16); +static void SpriteCB_PokecenterMonitor(struct Sprite *); static void Task_HallOfFameRecord(u8 taskId); -static void HallOfFameRecordEffect_0(struct Task *); -static void HallOfFameRecordEffect_1(struct Task *); -static void HallOfFameRecordEffect_2(struct Task *); -static void HallOfFameRecordEffect_3(struct Task *); - -static u8 CreatePokeballGlowSprite(s16, s16, s16, u16); +static void HallOfFameRecordEffect_Init(struct Task *); +static void HallOfFameRecordEffect_WaitForBallPlacement(struct Task *); +static void HallOfFameRecordEffect_WaitForBallFlashing(struct Task *); +static void HallOfFameRecordEffect_WaitForSoundAndEnd(struct Task *); +static void CreateHofMonitorSprite(s16, s16, s16, bool8); +static void SpriteCB_HallOfFameMonitor(struct Sprite *); + +static u8 CreateGlowingPokeballsEffect(s16, s16, s16, bool16); static void SpriteCB_PokeballGlowEffect(struct Sprite *); -static void PokeballGlowEffect_0(struct Sprite *); -static void PokeballGlowEffect_1(struct Sprite *); -static void PokeballGlowEffect_2(struct Sprite *); -static void PokeballGlowEffect_3(struct Sprite *); -static void PokeballGlowEffect_4(struct Sprite *); -static void PokeballGlowEffect_5(struct Sprite *); -static void PokeballGlowEffect_6(struct Sprite *); -static void PokeballGlowEffect_7(struct Sprite *); - -static u8 PokecenterHealEffectHelper(s16, s16); -static void HallOfFameRecordEffectHelper(s16, s16, s16, u8); - -static void FieldCallback_Fly(void); -static void task00_8084310(u8); -static void mapldr_08084390(void); -static void c3_080843F8(u8); +static void PokeballGlowEffect_PlaceBalls(struct Sprite *); +static void PokeballGlowEffect_TryPlaySe(struct Sprite *); +static void PokeballGlowEffect_Flash1(struct Sprite *); +static void PokeballGlowEffect_Flash2(struct Sprite *); +static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *); +static void PokeballGlowEffect_Dummy(struct Sprite *); +static void PokeballGlowEffect_WaitForSound(struct Sprite *); +static void PokeballGlowEffect_Idle(struct Sprite *); +static void SpriteCB_PokeballGlow(struct Sprite *); + +static void FieldCallback_UseFly(void); +static void Task_UseFly(u8); +static void FieldCallback_FlyIntoMap(void); +static void Task_FlyIntoMap(u8); static void Task_FallWarpFieldEffect(u8); -static bool8 FallWarpEffect_1(struct Task *); -static bool8 FallWarpEffect_2(struct Task *); -static bool8 FallWarpEffect_3(struct Task *); -static bool8 FallWarpEffect_4(struct Task *); -static bool8 FallWarpEffect_5(struct Task *); -static bool8 FallWarpEffect_6(struct Task *); -static bool8 FallWarpEffect_7(struct Task *); - -static void Task_EscalatorWarpFieldEffect(u8); -static bool8 EscalatorWarpEffect_1(struct Task *); -static bool8 EscalatorWarpEffect_2(struct Task *); -static bool8 EscalatorWarpEffect_3(struct Task *); -static bool8 EscalatorWarpEffect_4(struct Task *); -static bool8 EscalatorWarpEffect_5(struct Task *); -static bool8 EscalatorWarpEffect_6(struct Task *); - -static void sub_80B6FB8(struct Task *); -static void sub_80B7004(struct Task *); -static void sub_80B7050(void); -static void sub_80B7060(void); -static void sub_80B70B4(void); -static void sub_80B70DC(u8); - -static bool8 sub_80B7114(struct Task *); -static bool8 sub_80B7190(struct Task *); -static bool8 sub_80B71D0(struct Task *); -static bool8 sub_80B7230(struct Task *); -static bool8 sub_80B7270(struct Task *); -static bool8 sub_80B72D0(struct Task *); -static bool8 sub_80B72F4(struct Task *); - -static void sub_80B7384(u8); -static bool8 sub_80B73D0(struct Task *, struct ObjectEvent *); -static bool8 waterfall_1_do_anim_probably(struct Task *, struct ObjectEvent *); -static bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct ObjectEvent *); -static bool8 sub_80B7450(struct Task *, struct ObjectEvent *); -static bool8 sub_80B7478(struct Task *, struct ObjectEvent *); - -static void Task_Dive(u8); -static bool8 dive_1_lock(struct Task *); -static bool8 dive_2_unknown(struct Task *); -static bool8 dive_3_unknown(struct Task *); +static bool8 FallWarpEffect_Init(struct Task *); +static bool8 FallWarpEffect_WaitWeather(struct Task *); +static bool8 FallWarpEffect_StartFall(struct Task *); +static bool8 FallWarpEffect_Fall(struct Task *); +static bool8 FallWarpEffect_Land(struct Task *); +static bool8 FallWarpEffect_CameraShake(struct Task *); +static bool8 FallWarpEffect_End(struct Task *); + +static void Task_EscalatorWarpOut(u8); +static bool8 EscalatorWarpOut_Init(struct Task *); +static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *); +static bool8 EscalatorWarpOut_Up_Ride(struct Task *); +static bool8 EscalatorWarpOut_Up_End(struct Task *); +static bool8 EscalatorWarpOut_Down_Ride(struct Task *); +static bool8 EscalatorWarpOut_Down_End(struct Task *); +static void RideUpEscalatorOut(struct Task *); +static void RideDownEscalatorOut(struct Task *); +static void FadeOutAtEndOfEscalator(void); +static void WarpAtEndOfEscalator(void); + +static void FieldCallback_EscalatorWarpIn(void); +static void Task_EscalatorWarpIn(u8); +static bool8 EscalatorWarpIn_Init(struct Task *); +static bool8 EscalatorWarpIn_Down_Init(struct Task *); +static bool8 EscalatorWarpIn_Down_Ride(struct Task *); +static bool8 EscalatorWarpIn_Up_Init(struct Task *); +static bool8 EscalatorWarpIn_Up_Ride(struct Task *); +static bool8 EscalatorWarpIn_WaitForMovement(struct Task *); +static bool8 EscalatorWarpIn_End(struct Task *); + +static void Task_UseWaterfall(u8); +static bool8 WaterfallFieldEffect_Init(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_ShowMon(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_WaitForShowMon(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_RideUp(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_ContinueRideOrEnd(struct Task *, struct ObjectEvent *); + +static void Task_UseDive(u8); +static bool8 DiveFieldEffect_Init(struct Task *); +static bool8 DiveFieldEffect_ShowMon(struct Task *); +static bool8 DiveFieldEffect_TryWarp(struct Task *); static void Task_LavaridgeGymB1FWarp(u8); -static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_FadeOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Warp(struct Task *, struct ObjectEvent *, struct Sprite *); static void FieldCB_LavaridgeGymB1FWarpExit(void); static void Task_LavaridgeGymB1FWarpExit(u8); -static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_StartPopOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_End(struct Task *, struct ObjectEvent *, struct Sprite *); static void Task_LavaridgeGym1FWarp(u8); -static bool8 LavaridgeGym1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_5(struct Task *, struct ObjectEvent *, struct Sprite *); - -static void DoEscapeRopeFieldEffect(u8); -static void EscapeRopeFieldEffect_Step0(struct Task *); -static void EscapeRopeFieldEffect_Step1(struct Task *); - -static void mapldr_080859D4(void); -static void sub_80B7E94(u8); - -static void sub_80B7EC4(struct Task *); -static void sub_80B7EE8(struct Task *); - -static void ExecuteTeleportFieldEffectTask(u8); -static void TeleportFieldEffectTask1(struct Task*); -static void TeleportFieldEffectTask2(struct Task*); -static void TeleportFieldEffectTask3(struct Task*); -static void TeleportFieldEffectTask4(struct Task*); - -static void mapldr_08085D88(void); -static void sub_80B8250(u8); - -static void sub_80B8280(struct Task *); -static void sub_80B830C(struct Task *); -static void sub_80B8410(struct Task *); - -static void sub_80B8554(u8); -static void sub_80B8584(struct Task *); -static void sub_80B85F8(struct Task *); -static void sub_80B8660(struct Task *); -static void sub_80B86EC(struct Task *); -static void sub_80B871C(struct Task *); -static void sub_80B8770(struct Task *); -static void overworld_bg_setup_2(struct Task *); - -static void sub_80B880C(void); -static void sub_80B8874(u16); - -static void sub_80B88B4(u8); -static void sub_80B88E4(struct Task *); -static void sub_80B8920(struct Task *); -static void sub_80B898C(struct Task *); -static void sub_80B89DC(struct Task *); -static void sub_80B8A0C(struct Task *); -static void sub_80B8A44(struct Task *); -static void sub_80B8A64(struct Task *); - -static void sub_80B8AE0(void); -static void sub_80B8B28(struct Task *); -static bool8 sub_80B8B38(struct Task *); -static bool8 sub_80B8BF0(struct Task *); - -static u8 sub_80B8C60(u32, u32, u32); -static void sub_80B8CC0(struct Sprite *); -static void sub_80B8D04(struct Sprite *); -static void sub_80B8D20(struct Sprite *); - -static void sub_80B8D84(u8); -static void sub_80B8DB4(struct Task *); -static void sub_80B8E14(struct Task *); -static void sub_80B8E60(struct Task *); -static void sub_80B8EA8(struct Task *); -static void sub_80B8F24(struct Task *); - -static void sub_80B9128(struct Sprite *); - -static void sub_80B91D4(u8); -static void sub_80B9204(struct Task *); -static void sub_80B925C(struct Task *); -static void sub_80B92A0(struct Task *); -static void sub_80B92F8(struct Task *); -static void sub_80B933C(struct Task *); -static void sub_80B9390(struct Task *); -static void sub_80B9418(struct Task *); -static void sub_80B9474(struct Task *); -static void sub_80B9494(struct Task *); - -static u8 sub_80B94C4(void); -static u8 sub_80B9508(u8); -static void sub_80B9524(u8); -static void sub_80B9560(u8, u8); -static void sub_80B957C(struct Sprite *); -static void sub_80B963C(struct Sprite *); - -static void sub_80B97D4(u8); -static void sub_80B9804(struct Task *); -static void sub_80B98B8(struct Task *); -static void sub_80B9924(struct Task *); -static void sub_80B9978(struct Task *); -static void sub_80B99F0(struct Task *); -static void sub_80B9A28(struct Task *); -static void sub_80B9A60(struct Task *); - -static void sub_80B9BE8(u8 taskId); -static void sub_80B9DB8(struct Sprite* sprite); -static void Fldeff_MoveDeoxysRock_Step(u8 taskId); +static bool8 LavaridgeGym1FWarpEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_Disappear(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_FadeOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_Warp(struct Task *, struct ObjectEvent *, struct Sprite *); + +static void Task_EscapeRopeWarpOut(u8); +static void EscapeRopeWarpOutEffect_Init(struct Task *); +static void EscapeRopeWarpOutEffect_Spin(struct Task *); + +static void FieldCallback_EscapeRopeWarpIn(void); +static void Task_EscapeRopeWarpIn(u8); +static void EscapeRopeWarpInEffect_Init(struct Task *); +static void EscapeRopeWarpInEffect_Spin(struct Task *); + +static void Task_TeleportWarpOut(u8); +static void TeleportWarpOutFieldEffect_Init(struct Task*); +static void TeleportWarpOutFieldEffect_SpinGround(struct Task*); +static void TeleportWarpOutFieldEffect_SpinExit(struct Task*); +static void TeleportWarpOutFieldEffect_End(struct Task*); + +static void FieldCallback_TeleportWarpIn(void); +static void Task_TeleportWarpIn(u8); +static void TeleportWarpInFieldEffect_Init(struct Task *); +static void TeleportWarpInFieldEffect_SpinEnter(struct Task *); +static void TeleportWarpInFieldEffect_SpinGround(struct Task *); + +static void Task_FieldMoveShowMonOutdoors(u8); +static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_WaitForMon(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_End(struct Task *); +static void VBlankCB_FieldMoveShowMonOutdoors(void); +static void LoadFieldMoveOutdoorStreaksTilemap(u16); + +static void Task_FieldMoveShowMonIndoors(u8); +static void FieldMoveShowMonIndoorsEffect_Init(struct Task *); +static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *); +static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *); +static void FieldMoveShowMonIndoorsEffect_WaitForMon(struct Task *); +static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *); +static void FieldMoveShowMonIndoorsEffect_SlideBannerOff(struct Task *); +static void FieldMoveShowMonIndoorsEffect_End(struct Task *); +static void VBlankCB_FieldMoveShowMonIndoors(void); +static void AnimateIndoorShowMonBg(struct Task *); +static bool8 SlideIndoorBannerOnscreen(struct Task *); +static bool8 SlideIndoorBannerOffscreen(struct Task *); + +static u8 InitFieldMoveMonSprite(u32, u32, u32); +static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *); +static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *); +static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *); + +static void Task_SurfFieldEffect(u8); +static void SurfFieldEffect_Init(struct Task *); +static void SurfFieldEffect_FieldMovePose(struct Task *); +static void SurfFieldEffect_ShowMon(struct Task *); +static void SurfFieldEffect_JumpOnSurfBlob(struct Task *); +static void SurfFieldEffect_End(struct Task *); + +static void SpriteCB_NPCFlyOut(struct Sprite *); + +static void Task_FlyOut(u8); +static void FlyOutFieldEffect_FieldMovePose(struct Task *); +static void FlyOutFieldEffect_ShowMon(struct Task *); +static void FlyOutFieldEffect_BirdLeaveBall(struct Task *); +static void FlyOutFieldEffect_WaitBirdLeave(struct Task *); +static void FlyOutFieldEffect_BirdSwoopDown(struct Task *); +static void FlyOutFieldEffect_JumpOnBird(struct Task *); +static void FlyOutFieldEffect_FlyOffWithBird(struct Task *); +static void FlyOutFieldEffect_WaitFlyOff(struct Task *); +static void FlyOutFieldEffect_End(struct Task *); + +static u8 CreateFlyBirdSprite(void); +static u8 GetFlyBirdAnimCompleted(u8); +static void StartFlyBirdSwoopDown(u8); +static void SetFlyBirdPlayerSpriteId(u8, u8); +static void SpriteCB_FlyBirdLeaveBall(struct Sprite *); +static void SpriteCB_FlyBirdSwoopDown(struct Sprite *); + +static void Task_FlyIn(u8); +static void FlyInFieldEffect_BirdSwoopDown(struct Task *); +static void FlyInFieldEffect_FlyInWithBird(struct Task *); +static void FlyInFieldEffect_JumpOffBird(struct Task *); +static void FlyInFieldEffect_FieldMovePose(struct Task *); +static void FlyInFieldEffect_BirdReturnToBall(struct Task *); +static void FlyInFieldEffect_WaitBirdReturn(struct Task *); +static void FlyInFieldEffect_End(struct Task *); + +static void Task_DestroyDeoxysRock(u8 taskId); +static void DestroyDeoxysRockEffect_CameraShake(s16*, u8); +static void DestroyDeoxysRockEffect_RockFragments(s16*, u8); +static void DestroyDeoxysRockEffect_WaitAndEnd(s16*, u8); +static void CreateDeoxysRockFragments(struct Sprite*); +static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite); + +static void Task_MoveDeoxysRock(u8 taskId); // Static RAM declarations @@ -240,34 +242,33 @@ extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; extern u8 *gFieldEffectScriptPointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; -// .rodata -const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); -const u32 gUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); -const u16 gNewGameBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); -const u32 gSpriteImage_855A970[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); -const u16 gFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effects/palettes/04.gbapal"); -const u32 gSpriteImage_855A9B0[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); -const u32 gSpriteImage_855AA70[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); -const u32 gSpriteImage_855AB30[] = INCBIN_U32("graphics/misc/big_hof_monitor.4bpp"); -const u8 gSpriteImage_855AD30[] = INCBIN_U8("graphics/misc/small_hof_monitor.4bpp"); -const u16 gFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effects/palettes/05.gbapal"); +static const u32 sNewGameBirch_Gfx[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); +static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); +static const u16 sNewGameBirch_Pal[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); +static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); +static const u16 sPokeballGlow_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/pokeball_glow.gbapal"); +static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); +static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); +static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/misc/hof_monitor_big.4bpp"); +static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/misc/hof_monitor_small.4bpp"); +static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal"); // Graphics for the lights streaking past your Pokemon when it uses a field move. -const u32 gFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); -const u16 gFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); -const u16 gFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); - -// The following light streaks effect is used when the map is dark (e.g. a cave). -const u32 gDarknessFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); -const u16 gDarknessFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); -const u16 gDarknessFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); - -const u16 gUnknown_0855B610[16] = INCBIN_U16("graphics/misc/spotlight.gbapal"); -const u8 gUnknown_0855B630[] = INCBIN_U8("graphics/misc/spotlight.4bpp"); -const u8 gUnknown_0855C170[] = INCBIN_U8("graphics/unknown/unknown_55C170.4bpp"); -const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp"); -const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp"); -const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp"); +static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); +static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); +static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); + +// The following light streaks effect is used when the map is indoors +static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); +static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); +static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); + +static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/misc/spotlight.gbapal"); +static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/misc/spotlight.4bpp"); +static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_left.4bpp"); +static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_right.4bpp"); +static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_left.4bpp"); +static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_right.4bpp"); bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { @@ -281,7 +282,7 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = FieldEffectCmd_loadfadedpal_callnative, }; -const struct OamData gNewGameBirchOamAttributes = +static const struct OamData sOam_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -295,7 +296,7 @@ const struct OamData gNewGameBirchOamAttributes = .paletteNum = 0, }; -const struct OamData gOamData_855C218 = +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -309,7 +310,7 @@ const struct OamData gOamData_855C218 = .paletteNum = 0, }; -const struct OamData gOamData_855C220 = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -323,52 +324,52 @@ const struct OamData gOamData_855C220 = .paletteNum = 0, }; -const struct SpriteFrameImage gNewGameBirchPicTable[] = +static const struct SpriteFrameImage sPicTable_NewGameBirch[] = { - obj_frame_tiles(gNewGameBirchPic) + obj_frame_tiles(sNewGameBirch_Gfx) }; -const struct SpritePalette gNewGameBirchObjectPaletteInfo = +static const struct SpritePalette sSpritePalette_NewGameBirch = { - .data = gNewGameBirchPalette, + .data = sNewGameBirch_Pal, .tag = 0x1006 }; -const union AnimCmd gNewGameBirchImageAnim[] = +static const union AnimCmd sAnim_NewGameBirch[] = { ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_END }; -const union AnimCmd *const gNewGameBirchImageAnimTable[] = +static const union AnimCmd *const sAnimTable_NewGameBirch[] = { - gNewGameBirchImageAnim + sAnim_NewGameBirch }; -const struct SpriteTemplate gNewGameBirchObjectTemplate = +static const struct SpriteTemplate sSpriteTemplate_NewGameBirch = { .tileTag = 0xFFFF, - .paletteTag = 4102, - .oam = &gNewGameBirchOamAttributes, - .anims = gNewGameBirchImageAnimTable, - .images = gNewGameBirchPicTable, + .paletteTag = 0x1006, + .oam = &sOam_64x64, + .anims = sAnimTable_NewGameBirch, + .images = sPicTable_NewGameBirch, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct SpritePalette gFieldEffectObjectPaletteInfo4 = +const struct SpritePalette gSpritePalette_PokeballGlow = { - .data = gFieldEffectObjectPalette4, - .tag = 0x1007 + .data = sPokeballGlow_Pal, + .tag = FLDEFF_PAL_TAG_POKEBALL_GLOW }; -const struct SpritePalette gFieldEffectObjectPaletteInfo5 = +const struct SpritePalette gSpritePalette_HofMonitor = { - .data = gFieldEffectObjectPalette5, - .tag = 0x1010 + .data = sHofMonitor_Pal, + .tag = FLDEFF_PAL_TAG_HOF_MONITOR }; -const struct OamData gOamData_855C26C = +static const struct OamData sOam_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -382,28 +383,28 @@ const struct OamData gOamData_855C26C = .paletteNum = 0, }; -const struct SpriteFrameImage gSpriteImageTable_855C274[] = +static const struct SpriteFrameImage sPicTable_PokeballGlow[] = { - obj_frame_tiles(gSpriteImage_855A970) + obj_frame_tiles(sPokeballGlow_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C27C[] = +static const struct SpriteFrameImage sPicTable_PokecenterMonitor[] = { - obj_frame_tiles(gSpriteImage_855A9B0), - obj_frame_tiles(gSpriteImage_855AA70) + obj_frame_tiles(sPokecenterMonitor0_Gfx), + obj_frame_tiles(sPokecenterMonitor1_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C28C[] = +static const struct SpriteFrameImage sPicTable_HofMonitorBig[] = { - obj_frame_tiles(gSpriteImage_855AB30) + obj_frame_tiles(sHofMonitorBig_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C294[] = +static const struct SpriteFrameImage sPicTable_HofMonitorSmall[] = { - {.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here + {.data = sHofMonitorSmall_Gfx, .size = 0x200} // the macro breaks down here }; -const struct Subsprite gSubspriteTable_855C29C[] = +static const struct Subsprite sSubsprites_PokecenterMonitor[] = { { .x = -12, @@ -439,9 +440,9 @@ const struct Subsprite gSubspriteTable_855C29C[] = } }; -const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C); +static const struct SubspriteTable sSubspriteTable_PokecenterMonitor = subsprite_table(sSubsprites_PokecenterMonitor); -const struct Subsprite gSubspriteTable_855C2B4[] = +static const struct Subsprite sSubsprites_HofMonitorBig[] = { { .x = -32, @@ -477,7 +478,7 @@ const struct Subsprite gSubspriteTable_855C2B4[] = } }; -const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4); +static const struct SubspriteTable sSubspriteTable_HofMonitorBig = subsprite_table(sSubsprites_HofMonitorBig); const union AnimCmd gSpriteAnim_855C2CC[] = { @@ -504,84 +505,84 @@ const union AnimCmd *const gSpriteAnimTable_855C2F8[] = gSpriteAnim_855C2D4 }; -const union AnimCmd *const gSpriteAnimTable_855C300[] = +static const union AnimCmd *const sAnimTable_HofMonitor[] = { gSpriteAnim_855C2CC }; -const struct SpriteTemplate gSpriteTemplate_855C304 = +static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = { .tileTag = 0xFFFF, - .paletteTag = 4103, - .oam = &gOamData_855C218, + .paletteTag = FLDEFF_PAL_TAG_POKEBALL_GLOW, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_855C2F8, - .images = gSpriteImageTable_855C274, + .images = sPicTable_PokeballGlow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokeballGlow }; -const struct SpriteTemplate gSpriteTemplate_855C31C = +static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = { .tileTag = 0xFFFF, - .paletteTag = 4100, - .oam = &gOamData_855C220, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, + .oam = &sOam_16x16, .anims = gSpriteAnimTable_855C2F8, - .images = gSpriteImageTable_855C27C, + .images = sPicTable_PokecenterMonitor, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokecenterMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C334 = +static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = { .tileTag = 0xFFFF, - .paletteTag = 4112, - .oam = &gOamData_855C220, - .anims = gSpriteAnimTable_855C300, - .images = gSpriteImageTable_855C28C, + .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, + .oam = &sOam_16x16, + .anims = sAnimTable_HofMonitor, + .images = sPicTable_HofMonitorBig, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C34C = +static const struct SpriteTemplate sSpriteTemplate_HofMonitorSmall = { .tileTag = 0xFFFF, - .paletteTag = 4112, - .oam = &gOamData_855C26C, - .anims = gSpriteAnimTable_855C300, - .images = gSpriteImageTable_855C294, + .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, + .oam = &sOam_32x16, + .anims = sAnimTable_HofMonitor, + .images = sPicTable_HofMonitorSmall, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor }; -void (*const gUnknown_0855C364[])(struct Task *) = +void (*const sPokecenterHealEffectFuncs[])(struct Task *) = { - PokecenterHealEffect_0, - PokecenterHealEffect_1, - PokecenterHealEffect_2, - PokecenterHealEffect_3 + PokecenterHealEffect_Init, + PokecenterHealEffect_WaitForBallPlacement, + PokecenterHealEffect_WaitForBallFlashing, + PokecenterHealEffect_WaitForSoundAndEnd }; -void (*const gUnknown_0855C374[])(struct Task *) = +void (*const sHallOfFameRecordEffectFuncs[])(struct Task *) = { - HallOfFameRecordEffect_0, - HallOfFameRecordEffect_1, - HallOfFameRecordEffect_2, - HallOfFameRecordEffect_3 + HallOfFameRecordEffect_Init, + HallOfFameRecordEffect_WaitForBallPlacement, + HallOfFameRecordEffect_WaitForBallFlashing, + HallOfFameRecordEffect_WaitForSoundAndEnd }; -void (*const gUnknown_0855C384[])(struct Sprite *) = +void (*const sPokeballGlowEffectFuncs[])(struct Sprite *) = { - PokeballGlowEffect_0, - PokeballGlowEffect_1, - PokeballGlowEffect_2, - PokeballGlowEffect_3, - PokeballGlowEffect_4, - PokeballGlowEffect_5, - PokeballGlowEffect_6, - PokeballGlowEffect_7 + PokeballGlowEffect_PlaceBalls, + PokeballGlowEffect_TryPlaySe, + PokeballGlowEffect_Flash1, + PokeballGlowEffect_Flash2, + PokeballGlowEffect_WaitAfterFlash, + PokeballGlowEffect_Dummy, + PokeballGlowEffect_WaitForSound, + PokeballGlowEffect_Idle }; -const struct Coords16 gUnknown_0855C3A4[] = +static const struct Coords16 sPokeballCoordOffsets[PARTY_SIZE] = { {.x = 0, .y = 0}, {.x = 6, .y = 0}, @@ -591,93 +592,91 @@ const struct Coords16 gUnknown_0855C3A4[] = {.x = 6, .y = 8} }; -const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0}; -const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0}; -const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0}; +static const u8 sPokeballGlowReds[] = {16, 12, 8, 0}; +static const u8 sPokeballGlowGreens[] = {16, 12, 8, 0}; +static const u8 sPokeballGlowBlues[] = { 0, 0, 0, 0}; bool8 (*const sFallWarpFieldEffectFuncs[])(struct Task *) = { - FallWarpEffect_1, - FallWarpEffect_2, - FallWarpEffect_3, - FallWarpEffect_4, - FallWarpEffect_5, - FallWarpEffect_6, - FallWarpEffect_7, + FallWarpEffect_Init, + FallWarpEffect_WaitWeather, + FallWarpEffect_StartFall, + FallWarpEffect_Fall, + FallWarpEffect_Land, + FallWarpEffect_CameraShake, + FallWarpEffect_End, }; -bool8 (*const sEscalatorWarpFieldEffectFuncs[])(struct Task *) = +bool8 (*const sEscalatorWarpOutFieldEffectFuncs[])(struct Task *) = { - EscalatorWarpEffect_1, - EscalatorWarpEffect_2, - EscalatorWarpEffect_3, - EscalatorWarpEffect_4, - EscalatorWarpEffect_5, - EscalatorWarpEffect_6, + EscalatorWarpOut_Init, + EscalatorWarpOut_WaitForPlayer, + EscalatorWarpOut_Up_Ride, + EscalatorWarpOut_Up_End, + EscalatorWarpOut_Down_Ride, + EscalatorWarpOut_Down_End, }; -bool8 (*const gUnknown_0855C3FC[])(struct Task *) = +bool8 (*const sEscalatorWarpInFieldEffectFuncs[])(struct Task *) = { - sub_80B7114, - sub_80B7190, - sub_80B71D0, - sub_80B7230, - sub_80B7270, - sub_80B72D0, - sub_80B72F4, + EscalatorWarpIn_Init, + EscalatorWarpIn_Down_Init, + EscalatorWarpIn_Down_Ride, + EscalatorWarpIn_Up_Init, + EscalatorWarpIn_Up_Ride, + EscalatorWarpIn_WaitForMovement, + EscalatorWarpIn_End, }; -bool8 (*const gUnknown_0855C418[])(struct Task *, struct ObjectEvent *) = +bool8 (*const sWaterfallFieldEffectFuncs[])(struct Task *, struct ObjectEvent *) = { - sub_80B73D0, - waterfall_1_do_anim_probably, - waterfall_2_wait_anim_finish_probably, - sub_80B7450, - sub_80B7478, + WaterfallFieldEffect_Init, + WaterfallFieldEffect_ShowMon, + WaterfallFieldEffect_WaitForShowMon, + WaterfallFieldEffect_RideUp, + WaterfallFieldEffect_ContinueRideOrEnd, }; -bool8 (*const gUnknown_0855C42C[])(struct Task *) = +bool8 (*const sDiveFieldEffectFuncs[])(struct Task *) = { - dive_1_lock, - dive_2_unknown, - dive_3_unknown, + DiveFieldEffect_Init, + DiveFieldEffect_ShowMon, + DiveFieldEffect_TryWarp, }; bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGymB1FWarpEffect_1, - LavaridgeGymB1FWarpEffect_2, - LavaridgeGymB1FWarpEffect_3, - LavaridgeGymB1FWarpEffect_4, - LavaridgeGymB1FWarpEffect_5, - LavaridgeGymB1FWarpEffect_6, + LavaridgeGymB1FWarpEffect_Init, + LavaridgeGymB1FWarpEffect_CameraShake, + LavaridgeGymB1FWarpEffect_Launch, + LavaridgeGymB1FWarpEffect_Rise, + LavaridgeGymB1FWarpEffect_FadeOut, + LavaridgeGymB1FWarpEffect_Warp, }; bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGymB1FWarpExitEffect_1, - LavaridgeGymB1FWarpExitEffect_2, - LavaridgeGymB1FWarpExitEffect_3, - LavaridgeGymB1FWarpExitEffect_4, + LavaridgeGymB1FWarpExitEffect_Init, + LavaridgeGymB1FWarpExitEffect_StartPopOut, + LavaridgeGymB1FWarpExitEffect_PopOut, + LavaridgeGymB1FWarpExitEffect_End, }; bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGym1FWarpEffect_1, - LavaridgeGym1FWarpEffect_2, - LavaridgeGym1FWarpEffect_3, - LavaridgeGym1FWarpEffect_4, - LavaridgeGym1FWarpEffect_5, + LavaridgeGym1FWarpEffect_Init, + LavaridgeGym1FWarpEffect_AshPuff, + LavaridgeGym1FWarpEffect_Disappear, + LavaridgeGym1FWarpEffect_FadeOut, + LavaridgeGym1FWarpEffect_Warp, }; -void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = +void (*const sEscapeRopeWarpOutEffectFuncs[])(struct Task *) = { - EscapeRopeFieldEffect_Step0, - EscapeRopeFieldEffect_Step1, + EscapeRopeWarpOutEffect_Init, + EscapeRopeWarpOutEffect_Spin, }; -// .text - u32 FieldEffectStart(u8 id) { u8 *script; @@ -881,7 +880,7 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf LoadCompressedSpriteSheetOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer); spriteTemplate.tileTag = gTrainerFrontPicTable[trainerSpriteID].tag; spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[trainerSpriteID].tag; - spriteTemplate.oam = &gNewGameBirchOamAttributes; + spriteTemplate.oam = &sOam_64x64; spriteTemplate.anims = gDummySpriteAnimTable; spriteTemplate.images = NULL; spriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -897,8 +896,8 @@ void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest) u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) { - LoadSpritePalette(&gNewGameBirchObjectPaletteInfo); - return CreateSprite(&gNewGameBirchObjectTemplate, x, y, subpriority); + LoadSpritePalette(&sSpritePalette_NewGameBirch); + return CreateSprite(&sSpriteTemplate_NewGameBirch, x, y, subpriority); } u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) @@ -911,10 +910,10 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) return spriteId; } -u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority) +u8 CreateMonSprite_FieldMove(u16 species, u32 otId, u32 personality, s16 x, s16 y, u8 subpriority) { - const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g); - u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag); + const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); + u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, 1, x, y, 0, spritePalette->tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; @@ -974,6 +973,28 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) gPlttBufferFaded[i] = outPal; } +// Task data for Task_PokecenterHeal and Task_HallOfFameRecord +#define tState data[0] +#define tNumMons data[1] +#define tFirstBallX data[2] +#define tFirstBallY data[3] +#define tMonitorX data[4] +#define tMonitorY data[5] +#define tBallSpriteId data[6] +#define tMonitorSpriteId data[7] +#define tStartHofFlash data[15] + +// Sprite data for SpriteCB_PokeballGlowEffect +#define sState data[0] +#define sTimer data[1] +#define sCounter data[2] +#define sPlayHealSe data[5] +#define sNumMons data[6] +#define sSpriteId data[7] + +// Sprite data for SpriteCB_PokeballGlow +#define sEffectSpriteId data[0] + bool8 FldEff_PokecenterHeal(void) { u8 nPokemon; @@ -981,11 +1002,11 @@ bool8 FldEff_PokecenterHeal(void) nPokemon = CalculatePlayerPartyCount(); task = &gTasks[CreateTask(Task_PokecenterHeal, 0xff)]; - task->data[1] = nPokemon; - task->data[2] = 0x5d; - task->data[3] = 0x24; - task->data[4] = 0x7c; - task->data[5] = 0x18; + task->tNumMons = nPokemon; + task->tFirstBallX = 93; + task->tFirstBallY = 36; + task->tMonitorX = 124; + task->tMonitorY = 24; return FALSE; } @@ -993,38 +1014,38 @@ static void Task_PokecenterHeal(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - gUnknown_0855C364[task->data[0]](task); + sPokecenterHealEffectFuncs[task->tState](task); } -static void PokecenterHealEffect_0(struct Task *task) +static void PokecenterHealEffect_Init(struct Task *task) { - task->data[0]++; - task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 1); - task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]); + task->tState++; + task->tBallSpriteId = CreateGlowingPokeballsEffect(task->tNumMons, task->tFirstBallX, task->tFirstBallY, TRUE); + task->tMonitorSpriteId = CreatePokecenterMonitorSprite(task->tMonitorX, task->tMonitorY); } -static void PokecenterHealEffect_1(struct Task *task) +static void PokecenterHealEffect_WaitForBallPlacement(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 1) + if (gSprites[task->tBallSpriteId].sState > 1) { - gSprites[task->data[7]].data[0]++; - task->data[0]++; + gSprites[task->tMonitorSpriteId].sState++; + task->tState++; } } -static void PokecenterHealEffect_2(struct Task *task) +static void PokecenterHealEffect_WaitForBallFlashing(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 4) + if (gSprites[task->tBallSpriteId].sState > 4) { - task->data[0]++; + task->tState++; } } -static void PokecenterHealEffect_3(struct Task *task) +static void PokecenterHealEffect_WaitForSoundAndEnd(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 6) + if (gSprites[task->tBallSpriteId].sState > 6) { - DestroySprite(&gSprites[task->data[6]]); + DestroySprite(&gSprites[task->tBallSpriteId]); FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL); DestroyTask(FindTaskIdByFunc(Task_PokecenterHeal)); } @@ -1037,9 +1058,9 @@ bool8 FldEff_HallOfFameRecord(void) nPokemon = CalculatePlayerPartyCount(); task = &gTasks[CreateTask(Task_HallOfFameRecord, 0xff)]; - task->data[1] = nPokemon; - task->data[2] = 0x75; - task->data[3] = 0x34; + task->tNumMons = nPokemon; + task->tFirstBallX = 117; + task->tFirstBallY = 52; return FALSE; } @@ -1047,51 +1068,50 @@ static void Task_HallOfFameRecord(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - gUnknown_0855C374[task->data[0]](task); + sHallOfFameRecordEffectFuncs[task->tState](task); } -static void HallOfFameRecordEffect_0(struct Task *task) +static void HallOfFameRecordEffect_Init(struct Task *task) { u8 taskId; - task->data[0]++; - task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 0); + task->tState++; + task->tBallSpriteId = CreateGlowingPokeballsEffect(task->tNumMons, task->tFirstBallX, task->tFirstBallY, FALSE); taskId = FindTaskIdByFunc(Task_HallOfFameRecord); - HallOfFameRecordEffectHelper(taskId, 0x78, 0x18, 0); - HallOfFameRecordEffectHelper(taskId, 0x28, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0x48, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0xa8, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0xc8, 0x08, 1); + CreateHofMonitorSprite(taskId, 120, 24, FALSE); + CreateHofMonitorSprite(taskId, 40, 8, TRUE); + CreateHofMonitorSprite(taskId, 72, 8, TRUE); + CreateHofMonitorSprite(taskId, 168, 8, TRUE); + CreateHofMonitorSprite(taskId, 200, 8, TRUE); } -static void HallOfFameRecordEffect_1(struct Task *task) +static void HallOfFameRecordEffect_WaitForBallPlacement(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 1) + if (gSprites[task->tBallSpriteId].sState > 1) { - task->data[15]++; // was this ever initialized? is this ever used? - task->data[0]++; + task->tStartHofFlash++; + task->tState++; } } -static void HallOfFameRecordEffect_2(struct Task *task) +static void HallOfFameRecordEffect_WaitForBallFlashing(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 4) + if (gSprites[task->tBallSpriteId].sState > 4) { - task->data[0]++; + task->tState++; } } -static void HallOfFameRecordEffect_3(struct Task *task) +static void HallOfFameRecordEffect_WaitForSoundAndEnd(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 6) + if (gSprites[task->tBallSpriteId].sState > 6) { - DestroySprite(&gSprites[task->data[6]]); + DestroySprite(&gSprites[task->tBallSpriteId]); FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD); DestroyTask(FindTaskIdByFunc(Task_HallOfFameRecord)); } } - -static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) +static u8 CreateGlowingPokeballsEffect(s16 numMons, s16 x, s16 y, bool16 playHealSe) { u8 spriteId; struct Sprite *sprite; @@ -1099,150 +1119,150 @@ static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) sprite = &gSprites[spriteId]; sprite->pos2.x = x; sprite->pos2.y = y; - sprite->data[5] = data5; - sprite->data[6] = data6; - sprite->data[7] = spriteId; + sprite->sPlayHealSe = playHealSe; + sprite->sNumMons = numMons; + sprite->sSpriteId = spriteId; return spriteId; } static void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) { - gUnknown_0855C384[sprite->data[0]](sprite); + sPokeballGlowEffectFuncs[sprite->sState](sprite); } -static void PokeballGlowEffect_0(struct Sprite *sprite) +static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite) { - u8 endSpriteId; - if (sprite->data[1] == 0 || (--sprite->data[1]) == 0) + u8 spriteId; + if (sprite->sTimer == 0 || (--sprite->sTimer) == 0) { - sprite->data[1] = 25; - endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_855C304, gUnknown_0855C3A4[sprite->data[2]].x + sprite->pos2.x, gUnknown_0855C3A4[sprite->data[2]].y + sprite->pos2.y, 0); - gSprites[endSpriteId].oam.priority = 2; - gSprites[endSpriteId].data[0] = sprite->data[7]; - sprite->data[2]++; - sprite->data[6]--; - PlaySE(SE_BOWA); + sprite->sTimer = 25; + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->pos2.x, sPokeballCoordOffsets[sprite->sCounter].y + sprite->pos2.y, 0); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId; + sprite->sCounter++; + sprite->sNumMons--; + PlaySE(SE_BALL); } - if (sprite->data[6] == 0) + if (sprite->sNumMons == 0) { - sprite->data[1] = 32; - sprite->data[0]++; + sprite->sTimer = 32; + sprite->sState++; } } -static void PokeballGlowEffect_1(struct Sprite *sprite) +static void PokeballGlowEffect_TryPlaySe(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[0]++; - sprite->data[1] = 8; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 8; + sprite->sCounter = 0; sprite->data[3] = 0; - if (sprite->data[5]) + if (sprite->sPlayHealSe) { - PlayFanfare(MUS_ME_ASA); + PlayFanfare(MUS_HEAL); } } } -static void PokeballGlowEffect_2(struct Sprite *sprite) +static void PokeballGlowEffect_Flash1(struct Sprite *sprite) { u8 phase; - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[1] = 8; - sprite->data[2]++; - sprite->data[2] &= 3; - if (sprite->data[2] == 0) - { + sprite->sTimer = 8; + sprite->sCounter++; + sprite->sCounter &= 3; + + if (sprite->sCounter == 0) sprite->data[3]++; - } } - phase = (sprite->data[2] + 3) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = (sprite->data[2] + 2) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = (sprite->data[2] + 1) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = sprite->data[2]; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); + phase = (sprite->sCounter + 3) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = (sprite->sCounter + 2) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = (sprite->sCounter + 1) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = sprite->sCounter; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); if (sprite->data[3] > 2) { - sprite->data[0]++; - sprite->data[1] = 8; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 8; + sprite->sCounter = 0; } } -static void PokeballGlowEffect_3(struct Sprite *sprite) +static void PokeballGlowEffect_Flash2(struct Sprite *sprite) { u8 phase; - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[1] = 8; - sprite->data[2]++; - sprite->data[2] &= 3; - if (sprite->data[2] == 3) + sprite->sTimer = 8; + sprite->sCounter++; + sprite->sCounter &= 3; + if (sprite->sCounter == 3) { - sprite->data[0]++; - sprite->data[1] = 30; + sprite->sState++; + sprite->sTimer = 30; } } - phase = sprite->data[2]; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); + phase = sprite->sCounter; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); } -static void PokeballGlowEffect_4(struct Sprite *sprite) +static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[0]++; + sprite->sState++; } } -static void PokeballGlowEffect_5(struct Sprite *sprite) +static void PokeballGlowEffect_Dummy(struct Sprite *sprite) { - sprite->data[0]++; + sprite->sState++; } -static void PokeballGlowEffect_6(struct Sprite *sprite) +static void PokeballGlowEffect_WaitForSound(struct Sprite *sprite) { - if (sprite->data[5] == 0 || IsFanfareTaskInactive()) + if (sprite->sPlayHealSe == FALSE || IsFanfareTaskInactive()) { - sprite->data[0]++; + sprite->sState++; } } -static void PokeballGlowEffect_7(struct Sprite *sprite) +static void PokeballGlowEffect_Idle(struct Sprite *sprite) { + // Idle until destroyed } -void SpriteCB_PokeballGlow(struct Sprite *sprite) +static void SpriteCB_PokeballGlow(struct Sprite *sprite) { - if (gSprites[sprite->data[0]].data[0] > 4) + if (gSprites[sprite->sEffectSpriteId].sState > 4) { FieldEffectFreeGraphicsResources(sprite); } } -static u8 PokecenterHealEffectHelper(s16 x, s16 y) +static u8 CreatePokecenterMonitorSprite(s16 x, s16 y) { - u8 spriteIdAtEnd; + u8 spriteId; struct Sprite *sprite; - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C31C, x, y, 0); - sprite = &gSprites[spriteIdAtEnd]; + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokecenterMonitor, x, y, 0); + sprite = &gSprites[spriteId]; sprite->oam.priority = 2; sprite->invisible = TRUE; - SetSubspriteTables(sprite, &gUnknown_0855C2AC); - return spriteIdAtEnd; + SetSubspriteTables(sprite, &sSubspriteTable_PokecenterMonitor); + return spriteId; } -void SpriteCB_PokecenterMonitor(struct Sprite *sprite) +static void SpriteCB_PokecenterMonitor(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -1256,24 +1276,24 @@ void SpriteCB_PokecenterMonitor(struct Sprite *sprite) } } -static void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) +static void CreateHofMonitorSprite(s16 taskId, s16 x, s16 y, bool8 isSmallMonitor) { - u8 spriteIdAtEnd; - if (!a3) + u8 spriteId; + if (!isSmallMonitor) { - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C334, a1, a2, 0); - SetSubspriteTables(&gSprites[spriteIdAtEnd], &gUnknown_0855C2C4); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorBig, x, y, 0); + SetSubspriteTables(&gSprites[spriteId], &sSubspriteTable_HofMonitorBig); } else { - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C34C, a1, a2, 0); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorSmall, x, y, 0); } - gSprites[spriteIdAtEnd].invisible = TRUE; - gSprites[spriteIdAtEnd].data[0] = a0; + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].data[0] = taskId; } -void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) +static void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) { - if (gTasks[sprite->data[0]].data[15]) + if (gTasks[sprite->data[0]].tStartHofFlash) { if (sprite->data[1] == 0 || (--sprite->data[1]) == 0) { @@ -1288,37 +1308,51 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) } } +#undef tState +#undef tNumMons +#undef tFirstBallX +#undef tFirstBallY +#undef tMonitorX +#undef tMonitorY +#undef tBallSpriteId +#undef tMonitorSpriteId +#undef tStartHofFlash +#undef sState +#undef sTimer +#undef sCounter +#undef sPlayHealSe +#undef sNumMons +#undef sSpriteId +#undef sEffectSpriteId void ReturnToFieldFromFlyMapSelect(void) { SetMainCallback2(CB2_ReturnToField); - gFieldCallback = FieldCallback_Fly; + gFieldCallback = FieldCallback_UseFly; } -static void FieldCallback_Fly(void) +static void FieldCallback_UseFly(void) { FadeInFromBlack(); - CreateTask(task00_8084310, 0); + CreateTask(Task_UseFly, 0); ScriptContext2_Enable(); FreezeObjectEvents(); gFieldCallback = NULL; } -static void task00_8084310(u8 taskId) +static void Task_UseFly(u8 taskId) { struct Task *task; task = &gTasks[taskId]; if (!task->data[0]) { if (!IsWeatherNotFadingIn()) - { return; - } + gFieldEffectArguments[0] = GetCursorSelectionMonId(); - if ((int)gFieldEffectArguments[0] > 5) - { + if ((int)gFieldEffectArguments[0] > PARTY_SIZE - 1) gFieldEffectArguments[0] = 0; - } + FieldEffectStart(FLDEFF_USE_FLY); task->data[0]++; } @@ -1327,18 +1361,18 @@ static void task00_8084310(u8 taskId) Overworld_ResetStateAfterFly(); WarpIntoMap(); SetMainCallback2(CB2_LoadMap); - gFieldCallback = mapldr_08084390; + gFieldCallback = FieldCallback_FlyIntoMap; DestroyTask(taskId); } } -static void mapldr_08084390(void) +static void FieldCallback_FlyIntoMap(void) { Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); - CreateTask(c3_080843F8, 0); + CreateTask(Task_FlyIntoMap, 0); gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; - if (gPlayerAvatar.flags & 0x08) + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) { ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_WEST); } @@ -1347,7 +1381,7 @@ static void mapldr_08084390(void) gFieldCallback = NULL; } -static void c3_080843F8(u8 taskId) +static void Task_FlyIntoMap(u8 taskId) { struct Task *task; task = &gTasks[taskId]; @@ -1368,6 +1402,15 @@ static void c3_080843F8(u8 taskId) } } +#define tState data[0] +#define tFallOffset data[1] +#define tTotalFall data[2] +#define tSetTrigger data[3] +#define tSubsprMode data[4] + +#define tVertShake data[1] // re-used +#define tNumShakes data[2] + void FieldCB_FallWarpExit(void) { Overworld_PlaySpecialMapMusic(); @@ -1382,10 +1425,10 @@ static void Task_FallWarpFieldEffect(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sFallWarpFieldEffectFuncs[task->data[0]](task)); // return code signifies whether to continue blocking here + while (sFallWarpFieldEffectFuncs[task->tState](task)); } -static bool8 FallWarpEffect_1(struct Task *task) +static bool8 FallWarpEffect_Init(struct Task *task) { struct ObjectEvent *playerObject; struct Sprite *playerSprite; @@ -1395,98 +1438,95 @@ static bool8 FallWarpEffect_1(struct Task *task) gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; gPlayerAvatar.preventStep = TRUE; ObjectEventSetHeldMovement(playerObject, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); - task->data[4] = playerSprite->subspriteMode; + task->tSubsprMode = playerSprite->subspriteMode; playerObject->fixedPriority = 1; playerSprite->oam.priority = 1; playerSprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - task->data[0]++; + task->tState++; return TRUE; } -static bool8 FallWarpEffect_2(struct Task *task) +static bool8 FallWarpEffect_WaitWeather(struct Task *task) { if (IsWeatherNotFadingIn()) - { - task->data[0]++; - } + task->tState++; + return FALSE; } -static bool8 FallWarpEffect_3(struct Task *task) +static bool8 FallWarpEffect_StartFall(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); - task->data[1] = 1; - task->data[2] = 0; + task->tFallOffset = 1; + task->tTotalFall = 0; gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE; - PlaySE(SE_RU_HYUU); - task->data[0]++; + PlaySE(SE_FALL); + task->tState++; return FALSE; } -static bool8 FallWarpEffect_4(struct Task *task) +static bool8 FallWarpEffect_Fall(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y += task->data[1]; - if (task->data[1] < 8) + sprite->pos2.y += task->tFallOffset; + if (task->tFallOffset < 8) { - task->data[2] += task->data[1]; - if (task->data[2] & 0xf) - { - task->data[1] <<= 1; - } + task->tTotalFall += task->tFallOffset; + + if (task->tTotalFall & 0xf) + task->tFallOffset <<= 1; } - if (task->data[3] == 0 && sprite->pos2.y >= -16) + if (task->tSetTrigger == FALSE && sprite->pos2.y >= -16) { - task->data[3]++; + task->tSetTrigger++; objectEvent->fixedPriority = 0; - sprite->subspriteMode = task->data[4]; + sprite->subspriteMode = task->tSubsprMode; objectEvent->triggerGroundEffectsOnMove = 1; } if (sprite->pos2.y >= 0) { - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); objectEvent->triggerGroundEffectsOnStop = 1; objectEvent->landingJump = 1; sprite->pos2.y = 0; - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 FallWarpEffect_5(struct Task *task) +static bool8 FallWarpEffect_Land(struct Task *task) { - task->data[0]++; - task->data[1] = 4; - task->data[2] = 0; + task->tState++; + task->tVertShake = 4; + task->tNumShakes = 0; SetCameraPanningCallback(NULL); return TRUE; } -static bool8 FallWarpEffect_6(struct Task *task) +static bool8 FallWarpEffect_CameraShake(struct Task *task) { - SetCameraPanning(0, task->data[1]); - task->data[1] = -task->data[1]; - task->data[2]++; - if ((task->data[2] & 3) == 0) - { - task->data[1] >>= 1; - } - if (task->data[1] == 0) - { - task->data[0]++; - } + SetCameraPanning(0, task->tVertShake); + task->tVertShake = -task->tVertShake; + task->tNumShakes++; + + if ((task->tNumShakes & 3) == 0) + task->tVertShake >>= 1; + + if (task->tVertShake == 0) + task->tState++; + return FALSE; } -static bool8 FallWarpEffect_7(struct Task *task) +static bool8 FallWarpEffect_End(struct Task *task) { gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); @@ -1497,89 +1537,100 @@ static bool8 FallWarpEffect_7(struct Task *task) return FALSE; } +#undef tState +#undef tFallOffset +#undef tTotalFall +#undef tSetTrigger +#undef tSubsprMode +#undef tVertShake +#undef tNumShakes + +#define tState data[0] +#define tGoingUp data[1] + void StartEscalatorWarp(u8 metatileBehavior, u8 priority) { u8 taskId; - taskId = CreateTask(Task_EscalatorWarpFieldEffect, priority); - gTasks[taskId].data[1] = 0; + taskId = CreateTask(Task_EscalatorWarpOut, priority); + gTasks[taskId].tGoingUp = FALSE; if (metatileBehavior == MB_UP_ESCALATOR) { - gTasks[taskId].data[1] = 1; + gTasks[taskId].tGoingUp = TRUE; } } -static void Task_EscalatorWarpFieldEffect(u8 taskId) +static void Task_EscalatorWarpOut(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sEscalatorWarpFieldEffectFuncs[task->data[0]](task)); + while (sEscalatorWarpOutFieldEffectFuncs[task->tState](task)); } -static bool8 EscalatorWarpEffect_1(struct Task *task) +static bool8 EscalatorWarpOut_Init(struct Task *task) { FreezeObjectEvents(); CameraObjectReset2(); - sub_80E1558(task->data[1]); - task->data[0]++; + StartEscalator(task->tGoingUp); + task->tState++; return FALSE; } -static bool8 EscalatorWarpEffect_2(struct Task *task) +static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); - task->data[0]++; + task->tState++; task->data[2] = 0; task->data[3] = 0; - if ((u8)task->data[1] == 0) + if ((u8)task->tGoingUp == FALSE) { - task->data[0] = 4; + task->tState = 4; // jump to EscalatorWarpOut_Down_Ride } - PlaySE(SE_ESUKA); + PlaySE(SE_ESCALATOR); } return FALSE; } -static bool8 EscalatorWarpEffect_3(struct Task *task) +static bool8 EscalatorWarpOut_Up_Ride(struct Task *task) { - sub_80B6FB8(task); + RideUpEscalatorOut(task); if (task->data[2] > 3) { - sub_80B7050(); - task->data[0]++; + FadeOutAtEndOfEscalator(); + task->tState++; } return FALSE; } -static bool8 EscalatorWarpEffect_4(struct Task *task) +static bool8 EscalatorWarpOut_Up_End(struct Task *task) { - sub_80B6FB8(task); - sub_80B7060(); + RideUpEscalatorOut(task); + WarpAtEndOfEscalator(); return FALSE; } -static bool8 EscalatorWarpEffect_5(struct Task *task) +static bool8 EscalatorWarpOut_Down_Ride(struct Task *task) { - sub_80B7004(task); + RideDownEscalatorOut(task); if (task->data[2] > 3) { - sub_80B7050(); - task->data[0]++; + FadeOutAtEndOfEscalator(); + task->tState++; } return FALSE; } -static bool8 EscalatorWarpEffect_6(struct Task *task) +static bool8 EscalatorWarpOut_Down_End(struct Task *task) { - sub_80B7004(task); - sub_80B7060(); + RideDownEscalatorOut(task); + WarpAtEndOfEscalator(); return FALSE; } -static void sub_80B6FB8(struct Task *task) +static void RideUpEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1592,7 +1643,7 @@ static void sub_80B6FB8(struct Task *task) } } -static void sub_80B7004(struct Task *task) +static void RideDownEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1605,41 +1656,46 @@ static void sub_80B7004(struct Task *task) } } -static void sub_80B7050(void) +static void FadeOutAtEndOfEscalator(void) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); } -static void sub_80B7060(void) +static void WarpAtEndOfEscalator(void) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - sub_80E1570(); + StopEscalator(); WarpIntoMap(); - gFieldCallback = sub_80B70B4; + gFieldCallback = FieldCallback_EscalatorWarpIn; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpFieldEffect)); + DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpOut)); } } -static void sub_80B70B4(void) +#undef tState +#undef tGoingUp + +static void FieldCallback_EscalatorWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); ScriptContext2_Enable(); - CreateTask(sub_80B70DC, 0); + CreateTask(Task_EscalatorWarpIn, 0); gFieldCallback = NULL; } -static void sub_80B70DC(u8 taskId) +#define tState data[0] + +static void Task_EscalatorWarpIn(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (gUnknown_0855C3FC[task->data[0]](task)); + while (sEscalatorWarpInFieldEffectFuncs[task->tState](task)); } -static bool8 sub_80B7114(struct Task *task) +static bool8 EscalatorWarpIn_Init(struct Task *task) { struct ObjectEvent *objectEvent; s16 x; @@ -1650,31 +1706,35 @@ static bool8 sub_80B7114(struct Task *task) ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(DIR_EAST)); PlayerGetDestCoords(&x, &y); behavior = MapGridGetMetatileBehaviorAt(x, y); - task->data[0]++; + task->tState++; task->data[1] = 16; - if (behavior == 0x6b) + + if (behavior == MB_DOWN_ESCALATOR) { - behavior = 1; - task->data[0] = 3; - } else + // If dest is down escalator tile, player is riding up + behavior = TRUE; + task->tState = 3; // jump to EscalatorWarpIn_Up_Init + } + else // MB_UP_ESCALATOR { - behavior = 0; + // If dest is up escalator tile, player is riding down + behavior = FALSE; } - sub_80E1558(behavior); + StartEscalator(behavior); return TRUE; } -static bool8 sub_80B7190(struct Task *task) +static bool8 EscalatorWarpIn_Down_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; sprite->pos2.x = Cos(0x84, task->data[1]); sprite->pos2.y = Sin(0x94, task->data[1]); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 sub_80B71D0(struct Task *task) +static bool8 EscalatorWarpIn_Down_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1689,22 +1749,22 @@ static bool8 sub_80B71D0(struct Task *task) { sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0] = 5; + task->tState = 5; } return FALSE; } -static bool8 sub_80B7230(struct Task *task) +static bool8 EscalatorWarpIn_Up_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; sprite->pos2.x = Cos(0x7c, task->data[1]); sprite->pos2.y = Sin(0x76, task->data[1]); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 sub_80B7270(struct Task *task) +static bool8 EscalatorWarpIn_Up_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1719,23 +1779,23 @@ static bool8 sub_80B7270(struct Task *task) { sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 sub_80B72D0(struct Task *task) +static bool8 EscalatorWarpIn_WaitForMovement(struct Task *task) { - if (sub_80E1584()) + if (IsEscalatorMoving()) { return FALSE; } - sub_80E1570(); - task->data[0]++; + StopEscalator(); + task->tState++; return TRUE; } -static bool8 sub_80B72F4(struct Task *task) +static bool8 EscalatorWarpIn_End(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1744,104 +1804,113 @@ static bool8 sub_80B72F4(struct Task *task) CameraObjectReset1(); ScriptContext2_Disable(); ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST)); - DestroyTask(FindTaskIdByFunc(sub_80B70DC)); + DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpIn)); } return FALSE; } +#undef tState + +#define tState data[0] +#define tMonId data[1] + bool8 FldEff_UseWaterfall(void) { u8 taskId; - taskId = CreateTask(sub_80B7384, 0xff); - gTasks[taskId].data[1] = gFieldEffectArguments[0]; - sub_80B7384(taskId); + taskId = CreateTask(Task_UseWaterfall, 0xff); + gTasks[taskId].tMonId = gFieldEffectArguments[0]; + Task_UseWaterfall(taskId); return FALSE; } -static void sub_80B7384(u8 taskId) +static void Task_UseWaterfall(u8 taskId) { - while (gUnknown_0855C418[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); + while (sWaterfallFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); } -static bool8 sub_80B73D0(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_Init(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; - task->data[0]++; + task->tState++; return FALSE; } -static bool8 waterfall_1_do_anim_probably(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_ShowMon(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); if (!ObjectEventIsMovementOverridden(objectEvent)) { ObjectEventClearHeldMovementIfFinished(objectEvent); - gFieldEffectArguments[0] = task->data[1]; + gFieldEffectArguments[0] = task->tMonId; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_WaitForShowMon(struct Task *task, struct ObjectEvent *objectEvent) { if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { return FALSE; } - task->data[0]++; + task->tState++; return TRUE; } -static bool8 sub_80B7450(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_RideUp(struct Task *task, struct ObjectEvent *objectEvent) { ObjectEventSetHeldMovement(objectEvent, GetWalkSlowMovementAction(DIR_NORTH)); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 sub_80B7478(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_ContinueRideOrEnd(struct Task *task, struct ObjectEvent *objectEvent) { if (!ObjectEventClearHeldMovementIfFinished(objectEvent)) - { return FALSE; - } + if (MetatileBehavior_IsWaterfall(objectEvent->currentMetatileBehavior)) { - task->data[0] = 3; + // Still ascending waterfall, back to WaterfallFieldEffect_RideUp + task->tState = 3; return TRUE; } + ScriptContext2_Disable(); gPlayerAvatar.preventStep = FALSE; - DestroyTask(FindTaskIdByFunc(sub_80B7384)); + DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); return FALSE; } +#undef tState +#undef tMonId + bool8 FldEff_UseDive(void) { u8 taskId; - taskId = CreateTask(Task_Dive, 0xff); + taskId = CreateTask(Task_UseDive, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; gTasks[taskId].data[14] = gFieldEffectArguments[1]; - Task_Dive(taskId); + Task_UseDive(taskId); return FALSE; } -void Task_Dive(u8 taskId) +void Task_UseDive(u8 taskId) { - while (gUnknown_0855C42C[gTasks[taskId].data[0]](&gTasks[taskId])); + while (sDiveFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId])); } -static bool8 dive_1_lock(struct Task *task) +static bool8 DiveFieldEffect_Init(struct Task *task) { gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; } -static bool8 dive_2_unknown(struct Task *task) +static bool8 DiveFieldEffect_ShowMon(struct Task *task) { ScriptContext2_Enable(); gFieldEffectArguments[0] = task->data[15]; @@ -1850,14 +1919,16 @@ static bool8 dive_2_unknown(struct Task *task) return FALSE; } -static bool8 dive_3_unknown(struct Task *task) +static bool8 DiveFieldEffect_TryWarp(struct Task *task) { struct MapPosition mapPosition; PlayerGetDestCoords(&mapPosition.x, &mapPosition.y); + + // Wait for show mon first if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { - dive_warp(&mapPosition, gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior); - DestroyTask(FindTaskIdByFunc(Task_Dive)); + TryDoDiveWarp(&mapPosition, gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior); + DestroyTask(FindTaskIdByFunc(Task_UseDive)); FieldEffectActiveListRemove(FLDEFF_USE_DIVE); } return FALSE; @@ -1873,7 +1944,7 @@ static void Task_LavaridgeGymB1FWarp(u8 taskId) while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -1885,7 +1956,7 @@ static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent * return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1898,7 +1969,7 @@ static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->pos2.y = 0; task->data[3] = 1; @@ -1906,13 +1977,13 @@ static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent * gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - FieldEffectStart(FLDEFF_LAVARIDGE_GYM_WARP); - PlaySE(SE_W153); + FieldEffectStart(FLDEFF_ASH_LAUNCH); + PlaySE(SE_M_EXPLOSION); task->data[0]++; return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { s16 centerToCornerVecY; SetCameraPanning(0, task->data[1]); @@ -1955,7 +2026,7 @@ static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_FadeOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -1963,7 +2034,7 @@ static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Warp(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1989,7 +2060,7 @@ static void Task_LavaridgeGymB1FWarpExit(u8 taskId) while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { CameraObjectReset2(); FreezeObjectEvents(); @@ -1999,7 +2070,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_StartPopOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (IsWeatherNotFadingIn()) { @@ -2007,13 +2078,13 @@ static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEve gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[1] = FieldEffectStart(FLDEFF_ASH_PUFF); task->data[0]++; } return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite = &gSprites[task->data[1]]; if (sprite->animCmdIndex > 1) @@ -2021,13 +2092,13 @@ static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEve task->data[0]++; objectEvent->invisible = FALSE; CameraObjectReset1(); - PlaySE(SE_W091); + PlaySE(SE_M_DIG); ObjectEventSetHeldMovement(objectEvent, GetJumpMovementAction(DIR_EAST)); } return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_End(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2039,23 +2110,21 @@ static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct ObjectEve return FALSE; } -// For the ash puff effect when warping off the B1F ash tiles -u8 FldEff_LavaridgeGymWarp(void) +// For the ash effect when jumping off the Lavaridge Gym B1F warp tiles +u8 FldEff_AshLaunch(void) { u8 spriteId; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[33], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_LAUNCH], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; - gSprites[spriteId].coordOffsetEnabled = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } -void SpriteCB_LavaridgeGymWarp(struct Sprite *sprite) +void SpriteCB_AshLaunch(struct Sprite *sprite) { if (sprite->animEnded) - { - FieldEffectStop(sprite, FLDEFF_LAVARIDGE_GYM_WARP); - } + FieldEffectStop(sprite, FLDEFF_ASH_LAUNCH); } void StartLavaridgeGym1FWarp(u8 priority) @@ -2068,7 +2137,7 @@ static void Task_LavaridgeGym1FWarp(u8 taskId) while(sLavaridgeGym1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -2078,7 +2147,7 @@ static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2088,19 +2157,19 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *o gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[1] = FieldEffectStart(FLDEFF_ASH_PUFF); task->data[0]++; } else { task->data[1]++; ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection)); - PlaySE(SE_FU_ZUZUZU); + PlaySE(SE_LAVARIDGE_FALL_WARP); } } return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Disappear(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (gSprites[task->data[1]].animCmdIndex == 2) { @@ -2110,9 +2179,9 @@ static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_FadeOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -2121,7 +2190,7 @@ static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Warp(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -2133,48 +2202,53 @@ static bool8 LavaridgeGym1FWarpEffect_5(struct Task *task, struct ObjectEvent *o return FALSE; } -u8 FldEff_PopOutOfAsh(void) +// For the ash effect when a trainer pops out of ash, or when the player enters/exits a warp in Lavaridge Gym 1F +u8 FldEff_AshPuff(void) { u8 spriteId; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[32], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_PUFF], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; - gSprites[spriteId].coordOffsetEnabled = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } -void SpriteCB_PopOutOfAsh(struct Sprite *sprite) +void SpriteCB_AshPuff(struct Sprite *sprite) { if (sprite->animEnded) - { - FieldEffectStop(sprite, FLDEFF_POP_OUT_OF_ASH); - } + FieldEffectStop(sprite, FLDEFF_ASH_PUFF); } +#define tState data[0] +#define tSpinDelay data[1] +#define tNumTurns data[2] +#define tTimer data[14] +#define tStartDir data[15] + void StartEscapeRopeFieldEffect(void) { ScriptContext2_Enable(); FreezeObjectEvents(); - CreateTask(DoEscapeRopeFieldEffect, 0x50); + CreateTask(Task_EscapeRopeWarpOut, 80); } -static void DoEscapeRopeFieldEffect(u8 taskId) +static void Task_EscapeRopeWarpOut(u8 taskId) { - gEscapeRopeFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpOutEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void EscapeRopeFieldEffect_Step0(struct Task *task) +static void EscapeRopeWarpOutEffect_Init(struct Task *task) { - task->data[0]++; - task->data[14] = 64; - task->data[15] = GetPlayerFacingDirection(); + task->tState++; + task->tTimer = 64; + task->tStartDir = GetPlayerFacingDirection(); } -static void EscapeRopeFieldEffect_Step1(struct Task *task) +static void EscapeRopeWarpOutEffect_Spin(struct Task *task) { struct ObjectEvent *objectEvent; u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; - if (task->data[14] != 0 && (--task->data[14]) == 0) + if (task->tTimer != 0 && (--task->tTimer) == 0) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -2182,32 +2256,31 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task) objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - if (task->data[14] == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) + if (task->tTimer == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) { - SetObjectEventDirection(objectEvent, task->data[15]); + SetObjectEventDirection(objectEvent, task->tStartDir); SetWarpDestinationToEscapeWarp(); WarpIntoMap(); - gFieldCallback = mapldr_080859D4; + gFieldCallback = FieldCallback_EscapeRopeWarpIn; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(DoEscapeRopeFieldEffect)); - } else if (task->data[1] == 0 || (--task->data[1]) == 0) + DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpOut)); + } + else if (task->tSpinDelay == 0 || (--task->tSpinDelay) == 0) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); - if (task->data[2] < 12) - { - task->data[2]++; - } - task->data[1] = 8 >> (task->data[2] >> 2); + if (task->tNumTurns < 12) + task->tNumTurns++; + task->tSpinDelay = 8 >> (task->tNumTurns >> 2); } } } -void (*const gUnknown_0855C484[])(struct Task *) = { - sub_80B7EC4, - sub_80B7EE8 +void (*const sEscapeRopeWarpInEffectFuncs[])(struct Task *) = { + EscapeRopeWarpInEffect_Init, + EscapeRopeWarpInEffect_Spin }; -static void mapldr_080859D4(void) +static void FieldCallback_EscapeRopeWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); @@ -2215,78 +2288,84 @@ static void mapldr_080859D4(void) FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; - CreateTask(sub_80B7E94, 0); + CreateTask(Task_EscapeRopeWarpIn, 0); } -static void sub_80B7E94(u8 taskId) +static void Task_EscapeRopeWarpIn(u8 taskId) { - gUnknown_0855C484[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpInEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B7EC4(struct Task *task) +static void EscapeRopeWarpInEffect_Init(struct Task *task) { if (IsWeatherNotFadingIn()) { - task->data[0]++; - task->data[15] = GetPlayerFacingDirection(); + task->tState++; + task->tStartDir = GetPlayerFacingDirection(); } } -static void sub_80B7EE8(struct Task *task) +static void EscapeRopeWarpInEffect_Spin(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (task->data[1] == 0 || (--task->data[1]) == 0) + if (task->tSpinDelay == 0 || (--task->tSpinDelay) == 0) { if (ObjectEventIsMovementOverridden(objectEvent) && !ObjectEventClearHeldMovementIfFinished(objectEvent)) { return; } - if (task->data[2] >= 32 && task->data[15] == GetPlayerFacingDirection()) + if (task->tNumTurns >= 32 && task->tStartDir == GetPlayerFacingDirection()) { objectEvent->invisible = FALSE; ScriptContext2_Disable(); UnfreezeObjectEvents(); - DestroyTask(FindTaskIdByFunc(sub_80B7E94)); + DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpIn)); return; } ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); - if (task->data[2] < 32) - { - task->data[2]++; - } - task->data[1] = task->data[2] >> 2; + if (task->tNumTurns < 32) + task->tNumTurns++; + task->tSpinDelay = task->tNumTurns >> 2; } objectEvent->invisible ^= 1; } -void CreateTeleportFieldEffectTask(void) +#undef tState +#undef tSpinDelay +#undef tNumTurns +#undef tTimer +#undef tStartDir + +#define tState data[0] + +void FldEff_TeleportWarpOut(void) { - CreateTask(ExecuteTeleportFieldEffectTask, 0); + CreateTask(Task_TeleportWarpOut, 0); } -static void (*const sTeleportFieldEffectTasks[])(struct Task *) = { - TeleportFieldEffectTask1, - TeleportFieldEffectTask2, - TeleportFieldEffectTask3, - TeleportFieldEffectTask4 +static void (*const sTeleportWarpOutFieldEffectFuncs[])(struct Task *) = { + TeleportWarpOutFieldEffect_Init, + TeleportWarpOutFieldEffect_SpinGround, + TeleportWarpOutFieldEffect_SpinExit, + TeleportWarpOutFieldEffect_End }; -static void ExecuteTeleportFieldEffectTask(u8 taskId) +static void Task_TeleportWarpOut(u8 taskId) { - sTeleportFieldEffectTasks[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportWarpOutFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void TeleportFieldEffectTask1(struct Task *task) +static void TeleportWarpOutFieldEffect_Init(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); CameraObjectReset2(); task->data[15] = GetPlayerFacingDirection(); - task->data[0]++; + task->tState++; } -static void TeleportFieldEffectTask2(struct Task *task) +static void TeleportWarpOutFieldEffect_SpinGround(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2298,15 +2377,15 @@ static void TeleportFieldEffectTask2(struct Task *task) } if (task->data[2] > 7 && task->data[15] == objectEvent->facingDirection) { - task->data[0]++; + task->tState++; task->data[1] = 4; task->data[2] = 8; task->data[3] = 1; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } } -static void TeleportFieldEffectTask3(struct Task *task) +static void TeleportWarpOutFieldEffect_SpinExit(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2328,13 +2407,13 @@ static void TeleportFieldEffectTask3(struct Task *task) } if (task->data[4] >= 0xa8) { - task->data[0]++; + task->tState++; TryFadeOutOldMapMusic(); WarpFadeOutScreen(); } } -static void TeleportFieldEffectTask4(struct Task *task) +static void TeleportWarpOutFieldEffect_End(struct Task *task) { if (!gPaletteFade.active) { @@ -2349,13 +2428,13 @@ static void TeleportFieldEffectTask4(struct Task *task) SetWarpDestinationToLastHealLocation(); WarpIntoMap(); SetMainCallback2(CB2_LoadMap); - gFieldCallback = mapldr_08085D88; - DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask)); + gFieldCallback = FieldCallback_TeleportWarpIn; + DestroyTask(FindTaskIdByFunc(Task_TeleportWarpOut)); } } } -static void mapldr_08085D88(void) +static void FieldCallback_TeleportWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); @@ -2364,21 +2443,21 @@ static void mapldr_08085D88(void) gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; CameraObjectReset2(); - CreateTask(sub_80B8250, 0); + CreateTask(Task_TeleportWarpIn, 0); } -void (*const gUnknown_0855C49C[])(struct Task *) = { - sub_80B8280, - sub_80B830C, - sub_80B8410 +void (*const sTeleportWarpInFieldEffectFuncs[])(struct Task *) = { + TeleportWarpInFieldEffect_Init, + TeleportWarpInFieldEffect_SpinEnter, + TeleportWarpInFieldEffect_SpinGround }; -static void sub_80B8250(u8 taskId) +static void Task_TeleportWarpIn(u8 taskId) { - gUnknown_0855C49C[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportWarpInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B8280(struct Task *task) +static void TeleportWarpInFieldEffect_Init(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; @@ -2393,13 +2472,13 @@ static void sub_80B8280(struct Task *task) task->data[2] = 1; task->data[14] = sprite->subspriteMode; task->data[15] = GetPlayerFacingDirection(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } } -static void sub_80B830C(struct Task *task) +static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; if ((sprite->pos2.y += task->data[1]) >= -8) @@ -2436,9 +2515,9 @@ static void sub_80B830C(struct Task *task) } } -static void sub_80B8410(struct Task *task) +static void TeleportWarpInFieldEffect_SpinGround(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if ((--task->data[1]) == 0) { @@ -2449,22 +2528,39 @@ static void sub_80B8410(struct Task *task) ScriptContext2_Disable(); CameraObjectReset1(); UnfreezeObjectEvents(); - DestroyTask(FindTaskIdByFunc(sub_80B8250)); + DestroyTask(FindTaskIdByFunc(Task_TeleportWarpIn)); } } } +// Task data for Task_FieldMoveShowMonOutDoors +#define tState data[0] +#define tWinHoriz data[1] +#define tWinVert data[2] +#define tWinIn data[3] +#define tWinOut data[4] +#define tBgHoriz data[5] +#define tBgVert data[6] +#define tMonSpriteId data[15] + +// Sprite data for field move mon sprite +#define sSpecies data[0] +#define sOnscreenTimer data[1] +#define sSlidOffscreen data[7] + +// There are two variants (outdoor/indoor) of the "show mon for a field move" effect +// Outdoor has a black background with thick white streaks and appears from the right by stretching vertically and horizontally +// Indoor has blue background with thin white streaks and appears from the left by stretching horizontally +// For both the background streaks move to the right, and the mon sprite enters from the right and exits left bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; if (IsMapTypeOutdoors(GetCurrentMapType()) == TRUE) - { - taskId = CreateTask(sub_80B8554, 0xff); - } else - { - taskId = CreateTask(sub_80B88B4, 0xff); - } - gTasks[taskId].data[15] = sub_80B8C60(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + taskId = CreateTask(Task_FieldMoveShowMonOutdoors, 0xff); + else + taskId = CreateTask(Task_FieldMoveShowMonIndoors, 0xff); + + gTasks[taskId].tMonSpriteId = InitFieldMoveMonSprite(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); return FALSE; } @@ -2482,240 +2578,248 @@ bool8 FldEff_FieldMoveShowMonInit(void) return FALSE; } -void (*const gUnknown_0855C4A8[])(struct Task *) = { - sub_80B8584, - sub_80B85F8, - sub_80B8660, - sub_80B86EC, - sub_80B871C, - sub_80B8770, - overworld_bg_setup_2, +void (*const sFieldMoveShowMonOutdoorsEffectFuncs[])(struct Task *) = { + FieldMoveShowMonOutdoorsEffect_Init, + FieldMoveShowMonOutdoorsEffect_LoadGfx, + FieldMoveShowMonOutdoorsEffect_CreateBanner, + FieldMoveShowMonOutdoorsEffect_WaitForMon, + FieldMoveShowMonOutdoorsEffect_ShrinkBanner, + FieldMoveShowMonOutdoorsEffect_RestoreBg, + FieldMoveShowMonOutdoorsEffect_End, }; -static void sub_80B8554(u8 taskId) +static void Task_FieldMoveShowMonOutdoors(u8 taskId) { - gUnknown_0855C4A8[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonOutdoorsEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B8584(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; - StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); - task->data[1] = 0xf0f1; - task->data[2] = 0x5051; - task->data[3] = 0x3f; - task->data[4] = 0x3e; - SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); - SetGpuReg(REG_OFFSET_WIN0V, task->data[2]); - SetGpuReg(REG_OFFSET_WININ, task->data[3]); - SetGpuReg(REG_OFFSET_WINOUT, task->data[4]); - SetVBlankCallback(sub_80B880C); - task->data[0]++; + StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); + task->tWinHoriz = WIN_RANGE(DISPLAY_WIDTH, DISPLAY_WIDTH + 1); + task->tWinVert = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1); + task->tWinIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + task->tWinOut = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz); + SetGpuReg(REG_OFFSET_WIN0V, task->tWinVert); + SetGpuReg(REG_OFFSET_WININ, task->tWinIn); + SetGpuReg(REG_OFFSET_WINOUT, task->tWinOut); + SetVBlankCallback(VBlankCB_FieldMoveShowMonOutdoors); + task->tState++; } -static void sub_80B85F8(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task) { u16 offset = ((REG_BG0CNT >> 2) << 14); u16 delta = ((REG_BG0CNT >> 8) << 11); - CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200); + CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20); - sub_80B8874(delta); - task->data[0]++; + LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, 0x20); + LoadFieldMoveOutdoorStreaksTilemap(delta); + task->tState++; } -static void sub_80B8660(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *task) { - s16 v0; - s16 v2; - s16 v3; - task->data[5] -= 16; - v0 = ((u16)task->data[1] >> 8); - v2 = ((u16)task->data[2] >> 8); - v3 = ((u16)task->data[2] & 0xff); - v0 -= 16; - v2 -= 2; - v3 += 2; - if (v0 < 0) - { - v0 = 0; - } - if (v2 < 0x28) - { - v2 = 0x28; - } - if (v3 > 0x78) - { - v3 = 0x78; - } - task->data[1] = (v0 << 8) | (task->data[1] & 0xff); - task->data[2] = (v2 << 8) | v3; - if (v0 == 0 && v2 == 0x28 && v3 == 0x78) + s16 horiz; + s16 vertHi; + s16 vertLo; + task->tBgHoriz -= 16; + horiz = ((u16)task->tWinHoriz >> 8); + vertHi = ((u16)task->tWinVert >> 8); + vertLo = ((u16)task->tWinVert & 0xff); + horiz -= 16; + vertHi -= 2; + vertLo += 2; + + if (horiz < 0) + horiz = 0; + + if (vertHi < DISPLAY_HEIGHT / 4) + vertHi = DISPLAY_HEIGHT / 4; + + if (vertLo > DISPLAY_WIDTH / 2) + vertLo = DISPLAY_WIDTH / 2; + + task->tWinHoriz = (horiz << 8) | (task->tWinHoriz & 0xff); + task->tWinVert = (vertHi << 8) | vertLo; + if (horiz == 0 && vertHi == DISPLAY_HEIGHT / 4 && vertLo == DISPLAY_WIDTH / 2) { - gSprites[task->data[15]].callback = sub_80B8CC0; - task->data[0]++; + gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; + task->tState++; } } -static void sub_80B86EC(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_WaitForMon(struct Task *task) { - task->data[5] -= 16; - if (gSprites[task->data[15]].data[7]) - { - task->data[0]++; - } + task->tBgHoriz -= 16; + + if (gSprites[task->tMonSpriteId].sSlidOffscreen) + task->tState++; } -static void sub_80B871C(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *task) { - s16 v2; - s16 v3; - task->data[5] -= 16; - v2 = (task->data[2] >> 8); - v3 = (task->data[2] & 0xff); - v2 += 6; - v3 -= 6; - if (v2 > 0x50) - { - v2 = 0x50; - } - if (v3 < 0x51) - { - v3 = 0x51; - } - task->data[2] = (v2 << 8) | v3; - if (v2 == 0x50 && v3 == 0x51) - { - task->data[0]++; - } + s16 vertHi; + s16 vertLo; + task->tBgHoriz -= 16; + vertHi = (task->tWinVert >> 8); + vertLo = (task->tWinVert & 0xFF); + vertHi += 6; + vertLo -= 6; + + if (vertHi > DISPLAY_HEIGHT / 2) + vertHi = DISPLAY_HEIGHT / 2; + + if (vertLo < DISPLAY_HEIGHT / 2 + 1) + vertLo = DISPLAY_HEIGHT / 2 + 1; + + task->tWinVert = (vertHi << 8) | vertLo; + + if (vertHi == DISPLAY_HEIGHT / 2 && vertLo == DISPLAY_HEIGHT / 2 + 1) + task->tState++; } -static void sub_80B8770(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *task) { u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); - task->data[1] = 0xf1; - task->data[2] = 0xa1; - task->data[3] = task->data[11]; - task->data[4] = task->data[12]; - task->data[0]++; + task->tWinHoriz = DISPLAY_WIDTH + 1; + task->tWinVert = DISPLAY_HEIGHT + 1; + task->tWinIn = task->data[11]; + task->tWinOut = task->data[12]; + task->tState++; } -static void overworld_bg_setup_2(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_End(struct Task *task) { IntrCallback callback; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); SetVBlankCallback(callback); - sub_8197200(); - FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); + InitTextBoxGfxAndPrinters(); + FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); - DestroyTask(FindTaskIdByFunc(sub_80B8554)); + DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)); } -static void sub_80B880C(void) +static void VBlankCB_FieldMoveShowMonOutdoors(void) { IntrCallback callback; - struct Task *task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; + struct Task *task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); callback(); - SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); - SetGpuReg(REG_OFFSET_WIN0V, task->data[2]); - SetGpuReg(REG_OFFSET_WININ, task->data[3]); - SetGpuReg(REG_OFFSET_WINOUT, task->data[4]); - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[5]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[6]); + SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz); + SetGpuReg(REG_OFFSET_WIN0V, task->tWinVert); + SetGpuReg(REG_OFFSET_WININ, task->tWinIn); + SetGpuReg(REG_OFFSET_WINOUT, task->tWinOut); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); } -static void sub_80B8874(u16 offs) +static void LoadFieldMoveOutdoorStreaksTilemap(u16 offs) { u16 i; u16 *dest; - dest = (u16 *)(VRAM + 0x140 + offs); - for (i = 0; i < 0x140; i++, dest++) - { - *dest = gFieldMoveStreaksTilemap[i] | METATILE_ELEVATION_MASK; - } -} - -void (*const gUnknown_0855C4C4[])(struct Task *) = { - sub_80B88E4, - sub_80B8920, - sub_80B898C, - sub_80B89DC, - sub_80B8A0C, - sub_80B8A44, - sub_80B8A64, + dest = (u16 *)(VRAM + ARRAY_COUNT(sFieldMoveStreaksOutdoors_Tilemap) + offs); + for (i = 0; i < ARRAY_COUNT(sFieldMoveStreaksOutdoors_Tilemap); i++, dest++) + { + *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | 0xF000; + } +} + +#undef tState +#undef tWinHoriz +#undef tWinVert +#undef tWinIn +#undef tWinOut +#undef tBgHoriz +#undef tBgVert +#undef tMonSpriteId + +// Task data for Task_FieldMoveShowMonIndoors +#define tState data[0] +#define tBgHoriz data[1] +#define tBgVert data[2] +#define tBgOffsetIdx data[3] +#define tBgOffset data[4] +#define tMonSpriteId data[15] + +void (*const sFieldMoveShowMonIndoorsEffectFuncs[])(struct Task *) = { + FieldMoveShowMonIndoorsEffect_Init, + FieldMoveShowMonIndoorsEffect_LoadGfx, + FieldMoveShowMonIndoorsEffect_SlideBannerOn, + FieldMoveShowMonIndoorsEffect_WaitForMon, + FieldMoveShowMonIndoorsEffect_RestoreBg, + FieldMoveShowMonIndoorsEffect_SlideBannerOff, + FieldMoveShowMonIndoorsEffect_End, }; -static void sub_80B88B4(u8 taskId) +static void Task_FieldMoveShowMonIndoors(u8 taskId) { - gUnknown_0855C4C4[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonIndoorsEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B88E4(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_Init(struct Task *task) { - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); - SetVBlankCallback(sub_80B8AE0); - task->data[0]++; + SetVBlankCallback(VBlankCB_FieldMoveShowMonIndoors); + task->tState++; } -static void sub_80B8920(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task) { u16 offset; u16 delta; offset = ((REG_BG0CNT >> 2) << 14); delta = ((REG_BG0CNT >> 8) << 11); task->data[12] = delta; - CpuCopy16(gDarknessFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x80); + CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(gDarknessFieldMoveStreaksPalette, 0xf0, 0x20); - task->data[0]++; + LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, 0x20); + task->tState++; } -static void sub_80B898C(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *task) { - if (sub_80B8B38(task)) + if (SlideIndoorBannerOnscreen(task)) { - SetGpuReg(REG_OFFSET_WIN1H, 0x00f0); - SetGpuReg(REG_OFFSET_WIN1V, 0x2878); - gSprites[task->data[15]].callback = sub_80B8CC0; - task->data[0]++; + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(DISPLAY_HEIGHT / 4, DISPLAY_HEIGHT - DISPLAY_HEIGHT / 4)); + gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; + task->tState++; } - sub_80B8B28(task); + AnimateIndoorShowMonBg(task); } -static void sub_80B89DC(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_WaitForMon(struct Task *task) { - sub_80B8B28(task); - if (gSprites[task->data[15]].data[7]) - { - task->data[0]++; - } + AnimateIndoorShowMonBg(task); + if (gSprites[task->tMonSpriteId].sSlidOffscreen) + task->tState++; } -static void sub_80B8A0C(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *task) { - sub_80B8B28(task); - task->data[3] = task->data[1] & 7; - task->data[4] = 0; - SetGpuReg(REG_OFFSET_WIN1H, 0xffff); - SetGpuReg(REG_OFFSET_WIN1V, 0xffff); - task->data[0]++; + AnimateIndoorShowMonBg(task); + task->tBgOffsetIdx = task->tBgHoriz & 7; + task->tBgOffset = 0; + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0xFF, 0xFF)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0xFF, 0xFF)); + task->tState++; } -static void sub_80B8A44(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_SlideBannerOff(struct Task *task) { - sub_80B8B28(task); - if (sub_80B8BF0(task)) - { - task->data[0]++; - } + AnimateIndoorShowMonBg(task); + if (SlideIndoorBannerOffscreen(task)) + task->tState++; } -static void sub_80B8A64(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_End(struct Task *task) { IntrCallback intrCallback; u16 bg0cnt; @@ -2723,231 +2827,248 @@ static void sub_80B8A64(struct Task *task) CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); SetVBlankCallback(intrCallback); - sub_8197200(); - FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); + InitTextBoxGfxAndPrinters(); + FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); - DestroyTask(FindTaskIdByFunc(sub_80B88B4)); + DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)); } -static void sub_80B8AE0(void) +static void VBlankCB_FieldMoveShowMonIndoors(void) { IntrCallback intrCallback; struct Task *task; - task = &gTasks[FindTaskIdByFunc(sub_80B88B4)]; + task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); intrCallback(); - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); } -static void sub_80B8B28(struct Task *task) +static void AnimateIndoorShowMonBg(struct Task *task) { - task->data[1] -= 16; - task->data[3] += 16; + task->tBgHoriz -= 16; + task->tBgOffsetIdx += 16; } -static bool8 sub_80B8B38(struct Task *task) +static bool8 SlideIndoorBannerOnscreen(struct Task *task) { u16 i; u16 srcOffs; u16 dstOffs; u16 *dest; - if (task->data[4] >= 32) - { + + if (task->tBgOffset >= 32) return TRUE; - } - dstOffs = (task->data[3] >> 3) & 0x1f; - if (dstOffs >= task->data[4]) + + dstOffs = (task->tBgOffsetIdx >> 3) & 0x1f; + if (dstOffs >= task->tBgOffset) { dstOffs = (32 - dstOffs) & 0x1f; - srcOffs = (32 - task->data[4]) & 0x1f; + srcOffs = (32 - task->tBgOffset) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); for (i = 0; i < 10; i++) { - dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32]; + dest[dstOffs + i * 32] = sFieldMoveStreaksIndoors_Tilemap[srcOffs + i * 32]; dest[dstOffs + i * 32] |= 0xf000; - dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = sFieldMoveStreaksIndoors_Tilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] |= 0xf000; } - task->data[4] += 2; + task->tBgOffset += 2; } return FALSE; } -static bool8 sub_80B8BF0(struct Task *task) +static bool8 SlideIndoorBannerOffscreen(struct Task *task) { u16 i; u16 dstOffs; u16 *dest; - if (task->data[4] >= 32) - { + + if (task->tBgOffset >= 32) return TRUE; - } - dstOffs = task->data[3] >> 3; - if (dstOffs >= task->data[4]) + + dstOffs = task->tBgOffsetIdx >> 3; + if (dstOffs >= task->tBgOffset) { - dstOffs = (task->data[1] >> 3) & 0x1f; + dstOffs = (task->tBgHoriz >> 3) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); for (i = 0; i < 10; i++) { dest[dstOffs + i * 32] = 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000; } - task->data[4] += 2; + task->tBgOffset += 2; } return FALSE; } -static u8 sub_80B8C60(u32 a0, u32 a1, u32 a2) +#undef tState +#undef tBgHoriz +#undef tBgVert +#undef tBgOffsetIdx +#undef tBgOffset +#undef tMonSpriteId + +static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality) { u16 v0; u8 monSprite; struct Sprite *sprite; - v0 = (a0 & 0x80000000) >> 16; - a0 &= 0x7fffffff; - monSprite = CreateMonSprite_FieldMove(a0, a1, a2, 0x140, 0x50, 0); + v0 = (species & 0x80000000) >> 16; + species &= 0x7fffffff; + monSprite = CreateMonSprite_FieldMove(species, otId, personality, 320, 80, 0); sprite = &gSprites[monSprite]; sprite->callback = SpriteCallbackDummy; sprite->oam.priority = 0; - sprite->data[0] = a0; + sprite->sSpecies = species; sprite->data[6] = v0; return monSprite; } -static void sub_80B8CC0(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite) { - if ((sprite->pos1.x -= 20) <= 0x78) + if ((sprite->pos1.x -= 20) <= DISPLAY_WIDTH / 2) { - sprite->pos1.x = 0x78; - sprite->data[1] = 30; - sprite->callback = sub_80B8D04; + sprite->pos1.x = DISPLAY_WIDTH / 2; + sprite->sOnscreenTimer = 30; + sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry; if (sprite->data[6]) { - PlayCry2(sprite->data[0], 0, 0x7d, 0xa); + PlayCry2(sprite->sSpecies, 0, 0x7d, 0xa); } else { - PlayCry1(sprite->data[0], 0); + PlayCry1(sprite->sSpecies, 0); } } } -static void sub_80B8D04(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) - { - sprite->callback = sub_80B8D20; - } + if ((--sprite->sOnscreenTimer) == 0) + sprite->callback = SpriteCB_FieldMoveMonSlideOffscreen; } -static void sub_80B8D20(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite) { - if (sprite->pos1.x < -0x40) - { - sprite->data[7] = 1; - } + if (sprite->pos1.x < -64) + sprite->sSlidOffscreen = TRUE; else - { sprite->pos1.x -= 20; - } } +#undef tState +#undef tMonSpriteId +#undef sSpecies +#undef sSlidOffscreen +#undef sOnscreenTimer + +#define tState data[0] +#define tDestX data[1] +#define tDestY data[2] +#define tMonId data[15] + u8 FldEff_UseSurf(void) { - u8 taskId = CreateTask(sub_80B8D84, 0xff); - gTasks[taskId].data[15] = gFieldEffectArguments[0]; + u8 taskId = CreateTask(Task_SurfFieldEffect, 0xff); + gTasks[taskId].tMonId = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); - Overworld_ChangeMusicTo(MUS_NAMINORI); + Overworld_ChangeMusicTo(MUS_SURF); return FALSE; } -void (*const gUnknown_0855C4E0[])(struct Task *) = { - sub_80B8DB4, - sub_80B8E14, - sub_80B8E60, - sub_80B8EA8, - sub_80B8F24, +void (*const sSurfFieldEffectFuncs[])(struct Task *) = { + SurfFieldEffect_Init, + SurfFieldEffect_FieldMovePose, + SurfFieldEffect_ShowMon, + SurfFieldEffect_JumpOnSurfBlob, + SurfFieldEffect_End, }; -static void sub_80B8D84(u8 taskId) +static void Task_SurfFieldEffect(u8 taskId) { - gUnknown_0855C4E0[gTasks[taskId].data[0]](&gTasks[taskId]); + sSurfFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B8DB4(struct Task *task) +static void SurfFieldEffect_Init(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(8); - PlayerGetDestCoords(&task->data[1], &task->data[2]); - MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]); - task->data[0]++; + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); + PlayerGetDestCoords(&task->tDestX, &task->tDestY); + MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->tDestX, &task->tDestY); + task->tState++; } -static void sub_80B8E14(struct Task *task) +static void SurfFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - sub_808C114(); + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void sub_80B8E60(struct Task *task) +static void SurfFieldEffect_ShowMon(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventCheckHeldMovementStatus(objectEvent)) { - gFieldEffectArguments[0] = task->data[15] | 0x80000000; + gFieldEffectArguments[0] = task->tMonId | 0x80000000; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - task->data[0]++; + task->tState++; } } -static void sub_80B8EA8(struct Task *task) +static void SurfFieldEffect_JumpOnSurfBlob(struct Task *task) { struct ObjectEvent *objectEvent; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(3)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); ObjectEventClearHeldMovementIfFinished(objectEvent); ObjectEventSetHeldMovement(objectEvent, GetJumpSpecialMovementAction(objectEvent->movementDirection)); - gFieldEffectArguments[0] = task->data[1]; - gFieldEffectArguments[1] = task->data[2]; + gFieldEffectArguments[0] = task->tDestX; + gFieldEffectArguments[1] = task->tDestY; gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; objectEvent->fieldEffectSpriteId = FieldEffectStart(FLDEFF_SURF_BLOB); - task->data[0]++; + task->tState++; } } -static void sub_80B8F24(struct Task *task) +static void SurfFieldEffect_End(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { gPlayerAvatar.preventStep = FALSE; - gPlayerAvatar.flags &= 0xdf; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); - sub_81555AC(objectEvent->fieldEffectSpriteId, 1); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); UnfreezeObjectEvents(); ScriptContext2_Disable(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); - DestroyTask(FindTaskIdByFunc(sub_80B8D84)); + DestroyTask(FindTaskIdByFunc(Task_SurfFieldEffect)); } } -u8 sub_80B8F98(void) +#undef tState +#undef tDestX +#undef tDestY +#undef tMonId + +u8 FldEff_RayquazaSpotlight(void) { u8 i, j, k; - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RAYQUAZA], 120, -24, 1); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -2961,7 +3082,7 @@ u8 sub_80B8F98(void) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - LoadPalette(gUnknown_0855B610, 0xC0, sizeof(gUnknown_0855B610)); + LoadPalette(sSpotlight_Pal, 0xC0, sizeof(sSpotlight_Pal)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) { @@ -2974,8 +3095,8 @@ u8 sub_80B8F98(void) { for (i = 0; i < 8; i++) { - *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; - *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4) = (sSpotlight_Gfx[k * 32 + i * 4 + 1] << 8) + sSpotlight_Gfx[k * 32 + i * 4]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4 + 2) = (sSpotlight_Gfx[k * 32 + i * 4 + 3] << 8) + sSpotlight_Gfx[k * 32 + i * 4 + 2]; } } return spriteId; @@ -2983,18 +3104,18 @@ u8 sub_80B8F98(void) u8 FldEff_NPCFlyOut(void) { - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.paletteNum = 0; sprite->oam.priority = 1; - sprite->callback = sub_80B9128; + sprite->callback = SpriteCB_NPCFlyOut; sprite->data[1] = gFieldEffectArguments[0]; - PlaySE(SE_W019); + PlaySE(SE_M_FLY); return spriteId; } -static void sub_80B9128(struct Sprite *sprite) +static void SpriteCB_NPCFlyOut(struct Sprite *sprite) { struct Sprite *npcSprite; @@ -3004,214 +3125,224 @@ static void sub_80B9128(struct Sprite *sprite) if (sprite->data[0]) { npcSprite = &gSprites[sprite->data[1]]; - npcSprite->coordOffsetEnabled = 0; + npcSprite->coordOffsetEnabled = FALSE; npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x; npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; npcSprite->pos2.x = 0; npcSprite->pos2.y = 0; } + if (sprite->data[2] >= 0x80) - { FieldEffectStop(sprite, FLDEFF_NPCFLY_OUT); - } } +// Task data for Task_FlyOut/FlyIn +#define tState data[0] +#define tMonId data[1] +#define tBirdSpriteId data[1] //re-used +#define tTimer data[2] +#define tAvatarFlags data[15] + +// Sprite data for the fly bird +#define sPlayerSpriteId data[6] +#define sAnimCompleted data[7] + u8 FldEff_UseFly(void) { - u8 taskId = CreateTask(sub_80B91D4, 0xfe); - gTasks[taskId].data[1] = gFieldEffectArguments[0]; + u8 taskId = CreateTask(Task_FlyOut, 254); + gTasks[taskId].tMonId = gFieldEffectArguments[0]; return 0; } -void (*const gUnknown_0855C4F4[])(struct Task *) = { - sub_80B9204, - sub_80B925C, - sub_80B92A0, - sub_80B92F8, - sub_80B933C, - sub_80B9390, - sub_80B9418, - sub_80B9474, - sub_80B9494, +void (*const sFlyOutFieldEffectFuncs[])(struct Task *) = { + FlyOutFieldEffect_FieldMovePose, + FlyOutFieldEffect_ShowMon, + FlyOutFieldEffect_BirdLeaveBall, + FlyOutFieldEffect_WaitBirdLeave, + FlyOutFieldEffect_BirdSwoopDown, + FlyOutFieldEffect_JumpOnBird, + FlyOutFieldEffect_FlyOffWithBird, + FlyOutFieldEffect_WaitFlyOff, + FlyOutFieldEffect_End, }; -static void sub_80B91D4(u8 taskId) +static void Task_FlyOut(u8 taskId) { - gUnknown_0855C4F4[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyOutFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B9204(struct Task *task) +static void FlyOutFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[15] = gPlayerAvatar.flags; + task->tAvatarFlags = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(1); - sub_808C114(); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void sub_80B925C(struct Task *task) +static void FlyOutFieldEffect_ShowMon(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; - gFieldEffectArguments[0] = task->data[1]; + task->tState++; + gFieldEffectArguments[0] = task->tMonId; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); } } -static void sub_80B92A0(struct Task *task) +static void FlyOutFieldEffect_BirdLeaveBall(struct Task *task) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (task->data[15] & 0x08) + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - sub_81555AC(objectEvent->fieldEffectSpriteId, 2); - sub_81555D8(objectEvent->fieldEffectSpriteId, 0); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 2); + SetSurfBobWhileFlyingOutState(objectEvent->fieldEffectSpriteId, 0); } - task->data[1] = sub_80B94C4(); - task->data[0]++; + task->tBirdSpriteId = CreateFlyBirdSprite(); // Does "leave ball" animation by default + task->tState++; } } -static void sub_80B92F8(struct Task *task) +static void FlyOutFieldEffect_WaitBirdLeave(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { - task->data[0]++; - task->data[2] = 16; + task->tState++; + task->tTimer = 16; SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], MOVEMENT_ACTION_FACE_LEFT); } } -static void sub_80B933C(struct Task *task) +static void FlyOutFieldEffect_BirdSwoopDown(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if ((task->data[2] == 0 || (--task->data[2]) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) + if ((task->tTimer == 0 || (--task->tTimer) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; - PlaySE(SE_W019); - sub_80B9524(task->data[1]); + task->tState++; + PlaySE(SE_M_FLY); + StartFlyBirdSwoopDown(task->tBirdSpriteId); } } -static void sub_80B9390(struct Task *task) +static void FlyOutFieldEffect_JumpOnBird(struct Task *task) { - if ((++task->data[2]) >= 8) + if ((++task->tTimer) >= 8) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0x03)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); - objectEvent->inanimate = 1; + objectEvent->inanimate = TRUE; ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT); - if (task->data[15] & 0x08) + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { DestroySprite(&gSprites[objectEvent->fieldEffectSpriteId]); } - task->data[0]++; - task->data[2] = 0; + task->tState++; + task->tTimer = 0; } } -static void sub_80B9418(struct Task *task) +static void FlyOutFieldEffect_FlyOffWithBird(struct Task *task) { - if ((++task->data[2]) >= 10) + if ((++task->tTimer) >= 10) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(objectEvent); - objectEvent->inanimate = 0; - objectEvent->hasShadow = 0; - sub_80B9560(task->data[1], objectEvent->spriteId); + objectEvent->inanimate = FALSE; + objectEvent->hasShadow = FALSE; + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, objectEvent->spriteId); CameraObjectReset2(); - task->data[0]++; + task->tState++; } } -static void sub_80B9474(struct Task *task) +static void FlyOutFieldEffect_WaitFlyOff(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { WarpFadeOutScreen(); - task->data[0]++; + task->tState++; } } -static void sub_80B9494(struct Task *task) +static void FlyOutFieldEffect_End(struct Task *task) { if (!gPaletteFade.active) { FieldEffectActiveListRemove(FLDEFF_USE_FLY); - DestroyTask(FindTaskIdByFunc(sub_80B91D4)); + DestroyTask(FindTaskIdByFunc(Task_FlyOut)); } } -static u8 sub_80B94C4(void) +static u8 CreateFlyBirdSprite(void) { u8 spriteId; struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0xff, 0xb4, 0x1); + spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1); sprite = &gSprites[spriteId]; sprite->oam.paletteNum = 0; sprite->oam.priority = 1; - sprite->callback = sub_80B957C; + sprite->callback = SpriteCB_FlyBirdLeaveBall; return spriteId; } -static u8 sub_80B9508(u8 spriteId) +static u8 GetFlyBirdAnimCompleted(u8 spriteId) { - return gSprites[spriteId].data[7]; + return gSprites[spriteId].sAnimCompleted; } -static void sub_80B9524(u8 spriteId) +static void StartFlyBirdSwoopDown(u8 spriteId) { struct Sprite *sprite; sprite = &gSprites[spriteId]; - sprite->callback = sub_80B963C; - sprite->pos1.x = 0x78; - sprite->pos1.y = 0x00; + sprite->callback = SpriteCB_FlyBirdSwoopDown; + sprite->pos1.x = DISPLAY_WIDTH / 2; + sprite->pos1.y = 0; sprite->pos2.x = 0; sprite->pos2.y = 0; memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */); - sprite->data[6] = 0x40; + sprite->sPlayerSpriteId = MAX_SPRITES; } -static void sub_80B9560(u8 a0, u8 a1) +static void SetFlyBirdPlayerSpriteId(u8 birdSpriteId, u8 playerSpriteId) { - gSprites[a0].data[6] = a1; + gSprites[birdSpriteId].sPlayerSpriteId = playerSpriteId; } -const union AffineAnimCmd SpriteAffineAnim_855C518[] = { +static const union AffineAnimCmd sAffineAnim_FlyBirdLeaveBall[] = { AFFINEANIMCMD_FRAME(8, 8, -30, 0), AFFINEANIMCMD_FRAME(28, 28, 0, 30), AFFINEANIMCMD_END }; -const union AffineAnimCmd SpriteAffineAnim_855C530[] = { +static const union AffineAnimCmd sAffineAnim_FlyBirdReturnToBall[] = { AFFINEANIMCMD_FRAME(256, 256, 64, 0), AFFINEANIMCMD_FRAME(-10, -10, 0, 22), AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_0855C548[] = { - SpriteAffineAnim_855C518, - SpriteAffineAnim_855C530 +static const union AffineAnimCmd *const sAffineAnims_FlyBird[] = { + sAffineAnim_FlyBirdLeaveBall, + sAffineAnim_FlyBirdReturnToBall }; -static void sub_80B957C(struct Sprite *sprite) +static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite) { - if (sprite->data[7] == 0) + if (sprite->sAnimCompleted == FALSE) { if (sprite->data[0] == 0) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; - sprite->affineAnims = gSpriteAffineAnimTable_0855C548; + sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 0); sprite->pos1.x = 0x76; @@ -3229,7 +3360,7 @@ static void sub_80B957C(struct Sprite *sprite) } if (sprite->data[1] > 0x81) { - sprite->data[7]++; + sprite->sAnimCompleted++; sprite->oam.affineMode = ST_OAM_AFFINE_OFF; FreeOamMatrix(sprite->oam.matrixNum); CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, ST_OAM_AFFINE_OFF); @@ -3237,15 +3368,15 @@ static void sub_80B957C(struct Sprite *sprite) } } -static void sub_80B963C(struct Sprite *sprite) +static void SpriteCB_FlyBirdSwoopDown(struct Sprite *sprite) { sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; - if (sprite->data[6] != MAX_SPRITES) + if (sprite->sPlayerSpriteId != MAX_SPRITES) { - struct Sprite *sprite1 = &gSprites[sprite->data[6]]; - sprite1->coordOffsetEnabled = 0; + struct Sprite *sprite1 = &gSprites[sprite->sPlayerSpriteId]; + sprite1->coordOffsetEnabled = FALSE; sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; sprite1->pos2.x = 0; @@ -3253,18 +3384,18 @@ static void sub_80B963C(struct Sprite *sprite) } if (sprite->data[2] >= 0x80) { - sprite->data[7] = 1; + sprite->sAnimCompleted = TRUE; } } -void sub_80B96B0(struct Sprite *sprite) +static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite) { - if (sprite->data[7] == 0) + if (sprite->sAnimCompleted == FALSE) { if (sprite->data[0] == 0) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; - sprite->affineAnims = gSpriteAffineAnimTable_0855C548; + sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 1); sprite->pos1.x = 0x5e; @@ -3293,7 +3424,7 @@ void sub_80B96B0(struct Sprite *sprite) } if (sprite->data[3] >= 60) { - sprite->data[7]++; + sprite->sAnimCompleted++; sprite->oam.affineMode = ST_OAM_AFFINE_OFF; FreeOamMatrix(sprite->oam.matrixNum); sprite->invisible = TRUE; @@ -3301,80 +3432,80 @@ void sub_80B96B0(struct Sprite *sprite) } } -void sub_80B9794(u8 spriteId) +static void StartFlyBirdReturnToBall(u8 spriteId) { - sub_80B9524(spriteId); - gSprites[spriteId].callback = sub_80B96B0; + StartFlyBirdSwoopDown(spriteId); // Set up is the same, but overrwrites the callback below + gSprites[spriteId].callback = SpriteCB_FlyBirdReturnToBall; } u8 FldEff_FlyIn(void) { - CreateTask(sub_80B97D4, 0xfe); + CreateTask(Task_FlyIn, 254); return 0; } -void (*const gUnknown_0855C550[])(struct Task *) = { - sub_80B9804, - sub_80B98B8, - sub_80B9924, - sub_80B9978, - sub_80B99F0, - sub_80B9A28, - sub_80B9A60, +void (*const sFlyInFieldEffectFuncs[])(struct Task *) = { + FlyInFieldEffect_BirdSwoopDown, + FlyInFieldEffect_FlyInWithBird, + FlyInFieldEffect_JumpOffBird, + FlyInFieldEffect_FieldMovePose, + FlyInFieldEffect_BirdReturnToBall, + FlyInFieldEffect_WaitBirdReturn, + FlyInFieldEffect_End, }; -static void sub_80B97D4(u8 taskId) +static void Task_FlyIn(u8 taskId) { - gUnknown_0855C550[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyInFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B9804(struct Task *task) +static void FlyInFieldEffect_BirdSwoopDown(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; - task->data[2] = 17; - task->data[15] = gPlayerAvatar.flags; + task->tState++; + task->tTimer = 17; + task->tAvatarFlags = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(0x01); - if (task->data[15] & 0x08) + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - sub_81555AC(objectEvent->fieldEffectSpriteId, 0); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 0); } - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0x3)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); CameraObjectReset2(); ObjectEventTurn(objectEvent, DIR_WEST); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); objectEvent->invisible = FALSE; - task->data[1] = sub_80B94C4(); - sub_80B9524(task->data[1]); - sub_80B9560(task->data[1], objectEvent->spriteId); + task->tBirdSpriteId = CreateFlyBirdSprite(); + StartFlyBirdSwoopDown(task->tBirdSpriteId); + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, objectEvent->spriteId); } } -static void sub_80B98B8(struct Task *task) +static void FlyInFieldEffect_FlyInWithBird(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; - if (task->data[2] == 0 || (--task->data[2]) == 0) + if (task->tTimer == 0 || (--task->tTimer) == 0) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; - sub_80B9560(task->data[1], 0x40); + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, MAX_SPRITES); sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0]++; - task->data[2] = 0; + task->tState++; + task->tTimer = 0; } } -static void sub_80B9924(struct Task *task) +static void FlyInFieldEffect_JumpOffBird(struct Task *task) { - s16 unknown_0855C56C[18] = { + s16 sYPositions[18] = { -2, -4, -5, @@ -3395,227 +3526,257 @@ static void sub_80B9924(struct Task *task) 8 }; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y = unknown_0855C56C[task->data[2]]; - if ((++task->data[2]) >= 18) - { - task->data[0]++; - } + sprite->pos2.y = sYPositions[task->tTimer]; + + if ((++task->tTimer) >= (int)ARRAY_COUNT(sYPositions)) + task->tState++; } -static void sub_80B9978(struct Task *task) +static void FlyInFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; - objectEvent->inanimate = 0; + objectEvent->inanimate = FALSE; MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); sprite->pos2.x = 0; sprite->pos2.y = 0; - sprite->coordOffsetEnabled = 1; - sub_808C114(); + sprite->coordOffsetEnabled = TRUE; + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void sub_80B99F0(struct Task *task) +static void FlyInFieldEffect_BirdReturnToBall(struct Task *task) { if (ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gPlayerAvatar.objectEventId])) { - task->data[0]++; - sub_80B9794(task->data[1]); + task->tState++; + StartFlyBirdReturnToBall(task->tBirdSpriteId); } } -static void sub_80B9A28(struct Task *task) +static void FlyInFieldEffect_WaitBirdReturn(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { - DestroySprite(&gSprites[task->data[1]]); - task->data[0]++; - task->data[1] = 0x10; + DestroySprite(&gSprites[task->tBirdSpriteId]); + task->tState++; + task->data[1] = 16; } } -static void sub_80B9A60(struct Task *task) +static void FlyInFieldEffect_End(struct Task *task) { u8 state; struct ObjectEvent *objectEvent; if ((--task->data[1]) == 0) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - state = 0; - if (task->data[15] & 0x08) + state = PLAYER_AVATAR_STATE_NORMAL; + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - state = 3; - sub_81555AC(objectEvent->fieldEffectSpriteId, 1); + state = PLAYER_AVATAR_STATE_SURFING; + SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); ObjectEventTurn(objectEvent, DIR_SOUTH); - gPlayerAvatar.flags = task->data[15]; + gPlayerAvatar.flags = task->tAvatarFlags; gPlayerAvatar.preventStep = FALSE; FieldEffectActiveListRemove(FLDEFF_FLY_IN); - DestroyTask(FindTaskIdByFunc(sub_80B97D4)); + DestroyTask(FindTaskIdByFunc(Task_FlyIn)); } } -bool8 sub_80B9ADC(void) +#undef tState +#undef tMonId +#undef tBirdSpriteId +#undef tTimer +#undef tAvatarFlags +#undef sPlayerSpriteId +#undef sAnimCompleted + +#define tState data[1] +#define tObjectEventId data[2] +#define tTimer data[3] +#define tCameraTaskId data[5] +#define tLocalId data[6] +#define tMapNum data[7] +#define tMapGroup data[8] + +bool8 FldEff_DestroyDeoxysRock(void) { u8 taskId; - u8 objectEventIdBuffer; - if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) + u8 objectEventId; + if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventId)) { - taskId = CreateTask(sub_80B9BE8, 0x50); - gTasks[taskId].data[2] = objectEventIdBuffer; - gTasks[taskId].data[6] = gFieldEffectArguments[0]; - gTasks[taskId].data[7] = gFieldEffectArguments[1]; - gTasks[taskId].data[8] = gFieldEffectArguments[2]; + taskId = CreateTask(Task_DestroyDeoxysRock, 80); + gTasks[taskId].tObjectEventId = objectEventId; + gTasks[taskId].tLocalId = gFieldEffectArguments[0]; + gTasks[taskId].tMapNum = gFieldEffectArguments[1]; + gTasks[taskId].tMapGroup = gFieldEffectArguments[2]; } else { - FieldEffectActiveListRemove(0x41); + FieldEffectActiveListRemove(FLDEFF_DESTROY_DEOXYS_ROCK); } return FALSE; } -void sub_80B9B3C(u8 taskId) +#define tShakeDelay data[0] +#define tShakeUp data[1] +#define tShake data[5] +#define tEndDelay data[6] +#define tEnding data[7] + +static void Task_DeoxysRockCameraShake(u8 taskId) { s16 *data = gTasks[taskId].data; - if (data[7] != 0) + if (tEnding) { - if (++data[6] > 20) + if (++tEndDelay > 20) { - data[6] = 0; - if (data[5] != 0) - data[5]--; + tEndDelay = 0; + if (tShake != 0) + tShake--; } } else { - data[5] = 4; + tShake = 4; } - if (++data[0] > 1) + if (++tShakeDelay > 1) { - data[0] = 0; - if (++data[1] & 1) - { - SetCameraPanning(0, -data[5]); - } + tShakeDelay = 0; + + if (++tShakeUp & 1) + SetCameraPanning(0, -tShake); else - { - SetCameraPanning(0, data[5]); - } + SetCameraPanning(0, tShake); } UpdateCameraPanning(); - if (data[5] == 0) + if (tShake == 0) DestroyTask(taskId); } -void sub_80B9BD0(u8 taskId) +static void StartEndingDeoxysRockCameraShake(u8 taskId) { - gTasks[taskId].data[7] = 1; + gTasks[taskId].tEnding = TRUE; } -void (*const gUnknown_0855C590[])(s16*, u8) = { - sub_80B9C28, - sub_80B9C54, - sub_80B9CDC, +#undef tShakeDelay +#undef tShakeUp +#undef tShake +#undef tEndDelay +#undef tEnding + +void (*const sDestroyDeoxysRockEffectFuncs[])(s16*, u8) = { + DestroyDeoxysRockEffect_CameraShake, + DestroyDeoxysRockEffect_RockFragments, + DestroyDeoxysRockEffect_WaitAndEnd, }; -static void sub_80B9BE8(u8 taskId) +static void Task_DestroyDeoxysRock(u8 taskId) { s16 *data = gTasks[taskId].data; InstallCameraPanAheadCallback(); SetCameraPanningCallback(0); - gUnknown_0855C590[data[1]](data, taskId); + sDestroyDeoxysRockEffectFuncs[tState](data, taskId); } -void sub_80B9C28(s16* data, u8 taskId) +static void DestroyDeoxysRockEffect_CameraShake(s16* data, u8 taskId) { - u8 newTaskId = CreateTask(sub_80B9B3C, 0x5A); - PlaySE(SE_T_KAMI2); - data[5] = newTaskId; - data[1]++; + u8 newTaskId = CreateTask(Task_DeoxysRockCameraShake, 90); + PlaySE(SE_THUNDER2); + tCameraTaskId = newTaskId; + tState++; } -void sub_80B9D24(struct Sprite*); - -void sub_80B9C54(s16* data, u8 taskId) +static void DestroyDeoxysRockEffect_RockFragments(s16* data, u8 taskId) { - if (++data[3] > 0x78) + if (++tTimer > 120) { - struct Sprite *sprite = &gSprites[gObjectEvents[data[2]].spriteId]; - gObjectEvents[data[2]].invisible = TRUE; + struct Sprite *sprite = &gSprites[gObjectEvents[tObjectEventId].spriteId]; + gObjectEvents[tObjectEventId].invisible = TRUE; BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE); BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE); - sub_80B9D24(sprite); - PlaySE(SE_T_KAMI); - sub_80B9BD0(data[5]); - data[3] = 0; - data[1]++; + CreateDeoxysRockFragments(sprite); + PlaySE(SE_THUNDER); + StartEndingDeoxysRockCameraShake(tCameraTaskId); + tTimer = 0; + tState++; } } -void sub_80B9CDC(s16* a0, u8 taskId) +static void DestroyDeoxysRockEffect_WaitAndEnd(s16* data, u8 taskId) { - if (!gPaletteFade.active && !FuncIsActiveTask(sub_80B9B3C)) + if (!gPaletteFade.active && !FuncIsActiveTask(Task_DeoxysRockCameraShake)) { InstallCameraPanAheadCallback(); - RemoveObjectEventByLocalIdAndMap(a0[6], a0[7], a0[8]); - FieldEffectActiveListRemove(0x41); + RemoveObjectEventByLocalIdAndMap(tLocalId, tMapNum, tMapGroup); + FieldEffectActiveListRemove(FLDEFF_DESTROY_DEOXYS_ROCK); DestroyTask(taskId); } } -const struct SpriteFrameImage gSpriteImageTable_855C59C[] = { - obj_frame_tiles(gUnknown_0855C170), - obj_frame_tiles(gUnknown_0855C190), - obj_frame_tiles(gUnknown_0855C1B0), - obj_frame_tiles(gUnknown_0855C1D0), +#undef tState +#undef tObjectEventId +#undef tTimer +#undef tCameraTaskId +#undef tLocalId +#undef tMapNum +#undef tMapGroup + +static const struct SpriteFrameImage sImages_DeoxysRockFragment[] = { + obj_frame_tiles(sRockFragment_TopLeft), + obj_frame_tiles(sRockFragment_TopRight), + obj_frame_tiles(sRockFragment_BottomLeft), + obj_frame_tiles(sRockFragment_BottomRight), }; -const union AnimCmd gSpriteAnim_855C5BC[] = { +static const union AnimCmd sAnim_RockFragment_TopLeft[] = { ANIMCMD_FRAME(.imageValue = 0), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5C4[] = { +static const union AnimCmd sAnim_RockFragment_TopRight[] = { ANIMCMD_FRAME(.imageValue = 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5CC[] = { +static const union AnimCmd sAnim_RockFragment_BottomLeft[] = { ANIMCMD_FRAME(.imageValue = 2), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5D4[] = { +static const union AnimCmd sAnim_RockFragment_BottomRight[] = { ANIMCMD_FRAME(.imageValue = 3), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_855C5DC[] = { - gSpriteAnim_855C5BC, - gSpriteAnim_855C5C4, - gSpriteAnim_855C5CC, - gSpriteAnim_855C5D4, +static const union AnimCmd *const sAnims_DeoxysRockFragment[] = { + sAnim_RockFragment_TopLeft, + sAnim_RockFragment_TopRight, + sAnim_RockFragment_BottomLeft, + sAnim_RockFragment_BottomRight, }; -const struct SpriteTemplate gUnknown_0855C5EC = { +static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = { .tileTag = 0xFFFF, .paletteTag = 4378, - .oam = &gOamData_855C218, - .anims = gSpriteAnimTable_855C5DC, - .images = gSpriteImageTable_855C59C, + .oam = &sOam_8x8, + .anims = sAnims_DeoxysRockFragment, + .images = sImages_DeoxysRockFragment, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9DB8 + .callback = SpriteCB_DeoxysRockFragment }; -void sub_80B9D24(struct Sprite* sprite) +static void CreateDeoxysRockFragments(struct Sprite* sprite) { int i; int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x; @@ -3623,7 +3784,7 @@ void sub_80B9D24(struct Sprite* sprite) for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gUnknown_0855C5EC, xPos, yPos, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_DeoxysRockFragment, xPos, yPos, 0); if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); @@ -3633,8 +3794,9 @@ void sub_80B9D24(struct Sprite* sprite) } } -static void sub_80B9DB8(struct Sprite* sprite) +static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite) { + // 1 case for each fragment, fly off in 4 different directions switch (sprite->data[0]) { case 0: @@ -3654,11 +3816,11 @@ static void sub_80B9DB8(struct Sprite* sprite) sprite->pos1.y += 12; break; } - if ((u16)(sprite->pos1.x + 4) > 0xF8 || sprite->pos1.y < -4 || sprite->pos1.y > 0xA4) + if ((u16)(sprite->pos1.x + 4) > DISPLAY_WIDTH + 8 || sprite->pos1.y < -4 || sprite->pos1.y > DISPLAY_HEIGHT + 4) DestroySprite(sprite); } -bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) +bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite) { u8 objectEventIdBuffer; if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) @@ -3672,7 +3834,7 @@ bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) xPos = (gFieldEffectArguments[3] - xPos) * 16; yPos = (gFieldEffectArguments[4] - yPos) * 16; ShiftObjectEventCoords(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7); - taskId = CreateTask(Fldeff_MoveDeoxysRock_Step, 0x50); + taskId = CreateTask(Task_MoveDeoxysRock, 80); gTasks[taskId].data[1] = object->spriteId; gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos; gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos; @@ -3682,7 +3844,7 @@ bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) return FALSE; } -static void Fldeff_MoveDeoxysRock_Step(u8 taskId) +static void Task_MoveDeoxysRock(u8 taskId) { // BUG: Possible divide by zero s16 *data = gTasks[taskId].data; @@ -3711,7 +3873,7 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId) sprite->pos1.y = data[3]; ShiftStillObjectEventCoords(object); object->triggerGroundEffectsOnStop = TRUE; - FieldEffectActiveListRemove(0x42); + FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK); DestroyTask(taskId); } break; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index e02de959b..886e023d1 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -166,7 +166,7 @@ u8 CreateWarpArrowSprite(void) u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -202,11 +202,11 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) } } -const u8 gShadowEffectTemplateIds[] = { - 0, - 1, - 2, - 3 +static const u8 sShadowEffectTemplateIds[] = { + FLDEFFOBJ_SHADOW_S, + FLDEFFOBJ_SHADOW_M, + FLDEFFOBJ_SHADOW_L, + FLDEFFOBJ_SHADOW_XL }; const u16 gShadowVerticalOffsets[] = { @@ -224,7 +224,7 @@ u32 FldEff_Shadow(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -275,7 +275,7 @@ u32 FldEff_TallGrass(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -341,14 +341,14 @@ u32 FldEff_JumpTallGrass(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 12; + sprite->data[1] = FLDEFF_JUMP_TALL_GRASS; } return 0; } @@ -381,7 +381,7 @@ u32 FldEff_LongGrass(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -444,14 +444,14 @@ u32 FldEff_JumpLongGrass(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 18; + sprite->data[1] = FLDEFF_JUMP_LONG_GRASS; } return 0; } @@ -465,7 +465,7 @@ u32 FldEff_ShortGrass(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &(gSprites[spriteId]); @@ -522,7 +522,7 @@ u32 FldEff_SandFootprints(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -540,7 +540,7 @@ u32 FldEff_DeepSandFootprints(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -558,7 +558,7 @@ u32 FldEff_BikeTireTracks(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -611,7 +611,7 @@ u32 FldEff_Splash(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -623,7 +623,7 @@ u32 FldEff_Splash(void) sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; sprite->pos2.y = (graphicsInfo->height >> 1) - 4; - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } return 0; } @@ -650,7 +650,7 @@ u32 FldEff_JumpSmallSplash(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -668,7 +668,7 @@ u32 FldEff_JumpBigSplash(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -690,7 +690,7 @@ u32 FldEff_FeetInFlowingWater(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -733,7 +733,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) sprite->data[4] = objectEvent->currentCoords.y; if (!sprite->invisible) { - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } } } @@ -744,7 +744,7 @@ u32 FldEff_Ripple(void) u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -764,7 +764,7 @@ u32 FldEff_HotSpringsWater(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -800,70 +800,70 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) } } -u32 FldEff_Unknown19(void) +u32 FldEff_UnusedGrass(void) { u8 spriteId; struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_19; + sprite->data[0] = FLDEFF_UNUSED_GRASS; } return 0; } -u32 FldEff_Unknown20(void) +u32 FldEff_UnusedGrass2(void) { u8 spriteId; struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS_2], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_20; + sprite->data[0] = FLDEFF_UNUSED_GRASS_2; } return 0; } -u32 FldEff_Unknown21(void) +u32 FldEff_UnusedSand(void) { u8 spriteId; struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_SAND], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_21; + sprite->data[0] = FLDEFF_UNUSED_SAND; } return 0; } -u32 FldEff_Unknown22(void) +u32 FldEff_WaterSurfacing(void) { u8 spriteId; struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_WATER_SURFACING], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_22; + sprite->data[0] = FLDEFF_WATER_SURFACING; } return 0; } @@ -889,7 +889,7 @@ u32 FldEff_Ash(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -945,7 +945,7 @@ u32 FldEff_SurfBlob(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); if (spriteId !=MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -960,33 +960,34 @@ u32 FldEff_SurfBlob(void) return spriteId; } -void sub_81555AC(u8 spriteId, u8 value) +// States for bobbing up and down while surfing +void SetSurfBobState(u8 spriteId, u8 value) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF); } -void sub_81555D8(u8 spriteId, u8 value) +void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4); } -void sub_8155604(u8 spriteId, u8 value, s16 data1) +void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8); gSprites[spriteId].data[1] = data1; } -static u8 sub_8155638(struct Sprite *sprite) +static u8 GetSurfBobState(struct Sprite *sprite) { return sprite->data[0] & 0xF; } -static u8 sub_8155640(struct Sprite *sprite) +static u8 GetSurfBobWhileFlyingOutState(struct Sprite *sprite) { return (sprite->data[0] & 0xF0) >> 4; } -static u8 sub_815564C(struct Sprite *sprite) +static u8 GetSurfBobWhileFishingState(struct Sprite *sprite) { return (sprite->data[0] & 0xF00) >> 8; } @@ -1018,7 +1019,7 @@ static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite * [DIR_NORTHEAST] = 1, }; - if (sub_8155640(sprite) == 0) + if (GetSurfBobWhileFlyingOutState(sprite) == 0) StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[objectEvent->movementDirection]); } @@ -1049,8 +1050,8 @@ void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite) static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite) { u16 unk_085CDC6A[] = {3, 7}; - u8 v0 = sub_8155638(sprite); - if (v0 != 0) + u8 bobState = GetSurfBobState(sprite); + if (bobState != 0) { if (((u16)(++ sprite->data[4]) & unk_085CDC6A[sprite->data[5]]) == 0) { @@ -1060,9 +1061,9 @@ static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite * { sprite->data[3] = -sprite->data[3]; } - if (v0 != 2) + if (bobState != 2) { - if (sub_815564C(sprite) == 0) + if (GetSurfBobWhileFishingState(sprite) == 0) linkedSprite->pos2.y = sprite->pos2.y; else linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y; @@ -1107,14 +1108,14 @@ u32 FldEff_Dust(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 10; + sprite->data[1] = FLDEFF_DUST; } return 0; } @@ -1129,7 +1130,7 @@ u32 FldEff_SandPile(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -1183,7 +1184,7 @@ u32 FldEff_Bubbles(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1211,7 +1212,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1225,20 +1226,20 @@ u32 FldEff_BerryTreeGrowthSparkle(void) u32 ShowTreeDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4); + return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4); } u32 ShowMountainDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3); + return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3); } u32 ShowSandDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2); + return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2); } -static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) +static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) { u8 spriteId; struct Sprite *sprite; @@ -1248,7 +1249,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) FieldEffectActiveListRemove(fldEff); return MAX_SPRITES; } - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1331,7 +1332,7 @@ u32 FldEff_Sparkle(void) gFieldEffectArguments[0] += 7; gFieldEffectArguments[1] += 7; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = gFieldEffectArguments[2]; @@ -1358,61 +1359,72 @@ void UpdateSparkleFieldEffect(struct Sprite *sprite) FieldEffectStop(sprite, FLDEFF_SPARKLE); } -void sub_8155EA0(struct Sprite *sprite) +#define sTimer data[0] +#define sState data[2] +#define sStartY data[4] +#define sCounter data[5] +#define sAnimCounter data[6] +#define sAnimState data[7] + +// Same as InitSpriteForFigure8Anim +static void InitRayquazaForFigure8Anim(struct Sprite *sprite) { - sprite->data[6] = 0; - sprite->data[7] = 0; + sprite->sAnimCounter = 0; + sprite->sAnimState = 0; } -bool8 sub_8155EA8(struct Sprite *sprite) +// Only different from AnimateSpriteInFigure8 by the addition of SetGpuReg to move the spotlight +static bool8 AnimateRayquazaInFigure8(struct Sprite *sprite) { - bool8 returnBool = FALSE; + bool8 finished = FALSE; - switch (sprite->data[7]) + switch (sprite->sAnimState) { - case 0: - sprite->pos2.x += sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 1: - sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; - case 2: - sprite->pos2.x -= sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 3: - sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; + case 0: + sprite->pos2.x += GetFigure8XOffset(sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + break; + case 1: + sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + break; + case 2: + sprite->pos2.x -= GetFigure8XOffset(sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + break; + case 3: + sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + break; } + // Update spotlight to sweep left and right with Rayquaza SetGpuReg(REG_OFFSET_BG0HOFS, -sprite->pos2.x); - if (++sprite->data[6] == 72) + + if (++sprite->sAnimCounter == FIGURE_8_LENGTH) { - sprite->data[6] = 0; - sprite->data[7]++; + sprite->sAnimCounter = 0; + sprite->sAnimState++; } - if (sprite->data[7] == 4) + if (sprite->sAnimState == 4) { sprite->pos2.y = 0; sprite->pos2.x = 0; - returnBool = TRUE; + finished = TRUE; } - return returnBool; + return finished; } -void sub_8155F80(struct Sprite *sprite) +void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) { u8 i, j; - switch (sprite->data[2]) + switch (sprite->sState) { case 0: - SetGpuReg(REG_OFFSET_BG0VOFS, 0x78 - (sprite->data[0] / 3)); - if (sprite->data[0] == 0x60) + SetGpuReg(REG_OFFSET_BG0VOFS, DISPLAY_WIDTH / 2 - (sprite->sTimer / 3)); + if (sprite->sTimer == 96) { for (i = 0; i < 3; i++) { @@ -1422,42 +1434,42 @@ void sub_8155F80(struct Sprite *sprite) } } } - if (sprite->data[0] > 0x137) + if (sprite->sTimer > 311) { - sprite->data[2] = 1; - sprite->data[0] = 0; + sprite->sState = 1; + sprite->sTimer = 0; } break; case 1: - sprite->pos1.y = (gSineTable[sprite->data[0] / 3] >> 2) + sprite->data[4]; - if (sprite->data[0] == 0xBD) + sprite->pos1.y = (gSineTable[sprite->sTimer / 3] >> 2) + sprite->sStartY; + if (sprite->sTimer == 189) { - sprite->data[2] = 2; - sprite->data[5] = 0; - sprite->data[0] = 0; + sprite->sState = 2; + sprite->sCounter = 0; + sprite->sTimer = 0; } break; case 2: - if (sprite->data[0] == 0x3C) + if (sprite->sTimer == 60) { - sprite->data[5]++; - sprite->data[0] = 0; + sprite->sCounter++; + sprite->sTimer = 0; } - if (sprite->data[5] == 7) + if (sprite->sCounter == 7) { - sprite->data[5] = 0; - sprite->data[2] = 3; + sprite->sCounter = 0; + sprite->sState = 3; } break; case 3: if (sprite->pos2.y == 0) { - sprite->data[0] = 0; - sprite->data[2]++; + sprite->sTimer = 0; + sprite->sState++; } - if (sprite->data[0] == 5) + if (sprite->sTimer == 5) { - sprite->data[0] = 0; + sprite->sTimer = 0; if (sprite->pos2.y > 0) sprite->pos2.y--; else @@ -1465,38 +1477,38 @@ void sub_8155F80(struct Sprite *sprite) } break; case 4: - if (sprite->data[0] == 0x3C) + if (sprite->sTimer == 60) { - sprite->data[2] = 5; - sprite->data[0] = 0; - sprite->data[5] = 0; + sprite->sState = 5; + sprite->sTimer = 0; + sprite->sCounter = 0; } break; case 5: - sub_8155EA0(sprite); - sprite->data[2] = 6; - sprite->data[0] = 0; + InitRayquazaForFigure8Anim(sprite); + sprite->sState = 6; + sprite->sTimer = 0; break; case 6: - if (sub_8155EA8(sprite)) + if (AnimateRayquazaInFigure8(sprite)) { - sprite->data[0] = 0; - if (++sprite->data[5] <= 2) + sprite->sTimer = 0; + if (++sprite->sCounter <= 2) { - sub_8155EA0(sprite); + InitRayquazaForFigure8Anim(sprite); } else { - sprite->data[5] = 0; - sprite->data[2] = 7; + sprite->sCounter = 0; + sprite->sState = 7; } } break; case 7: - if (sprite->data[0] == 0x1E) + if (sprite->sTimer == 30) { - sprite->data[2] = 8; - sprite->data[0] = 0; + sprite->sState = 8; + sprite->sTimer = 0; } break; case 8: @@ -1508,11 +1520,11 @@ void sub_8155F80(struct Sprite *sprite) } } SetGpuReg(REG_OFFSET_BG0VOFS, 0); - FieldEffectStop(sprite, FLDEFF_RAYQUAZA); + FieldEffectStop(sprite, FLDEFF_RAYQUAZA_SPOTLIGHT); break; } - if (sprite->data[2] == 1) + if (sprite->sState == 1) { if ((sprite->data[1] & 7) == 0) sprite->pos2.y += sprite->data[3]; @@ -1521,10 +1533,17 @@ void sub_8155F80(struct Sprite *sprite) sprite->data[1]++; } - sprite->data[0]++; + sprite->sTimer++; } -void sub_8156194(struct Sprite *sprite) +#undef sTimer +#undef sState +#undef sStartY +#undef sCounter +#undef sAnimCounter +#undef sAnimState + +void UpdateJumpImpactEffect(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index f5f6e99f7..5fab2489b 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -25,6 +25,7 @@ #include "constants/event_objects.h" #include "constants/event_object_movement.h" #include "constants/field_effects.h" +#include "constants/items.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" @@ -100,9 +101,9 @@ static void sub_808C280(struct ObjectEvent *); static void StartStrengthAnim(u8, u8); static void Task_PushBoulder(u8 taskId); -static u8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static bool8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static bool8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); static void DoPlayerMatJump(void); static void DoPlayerAvatarSecretBaseMatJump(u8 taskId); @@ -120,22 +121,22 @@ static void Task_StopSurfingInit(u8 taskId); static void Task_WaitStopSurfing(u8 taskId); static void Task_Fishing(u8 taskId); -static u8 Fishing1(struct Task *task); -static u8 Fishing2(struct Task *task); -static u8 Fishing3(struct Task *task); -static u8 Fishing4(struct Task *task); -static u8 Fishing5(struct Task *task); -static u8 Fishing6(struct Task *task); -static u8 Fishing7(struct Task *task); -static u8 Fishing8(struct Task *task); -static u8 Fishing9(struct Task *task); -static u8 Fishing10(struct Task *task); -static u8 Fishing11(struct Task *task); -static u8 Fishing12(struct Task *task); -static u8 Fishing13(struct Task *task); -static u8 Fishing14(struct Task *task); -static u8 Fishing15(struct Task *task); -static u8 Fishing16(struct Task *task); +static u8 Fishing_Init(struct Task *task); +static u8 Fishing_GetRodOut(struct Task *task); +static u8 Fishing_WaitBeforeDots(struct Task *task); +static u8 Fishing_InitDots(struct Task *task); +static u8 Fishing_ShowDots(struct Task *task); +static u8 Fishing_CheckForBite(struct Task *task); +static u8 Fishing_GotBite(struct Task *task); +static u8 Fishing_WaitForA(struct Task *task); +static u8 Fishing_CheckMoreDots(struct Task *task); +static u8 Fishing_MonOnHook(struct Task *task); +static u8 Fishing_StartEncounter(struct Task *task); +static u8 Fishing_NotEvenNibble(struct Task *task); +static u8 Fishing_GotAway(struct Task *task); +static u8 Fishing_NoMon(struct Task *task); +static u8 Fishing_PutRodAway(struct Task *task); +static u8 Fishing_EndNoMon(struct Task *task); static void AlignFishingAnimationFrames(void); static u8 sub_808D38C(struct ObjectEvent *object, s16 *a1); @@ -319,7 +320,7 @@ static u8 ObjectEventCB2_NoMovement2(void) return 0; } -void player_step(u8 direction, u16 newKeys, u16 heldKeys) +void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -378,9 +379,9 @@ static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent *playerObjEve static void npc_clear_strange_bits(struct ObjectEvent *objEvent) { - objEvent->inanimate = 0; - objEvent->disableAnim = 0; - objEvent->facingDirectionLocked = 0; + objEvent->inanimate = FALSE; + objEvent->disableAnim = FALSE; + objEvent->facingDirectionLocked = FALSE; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH; } @@ -423,14 +424,14 @@ static u8 GetForcedMovementByMetatileBehavior(void) static bool8 ForcedMovement_None(void) { - if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->facingDirectionLocked = 0; - playerObjEvent->enableAnim = 1; + playerObjEvent->facingDirectionLocked = FALSE; + playerObjEvent->enableAnim = TRUE; SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection); - gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FORCED_MOVE; } return FALSE; } @@ -440,7 +441,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) struct PlayerAvatar *playerAvatar = &gPlayerAvatar; u8 collision = CheckForPlayerAvatarCollision(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE; if (collision) { ForcedMovement_None(); @@ -452,7 +453,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) { if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE; playerAvatar->runningState = MOVING; return 1; } @@ -469,7 +470,7 @@ static u8 DoForcedMovementInCurrentDirection(void (*a)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->disableAnim = 1; + playerObjEvent->disableAnim = TRUE; return DoForcedMovement(playerObjEvent->movementDirection, a); } @@ -518,12 +519,12 @@ static bool8 ForcedMovement_PushedEastByCurrent(void) return DoForcedMovement(DIR_EAST, PlayerRideWaterCurrent); } -u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) +static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->disableAnim = 1; - playerObjEvent->facingDirectionLocked = 1; + playerObjEvent->disableAnim = TRUE; + playerObjEvent->facingDirectionLocked = TRUE; return DoForcedMovement(direction, b); } @@ -566,8 +567,8 @@ static bool8 ForcedMovement_MuddySlope(void) if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3) { Bike_UpdateBikeCounterSpeed(0); - playerObjEvent->facingDirectionLocked = 1; - return DoForcedMovement(1, PlayerGoSpeed2); + playerObjEvent->facingDirectionLocked = TRUE; + return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed2); } else { @@ -868,7 +869,7 @@ static void PlayerAvatarTransition_Surfing(struct ObjectEvent *objEvent) gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; spriteId = FieldEffectStart(FLDEFF_SURF_BLOB); objEvent->fieldEffectSpriteId = spriteId; - sub_81555AC(spriteId, 1); + SetSurfBobState(spriteId, 1); } static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent) @@ -884,7 +885,7 @@ static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent *objEvent) gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_5; } -void sub_808B578(void) +void UpdatePlayerAvatarTransitionState(void) { gPlayerAvatar.tileTransitionState = T_NOT_MOVING; if (PlayerIsAnimActive()) @@ -1020,7 +1021,7 @@ void PlayerTurnInPlace(u8 direction) void PlayerJumpLedge(u8 direction) { - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); PlayerSetAnimId(GetJump2MovementAction(direction), 8); } @@ -1054,28 +1055,28 @@ void PlayerEndWheelie(u8 direction) // wheelie hopping standing void PlayerStandingHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieHopFaceDirectionMovementAction(a), 1); } // wheelie hopping moving void PlayerMovingHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieHopDirectionMovementAction(a), 2); } // wheelie hopping ledge void PlayerLedgeHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieJumpDirectionMovementAction(a), 8); } // acro turn jump void PlayerAcroTurnJump(u8 direction) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetJumpInPlaceTurnAroundMovementAction(direction), 1); } @@ -1327,7 +1328,7 @@ void ClearPlayerAvatarInfo(void) void SetPlayerAvatarStateMask(u8 flags) { - gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_6 | PLAYER_AVATAR_FLAG_5); + gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FORCED_MOVE | PLAYER_AVATAR_FLAG_5); gPlayerAvatar.flags |= flags; } @@ -1403,13 +1404,13 @@ void SetPlayerInvisibility(bool8 invisible) gSprites[gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId].invisible = invisible; } -void sub_808C114(void) +void SetPlayerAvatarFieldMove(void) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FIELD_MOVE)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0); } -void sub_808C15C(u8 direction) +static void SetPlayerAvatarFishing(u8 direction) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FISHING)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingDirectionAnimNum(direction)); @@ -1422,7 +1423,7 @@ void PlayerUseAcroBikeOnBumpySlope(u8 direction) SeekSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 1); } -void sub_808C228(u8 direction) +void SetPlayerAvatarWatering(u8 direction) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_WATERING)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFaceDirectionAnimNum(direction)); @@ -1500,7 +1501,7 @@ static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObjec gFieldEffectArguments[2] = strengthObject->previousElevation; gFieldEffectArguments[3] = gSprites[strengthObject->spriteId].oam.priority; FieldEffectStart(FLDEFF_DUST); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); task->data[0]++; } return FALSE; @@ -1539,7 +1540,7 @@ static u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEvent gPlayerAvatar.preventStep = TRUE; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); ObjectEventSetHeldMovement(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection)); task->data[1]++; if (task->data[1] > 1) @@ -1573,7 +1574,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep0(struct Task *task, struct Objec task->data[1] = objectEvent->movementDirection; gPlayerAvatar.preventStep = TRUE; ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); return TRUE; } @@ -1649,7 +1650,7 @@ static void Task_StopSurfingInit(u8 taskId) if (!ObjectEventClearHeldMovementIfFinished(playerObjEvent)) return; } - sub_81555AC(playerObjEvent->fieldEffectSpriteId, 2); + SetSurfBobState(playerObjEvent->fieldEffectSpriteId, 2); ObjectEventSetHeldMovement(playerObjEvent, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0])); gTasks[taskId].func = Task_WaitStopSurfing; } @@ -1669,26 +1670,6 @@ static void Task_WaitStopSurfing(u8 taskId) } } -static bool8 (*const sFishingStateFuncs[])(struct Task *) = -{ - Fishing1, - Fishing2, - Fishing3, - Fishing4, - Fishing5, - Fishing6, - Fishing7, - Fishing8, - Fishing9, - Fishing10, - Fishing11, - Fishing12, - Fishing13, - Fishing14, - Fishing15, - Fishing16, -}; - #define tStep data[0] #define tFrameCounter data[1] #define tNumDots data[2] @@ -1698,6 +1679,7 @@ static bool8 (*const sFishingStateFuncs[])(struct Task *) = #define tPlayerGfxId data[14] #define tFishingRod data[15] +// Some states are jumped to directly, labeled below #define FISHING_START_ROUND 3 #define FISHING_GOT_BITE 6 #define FISHING_ON_HOOK 9 @@ -1705,6 +1687,26 @@ static bool8 (*const sFishingStateFuncs[])(struct Task *) = #define FISHING_GOT_AWAY 12 #define FISHING_SHOW_RESULT 13 +static bool8 (*const sFishingStateFuncs[])(struct Task *) = +{ + Fishing_Init, + Fishing_GetRodOut, + Fishing_WaitBeforeDots, + Fishing_InitDots, // FISHING_START_ROUND + Fishing_ShowDots, + Fishing_CheckForBite, + Fishing_GotBite, // FISHING_GOT_BITE + Fishing_WaitForA, + Fishing_CheckMoreDots, + Fishing_MonOnHook, // FISHING_ON_HOOK + Fishing_StartEncounter, + Fishing_NotEvenNibble, // FISHING_NO_BITE + Fishing_GotAway, // FISHING_GOT_AWAY + Fishing_NoMon, // FISHING_SHOW_RESULT + Fishing_PutRodAway, + Fishing_EndNoMon, +}; + void StartFishing(u8 rod) { u8 taskId = CreateTask(Task_Fishing, 0xFF); @@ -1719,7 +1721,7 @@ static void Task_Fishing(u8 taskId) ; } -static bool8 Fishing1(struct Task *task) +static bool8 Fishing_Init(struct Task *task) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1727,24 +1729,32 @@ static bool8 Fishing1(struct Task *task) return FALSE; } -static bool8 Fishing2(struct Task *task) +static bool8 Fishing_GetRodOut(struct Task *task) { struct ObjectEvent *playerObjEvent; - const s16 arr1[] = {1, 1, 1}; - const s16 arr2[] = {1, 3, 6}; + const s16 minRounds1[] = { + [OLD_ROD] = 1, + [GOOD_ROD] = 1, + [SUPER_ROD] = 1 + }; + const s16 minRounds2[] = { + [OLD_ROD] = 1, + [GOOD_ROD] = 3, + [SUPER_ROD] = 6 + }; task->tRoundsPlayed = 0; - task->tMinRoundsRequired = arr1[task->tFishingRod] + (Random() % arr2[task->tFishingRod]); + task->tMinRoundsRequired = minRounds1[task->tFishingRod] + (Random() % minRounds2[task->tFishingRod]); task->tPlayerGfxId = gObjectEvents[gPlayerAvatar.objectEventId].graphicsId; playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(playerObjEvent); - playerObjEvent->enableAnim = 1; - sub_808C15C(playerObjEvent->facingDirection); + playerObjEvent->enableAnim = TRUE; + SetPlayerAvatarFishing(playerObjEvent->facingDirection); task->tStep++; return FALSE; } -static bool8 Fishing3(struct Task *task) +static bool8 Fishing_WaitBeforeDots(struct Task *task) { AlignFishingAnimationFrames(); @@ -1755,7 +1765,7 @@ static bool8 Fishing3(struct Task *task) return FALSE; } -static bool8 Fishing4(struct Task *task) +static bool8 Fishing_InitDots(struct Task *task) { u32 randVal; @@ -1773,8 +1783,7 @@ static bool8 Fishing4(struct Task *task) return TRUE; } -// Play a round of the dot game -static bool8 Fishing5(struct Task *task) +static bool8 Fishing_ShowDots(struct Task *task) { const u8 dot[] = _("·"); @@ -1809,8 +1818,7 @@ static bool8 Fishing5(struct Task *task) } } -// Determine if fish bites -static bool8 Fishing6(struct Task *task) +static bool8 Fishing_CheckForBite(struct Task *task) { bool8 bite; @@ -1830,34 +1838,25 @@ static bool8 Fishing6(struct Task *task) if (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD) { if (Random() % 100 > 14) - { bite = TRUE; - } } } if (!bite) { if (Random() & 1) - { task->tStep = FISHING_NO_BITE; - } else - { bite = TRUE; - } } if (bite == TRUE) - { StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingBiteDirectionAnimNum(GetPlayerFacingDirection())); - } } return TRUE; } -// Oh! A Bite! -static bool8 Fishing7(struct Task *task) +static bool8 Fishing_GotBite(struct Task *task) { AlignFishingAnimationFrames(); AddTextPrinterParameterized(0, 1, gText_OhABite, 0, 17, 0, NULL); @@ -1867,9 +1866,13 @@ static bool8 Fishing7(struct Task *task) } // We have a bite. Now, wait for the player to press A, or the timer to expire. -static bool8 Fishing8(struct Task *task) +static bool8 Fishing_WaitForA(struct Task *task) { - const s16 reelTimeouts[3] = {36, 33, 30}; + const s16 reelTimeouts[3] = { + [OLD_ROD] = 36, + [GOOD_ROD] = 33, + [SUPER_ROD] = 30 + }; AlignFishingAnimationFrames(); task->tFrameCounter++; @@ -1881,13 +1884,13 @@ static bool8 Fishing8(struct Task *task) } // Determine if we're going to play the dot game again -static bool8 Fishing9(struct Task *task) +static bool8 Fishing_CheckMoreDots(struct Task *task) { - const s16 arr[][2] = + const s16 moreDotsChance[][2] = { - {0, 0}, - {40, 10}, - {70, 30} + [OLD_ROD] = {0, 0}, + [GOOD_ROD] = {40, 10}, + [SUPER_ROD] = {70, 30} }; AlignFishingAnimationFrames(); @@ -1901,13 +1904,13 @@ static bool8 Fishing9(struct Task *task) // probability of having to play another round s16 probability = Random() % 100; - if (arr[task->tFishingRod][task->tRoundsPlayed] > probability) + if (moreDotsChance[task->tFishingRod][task->tRoundsPlayed] > probability) task->tStep = FISHING_START_ROUND; } return FALSE; } -static bool8 Fishing10(struct Task *task) +static bool8 Fishing_MonOnHook(struct Task *task) { AlignFishingAnimationFrames(); FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -1917,7 +1920,7 @@ static bool8 Fishing10(struct Task *task) return FALSE; } -static bool8 Fishing11(struct Task *task) +static bool8 Fishing_StartEncounter(struct Task *task) { if (task->tFrameCounter == 0) AlignFishingAnimationFrames(); @@ -1933,7 +1936,7 @@ static bool8 Fishing11(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; ClearDialogWindowAndFrame(0, TRUE); @@ -1947,14 +1950,13 @@ static bool8 Fishing11(struct Task *task) gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); FishingWildEncounter(task->tFishingRod); - sub_80ED950(1); + RecordFishingAttemptForTV(TRUE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } return FALSE; } -// Not even a nibble -static bool8 Fishing12(struct Task *task) +static bool8 Fishing_NotEvenNibble(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); @@ -1964,8 +1966,7 @@ static bool8 Fishing12(struct Task *task) return TRUE; } -// It got away -static bool8 Fishing13(struct Task *task) +static bool8 Fishing_GotAway(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); @@ -1975,15 +1976,14 @@ static bool8 Fishing13(struct Task *task) return TRUE; } -// Wait one second -static bool8 Fishing14(struct Task *task) +static bool8 Fishing_NoMon(struct Task *task) { AlignFishingAnimationFrames(); task->tStep++; return FALSE; } -static bool8 Fishing15(struct Task *task) +static bool8 Fishing_PutRodAway(struct Task *task) { AlignFishingAnimationFrames(); if (gSprites[gPlayerAvatar.spriteId].animEnded) @@ -1993,7 +1993,7 @@ static bool8 Fishing15(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; task->tStep++; @@ -2001,7 +2001,7 @@ static bool8 Fishing15(struct Task *task) return FALSE; } -static bool8 Fishing16(struct Task *task) +static bool8 Fishing_EndNoMon(struct Task *task) { RunTextPrinters(); if (!IsTextPrinterActive(0)) @@ -2010,7 +2010,7 @@ static bool8 Fishing16(struct Task *task) ScriptContext2_Disable(); UnfreezeObjectEvents(); ClearDialogWindowAndFrame(0, TRUE); - sub_80ED950(0); + RecordFishingAttemptForTV(FALSE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } return FALSE; @@ -2052,7 +2052,7 @@ static void AlignFishingAnimationFrames(void) if (animType == 10 || animType == 11) playerSprite->pos2.y = 8; if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); } void sub_808D074(u8 a0) diff --git a/src/field_region_map.c b/src/field_region_map.c index b442675f3..fc6f0fa76 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -116,7 +116,7 @@ static void MCB2_InitRegionMapRegisters(void) InitWindows(sFieldRegionMapWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x27, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); SetMainCallback2(MCB2_FieldUpdateRegionMap); SetVBlankCallback(VBCB_FieldUpdateRegionMap); } @@ -134,7 +134,7 @@ static void MCB2_FieldUpdateRegionMap(void) AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } static void FieldUpdateRegionMap(void) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 53057fc31..9becd2166 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -12,6 +12,7 @@ #include "field_special_scene.h" #include "field_weather.h" #include "gpu_regs.h" +#include "io_reg.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -34,18 +35,14 @@ #include "trainer_hill.h" #include "fldeff.h" -extern const u16 gOrbEffectBackgroundLayerFlags[]; - // This file's functions. -static void sub_8080B9C(u8); static void Task_ExitNonAnimDoor(u8); static void Task_ExitNonDoor(u8); -static void task0A_fade_n_map_maybe(u8); -static void sub_808115C(u8); +static void Task_DoContestHallWarp(u8); static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); static bool32 WaitForWeatherFadeIn(void); -static void task0A_mpl_807E31C(u8 taskId); +static void Task_TeleportTileWarpExit(u8 taskId); static void Task_WarpAndLoadMap(u8 taskId); static void Task_DoDoorWarp(u8 taskId); static void Task_EnableScriptAfterMusicFade(u8 taskId); @@ -197,7 +194,7 @@ static void Task_ReturnToFieldWirelessLink(u8 taskId) switch (task->data[0]) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0]++; break; case 1: @@ -230,7 +227,7 @@ void Task_ReturnToFieldRecordMixing(u8 taskId) switch (task->data[0]) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0]++; break; case 1: @@ -291,19 +288,19 @@ void FieldCB_WarpExitFadeFromWhite(void) void FieldCB_WarpExitFadeFromBlack(void) { - if (!sub_81D6534()) // sub_81D6534 always returns false + if (!OnTrainerHillEReaderChallengeFloor()) // always false Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); SetUpWarpExitTask(); ScriptContext2_Enable(); } -static void FieldCB_TeleportWarpExit(void) +static void FieldCB_TeleportTileWarpExit(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - PlaySE(SE_TK_WARPOUT); - CreateTask(task0A_mpl_807E31C, 10); + PlaySE(SE_WARP_OUT); + CreateTask(Task_TeleportTileWarpExit, 10); ScriptContext2_Enable(); } @@ -311,10 +308,10 @@ static void FieldCB_MossdeepGymWarpExit(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); CreateTask(Task_ExitNonDoor, 10); ScriptContext2_Enable(); - sub_8085540(0xE); + SetObjectEventLoadFlag((~SKIP_OBJECT_EVENT_LOAD) & 0xF); } static void Task_ExitDoor(u8 taskId) @@ -490,7 +487,7 @@ void DoWarp(void) TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_WarpAndLoadMap, 10); } @@ -546,24 +543,25 @@ void DoLavaridgeGym1FWarp(void) StartLavaridgeGym1FWarp(10); } -void DoTeleportWarp(void) +// Warp from a teleporting tile, e.g. in Aqua Hideout (For the move Teleport see FldEff_TeleportWarpOut) +void DoTeleportTileWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportWarpExit; + gFieldCallback = FieldCB_TeleportTileWarpExit; } void DoMossdeepGymWarp(void) { - sub_8085540(1); + SetObjectEventLoadFlag(SKIP_OBJECT_EVENT_LOAD); ScriptContext2_Enable(); SaveObjectEvents(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); CreateTask(Task_WarpAndLoadMap, 10); gFieldCallback = FieldCB_MossdeepGymWarpExit; } @@ -576,19 +574,21 @@ void DoPortholeWarp(void) gFieldCallback = FieldCB_ShowPortholeView; } -static void sub_80AF8E0(u8 taskId) +#define tState data[0] + +static void Task_DoCableClubWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: ScriptContext2_Enable(); - task->data[0]++; + task->tState++; break; case 1: if (!PaletteFadeActive() && BGMusicStopped()) - task->data[0]++; + task->tState++; break; case 2: WarpIntoMap(); @@ -598,13 +598,15 @@ static void sub_80AF8E0(u8 taskId) } } +#undef tState + void DoCableClubWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_KAIDAN); - CreateTask(sub_80AF8E0, 10); + PlaySE(SE_EXIT); + CreateTask(Task_DoCableClubWarp, 10); } static void Task_ReturnToWorldFromLinkRoom(u8 taskId) @@ -617,13 +619,13 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId) ClearLinkCallback_2(); FadeScreen(FADE_TO_BLACK, 0); TryFadeOutOldMapMusic(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); data[0]++; break; case 1: if (!PaletteFadeActive() && BGMusicStopped()) { - sub_800AC34(); + SetCloseLinkCallback(); data[0]++; } break; @@ -727,7 +729,7 @@ static void Task_DoDoorWarp(u8 taskId) } } -static void task0A_fade_n_map_maybe(u8 taskId) +static void Task_DoContestHallWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -746,7 +748,7 @@ static void task0A_fade_n_map_maybe(u8 taskId) break; case 2: WarpIntoMap(); - SetMainCallback2(sub_8086024); + SetMainCallback2(CB2_ReturnToFieldContestHall); DestroyTask(taskId); break; } @@ -758,9 +760,9 @@ void DoContestHallWarp(void) TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); gFieldCallback = FieldCB_WarpExitFadeFromBlack; - CreateTask(task0A_fade_n_map_maybe, 10); + CreateTask(Task_DoContestHallWarp, 10); } static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) @@ -976,7 +978,7 @@ void AnimateFlash(u8 flashLevel) u8 value = 0; if (!flashLevel) value = 1; - sub_80AFFDC(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); + sub_80AFFDC(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); sub_80AFFB8(); ScriptContext2_Enable(); } @@ -985,18 +987,18 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel) { if (flashLevel) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[flashLevel]); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } } void WriteBattlePyramidViewScanlineEffectBuffer(void) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.pyramidLightRadius); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, gSaveBlock2Ptr->frontier.pyramidLightRadius); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } -static void task0A_mpl_807E31C(u8 taskId) +static void Task_TeleportTileWarpExit(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1026,7 +1028,7 @@ static void sub_80B01BC(u8 taskId) case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); sub_808D1C8(); task->data[0]++; break; @@ -1053,7 +1055,7 @@ void sub_80B0244(void) { ScriptContext2_Enable(); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportWarpExit; + gFieldCallback = FieldCB_TeleportTileWarpExit; } void sub_80B0268(void) diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 3a3367957..bd6c833af 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -73,11 +73,11 @@ void Task_Truck1(u8 taskId) s16 box1, box2, box3; box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box. - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box. - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box. - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); if (++data[0] == SECONDS(500)) // this will never run data[0] = 0; // reset the timer if it gets stuck. @@ -116,11 +116,11 @@ void Task_Truck2(u8 taskId) cameraYpan = GetTruckCameraBobbingY(data[2]); SetCameraPanning(cameraXpan, cameraYpan); box1 = GetTruckBoxMovement(data[2] + 30) * 4; - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[2]) * 2; - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[2]) * 4; - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); } } @@ -147,9 +147,9 @@ static void Task_Truck3(u8 taskId) cameraXpan = gTruckCamera_HorizontalTable[data[1]]; cameraYpan = 0; SetCameraPanning(cameraXpan, 0); - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); } } @@ -171,7 +171,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1] = 0; // reset the timer. data[2] = CreateTask(Task_Truck1, 0xA); data[0] = 1; // run the next case. - PlaySE(SE_TRACK_MOVE); + PlaySE(SE_TRUCK_MOVE); } break; case 1: @@ -191,7 +191,7 @@ void Task_HandleTruckSequence(u8 taskId) DestroyTask(data[2]); data[3] = CreateTask(Task_Truck2, 0xA); data[0] = 3; - PlaySE(SE_TRACK_STOP); + PlaySE(SE_TRUCK_STOP); } break; case 3: @@ -206,7 +206,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 90) { - PlaySE(SE_TRACK_HAIKI); + PlaySE(SE_TRUCK_UNLOAD); data[1] = 0; data[0] = 5; } @@ -215,11 +215,11 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 120) { - MapGridSetMetatileIdAt(11, 8, METATILE_ID(InsideOfTruck, ExitLight_Top)); - MapGridSetMetatileIdAt(11, 9, METATILE_ID(InsideOfTruck, ExitLight_Mid)); - MapGridSetMetatileIdAt(11, 10, METATILE_ID(InsideOfTruck, ExitLight_Bottom)); + MapGridSetMetatileIdAt(11, 8, METATILE_InsideOfTruck_ExitLight_Top); + MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_ExitLight_Mid); + MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_ExitLight_Bottom); DrawWholeMapView(); - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); DestroyTask(taskId); ScriptContext2_Disable(); } @@ -229,9 +229,9 @@ void Task_HandleTruckSequence(u8 taskId) void ExecuteTruckSequence(void) { - MapGridSetMetatileIdAt(11, 8, METATILE_ID(InsideOfTruck, DoorClosedFloor_Top)); - MapGridSetMetatileIdAt(11, 9, METATILE_ID(InsideOfTruck, DoorClosedFloor_Mid)); - MapGridSetMetatileIdAt(11, 10, METATILE_ID(InsideOfTruck, DoorClosedFloor_Bottom)); + MapGridSetMetatileIdAt(11, 8, METATILE_InsideOfTruck_DoorClosedFloor_Top); + MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_DoorClosedFloor_Mid); + MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_DoorClosedFloor_Bottom); DrawWholeMapView(); ScriptContext2_Enable(); CpuFastFill(0, gPlttBufferFaded, 0x400); @@ -242,9 +242,9 @@ void EndTruckSequence(u8 taskId) { if (!FuncIsActiveTask(Task_HandleTruckSequence)) { - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); } } diff --git a/src/field_specials.c b/src/field_specials.c index 86b929491..c1fc92dbe 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -655,9 +655,9 @@ void MauvilleGymPressSwitch(void) for (i = 0; i < ARRAY_COUNT(sMauvilleGymSwitchCoords); i++) { if (i == gSpecialVar_0x8004) - MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_ID(MauvilleGym, PressedSwitch)); + MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_MauvilleGym_PressedSwitch); else - MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_ID(MauvilleGym, RaisedSwitch)); + MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_MauvilleGym_RaisedSwitch); } } @@ -672,83 +672,83 @@ void MauvilleGymSetDefaultBarriers(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(MauvilleGym, GreenBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_Off)); + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_Off)); + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_Off)); + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_Off)); + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH1_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_On)); + case METATILE_MauvilleGym_GreenBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_On); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_On)); + case METATILE_MauvilleGym_GreenBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_On); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_Off)); + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_Off)); + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_Off)); + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_Off)); + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH1_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_On)); + case METATILE_MauvilleGym_RedBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_On); break; - case METATILE_ID(MauvilleGym, RedBeamH2_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_On)); + case METATILE_MauvilleGym_RedBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_On); break; - case METATILE_ID(MauvilleGym, RedBeamH3_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamH4_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_GreenBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, RedBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_Off) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, PoleBottom_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamV1_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleBottom_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV1_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, FloorTile): - if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_ID(MauvilleGym, GreenBeamV1_On)) - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamV2_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_FloorTile: + if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_MauvilleGym_GreenBeamV1_On) + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV2_On | METATILE_COLLISION_MASK); else - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamV2_On) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV2_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleBottom_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamV1_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleBottom_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV1_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleTop_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleTop_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleTop_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_Off)); + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); break; } } @@ -762,7 +762,7 @@ void MauvilleGymDeactivatePuzzle(void) const struct UCoords8 *switchCoords = sMauvilleGymSwitchCoords; for (i = ARRAY_COUNT(sMauvilleGymSwitchCoords) - 1; i >= 0; i--) { - MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, METATILE_ID(MauvilleGym, PressedSwitch)); + MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, METATILE_MauvilleGym_PressedSwitch); switchCoords++; } for (y = 12; y < 24; y++) @@ -771,42 +771,42 @@ void MauvilleGymDeactivatePuzzle(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(MauvilleGym, GreenBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_Off)); + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_Off)); + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_Off)); + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_Off)); + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_Off)); + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_Off)); + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_Off)); + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_Off)); + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_Off) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV2_On): - case METATILE_ID(MauvilleGym, RedBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_GreenBeamV2_On: + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, PoleTop_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_Off)); + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); break; } } @@ -816,18 +816,18 @@ void MauvilleGymDeactivatePuzzle(void) static const bool8 sSlidingDoorNextFrameDelay[] = {0, 1, 1, 1, 1}; static const u16 sPetalburgGymSlidingDoorMetatiles[] = { - METATILE_ID(PetalburgGym, SlidingDoor_Frame0), - METATILE_ID(PetalburgGym, SlidingDoor_Frame1), - METATILE_ID(PetalburgGym, SlidingDoor_Frame2), - METATILE_ID(PetalburgGym, SlidingDoor_Frame3), - METATILE_ID(PetalburgGym, SlidingDoor_Frame4), + METATILE_PetalburgGym_SlidingDoor_Frame0, + METATILE_PetalburgGym_SlidingDoor_Frame1, + METATILE_PetalburgGym_SlidingDoor_Frame2, + METATILE_PetalburgGym_SlidingDoor_Frame3, + METATILE_PetalburgGym_SlidingDoor_Frame4, }; void PetalburgGymSlideOpenRoomDoors(void) { sSlidingDoorNextFrameCounter = 0; sSlidingDoorFrame = 0; - PlaySE(SE_KI_GASYAN); + PlaySE(SE_UNLOCK); CreateTask(Task_PetalburgGymSlideOpenRoomDoors, 8); } @@ -1095,30 +1095,30 @@ static void PCTurnOnEffect_1(s16 isPcTurnedOn, s8 dx, s8 dy) { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) { - tileId = METATILE_ID(Building, PC_Off); + tileId = METATILE_Building_PC_Off; } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off); + tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off); + tileId = METATILE_BrendansMaysHouse_MayPC_Off; } } else { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) { - tileId = METATILE_ID(Building, PC_On); + tileId = METATILE_Building_PC_On; } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_On); + tileId = METATILE_BrendansMaysHouse_BrendanPC_On; } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_On); + tileId = METATILE_BrendansMaysHouse_MayPC_On; } } MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); @@ -1152,15 +1152,15 @@ static void PCTurnOffEffect(void) } if (gSpecialVar_0x8004 == 0) { - tileId = METATILE_ID(Building, PC_Off); + tileId = METATILE_Building_PC_Off; } else if (gSpecialVar_0x8004 == 1) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off); + tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; } else if (gSpecialVar_0x8004 == 2) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off); + tileId = METATILE_BrendansMaysHouse_MayPC_Off; } MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); DrawWholeMapView(); @@ -1195,13 +1195,13 @@ static void LotteryCornerComputerEffect(struct Task *task) task->data[3] = 0; if (task->data[4] != 0) { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Normal) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Normal) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); } else { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Flash) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Flash) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Flash | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Flash | METATILE_COLLISION_MASK); } DrawWholeMapView(); task->data[4] ^= 1; @@ -1215,8 +1215,8 @@ static void LotteryCornerComputerEffect(struct Task *task) void EndLotteryCornerComputerEffect(void) { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Normal) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Normal) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); DrawWholeMapView(); } @@ -1509,7 +1509,7 @@ void ShakeCamera(void) gTasks[taskId].delay = gSpecialVar_0x8007; gTasks[taskId].verticalPan = gSpecialVar_0x8004; SetCameraPanningCallback(NULL); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); } static void Task_ShakeCamera(u8 taskId) @@ -1750,38 +1750,38 @@ const u8 *const gDeptStoreFloorNames[] = static const u16 sElevatorWindowTiles_Ascending[][3] = { { - METATILE_ID(BattleFrontier, Elevator_Top0), - METATILE_ID(BattleFrontier, Elevator_Top1), - METATILE_ID(BattleFrontier, Elevator_Top2) + METATILE_BattleFrontier_Elevator_Top0, + METATILE_BattleFrontier_Elevator_Top1, + METATILE_BattleFrontier_Elevator_Top2 }, { - METATILE_ID(BattleFrontier, Elevator_Mid0), - METATILE_ID(BattleFrontier, Elevator_Mid1), - METATILE_ID(BattleFrontier, Elevator_Mid2) + METATILE_BattleFrontier_Elevator_Mid0, + METATILE_BattleFrontier_Elevator_Mid1, + METATILE_BattleFrontier_Elevator_Mid2 }, { - METATILE_ID(BattleFrontier, Elevator_Bottom0), - METATILE_ID(BattleFrontier, Elevator_Bottom1), - METATILE_ID(BattleFrontier, Elevator_Bottom2) + METATILE_BattleFrontier_Elevator_Bottom0, + METATILE_BattleFrontier_Elevator_Bottom1, + METATILE_BattleFrontier_Elevator_Bottom2 }, }; static const u16 sElevatorWindowTiles_Descending[][3] = { { - METATILE_ID(BattleFrontier, Elevator_Top0), - METATILE_ID(BattleFrontier, Elevator_Top2), - METATILE_ID(BattleFrontier, Elevator_Top1) + METATILE_BattleFrontier_Elevator_Top0, + METATILE_BattleFrontier_Elevator_Top2, + METATILE_BattleFrontier_Elevator_Top1 }, { - METATILE_ID(BattleFrontier, Elevator_Mid0), - METATILE_ID(BattleFrontier, Elevator_Mid2), - METATILE_ID(BattleFrontier, Elevator_Mid1) + METATILE_BattleFrontier_Elevator_Mid0, + METATILE_BattleFrontier_Elevator_Mid2, + METATILE_BattleFrontier_Elevator_Mid1 }, { - METATILE_ID(BattleFrontier, Elevator_Bottom0), - METATILE_ID(BattleFrontier, Elevator_Bottom2), - METATILE_ID(BattleFrontier, Elevator_Bottom1) + METATILE_BattleFrontier_Elevator_Bottom0, + METATILE_BattleFrontier_Elevator_Bottom2, + METATILE_BattleFrontier_Elevator_Bottom1 }, }; @@ -1880,7 +1880,7 @@ void MoveElevator(void) SetCameraPanningCallback(NULL); MoveElevatorWindowLights(floorDelta, data[6]); - PlaySE(SE_ELEBETA); + PlaySE(SE_ELEVATOR); } static void Task_MoveElevator(u8 taskId) @@ -1897,7 +1897,7 @@ static void Task_MoveElevator(u8 taskId) // arrived at floor if (data[2] == data[5]) { - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); DestroyTask(taskId); EnableBothScriptContexts(); InstallCameraPanAheadCallback(); @@ -3438,9 +3438,9 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) - PlaySE(SE_W109); + PlaySE(SE_M_CONFUSE_RAY); else - PlaySE(SE_RG_DEOMOV); + PlaySE(SE_RG_DEOXYS_MOVE); CreateTask(WaitForDeoxysRockMovement, 8); gFieldEffectArguments[0] = 1; @@ -3864,7 +3864,7 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) case 7: if (IsLinkTaskFinished() == 1) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].data[0]++; } break; @@ -3877,7 +3877,7 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) case 9: if (gWirelessCommType == 0) { - sub_800AC34(); + SetCloseLinkCallback(); } gBattleTypeFlags = sBattleTowerMultiBattleTypeFlags; EnableBothScriptContexts(); @@ -3904,7 +3904,7 @@ void Script_DoRayquazaScene(void) void LoopWingFlapSE(void) { CreateTask(Task_LoopWingFlapSE, 8); - PlaySE(SE_W017); + PlaySE(SE_M_WING_ATTACK); } static void Task_LoopWingFlapSE(u8 taskId) @@ -3916,7 +3916,7 @@ static void Task_LoopWingFlapSE(u8 taskId) { playCount++; delay = 0; - PlaySE(SE_W017); + PlaySE(SE_M_WING_ATTACK); } if (playCount == gSpecialVar_0x8004 - 1) diff --git a/src/field_tasks.c b/src/field_tasks.c index 901535677..91b4558d5 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -51,26 +51,26 @@ static const TaskFunc sPerStepCallbacks[] = // they are in pairs but declared as 1D array static const struct PacifidlogMetatileOffsets sHalfSubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1} }; static const struct PacifidlogMetatileOffsets sFullySubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1} }; static const struct PacifidlogMetatileOffsets sFloatingBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_FloatingLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1} }; // Each element corresponds to a y coordinate row in the sootopolis gym 1F map. @@ -105,10 +105,10 @@ static const u16 sSootopolisGymIceRowVars[] = }; static const u16 sMuddySlopeMetatiles[] = { - METATILE_ID(General, MuddySlope_Frame0), - METATILE_ID(General, MuddySlope_Frame3), - METATILE_ID(General, MuddySlope_Frame2), - METATILE_ID(General, MuddySlope_Frame1) + METATILE_General_MuddySlope_Frame0, + METATILE_General_MuddySlope_Frame3, + METATILE_General_MuddySlope_Frame2, + METATILE_General_MuddySlope_Frame1 }; static void Task_RunPerStepCallback(u8 taskId) @@ -357,7 +357,7 @@ static void PacifidlogBridgePerStepCallback(u8 taskId) data[2] = x; data[3] = y; if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y))) - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } break; case 2: @@ -380,11 +380,11 @@ static void SetLoweredForetreeBridgeMetatile(s16 x, s16 y) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(Fortree, BridgeOverGrass_Raised): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverGrass_Lowered)); + case METATILE_Fortree_BridgeOverGrass_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Lowered); break; - case METATILE_ID(Fortree, BridgeOverTrees_Raised): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverTrees_Lowered)); + case METATILE_Fortree_BridgeOverTrees_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Lowered); break; } } @@ -397,11 +397,11 @@ static void SetNormalFortreeBridgeMetatile(s16 x, s16 y) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(Fortree, BridgeOverGrass_Lowered): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverGrass_Raised)); + case METATILE_Fortree_BridgeOverGrass_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Raised); break; - case METATILE_ID(Fortree, BridgeOverTrees_Lowered): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverTrees_Raised)); + case METATILE_Fortree_BridgeOverTrees_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Raised); break; } } @@ -443,7 +443,7 @@ static void FortreeBridgePerStepCallback(u8 taskId) flag = 1; if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1)) - PlaySE(SE_HASHI); + PlaySE(SE_BRIDGE_WALK); if (isFortreeBridgePrev) { @@ -529,7 +529,7 @@ void SetSootopolisGymCrackedIceMetatiles(void) for (y = 0; y < height; y++) { if (IsIcePuzzleCoordVisited(x, y) == TRUE) - MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_ID(SootopolisGym, Ice_Cracked)); + MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SootopolisGym_Ice_Cracked); } } } @@ -583,8 +583,8 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) { x = data[4]; y = data[5]; - PlaySE(SE_RU_BARI); - MapGridSetMetatileIdAt(x, y, METATILE_ID(SootopolisGym, Ice_Cracked)); + PlaySE(SE_ICE_CRACK); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked); CurrentMapDrawMetatileAt(x, y); MarkIcePuzzleCoordVisited(x - 7, y - 7); data[1] = 1; @@ -599,8 +599,8 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) { x = data[4]; y = data[5]; - PlaySE(SE_RU_GASYAN); - MapGridSetMetatileIdAt(x, y, METATILE_ID(SootopolisGym, Ice_Broken)); + PlaySE(SE_ICE_BREAK); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken); CurrentMapDrawMetatileAt(x, y); data[1] = 1; } @@ -620,10 +620,10 @@ static void AshGrassPerStepCallback(u8 taskId) data[2] = y; if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y))) { - if (MapGridGetMetatileIdAt(x, y) == METATILE_ID(Fallarbor, AshGrass)) - StartAshFieldEffect(x, y, METATILE_ID(Fallarbor, NormalGrass), 4); + if (MapGridGetMetatileIdAt(x, y) == METATILE_Fallarbor_AshGrass) + StartAshFieldEffect(x, y, METATILE_Fallarbor_NormalGrass, 4); else - StartAshFieldEffect(x, y, METATILE_ID(Lavaridge, NormalGrass), 4); + StartAshFieldEffect(x, y, METATILE_Lavaridge_NormalGrass, 4); if (CheckBagHasItem(ITEM_SOOT_SACK, 1)) { @@ -692,7 +692,7 @@ static void SetMuddySlopeMetatile(s16 *data, s16 x, s16 y) MapGridSetMetatileIdAt(x, y, tile); CurrentMapDrawMetatileAt(x, y); - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, MuddySlope_Frame0)); + MapGridSetMetatileIdAt(x, y, METATILE_General_MuddySlope_Frame0); } static void Task_MuddySlope(u8 taskId) diff --git a/src/field_weather.c b/src/field_weather.c index 684a86479..25ee0582a 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1038,13 +1038,13 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect) { switch (soundEffect) { - case SE_T_KOAME: + case SE_RAIN: gWeatherPtr->rainStrength = 0; break; - case SE_T_OOAME: + case SE_DOWNPOUR: gWeatherPtr->rainStrength = 1; break; - case SE_T_AME: + case SE_THUNDERSTORM: gWeatherPtr->rainStrength = 2; break; default: @@ -1062,14 +1062,14 @@ void PlayRainStoppingSoundEffect(void) switch (gWeatherPtr->rainStrength) { case 0: - PlaySE(SE_T_KOAME_E); + PlaySE(SE_RAIN_STOP); break; case 1: - PlaySE(SE_T_OOAME_E); + PlaySE(SE_DOWNPOUR_STOP); break; case 2: default: - PlaySE(SE_T_AME_E); + PlaySE(SE_THUNDERSTORM_STOP); break; } } diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 26a7adf27..320a10670 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -479,7 +479,7 @@ void Rain_InitVars(void) gWeatherPtr->targetRainSpriteCount = 10; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; - SetRainStrengthFromSoundEffect(SE_T_KOAME); + SetRainStrengthFromSoundEffect(SE_RAIN); } void Rain_InitAll(void) @@ -1023,7 +1023,7 @@ void Thunderstorm_InitVars(void) gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment gWeatherPtr->thunderTriggered = 0; - SetRainStrengthFromSoundEffect(SE_T_AME); + SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); } void Thunderstorm_InitAll(void) @@ -1051,7 +1051,7 @@ void Downpour_InitVars(void) gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment - SetRainStrengthFromSoundEffect(SE_T_OOAME); + SetRainStrengthFromSoundEffect(SE_DOWNPOUR); } void Downpour_InitAll(void) @@ -1220,9 +1220,9 @@ static void UpdateThunderSound(void) return; if (Random() & 1) - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); else - PlaySE(SE_T_KAMI2); + PlaySE(SE_THUNDER2); gWeatherPtr->thunderTriggered = 0; } diff --git a/src/fieldmap.c b/src/fieldmap.c index cfc7018bd..49337ebbe 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -44,7 +44,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void LoadSavedMapView(void); static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode); -struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection) +struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) { return Overworld_GetMapHeaderByGroupAndId(connection->mapGroup, connection->mapNum); } @@ -124,7 +124,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) gMapConnectionFlags = sDummyConnectionFlags; for (i = 0; i < count; i++, connection++) { - struct MapHeader const *cMap = mapconnection_get_mapheader(connection); + struct MapHeader const *cMap = GetMapHeaderFromConnection(connection); u32 offset = connection->offset; switch (connection->direction) { @@ -741,7 +741,7 @@ int CanCameraMoveInDirection(int direction) void sub_80887F8(struct MapConnection *connection, int direction, int x, int y) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (direction) { case CONNECTION_EAST: @@ -812,7 +812,7 @@ struct MapConnection *sub_8088950(u8 direction, int x, int y) bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (direction) { case CONNECTION_SOUTH: @@ -853,7 +853,7 @@ int sub_8088A38(int x, int width) int sub_8088A4C(struct MapConnection *connection, int x, int y) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (connection->direction) { case CONNECTION_SOUTH: @@ -900,7 +900,7 @@ struct MapConnection *GetConnectionAtCoords(s16 x, s16 y) return NULL; } -void sub_8088B3C(u16 x, u16 y) +void SetCameraFocusCoords(u16 x, u16 y) { gSaveBlock1Ptr->pos.x = x - 7; gSaveBlock1Ptr->pos.y = y - 7; @@ -912,7 +912,8 @@ void GetCameraFocusCoords(u16 *x, u16 *y) *y = gSaveBlock1Ptr->pos.y + 7; } -void SetPlayerCoords(u16 x, u16 y) +// Unused +static void SetCameraCoords(u16 x, u16 y) { gSaveBlock1Ptr->pos.x = x; gSaveBlock1Ptr->pos.y = y; @@ -945,12 +946,12 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & METATILE_ID_MASK, yMode) == 1) + if (IsLargeBreakableDecoration(*mapMetatilePtr & METATILE_ID_MASK, yMode) == TRUE) return TRUE; return FALSE; } -void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset) +static void CopyTilesetToVram(struct Tileset const *tileset, u16 numTiles, u16 offset) { if (tileset) { @@ -961,7 +962,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, } } -void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset) +static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTiles, u16 offset) { if (tileset) { @@ -982,7 +983,7 @@ void nullsub_90(void) } -void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size) +void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size) { u16 black = RGB_BLACK; @@ -1007,45 +1008,45 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1 } } -void copy_map_tileset1_to_vram(struct MapLayout const *mapLayout) +void CopyPrimaryTilesetToVram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + CopyTilesetToVram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); } -void copy_map_tileset2_to_vram(struct MapLayout const *mapLayout) +void CopySecondaryTilesetToVram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } -void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout) +void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } -void apply_map_tileset1_palette(struct MapLayout const *mapLayout) +static void LoadPrimaryTilesetPalette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); + LoadTilesetPalette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); } -void apply_map_tileset2_palette(struct MapLayout const *mapLayout) +void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); + LoadTilesetPalette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); } -void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout) +void CopyMapTilesetsToVram(struct MapLayout const *mapLayout) { if (mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVramUsingHeap(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } } -void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout) +void LoadMapTilesetPalettes(struct MapLayout const *mapLayout) { if (mapLayout) { - apply_map_tileset1_palette(mapLayout); - apply_map_tileset2_palette(mapLayout); + LoadPrimaryTilesetPalette(mapLayout); + LoadSecondaryTilesetPalette(mapLayout); } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 88927959e..991617713 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,6 +1,7 @@ #include "global.h" #include "event_object_lock.h" #include "event_object_movement.h" +#include "event_scripts.h" #include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" @@ -24,11 +25,10 @@ extern struct MapPosition gPlayerFacingPosition; -extern const u8 EventScript_FldEffCut[]; extern const u8 FarawayIsland_Interior_EventScript_HideMewWhenGrassCut[]; extern const u8 gFieldEffectPic_CutGrass[]; -extern const u16 gFieldEffectObjectPalette6[]; +extern const u16 gFieldEffectPal_CutGrass[]; // cut 'square' defines #define CUT_NORMAL_SIDE 3 @@ -122,12 +122,12 @@ static const struct SpriteFrameImage sSpriteImageTable_CutGrass[] = {gFieldEffectPic_CutGrass, 0x20}, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000}; +const struct SpritePalette gSpritePalette_CutGrass = {gFieldEffectPal_CutGrass, FLDEFF_PAL_TAG_CUT_GRASS}; static const struct SpriteTemplate sSpriteTemplate_CutGrass = { .tileTag = 0xFFFF, - .paletteTag = 0x1000, + .paletteTag = FLDEFF_PAL_TAG_CUT_GRASS, .oam = &sOamData_CutGrass, .anims = sSpriteAnimTable_CutGrass, .images = sSpriteImageTable_CutGrass, @@ -227,9 +227,7 @@ bool8 SetUpFieldMove_Cut(void) y = gPlayerFacingPosition.y + sHyperCutStruct[i].y; tileCuttable = TRUE; - j = 0; - do - { + for (j = 0; j < 2; ++j) { if (sHyperCutStruct[i].unk2[j] == 0) break; if (cutTiles[(u8)(sHyperCutStruct[i].unk2[j] - 1)] == FALSE) @@ -237,7 +235,7 @@ bool8 SetUpFieldMove_Cut(void) tileCuttable = FALSE; break; } - } while (++j <= 1); + } if (tileCuttable == TRUE) { @@ -253,11 +251,8 @@ bool8 SetUpFieldMove_Cut(void) sHyperCutTiles[tileArrayId] = TRUE; ret = TRUE; } - else - { - if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) - sHyperCutTiles[tileArrayId] = TRUE; - } + else if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) + sHyperCutTiles[tileArrayId] = TRUE; } } } @@ -281,7 +276,7 @@ static void FieldCallback_CutGrass(void) bool8 FldEff_UseCutOnGrass(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartCutGrassFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartCutGrassFieldEffect; @@ -292,12 +287,12 @@ bool8 FldEff_UseCutOnGrass(void) static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffCut); + ScriptContext1_SetupScript(EventScript_UseCut); } bool8 FldEff_UseCutOnTree(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartCutTreeFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartCutTreeFieldEffect; @@ -316,7 +311,7 @@ bool8 FldEff_CutGrass(void) s16 x, y; u8 i = 0; - PlaySE(SE_W015); + PlaySE(SE_M_CUT); PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); for (i = 0; i < CUT_HYPER_AREA; i++) { @@ -355,36 +350,36 @@ static void SetCutGrassMetatile(s16 x, s16 y) switch (metatileId) { - case METATILE_ID(Fortree, LongGrass_Root): - case METATILE_ID(General, LongGrass): - case METATILE_ID(General, TallGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass)); + case METATILE_Fortree_LongGrass_Root: + case METATILE_General_LongGrass: + case METATILE_General_TallGrass: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass); break; - case METATILE_ID(General, TallGrass_TreeLeft): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeLeft)); + case METATILE_General_TallGrass_TreeLeft: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeLeft); break; - case METATILE_ID(General, TallGrass_TreeRight): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeRight)); + case METATILE_General_TallGrass_TreeRight: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeRight); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); + case METATILE_Fortree_SecretBase_LongGrass_BottomLeft: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopLeft); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); + case METATILE_Fortree_SecretBase_LongGrass_BottomMid: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopMid); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + case METATILE_Fortree_SecretBase_LongGrass_BottomRight: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopRight); break; - case METATILE_ID(Lavaridge, NormalGrass): - case METATILE_ID(Lavaridge, AshGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Lavaridge, LavaField)); + case METATILE_Lavaridge_NormalGrass: + case METATILE_Lavaridge_AshGrass: + MapGridSetMetatileIdAt(x, y, METATILE_Lavaridge_LavaField); break; - case METATILE_ID(Fallarbor, NormalGrass): - case METATILE_ID(Fallarbor, AshGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fallarbor, AshField)); + case METATILE_Fallarbor_NormalGrass: + case METATILE_Fallarbor_AshGrass: + MapGridSetMetatileIdAt(x, y, METATILE_Fallarbor_AshField); break; - case METATILE_ID(General, TallGrass_TreeUp): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeUp)); + case METATILE_General_TallGrass_TreeUp: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeUp); break; } } @@ -402,13 +397,13 @@ static u8 GetLongGrassCaseAt(s16 x, s16 y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); - if (metatileId == METATILE_ID(General, Grass)) + if (metatileId == METATILE_General_Grass) return LONG_GRASS_FIELD; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopLeft) return LONG_GRASS_BASE_LEFT; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopMid) return LONG_GRASS_BASE_CENTER; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopRight) return LONG_GRASS_BASE_RIGHT; else return LONG_GRASS_NONE; @@ -422,34 +417,34 @@ static void SetCutGrassMetatiles(s16 x, s16 y) for (i = 0; i < sCutSquareSide; i++) { s16 currentX = x + i; - if (MapGridGetMetatileIdAt(currentX, y) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(currentX, y) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(currentX, y + 1)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } - if (MapGridGetMetatileIdAt(currentX, lowerY) == METATILE_ID(General, Grass)) + if (MapGridGetMetatileIdAt(currentX, lowerY) == METATILE_General_Grass) { - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopRight); } } @@ -486,62 +481,62 @@ static void HandleLongGrassOnHyper(u8 caseId, s16 x, s16 y) if (arr[0] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopRight); } if (arr[1] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 2) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(newX, y + 2) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(newX, y + 3)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopRight); } if (arr[2] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(newX, y + 4)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } @@ -595,16 +590,16 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y) switch (GetLongGrassCaseAt(x, y + 1)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } @@ -612,7 +607,7 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y) void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) { - if (MapGridGetMetatileIdAt(x, y) == METATILE_ID(General, Grass)) + if (MapGridGetMetatileIdAt(x, y) == METATILE_General_Grass) { u8 metatileBehavior = MapGridGetMetatileBehaviorAt(x, y + 1); if (MetatileBehavior_IsLongGrassSouthEdge(metatileBehavior)) @@ -620,17 +615,17 @@ void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) s32 metatileId = MapGridGetMetatileIdAt(x, y + 1); switch (metatileId) { - case METATILE_ID(Fortree, LongGrass_Root): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(General, Grass)); + case METATILE_Fortree_LongGrass_Root: + MapGridSetMetatileIdAt(x, y + 1, METATILE_General_Grass); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); + case METATILE_Fortree_SecretBase_LongGrass_BottomLeft: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopLeft); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); + case METATILE_Fortree_SecretBase_LongGrass_BottomMid: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopMid); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + case METATILE_Fortree_SecretBase_LongGrass_BottomRight: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopRight); break; } } @@ -639,7 +634,7 @@ void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) static void StartCutTreeFieldEffect(void) { - PlaySE(SE_W015); + PlaySE(SE_M_CUT); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); EnableBothScriptContexts(); } diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index ee5caa0df..c3ab989cd 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -10,8 +10,8 @@ #include "constants/field_effects.h" // static functions -static void hm2_dig(void); -static void sub_8135780(void); +static void FieldCallback_Dig(void); +static void StartDigFieldEffect(void); // text bool8 SetUpFieldMove_Dig(void) @@ -19,7 +19,7 @@ bool8 SetUpFieldMove_Dig(void) if (CanUseDigOrEscapeRopeOnCurMap() == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = hm2_dig; + gPostMenuFieldCallback = FieldCallback_Dig; return TRUE; } else @@ -28,7 +28,7 @@ bool8 SetUpFieldMove_Dig(void) } } -static void hm2_dig(void) +static void FieldCallback_Dig(void) { Overworld_ResetStateAfterDigEscRope(); FieldEffectStart(FLDEFF_USE_DIG); @@ -37,16 +37,16 @@ static void hm2_dig(void) bool8 FldEff_UseDig(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); - gTasks[taskId].data[8] = (u32)sub_8135780 >> 16; - gTasks[taskId].data[9] = (u32)sub_8135780; + gTasks[taskId].data[8] = (u32)StartDigFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartDigFieldEffect; if (!ShouldDoBrailleDigEffect()) SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } -static void sub_8135780(void) +static void StartDigFieldEffect(void) { u8 taskId; diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 10fb78ee2..7a96eaa82 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -8,161 +8,188 @@ static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0; -static void sub_80E12E8(u8 taskId, const s16 *list, u16 isImpassableFlag) -{ - s16 r5 = gTasks[taskId].data[4] - 1; - s16 r3 = gTasks[taskId].data[5] - 1; - s16 r4 = gTasks[taskId].data[1]; - s16 y; - s16 x; +static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks); +static void Task_DrawEscalator(u8 taskId); +static void Task_DrawTeleporterHousing(u8 taskId); +static void Task_DrawTeleporterCable(u8 taskId); + +#define ESCALATOR_STAGES 3 +#define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1) + +static const u16 sEscalatorMetatiles_1F_0[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile0_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile0_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 +}; + +static const u16 sEscalatorMetatiles_1F_1[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile1_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile1_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 +}; + +static const u16 sEscalatorMetatiles_1F_2[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile2_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile2_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 +}; + +static const u16 sEscalatorMetatiles_1F_3[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile3_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile3_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 +}; - if (gTasks[taskId].data[2] == 0) +static const u16 sEscalatorMetatiles_2F_0[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile0_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile0_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 +}; + +static const u16 sEscalatorMetatiles_2F_1[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile1_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile1_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 +}; + +static const u16 sEscalatorMetatiles_2F_2[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile2_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile2_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 +}; + +#define tState data[0] +#define tTransitionStage data[1] +#define tGoingUp data[2] +#define tDrawingEscalator data[3] +#define tPlayerX data[4] +#define tPlayerY data[5] + +static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks) +{ + s16 x = gTasks[taskId].tPlayerX - 1; + s16 y = gTasks[taskId].tPlayerY - 1; + s16 transitionStage = gTasks[taskId].tTransitionStage; + s16 i; + s16 j; + + // Check all the escalator sections and only progress the selected one to the next stage + if (!gTasks[taskId].tGoingUp) { - for (y = 0; y < 3; y++) + for (i = 0; i < 3; i++) { - for (x = 0; x < 3; x++) + for (j = 0; j < 3; j++) { - s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y); + s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i); - if (list[r4] == metatileId) + if (metatileIds[transitionStage] == metatileId) { - if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[r4 + 1]); + if (transitionStage != LAST_ESCALATOR_STAGE) + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[transitionStage + 1]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[0]); + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[0]); } } } } else { - for (y = 0; y < 3; y++) + for (i = 0; i < 3; i++) { - for (x = 0; x < 3; x++) + for (j = 0; j < 3; j++) { - s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y); + s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i); - if (list[2 - r4] == metatileId) + if (metatileIds[LAST_ESCALATOR_STAGE - transitionStage] == metatileId) { - if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[1 - r4]); + if (transitionStage != LAST_ESCALATOR_STAGE) + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[1 - transitionStage]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[2]); + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[LAST_ESCALATOR_STAGE]); } } } } } -static const u16 sElevatorMetatiles_1F_0[] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame0) -}; - -static const u16 sElevatorMetatiles_1F_1[] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame0) -}; - -static const u16 sElevatorMetatiles_1F_2[] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame0) -}; - -static const u16 sElevatorMetatiles_1F_3[] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame0) -}; - -static const u16 sElevatorMetatiles_2F_0[] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame2) -}; - -static const u16 sElevatorMetatiles_2F_1[] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame2) -}; - -static const u16 sElevatorMetatiles_2F_2[] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame2) -}; - -static void sub_80E1444(u8 taskId) +static void Task_DrawEscalator(u8 taskId) { s16 *data = gTasks[taskId].data; - data[3] = 1; + tDrawingEscalator = TRUE; - switch (data[0]) + // Set tile for each section of the escalator in sequence for current transition stage + switch (tState) { case 0: - sub_80E12E8(taskId, sElevatorMetatiles_1F_0, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_0, 0); break; case 1: - sub_80E12E8(taskId, sElevatorMetatiles_1F_1, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_1, 0); break; case 2: - sub_80E12E8(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_2, METATILE_COLLISION_MASK); break; case 3: - sub_80E12E8(taskId, sElevatorMetatiles_1F_3, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_3, 0); break; case 4: - sub_80E12E8(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_0, METATILE_COLLISION_MASK); break; case 5: - sub_80E12E8(taskId, sElevatorMetatiles_2F_1, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_1, 0); break; case 6: - sub_80E12E8(taskId, sElevatorMetatiles_2F_2, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_2, 0); break; } - data[0] = (data[0] + 1) & 7; - if (!data[0]) + tState = (tState + 1) & 7; + + // If all metatiles of the escalator have been set, draw map and progress to next stage + if (tState == 0) { DrawWholeMapView(); - data[1] = (data[1] + 1) % 3; - data[3] = 0; + tTransitionStage = (tTransitionStage + 1) % ESCALATOR_STAGES; + tDrawingEscalator = FALSE; } } -static u8 sub_80E150C(u16 var) +static u8 CreateEscalatorTask(bool16 goingUp) { - u8 taskId = CreateTask(sub_80E1444, 0); + u8 taskId = CreateTask(Task_DrawEscalator, 0); s16 *data = gTasks[taskId].data; - PlayerGetDestCoords(&data[4], &data[5]); - data[0] = 0; - data[1] = 0; - data[2] = var; - sub_80E1444(taskId); + PlayerGetDestCoords(&tPlayerX, &tPlayerY); + tState = 0; + tTransitionStage = 0; + tGoingUp = goingUp; + Task_DrawEscalator(taskId); return taskId; } -void sub_80E1558(u8 var) +void StartEscalator(bool8 goingUp) { - sEscalatorAnim_TaskId = sub_80E150C(var); + sEscalatorAnim_TaskId = CreateEscalatorTask(goingUp); } -void sub_80E1570(void) +void StopEscalator(void) { DestroyTask(sEscalatorAnim_TaskId); } -bool8 sub_80E1584(void) +bool8 IsEscalatorMoving(void) { - if (gTasks[sEscalatorAnim_TaskId].data[3] == 0 && gTasks[sEscalatorAnim_TaskId].data[1] == 2) + if (gTasks[sEscalatorAnim_TaskId].tDrawingEscalator == FALSE + && gTasks[sEscalatorAnim_TaskId].tTransitionStage == LAST_ESCALATOR_STAGE) return FALSE; else return TRUE; } + +#undef tState +#undef tTransitionStage +#undef tGoingUp +#undef tDrawingEscalator +#undef tPlayerX +#undef tPlayerY diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 3cb91d4b1..b2ddf3180 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -96,7 +96,7 @@ bool8 SetUpFieldMove_Flash(void) static void FieldCallback_Flash(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gFieldEffectArguments[0] = GetCursorSelectionMonId(); gTasks[taskId].data[8] = (uintptr_t)FldEff_UseFlash >> 16; gTasks[taskId].data[9] = (uintptr_t)FldEff_UseFlash; @@ -104,9 +104,9 @@ static void FieldCallback_Flash(void) static void FldEff_UseFlash(void) { - PlaySE(SE_W115); + PlaySE(SE_M_REFLECT); FlagSet(FLAG_SYS_USE_FLASH); - ScriptContext1_SetupScript(EventScript_FldEffFlash); + ScriptContext1_SetupScript(EventScript_UseFlash); } static void CB2_ChangeMapMain(void) diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 410af9fdd..7eae8cfd1 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -27,68 +27,54 @@ EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; -static void sub_80F9C90(u8); -static void sub_80F9DFC(u8); +static void Task_ComputerScreenOpenEffect(u8); +static void Task_ComputerScreenCloseEffect(u8); +static void CreateComputerScreenEffectTask(TaskFunc, u16, u16, u8); static void Task_SecretBasePCTurnOn(u8); static void Task_PopSecretBaseBalloon(u8); static void DoBalloonSoundEffect(s16); -static void Task_WateringBerryTreeAnim_1(u8); -static void Task_WateringBerryTreeAnim_2(u8); -static void Task_WateringBerryTreeAnim_3(u8); - -static void sub_80F9C44(TaskFunc, u16, u16, u8); +static void Task_WateringBerryTreeAnim_Start(u8); +static void Task_WateringBerryTreeAnim_Continue(u8); +static void Task_WateringBerryTreeAnim_End(u8); static void FieldCallback_SecretBaseCave(void); -static void CaveEntranceSpriteCallback1(struct Sprite *); -static void CaveEntranceSpriteCallback2(struct Sprite *); -static void CaveEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_CaveEntranceInit(struct Sprite *); +static void SpriteCB_CaveEntranceOpen(struct Sprite *); +static void SpriteCB_CaveEntranceEnd(struct Sprite *); static void StartSecretBaseCaveFieldEffect(void); static void FieldCallback_SecretBaseTree(void); -static void TreeEntranceSpriteCallback1(struct Sprite *); -static void TreeEntranceSpriteCallback2(struct Sprite *); -static void TreeEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_TreeEntranceInit(struct Sprite *); +static void SpriteCB_TreeEntranceOpen(struct Sprite *); +static void SpriteCB_TreeEntranceEnd(struct Sprite *); static void StartSecretBaseTreeFieldEffect(void); static void FieldCallback_SecretBaseShrub(void); -static void ShrubEntranceSpriteCallback1(struct Sprite *); -static void ShrubEntranceSpriteCallback2(struct Sprite *); -static void ShrubEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_ShrubEntranceInit(struct Sprite *); +static void SpriteCB_ShrubEntranceOpen(struct Sprite *); +static void SpriteCB_ShrubEntranceEnd(struct Sprite *); static void StartSecretBaseShrubFieldEffect(void); -static void SpriteCB_SandPillar_0(struct Sprite *); -static void SpriteCB_SandPillar_1(struct Sprite *); -static void SpriteCB_SandPillar_2(struct Sprite *); - -static const u8 gSpriteImage_858D978[] = INCBIN_U8("graphics/unknown/858E588/0.4bpp"); -static const u8 gSpriteImage_858D9F8[] = INCBIN_U8("graphics/unknown/858E588/1.4bpp"); -static const u8 gSpriteImage_858DA78[] = INCBIN_U8("graphics/unknown/858E588/2.4bpp"); -static const u8 gSpriteImage_858DAF8[] = INCBIN_U8("graphics/unknown/858E588/3.4bpp"); -static const u8 gSpriteImage_858DB78[] = INCBIN_U8("graphics/unknown/858E588/4.4bpp"); - -static const u8 gUnusedEmptySpace_858DBF8[32] = {0}; - -static const u16 gFieldEffectObjectPalette7[] = INCBIN_U16("graphics/field_effects/palettes/07.gbapal"); -static const u8 gSpriteImage_858DC38[] = INCBIN_U8("graphics/unknown/858E5D8/0.4bpp"); -static const u8 gSpriteImage_858DCB8[] = INCBIN_U8("graphics/unknown/858E5D8/1.4bpp"); -static const u8 gSpriteImage_858DD38[] = INCBIN_U8("graphics/unknown/858E5D8/2.4bpp"); -static const u8 gSpriteImage_858DDB8[] = INCBIN_U8("graphics/unknown/858E5D8/3.4bpp"); -static const u8 gSpriteImage_858DE38[] = INCBIN_U8("graphics/unknown/858E5D8/4.4bpp"); -static const u8 gSpriteImage_858DEB8[] = INCBIN_U8("graphics/unknown/858E5B0/0.4bpp"); -static const u8 gSpriteImage_858DF38[] = INCBIN_U8("graphics/unknown/858E5B0/1.4bpp"); -static const u8 gSpriteImage_858DFB8[] = INCBIN_U8("graphics/unknown/858E5B0/2.4bpp"); -static const u8 gSpriteImage_858E038[] = INCBIN_U8("graphics/unknown/858E5B0/3.4bpp"); -static const u8 gSpriteImage_858E0B8[] = INCBIN_U8("graphics/unknown/858E5B0/4.4bpp"); -static const u8 gSpriteImage_858E138[] = INCBIN_U8("graphics/unknown/858E5B0/5.4bpp"); -static const u16 gFieldEffectObjectPalette8[] = INCBIN_U16("graphics/field_effects/palettes/08.gbapal"); -static const u8 gSpriteImage_858E1D8[] = INCBIN_U8("graphics/unknown/858E674/0.4bpp"); -static const u8 gSpriteImage_858E2D8[] = INCBIN_U8("graphics/unknown/858E674/1.4bpp"); -static const u8 gSpriteImage_858E3D8[] = INCBIN_U8("graphics/unknown/858E674/2.4bpp"); - -static const struct OamData gOamData_858E4D8 = +static void SpriteCB_SandPillar_BreakTop(struct Sprite *); +static void SpriteCB_SandPillar_BreakBase(struct Sprite *); +static void SpriteCB_SandPillar_End(struct Sprite *); + +static const u8 sSecretPowerCave_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_cave.4bpp"); +static const u8 sFiller[32] = {0}; +static const u16 sSecretPowerCave_Pal[] = INCBIN_U16("graphics/field_effects/palettes/secret_power_cave.gbapal"); +static const u8 sSecretPowerShrub_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_shrub.4bpp"); +static const u8 sSecretPowerTree_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_tree.4bpp"); +static const u16 sSecretPowerPlant_Pal[] = INCBIN_U16("graphics/field_effects/palettes/secret_power_plant.gbapal"); + +// TODO: These should also be combined into a single image, not matching for some reason +static const u8 sSandPillar0_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/0.4bpp"); +static const u8 sSandPillar1_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/1.4bpp"); +static const u8 sSandPillar2_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/2.4bpp"); + +static const struct OamData sOam_SecretPower = { .y = 0, .x = 0, @@ -100,7 +86,7 @@ static const struct OamData gOamData_858E4D8 = .priority = 2, }; -static const union AnimCmd gSpriteAnim_858E4E0[] = +static const union AnimCmd sAnim_SecretPowerCave[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -110,7 +96,7 @@ static const union AnimCmd gSpriteAnim_858E4E0[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E4F8[] = +static const union AnimCmd sAnim_VineDropLeft[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -120,7 +106,7 @@ static const union AnimCmd gSpriteAnim_858E4F8[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E510[] = +static const union AnimCmd sAnim_VineRiseLeft[] = { ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(3, 8), @@ -130,7 +116,7 @@ static const union AnimCmd gSpriteAnim_858E510[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E528[] = +static const union AnimCmd sAnim_VineDropRight[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(1, 8, .hFlip = TRUE), @@ -140,7 +126,7 @@ static const union AnimCmd gSpriteAnim_858E528[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E540[] = +static const union AnimCmd sAnim_VineRiseRight[] = { ANIMCMD_FRAME(4, 8, .hFlip = TRUE), ANIMCMD_FRAME(3, 8, .hFlip = TRUE), @@ -150,7 +136,7 @@ static const union AnimCmd gSpriteAnim_858E540[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E558[] = +static const union AnimCmd sAnim_SecretPowerShrub[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -160,88 +146,89 @@ static const union AnimCmd gSpriteAnim_858E558[] = ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_858E570[] = +static const union AnimCmd *const sAnimTable_SecretPowerCave[] = { - gSpriteAnim_858E4E0, + sAnim_SecretPowerCave, }; -static const union AnimCmd *const gSpriteAnimTable_858E574[] = +static const union AnimCmd *const sAnimTable_SecretPowerTree[] = { - gSpriteAnim_858E4F8, - gSpriteAnim_858E510, - gSpriteAnim_858E528, - gSpriteAnim_858E540, + sAnim_VineDropLeft, + sAnim_VineRiseLeft, + sAnim_VineDropRight, + sAnim_VineRiseRight, }; -static const union AnimCmd *const gSpriteAnimTable_858E584[] = +static const union AnimCmd *const sAnimTable_SecretPowerShrub[] = { - gSpriteAnim_858E558, + sAnim_SecretPowerShrub, }; -static const struct SpriteFrameImage gUnknown_858E588[] = +static const struct SpriteFrameImage sPicTable_SecretPowerCave[] = { - {gSpriteImage_858D978, 0x80}, - {gSpriteImage_858D9F8, 0x80}, - {gSpriteImage_858DA78, 0x80}, - {gSpriteImage_858DAF8, 0x80}, - {gSpriteImage_858DB78, 0x80}, + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 4), }; -static const struct SpriteFrameImage gUnknown_858E5B0[] = +static const struct SpriteFrameImage sPicTable_SecretPowerTree[] = { - {gSpriteImage_858DEB8, 0x80}, - {gSpriteImage_858DF38, 0x80}, - {gSpriteImage_858DFB8, 0x80}, - {gSpriteImage_858E038, 0x80}, - {gSpriteImage_858E0B8, 0x80}, + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 4), + // 6th frame exists but isnt accessed, the tree vine metatile is used instead }; -static const struct SpriteFrameImage gUnknown_858E5D8[] = +static const struct SpriteFrameImage sPicTable_SecretPowerShrub[] = { - {gSpriteImage_858DC38, 0x80}, - {gSpriteImage_858DCB8, 0x80}, - {gSpriteImage_858DD38, 0x80}, - {gSpriteImage_858DDB8, 0x80}, - {gSpriteImage_858DE38, 0x80}, + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 4), }; -static const struct SpriteTemplate gUnknown_0858E600 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerCave = { .tileTag = 0xFFFF, - .paletteTag = 0x1003, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E570, - .images = gUnknown_858E588, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_TREE, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerCave, + .images = sPicTable_SecretPowerCave, .affineAnims = gDummySpriteAffineAnimTable, - .callback = CaveEntranceSpriteCallback1, + .callback = SpriteCB_CaveEntranceInit, }; -static const struct SpriteTemplate gUnknown_0858E618 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerTree = { .tileTag = 0xFFFF, - .paletteTag = 0x1008, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E574, - .images = gUnknown_858E5B0, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_PLANT, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerTree, + .images = sPicTable_SecretPowerTree, .affineAnims = gDummySpriteAffineAnimTable, - .callback = TreeEntranceSpriteCallback1, + .callback = SpriteCB_TreeEntranceInit, }; -static const struct SpriteTemplate gUnknown_0858E630 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerShrub = { .tileTag = 0xFFFF, - .paletteTag = 0x1008, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E584, - .images = gUnknown_858E5D8, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_PLANT, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerShrub, + .images = sPicTable_SecretPowerShrub, .affineAnims = gDummySpriteAffineAnimTable, - .callback = ShrubEntranceSpriteCallback1, + .callback = SpriteCB_ShrubEntranceInit, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003}; -const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008}; +const struct SpritePalette gSpritePalette_SecretPower_Cave = {sSecretPowerCave_Pal, FLDEFF_PAL_TAG_SECRET_POWER_TREE}; +const struct SpritePalette gSpritePalette_SecretPower_Plant = {sSecretPowerPlant_Pal, FLDEFF_PAL_TAG_SECRET_POWER_PLANT}; -static const struct OamData gOamData_858E658 = +static const struct OamData sOam_SandPillar = { .x = 0, .y = 0, @@ -253,7 +240,7 @@ static const struct OamData gOamData_858E658 = .priority = 2, }; -static const union AnimCmd gSpriteAnim_858E660[] = +static const union AnimCmd sAnim_SandPillar[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -261,47 +248,44 @@ static const union AnimCmd gSpriteAnim_858E660[] = ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_858E670[] = +static const union AnimCmd *const sAnimTable_SandPillar[] = { - gSpriteAnim_858E660, + sAnim_SandPillar, }; -static const struct SpriteFrameImage gUnknown_0858E674[] = +static const struct SpriteFrameImage sPicTable_SandPillar[] = { - {gSpriteImage_858E1D8, 0x100}, - {gSpriteImage_858E2D8, 0x100}, - {gSpriteImage_858E3D8, 0x100}, + {sSandPillar0_Gfx, sizeof(sSandPillar0_Gfx)}, + {sSandPillar1_Gfx, sizeof(sSandPillar1_Gfx)}, + {sSandPillar2_Gfx, sizeof(sSandPillar2_Gfx)}, }; -static const struct SpriteTemplate gUnknown_0858E68C = +static const struct SpriteTemplate sSpriteTemplate_SandPillar = { .tileTag = 0xFFFF, - .paletteTag = 0x100E, - .oam = &gOamData_858E658, - .anims = gSpriteAnimTable_858E670, - .images = gUnknown_0858E674, + .paletteTag = FLDEFF_PAL_TAG_SAND_PILLAR, + .oam = &sOam_SandPillar, + .anims = sAnimTable_SandPillar, + .images = sPicTable_SandPillar, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_SandPillar_0, + .callback = SpriteCB_SandPillar_BreakTop, }; -// This uses one of the secret base palettes, so there is no "graphics/field_effects/palettes/09.pal" file. -const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], 0x100E}; +const struct SpritePalette gSpritePalette_SandPillar = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_SAND_PILLAR}; -static const u8 gSpriteImage_858E6AC[] = INCBIN_U8("graphics/unknown/858E84C/0.4bpp"); -static const u8 gSpriteImage_858E72C[] = INCBIN_U8("graphics/unknown/858E84C/1.4bpp"); -static const u8 gSpriteImage_858E7AC[] = INCBIN_U8("graphics/unknown/858E84C/2.4bpp"); -static const u16 gUnknown_0858E82C[] = INCBIN_U16("graphics/unknown/unknown_58E82C.gbapal"); +static const u8 sRecordMixLights_Gfx[] = INCBIN_U8("graphics/field_effects/pics/record_mix_lights.4bpp"); +static const u16 sRecordMixLights_Pal[] = INCBIN_U16("graphics/field_effects/palettes/record_mix_lights.gbapal"); -static const struct SpriteFrameImage gUnknown_0858E84C[] = +static const struct SpriteFrameImage sPicTable_RecordMixLights[] = { - {gSpriteImage_858E6AC, sizeof(gSpriteImage_858E6AC)}, - {gSpriteImage_858E72C, sizeof(gSpriteImage_858E72C)}, - {gSpriteImage_858E7AC, sizeof(gSpriteImage_858E7AC)}, + overworld_frame(sRecordMixLights_Gfx, 4, 1, 0), + overworld_frame(sRecordMixLights_Gfx, 4, 1, 1), + overworld_frame(sRecordMixLights_Gfx, 4, 1, 2), }; -static const struct SpritePalette gUnknown_0858E864 = {gUnknown_0858E82C, 0x1000}; +static const struct SpritePalette sSpritePalette_RecordMixLights = {sRecordMixLights_Pal, 0x1000}; -static const union AnimCmd gSpriteAnim_858E86C[] = +static const union AnimCmd sAnim_RecordMixLights[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), @@ -309,173 +293,182 @@ static const union AnimCmd gSpriteAnim_858E86C[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gSpriteAnimTable_858E87C[] = +static const union AnimCmd *const sAnimTable_RecordMixLights[] = { - gSpriteAnim_858E86C, + sAnim_RecordMixLights, }; -static const struct SpriteTemplate gUnknown_0858E880 = +static const struct SpriteTemplate sSpriteTemplate_RecordMixLights = { .tileTag = 0xFFFF, .paletteTag = 0x1000, .oam = &gObjectEventBaseOam_32x8, - .anims = gSpriteAnimTable_858E87C, - .images = gUnknown_0858E84C, + .anims = sAnimTable_RecordMixLights, + .images = sPicTable_RecordMixLights, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -void sub_80F9BCC(u16 a0, u16 a1, u8 a2) +// For accessing pokemon storage PC or the Hall of Fame PC +void ComputerScreenOpenEffect(u16 increment, u16 unused, u8 priority) { - sub_80F9C44(sub_80F9C90, a0, a1, a2); + CreateComputerScreenEffectTask(Task_ComputerScreenOpenEffect, increment, unused, priority); } -void sub_80F9BF4(u16 a0, u16 a1, u8 a2) +void ComputerScreenCloseEffect(u16 increment, u16 unused, u8 priority) { - sub_80F9C44(sub_80F9DFC, a0, a1, a2); + CreateComputerScreenEffectTask(Task_ComputerScreenCloseEffect, increment, unused, priority); } -bool8 sub_80F9C1C(void) +bool8 IsComputerScreenOpenEffectActive(void) { - return FuncIsActiveTask(sub_80F9C90); + return FuncIsActiveTask(Task_ComputerScreenOpenEffect); } -bool8 sub_80F9C30(void) +bool8 IsComputerScreenCloseEffectActive(void) { - return FuncIsActiveTask(sub_80F9DFC); + return FuncIsActiveTask(Task_ComputerScreenCloseEffect); } -static void sub_80F9C44(void (*taskfunc) (u8), u16 a1, u16 a2, u8 a3) +#define tState data[0] +#define tHorzIncrement data[1] +#define tVertIncrement data[2] +#define tWinLeft data[3] +#define tWinRight data[4] +#define tWinTop data[5] +#define tWinBottom data[6] +#define tBlendCnt data[7] +#define tBlendY data[8] + +static void CreateComputerScreenEffectTask(void (*taskfunc) (u8), u16 increment, u16 unused, u8 priority) { - u8 taskId = CreateTask(taskfunc, a3); + u8 taskId = CreateTask(taskfunc, priority); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = a1 == 0 ? 16 : a1; - gTasks[taskId].data[2] = a1 == 0 ? 20 : a1; + gTasks[taskId].tState = 0; + gTasks[taskId].tHorzIncrement = increment == 0 ? 16 : increment; + gTasks[taskId].tVertIncrement = increment == 0 ? 20 : increment; gTasks[taskId].func(taskId); } -static void sub_80F9C90(u8 taskId) +static void Task_ComputerScreenOpenEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[3] = 0x78; - task->data[4] = 0x78; - task->data[5] = 0x50; - task->data[6] = 0x51; + task->tWinLeft = DISPLAY_WIDTH / 2; + task->tWinRight = DISPLAY_WIDTH / 2; + task->tWinTop = DISPLAY_HEIGHT / 2; + task->tWinBottom = DISPLAY_HEIGHT / 2 + 1; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); - SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 1: - task->data[7] = GetGpuReg(REG_OFFSET_BLDCNT); - task->data[8] = GetGpuReg(REG_OFFSET_BLDY); + task->tBlendCnt = GetGpuReg(REG_OFFSET_BLDCNT); + task->tBlendY = GetGpuReg(REG_OFFSET_BLDY); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); break; case 2: - task->data[3] -= task->data[1]; - task->data[4] += task->data[1]; + task->tWinLeft -= task->tHorzIncrement; + task->tWinRight += task->tHorzIncrement; - if (task->data[3] < 1 || task->data[4] > 0xEF) + if (task->tWinLeft < 1 || task->tWinRight > DISPLAY_WIDTH - 1) { - task->data[3] = 0; - task->data[4] = 0xF0; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; SetGpuReg(REG_OFFSET_BLDY, 0); - SetGpuReg(REG_OFFSET_BLDCNT, task->data[7]); + SetGpuReg(REG_OFFSET_BLDCNT, task->tBlendCnt); BlendPalettes(0xFFFFFFFF, 0, 0); gPlttBufferFaded[0] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); - if (task->data[3] != 0) + if (task->tWinLeft != 0) return; break; case 3: - task->data[5] -= task->data[2]; - task->data[6] += task->data[2]; + task->tWinTop -= task->tVertIncrement; + task->tWinBottom += task->tVertIncrement; - if (task->data[5] < 1 || task->data[6] > 0x9F) + if (task->tWinTop < 1 || task->tWinBottom > DISPLAY_HEIGHT - 1) { - task->data[5] = 0; - task->data[6] = 0xA0; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); - if (task->data[5] != 0) + if (task->tWinTop != 0) return; break; default: - SetGpuReg(REG_OFFSET_BLDCNT, task->data[7]); + SetGpuReg(REG_OFFSET_BLDCNT, task->tBlendCnt); DestroyTask(taskId); return; } - task->data[0]++; + task->tState++; } -static void sub_80F9DFC(u8 taskId) +static void Task_ComputerScreenCloseEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - int temp = task->data[0]; - - switch (temp) + switch (task->tState) { case 0: - gPlttBufferFaded[0] = temp; + gPlttBufferFaded[0] = 0; break; case 1: - task->data[3] = 0; - task->data[4] = 0xF0; - task->data[5] = 0; - task->data[6] = 0xA0; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); - SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 2: - task->data[5] += task->data[2]; - task->data[6] -= task->data[2]; + task->tWinTop += task->tVertIncrement; + task->tWinBottom -= task->tVertIncrement; - if (task->data[5] > 0x4F || task->data[6] < 0x52) + if (task->tWinTop >= DISPLAY_HEIGHT / 2 || task->tWinBottom <= DISPLAY_HEIGHT / 2 + 1) { - task->data[5] = 0x50; - task->data[6] = 0x51; + task->tWinTop = DISPLAY_HEIGHT / 2; + task->tWinBottom = DISPLAY_HEIGHT / 2 + 1; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); - if (task->data[5] != 0x50) + if (task->tWinTop != DISPLAY_HEIGHT / 2) return; break; case 3: - task->data[3] += task->data[1]; - task->data[4] -= task->data[1]; + task->tWinLeft += task->tHorzIncrement; + task->tWinRight -= task->tHorzIncrement; - if (task->data[3] > 0x77 || task->data[4] < 0x79) + if (task->tWinLeft >= DISPLAY_WIDTH / 2 || task->tWinRight <= DISPLAY_WIDTH / 2) { - task->data[3] = 0x78; - task->data[4] = 0x78; - BlendPalettes(-1, 0x10, 0); + task->tWinLeft = DISPLAY_WIDTH / 2; + task->tWinRight = DISPLAY_WIDTH / 2; + BlendPalettes(-1, 16, 0); gPlttBufferFaded[0] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); - if (task->data[3] != 0x78) + if (task->tWinLeft != DISPLAY_WIDTH / 2) return; break; default: @@ -485,9 +478,19 @@ static void sub_80F9DFC(u8 taskId) DestroyTask(taskId); return; } - task->data[0]++; + task->tState++; } +#undef tState +#undef tHorzIncrement +#undef tVertIncrement +#undef tWinLeft +#undef tWinRight +#undef tWinTop +#undef tWinBottom +#undef tBlendCnt +#undef tBlendY + static void SetCurrentSecretBase(void) { SetCurSecretBaseIdFromPosition(&gPlayerFacingPosition, gMapHeader.events); @@ -496,7 +499,7 @@ static void SetCurrentSecretBase(void) static void AdjustSecretPowerSpritePixelOffsets(void) { - if (gPlayerAvatar.flags & 0x6) + if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) { switch (gFieldEffectArguments[1]) { @@ -589,7 +592,7 @@ static void FieldCallback_SecretBaseCave(void) bool8 FldEff_UseSecretPowerCave(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseCaveFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseCaveFieldEffect; @@ -606,22 +609,22 @@ static void StartSecretBaseCaveFieldEffect(void) bool8 FldEff_SecretPowerCave(void) { AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E600, + CreateSprite(&sSpriteTemplate_SecretPowerCave, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); return FALSE; } -static void CaveEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_CaveEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); sprite->data[0] = 0; - sprite->callback = CaveEntranceSpriteCallback2; + sprite->callback = SpriteCB_CaveEntranceOpen; } -static void CaveEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_CaveEntranceOpen(struct Sprite *sprite) { if (sprite->data[0] < 40) { @@ -631,11 +634,11 @@ static void CaveEntranceSpriteCallback2(struct Sprite *sprite) else { sprite->data[0] = 0; - sprite->callback = CaveEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_CaveEntranceEnd; } } -static void CaveEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_CaveEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_CAVE); EnableBothScriptContexts(); @@ -649,7 +652,7 @@ static void FieldCallback_SecretBaseTree(void) bool8 FldEff_UseSecretPowerTree(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseTreeFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseTreeFieldEffect; @@ -675,7 +678,7 @@ bool8 FldEff_SecretPowerTree(void) AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E618, + CreateSprite(&sSpriteTemplate_SecretPowerTree, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -686,16 +689,16 @@ bool8 FldEff_SecretPowerTree(void) return FALSE; } -static void TreeEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_TreeEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W010); + PlaySE(SE_M_SCRATCH); sprite->animNum = gFieldEffectArguments[7]; sprite->data[0] = 0; - sprite->callback = TreeEntranceSpriteCallback2; + sprite->callback = SpriteCB_TreeEntranceOpen; } -static void TreeEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_TreeEntranceOpen(struct Sprite *sprite) { sprite->data[0]++; @@ -705,11 +708,11 @@ static void TreeEntranceSpriteCallback2(struct Sprite *sprite) ToggleSecretBaseEntranceMetatile(); sprite->data[0] = 0; - sprite->callback = TreeEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_TreeEntranceEnd; } } -static void TreeEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_TreeEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_TREE); EnableBothScriptContexts(); @@ -723,7 +726,7 @@ static void FieldCallback_SecretBaseShrub(void) bool8 FldEff_UseSecretPowerShrub(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseShrubFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseShrubFieldEffect; @@ -741,7 +744,7 @@ bool8 FldEff_SecretPowerShrub(void) { AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E630, + CreateSprite(&sSpriteTemplate_SecretPowerShrub, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -749,15 +752,15 @@ bool8 FldEff_SecretPowerShrub(void) return FALSE; } -static void ShrubEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W077); + PlaySE(SE_M_POISON_POWDER); sprite->data[0] = 0; - sprite->callback = ShrubEntranceSpriteCallback2; + sprite->callback = SpriteCB_ShrubEntranceOpen; } -static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceOpen(struct Sprite *sprite) { if (sprite->data[0] < 40) { @@ -769,16 +772,20 @@ static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) else { sprite->data[0] = 0; - sprite->callback = ShrubEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_ShrubEntranceEnd; } } -static void ShrubEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_SHRUB); EnableBothScriptContexts(); } +#define tX data[0] +#define tY data[1] +#define tState data[2] + bool8 FldEff_SecretBasePCTurnOn(void) { s16 x, y; @@ -787,9 +794,9 @@ bool8 FldEff_SecretBasePCTurnOn(void) GetXYCoordsOneStepInFrontOfPlayer(&x, &y); taskId = CreateTask(Task_SecretBasePCTurnOn, 0); - gTasks[taskId].data[0] = x; - gTasks[taskId].data[1] = y; - gTasks[taskId].data[2] = 0; + gTasks[taskId].tX = x; + gTasks[taskId].tY = y; + gTasks[taskId].tState = 0; return FALSE; } @@ -798,30 +805,34 @@ static void Task_SecretBasePCTurnOn(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[2]) + switch (tState) { case 4: case 12: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC_On); + CurrentMapDrawMetatileAt(tX, tY); break; case 8: case 16: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC); + CurrentMapDrawMetatileAt(tX, tY); break; case 20: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC_On); + CurrentMapDrawMetatileAt(tX, tY); FieldEffectActiveListRemove(FLDEFF_PCTURN_ON); EnableBothScriptContexts(); DestroyTask(taskId); return; } - data[2]++; + tState++; } +#undef tX +#undef tY +#undef tState + void DoSecretBasePCTurnOffEffect(void) { s16 x, y; @@ -877,33 +888,33 @@ static void DoBalloonSoundEffect(s16 metatileId) switch (metatileId) { case METATILE_SecretBase_RedBalloon: - PlaySE(SE_FUUSEN1); + PlaySE(SE_BALLOON_RED); break; case METATILE_SecretBase_BlueBalloon: - PlaySE(SE_FUUSEN2); + PlaySE(SE_BALLOON_BLUE); break; case METATILE_SecretBase_YellowBalloon: - PlaySE(SE_FUUSEN3); + PlaySE(SE_BALLOON_YELLOW); break; case METATILE_SecretBase_MudBall: - PlaySE(SE_TOY_DANGO); + PlaySE(SE_MUD_BALL); break; } } -bool8 FldEff_NopA6FC(void) +bool8 FldEff_Nop47(void) { return FALSE; } -bool8 FldEff_NopA700(void) +bool8 FldEff_Nop48(void) { return FALSE; } static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y) { - PlaySE(SE_TOY_KABE); + PlaySE(SE_BREAKABLE_DOOR); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen); MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen); CurrentMapDrawMetatileAt(x, y); @@ -948,28 +959,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId) switch (gTasks[taskId].tMetatileID) { case METATILE_SecretBase_NoteMat_C_Low: - PlaySE(SE_TOY_C); + PlaySE(SE_NOTE_C); break; case METATILE_SecretBase_NoteMat_D: - PlaySE(SE_TOY_D); + PlaySE(SE_NOTE_D); break; case METATILE_SecretBase_NoteMat_E: - PlaySE(SE_TOY_E); + PlaySE(SE_NOTE_E); break; case METATILE_SecretBase_NoteMat_F: - PlaySE(SE_TOY_F); + PlaySE(SE_NOTE_F); break; case METATILE_SecretBase_NoteMat_G: - PlaySE(SE_TOY_G); + PlaySE(SE_NOTE_G); break; case METATILE_SecretBase_NoteMat_A: - PlaySE(SE_TOY_A); + PlaySE(SE_NOTE_A); break; case METATILE_SecretBase_NoteMat_B: - PlaySE(SE_TOY_B); + PlaySE(SE_NOTE_B); break; case METATILE_SecretBase_NoteMat_C_High: - PlaySE(SE_TOY_C1); + PlaySE(SE_NOTE_C_HIGH); break; } @@ -995,7 +1006,7 @@ static void SpriteCB_GlitterMatSparkle(struct Sprite *sprite) sprite->data[0]++; if (sprite->data[0] == 8) - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); if (sprite->data[0] >= 32) DestroySprite(sprite); @@ -1009,7 +1020,7 @@ void DoSecretBaseGlitterMatSparkle(void) SetSpritePosToOffsetMapCoords(&x, &y, 8, 4); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], x, y, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -1033,7 +1044,7 @@ bool8 FldEff_SandPillar(void) switch (GetPlayerFacingDirection()) { case DIR_SOUTH: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 32, 0); @@ -1041,7 +1052,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_NORTH: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y, 148); @@ -1049,7 +1060,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_WEST: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x - 8, gSprites[gPlayerAvatar.spriteId].oam.y + 16, 148); @@ -1057,7 +1068,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_EAST: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 24, gSprites[gPlayerAvatar.spriteId].oam.y + 16, 148); @@ -1068,9 +1079,9 @@ bool8 FldEff_SandPillar(void) return FALSE; } -static void SpriteCB_SandPillar_0(struct Sprite *sprite) +static void SpriteCB_SandPillar_BreakTop(struct Sprite *sprite) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall) MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK); @@ -1082,10 +1093,10 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite) CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; - sprite->callback = SpriteCB_SandPillar_1; + sprite->callback = SpriteCB_SandPillar_BreakBase; } -static void SpriteCB_SandPillar_1(struct Sprite *sprite) +static void SpriteCB_SandPillar_BreakBase(struct Sprite *sprite) { if (sprite->data[0] < 18) { @@ -1096,11 +1107,11 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite) MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; - sprite->callback = SpriteCB_SandPillar_2; + sprite->callback = SpriteCB_SandPillar_End; } } -static void SpriteCB_SandPillar_2(struct Sprite *sprite) +static void SpriteCB_SandPillar_End(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SAND_PILLAR); EnableBothScriptContexts(); @@ -1166,12 +1177,13 @@ void InteractWithShieldOrTVDecoration(void) } } -bool8 sub_80FADE4(u16 metatileId, u8 arg1) +// As opposed to a small one (single metatile) like the balloons +bool8 IsLargeBreakableDecoration(u16 metatileId, bool8 checkBase) { if (!CurMapIsSecretBase()) return FALSE; - if (!arg1) + if (!checkBase) { if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall) return TRUE; @@ -1214,7 +1226,7 @@ static void Task_FieldPoisonEffect(u8 taskId) void FldEffPoison_Start(void) { - PlaySE(SE_DOKU); + PlaySE(SE_FIELD_POISON); CreateTask(Task_FieldPoisonEffect, 80); } @@ -1223,25 +1235,26 @@ bool32 FldEffPoison_IsActive(void) return FuncIsActiveTask(Task_FieldPoisonEffect); } -static void Task_WateringBerryTreeAnim_0(u8 taskId) +static void Task_WateringBerryTreeAnim(u8 taskId) { - gTasks[taskId].func = Task_WateringBerryTreeAnim_1; + gTasks[taskId].func = Task_WateringBerryTreeAnim_Start; } -static void Task_WateringBerryTreeAnim_1(u8 taskId) +static void Task_WateringBerryTreeAnim_Start(u8 taskId) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(playerObjEvent) || ObjectEventClearHeldMovementIfFinished(playerObjEvent)) { - sub_808C228(GetPlayerFacingDirection()); + // Start watering + SetPlayerAvatarWatering(GetPlayerFacingDirection()); ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection())); - gTasks[taskId].func = Task_WateringBerryTreeAnim_2; + gTasks[taskId].func = Task_WateringBerryTreeAnim_Continue; } } -static void Task_WateringBerryTreeAnim_2(u8 taskId) +static void Task_WateringBerryTreeAnim_Continue(u8 taskId) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1249,15 +1262,15 @@ static void Task_WateringBerryTreeAnim_2(u8 taskId) { s16 value = gTasks[taskId].data[1]++; + // Continue holding watering action 10 times, then end if (value < 10) ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection())); - else - gTasks[taskId].func = Task_WateringBerryTreeAnim_3; + gTasks[taskId].func = Task_WateringBerryTreeAnim_End; } } -static void Task_WateringBerryTreeAnim_3(u8 taskId) +static void Task_WateringBerryTreeAnim_End(u8 taskId) { SetPlayerAvatarTransitionFlags(GetPlayerAvatarFlags()); DestroyTask(taskId); @@ -1266,16 +1279,17 @@ static void Task_WateringBerryTreeAnim_3(u8 taskId) void DoWateringBerryTreeAnim(void) { - CreateTask(Task_WateringBerryTreeAnim_0, 80); + CreateTask(Task_WateringBerryTreeAnim, 80); } -u8 CreateRecordMixingSprite(void) +// The lights that blink on the counter when mixing records in the cable club +u8 CreateRecordMixingLights(void) { u8 spriteId; - LoadSpritePalette(&gUnknown_0858E864); + LoadSpritePalette(&sSpritePalette_RecordMixLights); - spriteId = CreateSprite(&gUnknown_0858E880, 0, 0, 82); + spriteId = CreateSprite(&sSpriteTemplate_RecordMixLights, 0, 0, 82); if (spriteId == MAX_SPRITES) { @@ -1292,13 +1306,13 @@ u8 CreateRecordMixingSprite(void) return spriteId; } -void DestroyRecordMixingSprite(void) +void DestroyRecordMixingLights(void) { int i; for (i = 0; i < MAX_SPRITES; i++) { - if (gSprites[i].template == &gUnknown_0858E880) + if (gSprites[i].template == &sSpriteTemplate_RecordMixLights) { FreeSpritePalette(&gSprites[i]); DestroySprite(&gSprites[i]); diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 614fa6135..6f4ce8002 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -20,12 +20,13 @@ #include "constants/songs.h" // static functions -static void task08_080C9820(u8 taskId); -static void sub_8135578(u8 taskId); -static void sub_813552C(u8 taskId); -static void sub_813561C(u8 taskId); -static void sub_81356C4(void); -static void sub_8135714(void); +static void Task_DoFieldMove_Init(u8 taskId); +static void Task_DoFieldMove_ShowMonAfterPose(u8 taskId); +static void Task_DoFieldMove_WaitForMon(u8 taskId); +static void Task_DoFieldMove_RunFunc(u8 taskId); + +static void FieldCallback_RockSmash(void); +static void FieldMove_RockSmash(void); // text bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) @@ -46,13 +47,13 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) } } -u8 oei_task_add(void) +u8 CreateFieldMoveTask(void) { GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - return CreateTask(task08_080C9820, 8); + return CreateTask(Task_DoFieldMove_Init, 8); } -static void task08_080C9820(u8 taskId) +static void Task_DoFieldMove_Init(u8 taskId) { u8 objEventId; @@ -64,56 +65,61 @@ static void task08_080C9820(u8 taskId) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) { + // Skip field move pose underwater FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = sub_8135578; + gTasks[taskId].func = Task_DoFieldMove_WaitForMon; } else { - sub_808C114(); + // Do field move pose + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - gTasks[taskId].func = sub_813552C; + gTasks[taskId].func = Task_DoFieldMove_ShowMonAfterPose; } } } -static void sub_813552C(u8 taskId) +static void Task_DoFieldMove_ShowMonAfterPose(u8 taskId) { if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE) { FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = sub_8135578; + gTasks[taskId].func = Task_DoFieldMove_WaitForMon; } } -static void sub_8135578(u8 taskId) +static void Task_DoFieldMove_WaitForMon(u8 taskId) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { gFieldEffectArguments[1] = GetPlayerFacingDirection(); - if (gFieldEffectArguments[1] == 1) + if (gFieldEffectArguments[1] == DIR_SOUTH) gFieldEffectArguments[2] = 0; - if (gFieldEffectArguments[1] == 2) + if (gFieldEffectArguments[1] == DIR_NORTH) gFieldEffectArguments[2] = 1; - if (gFieldEffectArguments[1] == 3) + if (gFieldEffectArguments[1] == DIR_WEST) gFieldEffectArguments[2] = 2; - if (gFieldEffectArguments[1] == 4) + if (gFieldEffectArguments[1] == DIR_EAST) gFieldEffectArguments[2] = 3; ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState()); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]); - FieldEffectActiveListRemove(6); - gTasks[taskId].func = sub_813561C; + FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); + gTasks[taskId].func = Task_DoFieldMove_RunFunc; } } -static void sub_813561C(u8 taskId) +static void Task_DoFieldMove_RunFunc(u8 taskId) { - void (*func)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]); + // The function for the field move to do is stored in halves across data[8] and data[9] + void (*fieldMoveFunc)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]); - func(); + fieldMoveFunc(); gPlayerAvatar.preventStep = FALSE; DestroyTask(taskId); } +// Called when Rock Smash is used from the party menu +// For interacting with a smashable rock in the field, see EventScript_RockSmash bool8 SetUpFieldMove_RockSmash(void) { // In Ruby and Sapphire, Regirock's tomb is opened by using Strength. In Emerald, @@ -128,7 +134,7 @@ bool8 SetUpFieldMove_RockSmash(void) else if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_BREAKABLE_ROCK) == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_81356C4; + gPostMenuFieldCallback = FieldCallback_RockSmash; return TRUE; } else @@ -137,25 +143,26 @@ bool8 SetUpFieldMove_RockSmash(void) } } -static void sub_81356C4(void) +static void FieldCallback_RockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffRockSmash); + ScriptContext1_SetupScript(EventScript_UseRockSmash); } bool8 FldEff_UseRockSmash(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); - gTasks[taskId].data[8] = (u32)sub_8135714 >> 16; - gTasks[taskId].data[9] = (u32)sub_8135714; + gTasks[taskId].data[8] = (u32)FieldMove_RockSmash >> 16; + gTasks[taskId].data[9] = (u32)FieldMove_RockSmash; IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); return FALSE; } -static void sub_8135714(void) +// The actual rock smashing is handled by EventScript_SmashRock, so this function does very little +static void FieldMove_RockSmash(void) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); EnableBothScriptContexts(); } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index bfa20cdbc..3a38f67f0 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -61,13 +61,13 @@ void Task_TryUseSoftboiledOnPartyMon(u8 taskId) } // Take away Softboiled user's health first (-1) - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP)/5, Task_SoftboiledRestoreHealth); } static void Task_SoftboiledRestoreHealth(u8 taskId) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP)/5, Task_DisplayHPRestoredMessage); } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index f479ef68d..61960d0ff 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -11,8 +11,8 @@ #include "constants/field_effects.h" // static functions -static void FldEff_UseStrength(void); -static void sub_8145E74(void); +static void FieldCallback_Strength(void); +static void StartStrengthFieldEffect(void); // text bool8 SetUpFieldMove_Strength(void) @@ -21,28 +21,29 @@ bool8 SetUpFieldMove_Strength(void) { gSpecialVar_Result = GetCursorSelectionMonId(); gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = FldEff_UseStrength; + gPostMenuFieldCallback = FieldCallback_Strength; return TRUE; } return FALSE; } -static void FldEff_UseStrength(void) +static void FieldCallback_Strength(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffStrength); + ScriptContext1_SetupScript(EventScript_UseStrength); } -bool8 sub_8145E2C(void) +bool8 FldEff_UseStrength(void) { - u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_8145E74 >> 16; - gTasks[taskId].data[9] = (u32)sub_8145E74; + u8 taskId = CreateFieldMoveTask(); + gTasks[taskId].data[8] = (u32)StartStrengthFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartStrengthFieldEffect; GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); return FALSE; } -static void sub_8145E74(void) +// Just passes control back to EventScript_UseStrength +static void StartStrengthFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); EnableBothScriptContexts(); diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 788310b5d..a9d81501f 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -41,7 +41,7 @@ bool8 FldEff_SweetScent(void) u8 taskId; SetWeatherScreenFadeOut(); - taskId = oei_task_add(); + taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect; return FALSE; @@ -51,7 +51,7 @@ static void StartSweetScentFieldEffect(void) { u8 taskId; - PlaySE(SE_W230); + PlaySE(SE_M_SWEET_SCENT); CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100); CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED); diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index cbf8ee6cc..3f087e5da 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -30,7 +30,7 @@ static void FieldCallback_Teleport(void) bool8 FldEff_UseTeleport(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect; SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); @@ -40,5 +40,5 @@ bool8 FldEff_UseTeleport(void) static void StartTeleportFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); - CreateTeleportFieldEffectTask(); + FldEff_TeleportWarpOut(); } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 757205656..702f6c098 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -735,7 +735,7 @@ static bool32 InitFrontierPass(void) case 8: LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); LoadPalette(gUnknown_08DE07C8[1 + sPassData->trainerStars], 0x10, 0x20); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); sub_80C629C(); sub_80C6104(sPassData->cursorArea, sPassData->previousCursorArea); if (sPassData->unkE == 1 || sPassData->unkE == 2) @@ -871,10 +871,10 @@ static void CB2_ReturnFromRecord(void) switch (InBattlePyramid()) { case 1: - PlayBGM(MUS_PYRAMID); + PlayBGM(MUS_B_PYRAMID); break; case 2: - PlayBGM(MUS_PYRAMID_TOP); + PlayBGM(MUS_B_PYRAMID_TOP); break; default: Overworld_PlaySpecialMapMusic(); @@ -1239,7 +1239,9 @@ static void sub_80C6104(u8 cursorArea, u8 previousCursorArea) if (!var) { - asm("":::"r4"); + #ifndef NONMATCHING + asm("":::"r4"); + #endif if (previousCursorArea == CURSOR_AREA_NOTHING || previousCursorArea > CURSOR_AREA_CANCEL) return; } @@ -1378,7 +1380,7 @@ static bool32 InitFrontierMap(void) if (FreeTempTileDataBuffersIfPossible()) return FALSE; LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); CopyToBgTilemapBuffer(2, gUnknown_08570E00, 0, 0); CopyBgTilemapBufferToVram(2); break; @@ -1705,5 +1707,5 @@ static void HandleFrontierMapCursorMove(u8 direction) CopyWindowToVram(i, 3); CopyBgTilemapBufferToVram(0); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } diff --git a/src/frontier_util.c b/src/frontier_util.c index 668771375..c741a64fe 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -7,7 +7,7 @@ #include "battle_tower.h" #include "field_specials.h" #include "battle.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "main.h" #include "window.h" #include "menu.h" diff --git a/src/graphics.c b/src/graphics.c index b774c5ad2..9a8d9f845 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -461,12 +461,12 @@ const u32 gContestMiscGfx[] = INCBIN_U32("graphics/contest/misc.4bpp.lz"); const u32 gContestAudienceGfx[] = INCBIN_U32("graphics/contest/audience.4bpp.lz"); -const u32 gUnknown_08C19168[] = INCBIN_U32("graphics/contest/faces.4bpp.lz"); +const u32 gContestFaces_Gfx[] = INCBIN_U32("graphics/contest/faces.4bpp.lz"); const u32 gContestJudgeSymbolsGfx[] = INCBIN_U32("graphics/contest/judge_symbols.4bpp.lz"); const u32 gContest3Pal[] = INCBIN_U32("graphics/contest/judge_symbols.gbapal.lz"); -const u8 gTiles_8C19450[] = INCBIN_U8("graphics/contest/heart.4bpp"); +const u8 gContestSliderHeart_Gfx[] = INCBIN_U8("graphics/contest/slider_heart.4bpp"); const u32 gUnknownGfx_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.4bpp.lz"); const u32 gUnknownPal_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.gbapal.lz"); @@ -987,8 +987,7 @@ const u16 gTilesetAnims_BattleDomePals0_1[] = INCBIN_U16("graphics/battle_fronti const u16 gTilesetAnims_BattleDomePals0_2[] = INCBIN_U16("graphics/battle_frontier/dome_anim3.gbapal"); const u16 gTilesetAnims_BattleDomePals0_3[] = INCBIN_U16("graphics/battle_frontier/dome_anim4.gbapal"); -// 8D856C0 -asm(".2byte 0x013F, 0x0119, 0x0113, 0x010E"); // unused? +static const u16 sUnused0[] = {0x13F, 0x119, 0x113, 0x10E}; const u16 gUnknown_08D856C8[] = INCBIN_U16("graphics/battle_frontier/pyramid_light.gbapal"); // unfaded pal for the player light in battle pyramid @@ -1227,13 +1226,14 @@ const u32 gCableCar_Gfx[] = INCBIN_U32("graphics/misc/cable_car.4bpp.lz"); const u32 gCableCarDoor_Gfx[] = INCBIN_U32("graphics/misc/cable_car_door.4bpp.lz"); const u32 gCableCarCord_Gfx[] = INCBIN_U32("graphics/misc/cable_car_cord.4bpp.lz"); -const u32 gRouletteMenuTiles[] = INCBIN_U32("graphics/roulette/window.4bpp.lz"); -const u32 gRouletteWheelTiles[] = INCBIN_U32("graphics/roulette/wheel.8bpp.lz"); +// Roulette +const u32 gRouletteMenu_Gfx[] = INCBIN_U32("graphics/roulette/window.4bpp.lz"); +const u32 gRouletteWheel_Gfx[] = INCBIN_U32("graphics/roulette/wheel.8bpp.lz"); const u32 gRouletteCenter_Gfx[] = INCBIN_U32("graphics/roulette/center.4bpp.lz"); -const u32 gRouletteHeadersTiles[] = INCBIN_U32("graphics/roulette/headers.4bpp.lz"); -const u32 gRouletteCreditTiles[] = INCBIN_U32("graphics/roulette/credit.4bpp.lz"); -const u32 gRouletteNumbersTiles[] = INCBIN_U32("graphics/roulette/numbers.4bpp.lz"); -const u32 gRouletteMultiplierTiles[] = INCBIN_U32("graphics/roulette/multiplier.4bpp.lz"); +const u32 gRouletteHeaders_Gfx[] = INCBIN_U32("graphics/roulette/headers.4bpp.lz"); +const u32 gRouletteCredit_Gfx[] = INCBIN_U32("graphics/roulette/credit.4bpp.lz"); +const u32 gRouletteNumbers_Gfx[] = INCBIN_U32("graphics/roulette/numbers.4bpp.lz"); +const u32 gRouletteMultiplier_Gfx[] = INCBIN_U32("graphics/roulette/multiplier.4bpp.lz"); #include "data/graphics/mail.h" @@ -1312,10 +1312,9 @@ const u16 gContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_scree // pokenav -const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition.gbapal"); - -const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition.4bpp.lz"); -const u32 gPokenavCondition_Tilemap[] = INCBIN_U32("graphics/pokenav/condition.bin.lz"); +const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph.gbapal"); +const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition/graph.4bpp.lz"); +const u32 gPokenavCondition_Tilemap[] = INCBIN_U32("graphics/pokenav/condition/graph.bin.lz"); const u16 gPokenavOptions_Tilemap[] = INCBIN_U16("graphics/pokenav/options/options.bin"); const u32 gPokenavOptions_Gfx[] = INCBIN_U32("graphics/pokenav/options/options.4bpp.lz"); @@ -1346,11 +1345,11 @@ const u32 gPokenavMessageBox_Tilemap[] = INCBIN_U32("graphics/pokenav/message.bi const u16 gRegionMapCityZoomTiles_Pal[] = INCBIN_U16("graphics/pokenav/zoom_tiles.gbapal"); const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_text.4bpp.lz"); -const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/cancel.gbapal"); -const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/cancel.4bpp"); +const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/condition/cancel.gbapal"); +const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/condition/cancel.4bpp"); -const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/marker.gbapal"); -const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/marker.4bpp"); +const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/condition/marker.gbapal"); +const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/condition/marker.4bpp"); const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal"); @@ -1362,17 +1361,17 @@ const u8 gBerryBlenderMarubatsuTiles[] = INCBIN_U8("graphics/berry_blender/marub const u8 gBerryBlenderParticlesTiles[] = INCBIN_U8("graphics/berry_blender/particles.4bpp"); -asm(".space 0x120"); +static const u8 sEmpty0[0x120] = {0}; const u8 gBerryBlenderCountdownNumbersTiles[] = INCBIN_U8("graphics/berry_blender/countdown_numbers.4bpp"); const u8 gBerryBlenderStartTiles[] = INCBIN_U8("graphics/berry_blender/start.4bpp"); -asm(".space 0x200"); +static const u8 sEmpty1[0x200] = {0}; const u8 gBerryBlenderArrowTiles[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp"); -asm(".space 0x2C0"); +static const u8 sEmpty2[0x2C0] = {0}; const u16 gEasyChatCursor_Pal[] = INCBIN_U16("graphics/easy_chat/cursor.gbapal"); const u32 gEasyChatCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/cursor.4bpp.lz"); @@ -1435,15 +1434,13 @@ const u32 gNamingScreenMenu_Gfx[] = INCBIN_U32("graphics/naming_screen/menu.4bpp const u8 gNamingScreenRWindow_Gfx[] = INCBIN_U8("graphics/naming_screen/rwindow.4bpp"); const u8 gNamingScreenROptions_Gfx[] = INCBIN_U8("graphics/naming_screen/roptions.4bpp"); const u8 gNamingScreenCursor_Gfx[] = INCBIN_U8("graphics/naming_screen/cursor.4bpp"); -const u8 gNamingScreenKeyboardButton_Gfx[] = INCBIN_U8("graphics/naming_screen/keyboard_button.4bpp"); - -const u8 gNamingScreenRightPointingTriangleTiles[] = INCBIN_U8("graphics/naming_screen/right_pointing_triangle.4bpp"); -const u8 gNamingScreenUnderscoreTiles[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); - -const u32 gUnknown_08DD4544[] = INCBIN_U32("graphics/unknown/unknown_DD4544.bin.lz"); -const u32 gUnknown_08DD4620[] = INCBIN_U32("graphics/unknown/unknown_DD4620.bin.lz"); -const u32 gUnknown_08DD46E0[] = INCBIN_U32("graphics/unknown/unknown_DD46E0.bin.lz"); -const u32 gUnknown_08DD47A0[] = INCBIN_U32("graphics/unknown/unknown_DD47A0.bin.lz"); +const u8 gNamingScreenPageButton_Gfx[] = INCBIN_U8("graphics/naming_screen/page_button.4bpp"); +const u8 gNamingScreenInputArrow_Gfx[] = INCBIN_U8("graphics/naming_screen/input_arrow.4bpp"); +const u8 gNamingScreenUnderscore_Gfx[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); +const u32 gNamingScreenBackground_Tilemap[] = INCBIN_U32("graphics/naming_screen/background.bin.lz"); +const u32 gNamingScreenKeyboardUpper_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_upper.bin.lz"); +const u32 gNamingScreenKeyboardLower_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_lower.bin.lz"); +const u32 gNamingScreenKeyboardSymbols_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_symbols.bin.lz"); // union room chat const u16 gUnionRoomChat_Background_Pal[] = INCBIN_U16("graphics/union_room_chat/background.gbapal"); @@ -1483,8 +1480,7 @@ const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/link/gba.gbapal"); const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/link/gba_pal2.gbapal"); const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); -// 8DD8760 -asm(".space 0x20"); //blank palette?? +static const u16 sEmptyPal[16] = {0}; #include "data/graphics/berry_fix.h" @@ -1566,10 +1562,10 @@ const u32 gUnknown_08DE34B8[] = INCBIN_U32("graphics/berry_crusher/tiles.4bpp.lz const u32 gUnknown_08DE3FD4[] = INCBIN_U32("graphics/berry_crusher/tiles.bin.lz"); // random garbage at the end. -asm(".space 0x54BAC \n\ - .byte 0x0D, 0x00, 0x58, 0x02 \n\ - .space 0x1145 \n\ - .byte 0x02 \n\ - .space 0x3242 \n\ - .byte 0x40 \n\ - .space 0x13"); +static const u8 sEmpty3[0x54BAC] = {0}; +static const u8 sUnused1[] = {0x0D, 0x00, 0x58, 0x02}; +static const u8 sEmpty4[0x1145] = {0}; +static const u8 sUnused2[] = {0x02}; +static const u8 sEmpty5[0x3242] = {0}; +static const u8 sUnused3[] = {0x40}; +static const u8 sEmpty6[0x13] = {0}; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index bf9850dec..2b548dea2 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -396,7 +396,7 @@ static bool8 InitHallOfFameScreen(void) if (!gPaletteFade.active) { SetMainCallback2(CB2_HallOfFame); - PlayBGM(MUS_DENDOU); + PlayBGM(MUS_HALL_OF_FAME); return FALSE; } break; @@ -648,7 +648,7 @@ static void Task_Hof_PaletteFadeAndPrintWelcomeText(u8 taskId) } HallOfFame_PrintWelcomeText(0, 15); - PlaySE(SE_DENDOU); + PlaySE(SE_APPLAUSE); gTasks[taskId].tFrameCount = 400; gTasks[taskId].func = Task_Hof_DoConfetti; } @@ -702,7 +702,7 @@ static void Task_Hof_DisplayPlayer(u8 taskId) gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF); AddWindow(&sHof_WindowTemplate); LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0); - LoadPalette(stdpal_get(1), 0xE0, 0x20); + LoadPalette(GetTextWindowPalette(1), 0xE0, 0x20); gTasks[taskId].tFrameCount = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } @@ -824,7 +824,7 @@ void CB2_DoHallOfFamePC(void) { struct HallofFameTeam *fameTeam = (struct HallofFameTeam*)(gDecompressionBuffer); fameTeam->mon[0] = sDummyFameMon; - sub_80F9BCC(0, 0, 0); + ComputerScreenOpenEffect(0, 0, 0); SetVBlankCallback(VBlankCB_HallOfFame); gMain.state++; } @@ -834,7 +834,7 @@ void CB2_DoHallOfFamePC(void) AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - if (!sub_80F9C1C()) + if (!IsComputerScreenOpenEffectActive()) gMain.state++; break; case 5: @@ -1048,13 +1048,13 @@ static void Task_HofPC_HandlePaletteOnExit(u8 taskId) CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); fameTeam = (struct HallofFameTeam*)(gDecompressionBuffer); fameTeam->mon[0] = sDummyFameMon; - sub_80F9BF4(0, 0, 0); + ComputerScreenCloseEffect(0, 0, 0); gTasks[taskId].func = Task_HofPC_HandleExit; } static void Task_HofPC_HandleExit(u8 taskId) { - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { u8 i; @@ -1324,7 +1324,7 @@ static bool8 sub_8175024(void) break; case 3: InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); break; case 4: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); diff --git a/src/international_string_util.c b/src/international_string_util.c index ec5057359..23ca6c081 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -136,7 +136,7 @@ void PadNameString(u8 *dest, u8 padChar) while (length < PLAYER_NAME_LENGTH - 1) { dest[length] = EXT_CTRL_CODE_BEGIN; - dest[length + 1] = EXT_CTRL_CODE_UNKNOWN_7; + dest[length + 1] = EXT_CTRL_CODE_RESET_SIZE; length += 2; } } diff --git a/src/intro.c b/src/intro.c index 72aefd737..eca8b84b1 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1129,7 +1129,7 @@ static void Task_IntroFadeIn(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); gTasks[taskId].func = Task_IntroWaterDrops; gIntroFrameCounter = 0; - m4aSongNumStart(MUS_DEMO1); + m4aSongNumStart(MUS_INTRO); ResetSerial(); } @@ -1563,7 +1563,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); gTasks[taskId].func = Task_IntroSpinAndZoomPokeball; gIntroFrameCounter = 0; - m4aSongNumStart(MUS_T_BATTLE); + m4aSongNumStart(MUS_INTRO_BATTLE); } static void Task_IntroSpinAndZoomPokeball(u8 taskId) @@ -2355,7 +2355,7 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) if (data[1] == 6) { spriteId = CreateSprite(&gIntroRayquazaHyperbeamSprite, 120, 88, 15); - PlaySE(SE_OP_BASYU); + PlaySE(SE_INTRO_BLAST); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[3] = data[4]; data[0]++; diff --git a/src/item_menu.c b/src/item_menu.c index 591ebe018..f2c7b25d8 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -52,6 +52,13 @@ #include "battle_pike.h" #include "constants/rgb.h" +enum +{ + SWITCH_POCKET_NONE, + SWITCH_POCKET_LEFT, + SWITCH_POCKET_RIGHT +}; + void GoToBagMenu(u8 bagMenuType, u8 pocketId, void (*postExitMenuMainCallback2)()); void CB2_Bag(void); bool8 SetupBagMenu(void); @@ -62,7 +69,7 @@ void AllocateBagItemListBuffers(void); void LoadBagItemListBuffers(u8); void BagMenu_PrintPocketNames(const u8*, const u8*); void BagMenu_CopyPocketNameToWindow(u32); -void BagMenu_DrawPocketIndicatorSquare(u8, u8); +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket); void CreatePocketScrollArrowPair(void); void CreatePocketSwitchArrowPair(void); void BagMenu_PrepareTMHMMoveWindow(void); @@ -80,16 +87,16 @@ u16 BagGetQuantityByPocketPosition(u8, u16); void BagDestroyPocketSwitchArrowPair(void); void TaskCloseBagMenu_2(u8); u8 AddItemMessageWindow(u8); -void bag_menu_RemoveBagItem_message_window(u8); +void BagMenu_RemoveBagItemMessageindow(u8); void set_callback3_to_bag(u8); void PrintItemDepositAmount(u8, s16); -u8 BagMenu_AddWindow(u8); -u8 GetSwitchBagPocketDirection(void); -void SwitchBagPocket(u8, s16, u16); -bool8 sub_81AC2C0(void); -void BagMenu_SwapItems(u8); -void sub_81AC10C(u8); -void sub_81AC3C0(u8); +static u8 BagMenu_AddWindow(u8); +static u8 GetSwitchBagPocketDirection(void); +static void SwitchBagPocket(u8, s16, u16); +static bool8 CanSwapItems(void); +static void BagMenu_SwapItems(u8 taskId); +static void sub_81AC10C(u8); +static void Task_HandleSwappingItemsInput(u8); void sub_81AC498(u8); void sub_81AC590(u8); void PrintTMHMMoveData(u16); @@ -106,19 +113,18 @@ void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); void Task_ActuallyToss(u8); void ItemMenu_Cancel(u8); void sub_81AD350(u8); -void BagMenu_PrintItemCantBeHeld(u8); -void DisplayCurrentMoneyWindow(void); -void DisplaySellItemPriceAndConfirm(u8); +static void BagMenu_PrintItemCantBeHeld(u8); +static void DisplayCurrentMoneyWindow(void); +static void DisplaySellItemPriceAndConfirm(u8); void sub_81AD730(u8); void sub_81AD6E4(u8); -void bag_menu_remove_money_window(void); -void bag_menu_RemoveBagItem_message_window(u8); -void Task_BuyHowManyDialogueHandleInput(u8); -void sub_81AD8C8(u8); -void sub_81AD9C0(u8); -void sub_81ADB14(u8); -void sub_81ADA7C(u8); -void sub_81ADC0C(u8); +static void RemoveMoneyWindow(void); +static void Task_SellHowManyDialogueHandleInput(u8); +static void BagMenu_Sell_UpdateItemListAndMoney(u8); +static void BagMenu_Sell_WaitForABPress(u8); +static void BagMenu_TryDepositItem(u8); +static void Task_ChooseHowManyToDeposit(u8 taskId); +static void BagMenu_Deposit_WaitForABPress(u8); void CB2_ApprenticeExitBagMenu(void); void CB2_FavorLadyExitBagMenu(void); void CB2_QuizLadyExitBagMenu(void); @@ -600,7 +606,7 @@ void CB2_BagMenuRun(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -627,7 +633,7 @@ bool8 SetupBagMenu(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -686,7 +692,7 @@ bool8 SetupBagMenu(void) case 13: BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], 0); BagMenu_CopyPocketNameToWindow(0); - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, TRUE); gMain.state++; break; case 14: @@ -1109,7 +1115,7 @@ void BagMenu_InitListsMenu(u8 taskId) s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -1152,16 +1158,16 @@ void Task_BagMenu_HandleInput(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: - SwitchBagPocket(taskId, -1, 0); + case SWITCH_POCKET_LEFT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 0); return; - case 2: - SwitchBagPocket(taskId, 1, 0); + case SWITCH_POCKET_RIGHT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); return; default: if (gMain.newKeys & SELECT_BUTTON) { - if (sub_81AC2C0() == 1) + if (CanSwapItems() == TRUE) { ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPositionStruct.pocket] - 1) @@ -1184,7 +1190,7 @@ void Task_BagMenu_HandleInput(u8 taskId) case LIST_CANCEL: if (gBagPositionStruct.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; } PlaySE(SE_SELECT); @@ -1215,26 +1221,26 @@ void set_callback3_to_bag(u8 taskId) gTasks[taskId].func = Task_BagMenu_HandleInput; } -u8 GetSwitchBagPocketDirection(void) +static u8 GetSwitchBagPocketDirection(void) { u8 LRKeys; if (gBagMenu->pocketSwitchDisabled) - return 0; + return SWITCH_POCKET_NONE; LRKeys = GetLRKeysPressed(); if ((gMain.newKeys & DPAD_LEFT) || LRKeys == MENU_L_PRESSED) { PlaySE(SE_SELECT); - return 1; + return SWITCH_POCKET_LEFT; } if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == MENU_R_PRESSED) { PlaySE(SE_SELECT); - return 2; + return SWITCH_POCKET_RIGHT; } - return 0; + return SWITCH_POCKET_NONE; } -void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) +static void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) { if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1) *bagPocketId = 0; @@ -1244,7 +1250,7 @@ void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) *bagPocketId += deltaBagPocketId; } -void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) +static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) { s16* data = gTasks[taskId].data; u8 pocketId; @@ -1263,7 +1269,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) } pocketId = gBagPositionStruct.pocket; ChangeBagPocketId(&pocketId, deltaBagPocketId); - if (deltaBagPocketId == 1) + if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT) { BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], gPocketNamesStringsTable[pocketId]); BagMenu_CopyPocketNameToWindow(0); @@ -1273,8 +1279,8 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) BagMenu_PrintPocketNames(gPocketNamesStringsTable[pocketId], gPocketNamesStringsTable[gBagPositionStruct.pocket]); BagMenu_CopyPocketNameToWindow(8); } - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 0); - BagMenu_DrawPocketIndicatorSquare(pocketId, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, FALSE); + DrawPocketIndicatorSquare(pocketId, TRUE); FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16); ScheduleBgCopyTilemapToVram(2); SetBagVisualPocketId(pocketId, 1); @@ -1291,15 +1297,15 @@ void sub_81AC10C(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: + case SWITCH_POCKET_LEFT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, -1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 1); return; - case 2: + case SWITCH_POCKET_RIGHT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, 1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 1); return; } } @@ -1336,16 +1342,16 @@ void sub_81AC23C(u8 a) ScheduleBgCopyTilemapToVram(2); } -void BagMenu_DrawPocketIndicatorSquare(u8 x, u8 is_current_bag) +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket) { - if (is_current_bag == 0) + if (!isCurrentPocket) FillBgTilemapBufferRect_Palette0(2, 0x1017, x + 5, 3, 1, 1); else FillBgTilemapBufferRect_Palette0(2, 0x102B, x + 5, 3, 1, 1); ScheduleBgCopyTilemapToVram(2); } -bool8 sub_81AC2C0(void) +static bool8 CanSwapItems(void) { if (gBagPositionStruct.location <= ITEMMENULOCATION_BATTLE) { @@ -1370,10 +1376,10 @@ void BagMenu_SwapItems(u8 taskId) sub_80D4FEC(data[1]); BagDestroyPocketSwitchArrowPair(); BagMenu_PrintCursor_(data[0], 2); - gTasks[taskId].func = sub_81AC3C0; + gTasks[taskId].func = Task_HandleSwappingItemsInput; } -void sub_81AC3C0(u8 taskId) +static void Task_HandleSwappingItemsInput(u8 taskId) { s16* data = gTasks[taskId].data; int input; @@ -1642,7 +1648,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -1650,7 +1656,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && sub_81ACDFC(cursorPos + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED) @@ -1658,7 +1664,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED) @@ -1666,7 +1672,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) @@ -1869,7 +1875,7 @@ void BagMenu_PrintThereIsNoPokemon(u8 taskId) DisplayItemMessage(taskId, 1, gText_NoPokemon, sub_81AD350); } -void BagMenu_PrintItemCantBeHeld(u8 taskId) +static void BagMenu_PrintItemCantBeHeld(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); @@ -2010,7 +2016,7 @@ void Task_ItemContext_Sell(u8 taskId) } } -void DisplaySellItemPriceAndConfirm(u8 taskId) +static void DisplaySellItemPriceAndConfirm(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2028,8 +2034,8 @@ void BagMenu_CancelSell(u8 taskId) { s16* data = gTasks[taskId].data; - bag_menu_remove_money_window(); - bag_menu_RemoveBagItem_message_window(4); + RemoveMoneyWindow(); + BagMenu_RemoveBagItemMessageindow(4); BagMenu_PrintCursor_(data[0], 0); set_callback3_to_bag(taskId); } @@ -2041,10 +2047,10 @@ void sub_81AD730(u8 taskId) PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DisplayCurrentMoneyWindow(); - gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; + gTasks[taskId].func = Task_SellHowManyDialogueHandleInput; } -void Task_BuyHowManyDialogueHandleInput(u8 taskId) +static void Task_SellHowManyDialogueHandleInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2062,9 +2068,9 @@ void Task_BuyHowManyDialogueHandleInput(u8 taskId) { PlaySE(SE_SELECT); BagMenu_PrintCursor_(data[0], 0); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_RemoveWindow(8); - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); set_callback3_to_bag(taskId); } } @@ -2076,16 +2082,16 @@ void BagMenu_ConfirmSell(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar2); ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD8C8); + DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_Sell_UpdateItemListAndMoney); } -void sub_81AD8C8(u8 taskId) +static void BagMenu_Sell_UpdateItemListAndMoney(u8 taskId) { s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - PlaySE(SE_REGI); + PlaySE(SE_SHOP); RemoveBagItem(gSpecialVar_ItemId, tItemCount); AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DestroyListMenuTask(data[0], scrollPos, cursorPos); @@ -2095,15 +2101,15 @@ void sub_81AD8C8(u8 taskId) data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); BagMenu_PrintCursor_(data[0], 2); PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = sub_81AD9C0; + gTasks[taskId].func = BagMenu_Sell_WaitForABPress; } -void sub_81AD9C0(u8 taskId) +static void BagMenu_Sell_WaitForABPress(u8 taskId) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_InitListsMenu(taskId); } } @@ -2115,7 +2121,7 @@ void Task_ItemContext_Deposit(u8 taskId) tItemCount = 1; if (data[2] == 1) { - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else { @@ -2124,11 +2130,11 @@ void Task_ItemContext_Deposit(u8 taskId) FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); - gTasks[taskId].func = sub_81ADA7C; + gTasks[taskId].func = Task_ChooseHowManyToDeposit; } } -void sub_81ADA7C(u8 taskId) +static void Task_ChooseHowManyToDeposit(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2140,7 +2146,7 @@ void sub_81ADA7C(u8 taskId) { PlaySE(SE_SELECT); BagMenu_RemoveWindow(7); - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -2152,7 +2158,7 @@ void sub_81ADA7C(u8 taskId) } } -void sub_81ADB14(u8 taskId) +static void BagMenu_TryDepositItem(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2160,7 +2166,7 @@ void sub_81ADB14(u8 taskId) if (ItemId_GetImportance(gSpecialVar_ItemId)) { BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) { @@ -2173,11 +2179,11 @@ void sub_81ADB14(u8 taskId) else { BagMenu_Print(1, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } } -void sub_81ADC0C(u8 taskId) +static void BagMenu_Deposit_WaitForABPress(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2248,7 +2254,7 @@ void Task_WallyTutorialBagMenu(u8 taskId) { case 0x66: PlaySE(SE_SELECT); - SwitchBagPocket(taskId, 1, 0); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); data[8]++; break; case 0xCC: @@ -2414,7 +2420,7 @@ u8 AddItemMessageWindow(u8 which) return *ptr; } -void bag_menu_RemoveBagItem_message_window(u8 which) +void BagMenu_RemoveBagItemMessageindow(u8 which) { u8 *ptr = &gBagMenu->windowPointers[which]; if (*ptr != 0xFF) @@ -2433,14 +2439,14 @@ void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable) CreateYesNoMenuWithCallbacks(a, &sContextMenuWindowTemplates[b], 1, 0, 2, 1, 14, funcTable); } -void DisplayCurrentMoneyWindow(void) +static void DisplayCurrentMoneyWindow(void) { u8 windowId = BagMenu_AddWindow(9); PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money)); AddMoneyLabelObject(19, 11); } -void bag_menu_remove_money_window(void) +static void RemoveMoneyWindow(void) { BagMenu_RemoveWindow(9); RemoveMoneyLabelObject(); diff --git a/src/item_use.c b/src/item_use.c index 0aae441c8..a9132ae5e 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -328,7 +328,7 @@ static void Task_UseItemfinder(u8 taskId) } return; } - PlaySE(SE_DAUGI); + PlaySE(SE_ITEMFINDER); tItemfinderBeeps++; } tCounter = (tCounter + 1) & 0x1F; @@ -397,7 +397,7 @@ static bool8 IsHiddenItemPresentInConnection(struct MapConnection *connection, i u32 localOffset; s32 localLength; - struct MapHeader const *const mapHeader = mapconnection_get_mapheader(connection); + struct MapHeader const *const mapHeader = GetMapHeaderFromConnection(connection); switch (connection->direction) { @@ -721,7 +721,7 @@ static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId) static bool8 TryToWaterSudowoodo(void) { - u16 x, y; + s16 x, y; u8 z; u8 objId; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); @@ -845,7 +845,7 @@ static void Task_StartUseRepel(u8 taskId) if (++data[8] > 7) { data[8] = 0; - PlaySE(SE_TU_SAA); + PlaySE(SE_REPEL); gTasks[taskId].func = Task_UseRepel; } } @@ -867,7 +867,7 @@ static void Task_UsedBlackWhiteFlute(u8 taskId) { if(++gTasks[taskId].data[8] > 7) { - PlaySE(SE_BIDORO); + PlaySE(SE_GLASS_FLUTE); if (!InBattlePyramid()) DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); else @@ -969,7 +969,7 @@ static void Task_UseStatIncreaseItem(u8 taskId) { if(++gTasks[taskId].data[8] > 7) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(gSpecialVar_ItemId, 1); if (!InBattlePyramid()) DisplayItemMessage(taskId, 1, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage); diff --git a/src/librfu_intr.c b/src/librfu_intr.c index 23962a937..1361be40e 100644 --- a/src/librfu_intr.c +++ b/src/librfu_intr.c @@ -148,7 +148,11 @@ static void sio32intr_clock_slave(void) { u32 regSIODATA32; u32 r0; - register u32 reqLen asm("r2"); + #ifndef NONMATCHING + register u32 reqLen asm("r2"); + #else + u32 reqLen; + #endif gSTWIStatus->timerActive = 0; STWI_set_timer_in_RAM(100); diff --git a/src/link.c b/src/link.c index e04e5e29d..62a9e4151 100644 --- a/src/link.c +++ b/src/link.c @@ -75,9 +75,9 @@ u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; u32 gLinkStatus; bool8 gLinkDummy1; // Never read bool8 gLinkDummy2; // Never read -bool8 gUnknown_030030EC[MAX_LINK_PLAYERS]; -bool8 gUnknown_030030F0[MAX_LINK_PLAYERS]; -u16 gUnknown_030030F4; +bool8 gReadyToExitStandby[MAX_LINK_PLAYERS]; +bool8 gReadyToCloseLink[MAX_LINK_PLAYERS]; +u16 gReadyCloseLinkType; // Never read u8 gSuppressLinkErrorMessage; bool8 gWirelessCommType; bool8 gSavedLinkPlayerCount; @@ -114,7 +114,7 @@ EWRAM_DATA struct { u8 lastSendQueueCount; u8 unk_06; } sLinkErrorBuffer = {}; -static EWRAM_DATA u16 sUnknown_02022B08 = 0; +static EWRAM_DATA u16 sReadyCloseLinkAttempts = 0; // never read static EWRAM_DATA void *sLinkErrorBgTilemapBuffer = NULL; // Static ROM declarations @@ -135,12 +135,12 @@ static void LinkTest_prnthex(u32 pos, u8 a0, u8 a1, u8 a2); static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); -static void sub_800AC80(void); -static void sub_800ACAC(void); -static void sub_800AD5C(void); -static void sub_800AD88(void); -static void sub_800AE30(void); -static void sub_800AE5C(void); +static void LinkCB_ReadyCloseLink(void); +static void LinkCB_WaitCloseLink(void); +static void LinkCB_ReadyCloseLinkWithJP(void); +static void LinkCB_WaitCloseLinkWithJP(void); +static void LinkCB_Standby(void); +static void LinkCB_StandbyForAll(void); static void CheckErrorStatus(void); static void CB2_PrintErrorMessage(void); @@ -379,7 +379,7 @@ void OpenLink(void) sDummy1 = FALSE; gLinkDummy2 = FALSE; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; CreateTask(Task_TriggerHandshake, 2); } else @@ -390,8 +390,8 @@ void OpenLink(void) for (i = 0; i < MAX_LINK_PLAYERS; i++) { gRemoteLinkPlayersNotReceived[i] = TRUE; - gUnknown_030030F0[i] = FALSE; - gUnknown_030030EC[i] = FALSE; + gReadyToCloseLink[i] = FALSE; + gReadyToExitStandby[i] = FALSE; } } @@ -467,7 +467,7 @@ static void LinkTestProcessKeyInput(void) } if (gMain.newKeys & SELECT_BUTTON) { - sub_800AC34(); + SetCloseLinkCallback(); } if (gLinkTestDebugValuesEnabled) { @@ -630,16 +630,16 @@ static void ProcessRecvCmds(u8 unused) } } break; - case LINKCMD_0x5FFF: - gUnknown_030030F0[i] = TRUE; + case LINKCMD_READY_CLOSE_LINK: + gReadyToCloseLink[i] = TRUE; break; - case LINKCMD_0x2FFE: - gUnknown_030030EC[i] = TRUE; + case LINKCMD_READY_EXIT_STANDBY: + gReadyToExitStandby[i] = TRUE; break; case LINKCMD_0xAAAA: sub_800A418(); break; - case LINKCMD_0xCCCC: + case LINKCMD_SEND_BLOCK_REQ: SendBlock(0, sBlockRequests[gRecvCmds[i][1]].address, sBlockRequests[gRecvCmds[i][1]].size); break; case LINKCMD_SEND_HELD_KEYS_2: @@ -657,8 +657,8 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_SEND_LINK_TYPE; gSendCmd[1] = gLinkType; break; - case LINKCMD_0x2FFE: - gSendCmd[0] = LINKCMD_0x2FFE; + case LINKCMD_READY_EXIT_STANDBY: + gSendCmd[0] = LINKCMD_READY_EXIT_STANDBY; break; case LINKCMD_SEND_HELD_KEYS: gSendCmd[0] = LINKCMD_SEND_HELD_KEYS; @@ -694,13 +694,13 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_0xAAAB; gSendCmd[1] = gSpecialVar_ItemId; break; - case LINKCMD_0xCCCC: - gSendCmd[0] = LINKCMD_0xCCCC; + case LINKCMD_SEND_BLOCK_REQ: + gSendCmd[0] = LINKCMD_SEND_BLOCK_REQ; gSendCmd[1] = gBlockRequestType; break; - case LINKCMD_0x5FFF: - gSendCmd[0] = LINKCMD_0x5FFF; - gSendCmd[1] = gUnknown_030030F4; + case LINKCMD_READY_CLOSE_LINK: + gSendCmd[0] = LINKCMD_READY_CLOSE_LINK; + gSendCmd[1] = gReadyCloseLinkType; break; case LINKCMD_0x5566: gSendCmd[0] = LINKCMD_0x5566; @@ -1065,16 +1065,16 @@ bool8 SendBlock(u8 unused, const void *src, u16 size) return InitBlockSend(src, size); } -bool8 sub_800A4D8(u8 a0) +bool8 SendBlockRequest(u8 blockReqType) { if (gWirelessCommType == TRUE) { - return sub_8010100(a0); + return Rfu_SendBlockRequest(blockReqType); } if (gLinkCallback == NULL) { - gBlockRequestType = a0; - BuildSendCmd(LINKCMD_0xCCCC); + gBlockRequestType = blockReqType; + BuildSendCmd(LINKCMD_SEND_BLOCK_REQ); return TRUE; } return FALSE; @@ -1423,70 +1423,70 @@ static u8 GetDummy2(void) return sDummy2; } -void sub_800ABF4(u16 a0) +void SetCloseLinkCallbackAndType(u16 type) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback == NULL) { - gLinkCallback = sub_800AC80; + gLinkCallback = LinkCB_ReadyCloseLink; gLinkDummy1 = FALSE; - gUnknown_030030F4 = a0; + gReadyCloseLinkType = type; } } } -void sub_800AC34(void) +void SetCloseLinkCallback(void) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback != NULL) { - sUnknown_02022B08++; + sReadyCloseLinkAttempts++; } else { - gLinkCallback = sub_800AC80; + gLinkCallback = LinkCB_ReadyCloseLink; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; } } } -static void sub_800AC80(void) +static void LinkCB_ReadyCloseLink(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x5FFF); - gLinkCallback = sub_800ACAC; + BuildSendCmd(LINKCMD_READY_CLOSE_LINK); + gLinkCallback = LinkCB_WaitCloseLink; } } -static void sub_800ACAC(void) +static void LinkCB_WaitCloseLink(void) { int i; unsigned count; - u8 linkPlayerCount; - linkPlayerCount = GetLinkPlayerCount(); + // Wait for all players to be ready + u8 linkPlayerCount = GetLinkPlayerCount(); count = 0; for (i = 0; i < linkPlayerCount; i++) { - if (gUnknown_030030F0[i]) - { + if (gReadyToCloseLink[i]) count++; - } } + if (count == linkPlayerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); @@ -1495,37 +1495,38 @@ static void sub_800ACAC(void) } } -void sub_800AD10(void) +// Used instead of SetCloseLinkCallback when disconnecting from an attempt to link with a foreign game +void SetCloseLinkCallbackHandleJP(void) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback != NULL) { - sUnknown_02022B08++; + sReadyCloseLinkAttempts++; } else { - gLinkCallback = sub_800AD5C; + gLinkCallback = LinkCB_ReadyCloseLinkWithJP; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; } } } -static void sub_800AD5C(void) +static void LinkCB_ReadyCloseLinkWithJP(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x5FFF); - gLinkCallback = sub_800AD88; + BuildSendCmd(LINKCMD_READY_CLOSE_LINK); + gLinkCallback = LinkCB_WaitCloseLinkWithJP; } } -static void sub_800AD88(void) +static void LinkCB_WaitCloseLinkWithJP(void) { int i; unsigned count; @@ -1533,19 +1534,21 @@ static void sub_800AD88(void) linkPlayerCount = GetLinkPlayerCount(); count = 0; + + // Wait for all non-foreign players to be ready for (i = 0; i < linkPlayerCount; i++) { + // Rather than communicate with the foreign game + // just assume they're ready to disconnect if (gLinkPlayers[i].language == LANGUAGE_JAPANESE) - { count++; - } - else if (gUnknown_030030F0[i]) - { + else if (gReadyToCloseLink[i]) count++; - } } + if (count == linkPlayerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); @@ -1554,50 +1557,47 @@ static void sub_800AD88(void) } } -void sub_800ADF8(void) +void SetLinkStandbyCallback(void) { if (gWirelessCommType == TRUE) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); } else { if (gLinkCallback == NULL) { - gLinkCallback = sub_800AE30; + gLinkCallback = LinkCB_Standby; } gLinkDummy1 = FALSE; } } -static void sub_800AE30(void) +static void LinkCB_Standby(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x2FFE); - gLinkCallback = sub_800AE5C; + BuildSendCmd(LINKCMD_READY_EXIT_STANDBY); + gLinkCallback = LinkCB_StandbyForAll; } } -static void sub_800AE5C(void) +static void LinkCB_StandbyForAll(void) { u8 i; - u8 linkPlayerCount; - - linkPlayerCount = GetLinkPlayerCount(); + u8 linkPlayerCount = GetLinkPlayerCount(); for (i = 0; i < linkPlayerCount; i++) { - if (!gUnknown_030030EC[i]) - { + if (!gReadyToExitStandby[i]) break; - } } + + // If true, all players ready to exit standby if (i == linkPlayerCount) { for (i = 0; i < MAX_LINK_PLAYERS; i++) - { - gUnknown_030030EC[i] = FALSE; - } + gReadyToExitStandby[i] = FALSE; + gLinkCallback = NULL; } } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 34e9f719b..a8ead95d6 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -148,10 +148,7 @@ static const u8 sUnknown_082ED6A5[] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 }; -static const struct { - u8 *buffer; - u32 size; -} sUnknown_082ED6B8[] = { +static const struct BlockRequest sBlockRequests[] = { { gBlockSendBuffer, 200 }, { gBlockSendBuffer, 200 }, { gBlockSendBuffer, 100 }, @@ -879,8 +876,7 @@ static void sub_800F498(u16 *a0, u8 *a1) static bool32 RfuProcessEnqueuedRecvBlock(void) { - u8 i; - u8 j; + u8 i, j; u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))]; u8 sp48[2 * (CMD_LENGTH - 1)]; u8 status; @@ -926,7 +922,7 @@ static bool32 RfuProcessEnqueuedRecvBlock(void) static void HandleSendFailure(u8 unused, u32 flags) { - s32 i, j; + s32 i, j, temp; const u8 *r10 = Rfu.sendBlock.payload; for (i = 0; i < Rfu.sendBlock.count; i++) @@ -936,14 +932,15 @@ static void HandleSendFailure(u8 unused, u32 flags) sResendBlock16[0] = RFU_COMMAND_0x8900 | i; for (j = 0; j < 7; j++) { - sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0]; + temp = j << 1; + sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp]; } + for (j = 0; j < 7; j++) { - sResendBlock8[2 * j + 1] = sResendBlock16[j] >> 8; - sResendBlock8[2 * j + 0] = sResendBlock16[j]; - - j++;j--; // Needed to match; + temp = j << 1; + sResendBlock8[temp + 1] = sResendBlock16[j] >> 8; + sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff; } RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8); Rfu.sendBlock.failedFlags |= (1 << i); @@ -1027,8 +1024,7 @@ void sub_800F850(void) static void RfuHandleReceiveCommand(u8 unused) { - u16 i; - u16 j; + u16 i, j; for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -1042,7 +1038,7 @@ static void RfuHandleReceiveCommand(u8 unused) if (gRfuLinkStatus->parentChild == MODE_CHILD) { Rfu.playerCount = gRecvCmds[i][1]; - Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); + Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2])); } break; case RFU_COMMAND_0x8800: @@ -1072,15 +1068,15 @@ static void RfuHandleReceiveCommand(u8 unused) } } break; - case RFU_COMMAND_0xA100: - Rfu_InitBlockSend(sUnknown_082ED6B8[gRecvCmds[i][1]].buffer, (u16)sUnknown_082ED6B8[gRecvCmds[i][1]].size); + case RFU_COMMAND_SEND_BLOCK_REQ: + Rfu_InitBlockSend(sBlockRequests[gRecvCmds[i][1]].address, (u16)sBlockRequests[gRecvCmds[i][1]].size); break; - case RFU_COMMAND_0x5F00: - Rfu.unk_e4[i] = 1; + case RFU_COMMAND_READY_CLOSE_LINK: + Rfu.readyCloseLink[i] = TRUE; break; - case RFU_COMMAND_0x6600: + case RFU_COMMAND_READY_EXIT_STANDBY: if (Rfu.unk_100 == gRecvCmds[i][1]) - Rfu.unk_e9[i] = 1; + Rfu.readyExitStandby[i] = TRUE; break; case RFU_COMMAND_0xED00: if (Rfu.parentChild == MODE_CHILD) @@ -1194,9 +1190,9 @@ static void RfuPrepareSendBuffer(u16 command) gSendCmd[1] = Rfu.sendBlock.count; gSendCmd[2] = Rfu.sendBlock.owner + 0x80; break; - case RFU_COMMAND_0xA100: + case RFU_COMMAND_SEND_BLOCK_REQ: if (AreNoPlayersReceiving()) - gSendCmd[1] = Rfu.unk_5a; + gSendCmd[1] = Rfu.blockRequestType; break; case RFU_COMMAND_0x7700: case RFU_COMMAND_0x7800: @@ -1207,8 +1203,8 @@ static void RfuPrepareSendBuffer(u16 command) for (i = 0; i < RFU_CHILD_MAX; i++) buff[i] = Rfu.linkPlayerIdx[i]; break; - case RFU_COMMAND_0x6600: - case RFU_COMMAND_0x5F00: + case RFU_COMMAND_READY_EXIT_STANDBY: + case RFU_COMMAND_READY_CLOSE_LINK: gSendCmd[1] = Rfu.unk_100; break; case RFU_COMMAND_0x4400: @@ -1241,10 +1237,9 @@ void sub_800FE50(void *a0) bool32 Rfu_InitBlockSend(const u8 *src, size_t size) { bool8 r4; - if (Rfu.callback != NULL) - return FALSE; - if (gSendCmd[0] != 0) + if (Rfu.callback != NULL || gSendCmd[0] != 0) return FALSE; + if (Rfu.sendBlock.sending) { sRfuDebug.unk_83++; @@ -1327,10 +1322,10 @@ static void SendLastBlock(void) Rfu.callback = NULL; } -bool8 sub_8010100(u8 blockRequestType) +bool8 Rfu_SendBlockRequest(u8 type) { - Rfu.unk_5a = blockRequestType; - RfuPrepareSendBuffer(RFU_COMMAND_0xA100); + Rfu.blockRequestType = type; + RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ); return TRUE; } @@ -1343,14 +1338,14 @@ static void sub_801011C(void) Rfu.callback = NULL; } -static void sub_8010148(void) +static void DisconnectRfu(void) { rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); rfu_waitREQComplete(); sub_801011C(); } -static void sub_8010168(void) +static void TryDisconnectRfu(void) { if (Rfu.parentChild == MODE_CHILD) { @@ -1358,7 +1353,7 @@ static void sub_8010168(void) Rfu.unk_ce4 = 2; } else - Rfu.callback = sub_8010148; + Rfu.callback = DisconnectRfu; } void LinkRfu_FatalError(void) @@ -1368,131 +1363,132 @@ void LinkRfu_FatalError(void) Rfu.unk_ce3 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; } -static void sub_80101CC(void) +// RFU equivalent of LinkCB_WaitCloseLink +static void WaitAllReadyToCloseLink(void) { s32 i; u8 playerCount = Rfu.playerCount; s32 count = 0; + // Wait for all players to be ready for (i = 0; i < MAX_RFU_PLAYERS; i++) { - if (Rfu.unk_e4[i]) + if (Rfu.readyCloseLink[i]) count++; } if (count == playerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; if (Rfu.parentChild == MODE_CHILD) { Rfu.errorState = 3; - sub_8010168(); + TryDisconnectRfu(); } else - Rfu.callback = sub_8010168; + Rfu.callback = TryDisconnectRfu; } } -static void sub_801022C(void) +static void SendReadyCloseLink(void) { if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x5F00); - Rfu.callback = sub_80101CC; + RfuPrepareSendBuffer(RFU_COMMAND_READY_CLOSE_LINK); + Rfu.callback = WaitAllReadyToCloseLink; } } -static void sub_8010264(u8 taskId) +static void Task_TryReadyCloseLink(u8 taskId) { if (Rfu.callback == NULL) { Rfu.unk_cd9 = 1; - Rfu.callback = sub_801022C; + Rfu.callback = SendReadyCloseLink; DestroyTask(taskId); } } -void task_add_05_task_del_08FA224_when_no_RfuFunc(void) +void Rfu_SetCloseLinkCallback(void) { - if (!FuncIsActiveTask(sub_8010264)) - CreateTask(sub_8010264, 5); + if (!FuncIsActiveTask(Task_TryReadyCloseLink)) + CreateTask(Task_TryReadyCloseLink, 5); } -static void sub_80102B8(void) +static void SendReadyExitStandbyUntilAllReady(void) { - u8 playerCount; - u8 i; + u8 i, playerCount; - if (GetMultiplayerId() != 0) + if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) { - if (Rfu.recvQueue.count == 0 && Rfu.unk_fe > 60) - { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.unk_fe = 0; - } + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.resendExitStandbyTimer = 0; } playerCount = GetLinkPlayerCount(); for (i = 0; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (!Rfu.readyExitStandby[i]) break; } if (i == playerCount) { for (i = 0; i < MAX_RFU_PLAYERS; i++) - Rfu.unk_e9[i] = 0; + Rfu.readyExitStandby[i] = FALSE; Rfu.unk_100++; Rfu.callback = NULL; } - Rfu.unk_fe++; + Rfu.resendExitStandbyTimer++; } -static void sub_8010358(void) +static void LinkLeaderReadyToExitStandby(void) { if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_80102B8; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = SendReadyExitStandbyUntilAllReady; } } -static void sub_8010390(void) +// RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll +static void Rfu_LinkStandby(void) { - u8 i; - u8 playerCount; + u8 i, playerCount; if (GetMultiplayerId() != 0) { + // Not link leader, send exit standby when ready if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_80102B8; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = SendReadyExitStandbyUntilAllReady; } } else { + // Link leader, wait for all members to send exit ready playerCount = GetLinkPlayerCount(); for (i = 1; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (!Rfu.readyExitStandby[i]) break; } if (i == playerCount) { if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_8010358; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = LinkLeaderReadyToExitStandby; } } } } -void sub_8010434(void) +void Rfu_SetLinkStandbyCallback(void) { if (Rfu.callback == NULL) { - Rfu.callback = sub_8010390; - Rfu.unk_fe = 0; + Rfu.callback = Rfu_LinkStandby; + Rfu.resendExitStandbyTimer = 0; } } @@ -1552,28 +1548,28 @@ static bool8 CheckForLeavingGroupMembers(void) bool8 memberLeft = FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK - || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO) + if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK + || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) { - if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS - || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) - { - if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) - { - Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; - Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; - rfu_clearSlot(TYPE_NI_RECV, i); - rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); - memberLeft = TRUE; - } + continue; + } - } - else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) - rfu_clearSlot(TYPE_NI_RECV, i); + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS + || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) + { + if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) { - + Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; + Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; + rfu_clearSlot(TYPE_NI_RECV, i); + rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); + memberLeft = TRUE; } } + else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) + { + rfu_clearSlot(TYPE_NI_RECV, i); + } } return memberLeft; } @@ -1724,8 +1720,8 @@ static void sub_801084C(u8 taskId) { if (AreNoPlayersReceiving()) { - Rfu.unk_5a = 0; - RfuPrepareSendBuffer(RFU_COMMAND_0xA100); + Rfu.blockRequestType = 0; + RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ); gTasks[taskId].data[0]++; } } @@ -2094,8 +2090,7 @@ static void sub_80111FC(void) static void sub_801120C(u8 msg, u8 paramCount) { - u8 i; - u8 disconnectFlag = 0; + u8 i, disconnectFlag = 0; switch (msg) { case LMAN_MSG_INITIALIZE_COMPLETED: diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index c53e1c59e..c4c000a6e 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -220,9 +220,9 @@ static const u8 sWireless_RSEtoASCIITable[256] = { [CHAR_y] = 'y', [CHAR_z] = 'z', 0x20, 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - [CHAR_SPECIAL_F7] = ' ', - [CHAR_SPECIAL_F8] = ' ', - [CHAR_SPECIAL_F9] = ' ', + [CHAR_DYNAMIC] = ' ', + [CHAR_KEYPAD_ICON] = ' ', + [CHAR_EXTRA_SYMBOL] = ' ', [CHAR_PROMPT_SCROLL] = ' ', [CHAR_PROMPT_CLEAR] = ' ', [EXT_CTRL_CODE_BEGIN] = ' ', @@ -623,105 +623,39 @@ static void ASCIIToPkmnStr(u8 *pkmnStr, const u8 *asciiStr) pkmnStr[i] = EOS; } -#ifdef NONMATCHING static u8 GetConnectedChildStrength(u8 maxFlags) { u8 flagCount = 0; - u32 flags = gRfuLinkStatus->connSlotFlag; + u8 flags = gRfuLinkStatus->connSlotFlag; u8 i; if (gRfuLinkStatus->parentChild == MODE_PARENT) { - for (i = 0; i < 4; flags >>= 1, i++) + for (i = 0; i < 4; i++) { if (flags & 1) { if (maxFlags == flagCount + 1) + { return gRfuLinkStatus->strength[i]; + break; // This break is needed to match + } flagCount++; } + flags >>= 1; } } else { - for (i = 0; i < 4; flags >>= 1, i++) + for (i = 0; i < 4; i++) { if (flags & 1) return gRfuLinkStatus->strength[i]; + flags >>= 1; } } return 0; } -#else -NAKED -static u8 GetConnectedChildStrength(u8 maxFlags) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tmovs r6, 0\n" - "\tldr r0, =gRfuLinkStatus\n" - "\tldr r4, [r0]\n" - "\tldrb r2, [r4, 0x2]\n" - "\tldrb r1, [r4]\n" - "\tadds r7, r0, 0\n" - "\tcmp r1, 0x1\n" - "\tbne _0800DD72\n" - "\tmovs r3, 0\n" - "\tands r1, r2\n" - "\tcmp r1, 0\n" - "\tbeq _0800DD4E\n" - "\tcmp r5, 0x1\n" - "\tbne _0800DD48\n" - "\tldrb r0, [r4, 0xA]\n" - "\tb _0800DD8C\n" - "\t.pool\n" - "_0800DD48:\n" - "\tadds r0, r6, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "_0800DD4E:\n" - "\tlsrs r2, 1\n" - "\tadds r0, r3, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x3\n" - "\tbhi _0800DD8A\n" - "\tmovs r0, 0x1\n" - "\tands r0, r2\n" - "\tcmp r0, 0\n" - "\tbeq _0800DD4E\n" - "\tadds r0, r6, 0x1\n" - "\tcmp r5, r0\n" - "\tbne _0800DD48\n" - "_0800DD68:\n" - "\tldr r0, [r7]\n" - "\tadds r0, 0xA\n" - "\tadds r0, r3\n" - "\tldrb r0, [r0]\n" - "\tb _0800DD8C\n" - "_0800DD72:\n" - "\tmovs r3, 0\n" - "\tmovs r1, 0x1\n" - "_0800DD76:\n" - "\tadds r0, r2, 0\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0800DD68\n" - "\tlsrs r2, 1\n" - "\tadds r0, r3, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x3\n" - "\tbls _0800DD76\n" - "_0800DD8A:\n" - "\tmovs r0, 0\n" - "_0800DD8C:\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1"); -} -#endif void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders) { diff --git a/src/list_menu.c b/src/list_menu.c index ddcad0fe9..ef55f5872 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1257,17 +1257,17 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st s32 i, j, id = 0; subsprites[id] = sSubsprite_RedOutline1; - subsprites[id].x = 136; - subsprites[id].y = 136; + subsprites[id].x = -120; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline2; subsprites[id].x = rowWidth + 128; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline7; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = rowHeight + 128; id++; @@ -1282,7 +1282,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st { subsprites[id] = sSubsprite_RedOutline3; subsprites[id].x = i - 120; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline6; @@ -1297,7 +1297,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st for (j = 8; j < rowHeight - 8; j += 8) { subsprites[id] = sSubsprite_RedOutline4; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = j - 120; id++; @@ -904,7 +904,9 @@ void CgbModVol(struct CgbChannel *chan) // Force chan->rightVolume and chan->leftVolume to be read from memory again, // even though there is no reason to do so. // The command line option "-fno-gcse" achieves the same result as this. - asm("" : : : "memory"); + #ifndef NONMATCHING + asm("" : : : "memory"); + #endif chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; if (chan->eg > 15) diff --git a/src/main_menu.c b/src/main_menu.c index 781d7f85c..f4bf37ce1 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1292,7 +1292,7 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) gTasks[taskId].tPlayerSpriteId = 0xFF; gTasks[taskId].data[3] = 0xFF; gTasks[taskId].tTimer = 0xD8; - PlayBGM(MUS_DOORO_X4); + PlayBGM(MUS_ROUTE122); ShowBg(0); ShowBg(1); } @@ -1609,7 +1609,7 @@ static void Task_NewGameBirchSpeech_StartNamingScreen(u8 taskId) FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); DestroyTask(taskId); - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); + DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); } } diff --git a/src/match_call.c b/src/match_call.c index 307b84413..2b3f6df8d 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1119,7 +1119,7 @@ static void StartMatchCall(void) sub_808BCF4(); } - PlaySE(SE_TOREEYE); + PlaySE(SE_POKENAV_CALL); CreateTask(ExecuteMatchCall, 1); } @@ -1257,7 +1257,7 @@ static bool32 sub_8196330(u8 taskId) { FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); CopyWindowToVram(taskData[2], 2); - PlaySE(SE_TOREOFF); + PlaySE(SE_POKENAV_HANG_UP); return TRUE; } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index bbf0f8972..af68c6116 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -220,7 +220,7 @@ static void PrepareSongText(void) if (lineNum == 0) { *(wordEnd++) = EXT_CTRL_CODE_BEGIN; - *(wordEnd++) = 15; + *(wordEnd++) = EXT_CTRL_CODE_FILL_WINDOW; } } } diff --git a/src/menu.c b/src/menu.c index 7c90c4d93..f3334919c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -56,9 +56,9 @@ static EWRAM_DATA u8 sPaletteNum = 0; static EWRAM_DATA u8 sYesNoWindowId = 0; static EWRAM_DATA u8 sWindowId = 0; static EWRAM_DATA u16 sFiller = 0; // needed to align -static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE}; -static EWRAM_DATA u16 gUnknown_0203CDA8 = 0; -static EWRAM_DATA void *gUnknown_0203CDAC[0x20] = {NULL}; +static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE}; +static EWRAM_DATA u16 sTempTileDataBufferIdx = 0; +static EWRAM_DATA void *sTempTileDataBuffer[0x20] = {NULL}; const u16 gUnknown_0860F074[] = INCBIN_U16("graphics/interface/860F074.gbapal"); @@ -153,7 +153,7 @@ void FreeAllOverworldWindowBuffers(void) FreeAllWindowBuffers(); } -void sub_8197200(void) +void InitTextBoxGfxAndPrinters(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1299,10 +1299,12 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } +// Unused u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7) { u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1); @@ -1333,40 +1335,28 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) 0); } -u8 sub_8199134(s8 deltaX, s8 deltaY) +u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; if (deltaX != 0) { if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0) - { sMenu.cursorPos += sMenu.columns - 1; - } else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns) - { sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns; - } else - { sMenu.cursorPos += deltaX; - } } if (deltaY != 0) { if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0) - { sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1); - } else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows) - { sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1); - } else - { sMenu.cursorPos += (sMenu.columns * deltaY); - } } if (sMenu.cursorPos > sMenu.maxCursorPos) @@ -1381,7 +1371,7 @@ u8 sub_8199134(s8 deltaX, s8 deltaY) } } -u8 sub_81991F8(s8 deltaX, s8 deltaY) +u8 ChangeGridMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; @@ -1429,25 +1419,25 @@ s8 sub_8199284(void) else if (gMain.newKeys & DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } @@ -1469,25 +1459,25 @@ s8 Menu_ProcessInputGridLayout(void) } else if (gMain.newKeys & DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1509,31 +1499,32 @@ s8 sub_81993D8(void) else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } return MENU_NOTHING_CHOSEN; } +//Unused s8 sub_8199484(void) { u8 oldPos = sMenu.cursorPos; @@ -1549,25 +1540,25 @@ s8 sub_8199484(void) } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1732,52 +1723,53 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } -void clear_scheduled_bg_copies_to_vram(void) +void ClearScheduledBgCopiesToVram(void) { - memset(gUnknown_0203CDA4, 0, sizeof(gUnknown_0203CDA4)); + memset(sScheduledBgCopiesToVram, 0, sizeof(sScheduledBgCopiesToVram)); } void ScheduleBgCopyTilemapToVram(u8 bgId) { - gUnknown_0203CDA4[bgId] = TRUE; + sScheduledBgCopiesToVram[bgId] = TRUE; } -void do_scheduled_bg_tilemap_copies_to_vram(void) +void DoScheduledBgTilemapCopiesToVram(void) { - if (gUnknown_0203CDA4[0] == TRUE) + if (sScheduledBgCopiesToVram[0] == TRUE) { CopyBgTilemapBufferToVram(0); - gUnknown_0203CDA4[0] = FALSE; + sScheduledBgCopiesToVram[0] = FALSE; } - if (gUnknown_0203CDA4[1] == TRUE) + if (sScheduledBgCopiesToVram[1] == TRUE) { CopyBgTilemapBufferToVram(1); - gUnknown_0203CDA4[1] = FALSE; + sScheduledBgCopiesToVram[1] = FALSE; } - if (gUnknown_0203CDA4[2] == TRUE) + if (sScheduledBgCopiesToVram[2] == TRUE) { CopyBgTilemapBufferToVram(2); - gUnknown_0203CDA4[2] = FALSE; + sScheduledBgCopiesToVram[2] = FALSE; } - if (gUnknown_0203CDA4[3] == TRUE) + if (sScheduledBgCopiesToVram[3] == TRUE) { CopyBgTilemapBufferToVram(3); - gUnknown_0203CDA4[3] = FALSE; + sScheduledBgCopiesToVram[3] = FALSE; } } void ResetTempTileDataBuffers(void) { int i; - for (i = 0; i < (s32)ARRAY_COUNT(gUnknown_0203CDAC); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTempTileDataBuffer); i++) { - gUnknown_0203CDAC[i] = NULL; + sTempTileDataBuffer[i] = NULL; } - gUnknown_0203CDA8 = 0; + sTempTileDataBufferIdx = 0; } bool8 FreeTempTileDataBuffersIfPossible(void) @@ -1786,13 +1778,13 @@ bool8 FreeTempTileDataBuffersIfPossible(void) if (!IsDma3ManagerBusyWithBgCopy()) { - if (gUnknown_0203CDA8) + if (sTempTileDataBufferIdx) { - for (i = 0; i < gUnknown_0203CDA8; i++) + for (i = 0; i < sTempTileDataBufferIdx; i++) { - FREE_AND_SET_NULL(gUnknown_0203CDAC[i]); + FREE_AND_SET_NULL(sTempTileDataBuffer[i]); } - gUnknown_0203CDA8 = 0; + sTempTileDataBufferIdx = 0; } return FALSE; } @@ -1805,7 +1797,7 @@ bool8 FreeTempTileDataBuffersIfPossible(void) void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) { u32 sizeOut; - if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC)) + if (sTempTileDataBufferIdx < ARRAY_COUNT(sTempTileDataBuffer)) { void *ptr = malloc_and_decompress(src, &sizeOut); if (!size) @@ -1813,7 +1805,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of if (ptr) { copy_decompressed_tile_data_to_vram(bgId, ptr, size, offset, mode); - gUnknown_0203CDAC[gUnknown_0203CDA8++] = ptr; + sTempTileDataBuffer[sTempTileDataBufferIdx++] = ptr; } return ptr; } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index b7dd1f33a..d402ecb51 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -23,6 +23,7 @@ #include "text_window.h" #include "trig.h" #include "window.h" +#include "constants/berry.h" #include "constants/songs.h" #include "constants/species.h" #include "gba/io_reg.h" @@ -33,13 +34,13 @@ EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D24A4(struct ConditionGraph *a0); +static void sub_81D2634(struct ConditionGraph *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void nullsub_79(void); -static void sub_81D3408(struct Sprite *sprite); -static void sub_81D3564(struct Sprite *sprite); -static void sub_81D35E8(struct Sprite *sprite); +static void SetNextConditionSparkle(struct Sprite *sprite); +static void SpriteCB_ConditionSparkle(struct Sprite *sprite); +static void ShowAllConditionSparkles(struct Sprite *sprite); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -79,7 +80,7 @@ static const u8 sPlayerNameTextColors[] = static const u8 sEmptyItemName[] = _(""); -static const struct ScanlineEffectParams sUnknown_08625404 = +static const struct ScanlineEffectParams sConditionGraphScanline = { .dmaDest = (void*)REG_ADDR_WIN0H, .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, @@ -319,11 +320,11 @@ void sub_81D1EC0(void) Free(sUnknown_0203CF4C); } -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +void sub_81D1ED4(struct ConditionGraph *a0) { u8 i, j; - for (j = 0; j < 5; j++) + for (j = 0; j < FLAVOR_COUNT; j++) { for (i = 0; i < 10; i++) { @@ -345,7 +346,7 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) a0->unk352 = 0; } -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2) +void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2) { u16 i, j; s32 r5, r6; @@ -356,30 +357,30 @@ void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D r6 = ((arg2[i].unk0 - arg1[i].unk0) << 8) / 10; for (j = 0; j < 9; j++) { - arg0->unk64[j][i].unk0 = (r5 >> 8) + ((r5 >> 7) & 1); + graph->unk64[j][i].unk0 = (r5 >> 8) + ((r5 >> 7) & 1); r5 += r6; } - arg0->unk64[j][i].unk0 = arg2[i].unk0; + graph->unk64[j][i].unk0 = arg2[i].unk0; r5 = arg1[i].unk2 << 8; r6 = ((arg2[i].unk2 - arg1[i].unk2) << 8) / 10; for (j = 0; j < 9; j++) { - arg0->unk64[j][i].unk2 = (r5 >> 8) + ((r5 >> 7) & 1); + graph->unk64[j][i].unk2 = (r5 >> 8) + ((r5 >> 7) & 1); r5 += r6; } - arg0->unk64[j][i].unk2 = arg2[i].unk2; + graph->unk64[j][i].unk2 = arg2[i].unk2; } - arg0->unk352 = 0; + graph->unk352 = 0; } -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +bool32 TransitionConditionGraph(struct ConditionGraph *graph) { - if (a0->unk352 < 10) + if (graph->unk352 < 10) { - sub_81D2230(a0); - return (++a0->unk352 != 10); + sub_81D2230(graph); + return (++graph->unk352 != 10); } else { @@ -387,48 +388,48 @@ bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) } } -void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +void sub_81D20AC(struct ConditionGraph *a0) { a0->unk355 = 0; } -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +bool8 sub_81D20BC(struct ConditionGraph *graph) { struct ScanlineEffectParams params; - switch (arg0->unk355) + switch (graph->unk355) { case 0: ScanlineEffect_Clear(); - arg0->unk355++; + graph->unk355++; return TRUE; case 1: - params = sUnknown_08625404; + params = sConditionGraphScanline; ScanlineEffect_SetParams(params); - arg0->unk355++; + graph->unk355++; return FALSE; default: return FALSE; } } -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +void sub_81D2108(struct ConditionGraph *graph) { u16 i; - if (arg0->unk354 == 0) + if (graph->unk354 == 0) return; - sub_81D24A4(arg0); - sub_81D2634(arg0); + sub_81D24A4(graph); + sub_81D2634(graph); for (i = 0; i < 66; i++) { - gScanlineEffectRegBuffers[1][(i + 55) * 2] = gScanlineEffectRegBuffers[0][(i + 55) * 2] = (arg0->unk140[i][0] << 8) | (arg0->unk140[i][1]); - gScanlineEffectRegBuffers[1][(i + 55) * 2 + 1] = gScanlineEffectRegBuffers[0][(i + 55) * 2 + 1] = (arg0->unk248[i][0] << 8) | (arg0->unk248[i][1]); + gScanlineEffectRegBuffers[1][(i + 55) * 2] = gScanlineEffectRegBuffers[0][(i + 55) * 2] = (graph->unk140[i][0] << 8) | (graph->unk140[i][1]); + gScanlineEffectRegBuffers[1][(i + 55) * 2 + 1] = gScanlineEffectRegBuffers[0][(i + 55) * 2 + 1] = (graph->unk248[i][0] << 8) | (graph->unk248[i][1]); } - arg0->unk354 = 0; + graph->unk354 = 0; } void sub_81D21DC(u8 bg) @@ -441,24 +442,24 @@ void sub_81D21DC(u8 bg) // Unset the WINOUT flag for the bg. flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE( 0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE( 0, 155)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(56, 121)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(56, 121)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WINOUT, flags); } -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +void sub_81D2230(struct ConditionGraph *graph) { u16 i; - for (i = 0; i < 5; i++) - arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + for (i = 0; i < FLAVOR_COUNT; i++) + graph->unk12C[i] = graph->unk64[graph->unk352][i]; - arg0->unk354 = 1; + graph->unk354 = 1; } -static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 *arg5) +static void sub_81D2278(struct ConditionGraph *graph, u16 *arg1, struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 *arg5) { u16 i, r8, r10, r0, var_30; u16 *ptr; @@ -509,8 +510,8 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un break; } - arg0->unk350 = r10 + i; - arg1 += (arg0->unk350 - 56) * 2; + graph->unk350 = r10 + i; + arg1 += (graph->unk350 - 56) * 2; for (; i < r8; i++) { arg1[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4; @@ -535,8 +536,8 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un arg1 += 2; } - arg0->unk350 = r10 + i; - arg5 += (arg0->unk350 - 56) * 2; + graph->unk350 = r10 + i; + arg5 += (graph->unk350 - 56) * 2; for (; i < r8; i++) { arg5[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4; @@ -548,7 +549,7 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un } else { - arg0->unk350 = r10; + graph->unk350 = r10; arg1 += (r10 - 56) * 2; arg5 += (r10 - 56) * 2; arg1[1] = arg2->unk0 + 1; @@ -560,87 +561,87 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un ptr[arg4] = arg4 + var_30; } -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0) +static void sub_81D24A4(struct ConditionGraph *graph) { u16 i, r6, varMax; - if (arg0->unk12C[0].unk2 < arg0->unk12C[1].unk2) + if (graph->unk12C[0].unk2 < graph->unk12C[1].unk2) { - r6 = arg0->unk12C[0].unk2; - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[0], &arg0->unk12C[1], 1, NULL); + r6 = graph->unk12C[0].unk2; + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[0], &graph->unk12C[1], 1, NULL); } else { - r6 = arg0->unk12C[1].unk2; - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[0], 0, NULL); + r6 = graph->unk12C[1].unk2; + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[1], &graph->unk12C[0], 0, NULL); } - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[2], 1, NULL); + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[1], &graph->unk12C[2], 1, NULL); - i = (arg0->unk12C[2].unk2 <= arg0->unk12C[3].unk2); - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[2], &arg0->unk12C[3], i, arg0->unk248[0]); + i = (graph->unk12C[2].unk2 <= graph->unk12C[3].unk2); + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[2], &graph->unk12C[3], i, graph->unk248[0]); for (i = 56; i < r6; i++) { - arg0->unk140[i - 56][0] = 0; - arg0->unk140[i - 56][1] = 0; + graph->unk140[i - 56][0] = 0; + graph->unk140[i - 56][1] = 0; } - for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) - arg0->unk140[i - 56][0] = 155; + for (i = graph->unk12C[0].unk2; i <= graph->unk350; i++) + graph->unk140[i - 56][0] = 155; - varMax = max(arg0->unk350, arg0->unk12C[2].unk2); + varMax = max(graph->unk350, graph->unk12C[2].unk2); for (i = varMax + 1; i < 122; i++) { - arg0->unk140[i - 56][0] = 0; - arg0->unk140[i - 56][1] = 0; + graph->unk140[i - 56][0] = 0; + graph->unk140[i - 56][1] = 0; } for (i = 56; i < 122; i++) { - if (arg0->unk140[i - 56][0] == 0 && arg0->unk140[i - 56][1] != 0) - arg0->unk140[i - 56][0] = 155; + if (graph->unk140[i - 56][0] == 0 && graph->unk140[i - 56][1] != 0) + graph->unk140[i - 56][0] = 155; } } -static void sub_81D2634(struct UnknownStruct_81D1ED4 *arg0) +static void sub_81D2634(struct ConditionGraph *graph) { s32 i, r6, varMax; - if (arg0->unk12C[0].unk2 < arg0->unk12C[4].unk2) + if (graph->unk12C[0].unk2 < graph->unk12C[4].unk2) { - r6 = arg0->unk12C[0].unk2; - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[0], &arg0->unk12C[4], 0, NULL); + r6 = graph->unk12C[0].unk2; + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[0], &graph->unk12C[4], 0, NULL); } else { - r6 = arg0->unk12C[4].unk2; - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[0], 1, NULL); + r6 = graph->unk12C[4].unk2; + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[4], &graph->unk12C[0], 1, NULL); } - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[3], 0, NULL); + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[4], &graph->unk12C[3], 0, NULL); for (i = 56; i < r6; i++) { - arg0->unk140[i + 10][0] = 0; - arg0->unk140[i + 10][1] = 0; + graph->unk140[i + 10][0] = 0; + graph->unk140[i + 10][1] = 0; } - for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) - arg0->unk140[i + 10][1] = 155; + for (i = graph->unk12C[0].unk2; i <= graph->unk350; i++) + graph->unk140[i + 10][1] = 155; - varMax = max(arg0->unk350, arg0->unk12C[3].unk2 + 1); + varMax = max(graph->unk350, graph->unk12C[3].unk2 + 1); for (i = varMax; i < 122; i++) { - arg0->unk140[i + 10][0] = 0; - arg0->unk140[i + 10][1] = 0; + graph->unk140[i + 10][0] = 0; + graph->unk140[i + 10][1] = 0; } for (i = 0; i < 66; i++) { - if (arg0->unk248[i][0] >= arg0->unk248[i][1]) + if (graph->unk248[i][0] >= graph->unk248[i][1]) { - arg0->unk248[i][1] = 0; - arg0->unk248[i][0] = 0; + graph->unk248[i][1] = 0; + graph->unk248[i][0] = 0; } } } @@ -877,94 +878,93 @@ s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst) return ret; } -static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) +// Gets the name/gender/level string for the condition menu +static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId) { u16 species, level, gender; struct BoxPokemon *boxMon; u8 *str; *(dst++) = EXT_CTRL_CODE_BEGIN; - *(dst++) = 4; - *(dst++) = 8; - *(dst++) = 0; - *(dst++) = 9; + *(dst++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(dst++) = TEXT_COLOR_BLUE; + *(dst++) = TEXT_COLOR_TRANSPARENT; + *(dst++) = TEXT_COLOR_LIGHT_BLUE; if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) { return StringCopyPadded(dst, gText_EggNickname, 0, 12); } + GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); + StringGetEnd10(dst); + species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + gender = GetMonGender(&gPlayerParty[monId]); + } else { - GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); - species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); - if (boxId == TOTAL_BOXES_COUNT) // Party mon. - { - level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); - gender = GetMonGender(&gPlayerParty[monId]); - } - else - { - // Needed to match, feel free to remove. - boxId++;boxId--; - monId++;monId--; + // Needed to match, feel free to remove. + boxId++, boxId--; + monId++, monId--; - boxMon = GetBoxedMonPtr(boxId, monId); - gender = GetBoxMonGender(boxMon); - level = GetLevelFromBoxMonExp(boxMon); - } + boxMon = GetBoxedMonPtr(boxId, monId); + gender = GetBoxMonGender(boxMon); + level = GetLevelFromBoxMonExp(boxMon); + } - if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) - gender = MON_GENDERLESS; + if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) + gender = MON_GENDERLESS; - for (str = dst; *str != EOS; str++) - ; + for (str = dst; *str != EOS; str++) + ; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 0x12; - *(str++) = 0x3C; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SKIP; + *(str++) = 60; - switch (gender) - { - default: - *(str++) = CHAR_SPACE; - break; - case MON_MALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 4; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 5; - *(str++) = CHAR_MALE; - break; - case MON_FEMALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 6; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 7; - *(str++) = CHAR_FEMALE; - break; - } - - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 4; - *(str++) = 8; - *(str++) = 0; - *(str++) = 9; - *(str++) = CHAR_SLASH; - *(str++) = CHAR_SPECIAL_F9; - *(str++) = CHAR_LV_2; - str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + switch (gender) + { + default: *(str++) = CHAR_SPACE; - *str = EOS; - - return str; + break; + case MON_MALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_RED; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_RED; + *(str++) = CHAR_MALE; + break; + case MON_FEMALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_GREEN; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_GREEN; + *(str++) = CHAR_FEMALE; + break; } + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; + *(str++) = CHAR_SLASH; + *(str++) = CHAR_EXTRA_SYMBOL; + *(str++) = CHAR_LV_2; + str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + *(str++) = CHAR_SPACE; + *str = EOS; + + return str; } -static u8 *sub_81D2E7C(u8 *dst, const u8 *src, s16 n) +// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces +static u8 *BufferConditionMenuSpacedStringN(u8 *dst, const u8 *src, s16 n) { while (*src != EOS) { @@ -978,80 +978,83 @@ static u8 *sub_81D2E7C(u8 *dst, const u8 *src, s16 n) return dst; } -void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel) { u16 i; - if (!arg7) - arg6--; + // In this and the below 2 functions, numMons is passed as the number of menu selections (which includes Cancel) + // To indicate that the Cancel needs to be subtracted they pass an additional bool + // Unclear why they didn't just subtract 1 when it gets passed instead + if (!excludesCancel) + numMons--; - if (arg5 != arg6) + if (partyId != numMons) { - sub_81D2CD0(nameDst, boxId, monId); - dst[0] = EXT_CTRL_CODE_BEGIN; - dst[1] = 4; - dst[2] = 8; - dst[3] = 0; - dst[4] = 9; + GetConditionMenuMonString(nameDst, boxId, monId); + locationDst[0] = EXT_CTRL_CODE_BEGIN; + locationDst[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + locationDst[2] = TEXT_COLOR_BLUE; + locationDst[3] = TEXT_COLOR_TRANSPARENT; + locationDst[4] = TEXT_COLOR_LIGHT_BLUE; if (boxId == TOTAL_BOXES_COUNT) // Party mon. { - sub_81D2E7C(dst + 5, gText_InParty, 8); + BufferConditionMenuSpacedStringN(&locationDst[5], gText_InParty, 8); } else { boxId++;boxId--; // Again...Someone fix this maybe? - sub_81D2E7C(dst + 5, GetBoxNamePtr(boxId), 8); + BufferConditionMenuSpacedStringN(&locationDst[5], GetBoxNamePtr(boxId), 8); } } else { - for (i = 0; i < 12; i++) + for (i = 0; i < POKEMON_NAME_LENGTH + 2; i++) nameDst[i] = CHAR_SPACE; nameDst[i] = EOS; for (i = 0; i < 8; i++) - dst[i] = CHAR_SPACE; - dst[i] = EOS; + locationDst[i] = CHAR_SPACE; + locationDst[i] = EOS; } } -void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8) +void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel) { u16 i; - if (!arg8) - arg7--; + if (!excludesCancel) + numMons--; - if (arg5 != arg7) + if (partyId != numMons) { - arg0->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); - arg0->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); - arg0->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); - arg0->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); - arg0->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); + graph->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); + graph->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); + graph->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); + graph->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); + graph->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); sheen[id] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 0xFF) ? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u : 9; - sub_81D2754(arg0->unk0[id], arg0->unk14[id]); + sub_81D2754(graph->unk0[id], graph->unk14[id]); } else { - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { - arg0->unk0[id][i] = 0; - arg0->unk14[id][i].unk0 = 155; - arg0->unk14[id][i].unk2 = 91; + graph->unk0[id][i] = 0; + graph->unk14[id][i].unk0 = 155; + graph->unk14[id][i].unk2 = 91; } } } -void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel) { - if (!arg7) - arg6--; + if (!excludesCancel) + numMons--; - if (arg5 != arg6) + if (partyId != numMons) { u16 species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES2, NULL); u32 trainerId = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL); @@ -1062,46 +1065,46 @@ void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u } } -bool8 sub_81D312C(s16 *var) +bool8 MoveConditionMonOnscreen(s16 *x) { - *var += 24; - if (*var > 0) - *var = 0; + *x += 24; + if (*x > 0) + *x = 0; - return (*var != 0); + return (*x != 0); } -bool8 sub_81D3150(s16 *var) +bool8 MoveConditionMonOffscreen(s16 *x) { - *var -= 24; - if (*var < -80) - *var = -80; + *x -= 24; + if (*x < -80) + *x = -80; - return (*var != -80); + return (*x != -80); } -bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +bool8 TryUpdateConditionMonTransitionOn(struct ConditionGraph *graph, s16 *x) { - bool8 var1 = sub_81D2074(arg0); - bool8 var2 = sub_81D312C(arg1); + bool8 graphUpdating = TransitionConditionGraph(graph); + bool8 monUpdating = MoveConditionMonOnscreen(x); - return ((var1 != 0) || (var2 != 0)); + return (graphUpdating || monUpdating); } -bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +bool8 TryUpdateConditionMonTransitionOff(struct ConditionGraph *graph, s16 *x) { - bool8 var1 = sub_81D2074(arg0); - bool8 var2 = sub_81D3150(arg1); + bool8 graphUpdating = TransitionConditionGraph(graph); + bool8 monUpdating = MoveConditionMonOffscreen(x); - return ((var1 != 0) || (var2 != 0)); + return (graphUpdating || monUpdating); } -static const u32 gUnknown_08625560[] = INCBIN_U32("graphics/pokenav/pokeball.4bpp"); -static const u32 gUnknown_08625660[] = INCBIN_U32("graphics/pokenav/pokeball_placeholder.4bpp"); -static const u16 gUnknown_08625680[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal"); -static const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp"); +static const u32 sConditionPokeball_Gfx[] = INCBIN_U32("graphics/pokenav/condition/pokeball.4bpp"); +static const u32 sConditionPokeballPlaceholder_Gfx[] = INCBIN_U32("graphics/pokenav/condition/pokeball_placeholder.4bpp"); +static const u16 sConditionSparkle_Gfx[] = INCBIN_U16("graphics/pokenav/condition/sparkle.gbapal"); +static const u32 sConditionSparkle_Pal[] = INCBIN_U32("graphics/pokenav/condition/sparkle.4bpp"); -static const struct OamData sOamData_8625A20 = +static const struct OamData sOam_ConditionMonPic = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1118,7 +1121,7 @@ static const struct OamData sOamData_8625A20 = .affineParam = 0 }; -static const struct OamData sOamData_8625A28 = +static const struct OamData sOam_ConditionSelectionIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1135,71 +1138,73 @@ static const struct OamData sOamData_8625A28 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_8625A30[] = +static const union AnimCmd sAnim_ConditionSelectionIcon_Selected[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8625A38[] = +static const union AnimCmd sAnim_ConditionSelectionIcon_Unselected[] = { ANIMCMD_FRAME(4, 5), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8625A40[] = +static const union AnimCmd *const sAnims_ConditionSelectionIcon[] = { - sSpriteAnim_8625A30, - sSpriteAnim_8625A38 + sAnim_ConditionSelectionIcon_Selected, + sAnim_ConditionSelectionIcon_Unselected }; -void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) +// Just loads the generic data, up to the caller to load the actual sheet/pal for the specific mon +void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {NULL, 0x800, 100}; + struct SpriteSheet dataSheet = {NULL, 0x800, TAG_CONDITION_MON}; struct SpriteTemplate dataTemplate = { - .tileTag = 100, - .paletteTag = 100, - .oam = &sOamData_8625A20, + .tileTag = TAG_CONDITION_MON, + .paletteTag = TAG_CONDITION_MON, + .oam = &sOam_ConditionMonPic, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - struct SpritePalette dataPal = {NULL, 100}; + struct SpritePalette dataPal = {NULL, TAG_CONDITION_MON}; *sheet = dataSheet; *template = dataTemplate; *pal = dataPal; } -void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals) +void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals) { u8 i; struct SpriteSheet dataSheets[] = { - {gUnknown_08625560, 0x100, 101}, - {gUnknown_08625660, 0x20, 103}, - {gPokenavConditionCancel_Gfx, 0x100, 102}, + {sConditionPokeball_Gfx, 0x100, TAG_CONDITION_BALL}, + {sConditionPokeballPlaceholder_Gfx, 0x20, TAG_CONDITION_BALL_PLACEHOLDER}, + {gPokenavConditionCancel_Gfx, 0x100, TAG_CONDITION_CANCEL}, {}, }; struct SpritePalette dataPals[] = { - {gPokenavConditionCancel_Pal, 101}, - {gPokenavConditionCancel_Pal + 16, 102}, + {gPokenavConditionCancel_Pal, TAG_CONDITION_BALL}, + {gPokenavConditionCancel_Pal + 16, TAG_CONDITION_CANCEL}, {}, }; + // Tag is overwritten for the other selection icons struct SpriteTemplate dataTemplate = { - .tileTag = 101, - .paletteTag = 101, - .oam = &sOamData_8625A28, - .anims = sSpriteAnimTable_8625A40, + .tileTag = TAG_CONDITION_BALL, + .paletteTag = TAG_CONDITION_BALL, + .oam = &sOam_ConditionSelectionIcon, + .anims = sAnims_ConditionSelectionIcon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -1214,34 +1219,41 @@ void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, s *(pals++) = dataPals[i]; } -void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal) +#define sSparkleId data[0] +#define sDelayTimer data[1] +#define sNumExtraSparkles data[2] +#define sCurSparkleId data[3] +#define sMonSpriteId data[4] +#define sNextSparkleSpriteId data[5] + +void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {gUnknown_086256A0, 0x380, 104}; - struct SpritePalette dataPal = {gUnknown_08625680, 104}; + struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_CONDITION_SPARKLE}; + struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_CONDITION_SPARKLE}; *sheet = dataSheet; *pal = dataPal; } -static void sub_81D32D4(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle_DoNextAfterDelay(struct Sprite *sprite) { - if (++sprite->data[1] > 60) + if (++sprite->sDelayTimer > 60) { - sprite->data[1] = 0; - sub_81D3408(sprite); + sprite->sDelayTimer = 0; + SetNextConditionSparkle(sprite); } } -static void sub_81D32F4(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle_WaitForAllAnim(struct Sprite *sprite) { if (sprite->animEnded) { - sprite->data[1] = 0; - sprite->callback = sub_81D32D4; + sprite->sDelayTimer = 0; + sprite->callback = SpriteCB_ConditionSparkle_DoNextAfterDelay; } } -static const struct OamData sOamData_8625AD0 = +static const struct OamData sOam_ConditionSparkle = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1253,7 +1265,7 @@ static const struct OamData sOamData_8625AD0 = .priority = 0, }; -static const union AnimCmd sSpriteAnim_8625AD8[] = +static const union AnimCmd sAnim_ConditionSparkle[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -1265,133 +1277,120 @@ static const union AnimCmd sSpriteAnim_8625AD8[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8625AF8[] = +static const union AnimCmd *const sAnims_ConditionSparkle[] = { - sSpriteAnim_8625AD8, - sSpriteAnim_8625AD8 + 2, + &sAnim_ConditionSparkle[0], // Only this entry is used + &sAnim_ConditionSparkle[2], + &sAnim_ConditionSparkle[4], + &sAnim_ConditionSparkle[6], + &sAnim_ConditionSparkle[8], // Here below OOB, will crash if used + &sAnim_ConditionSparkle[10], + &sAnim_ConditionSparkle[12], }; -// unused -static const union AnimCmd *const sSpriteAnimTable_8625B00[] = +static const struct SpriteTemplate sSpriteTemplate_ConditionSparkle = { - sSpriteAnim_8625AD8 + 4, - sSpriteAnim_8625AD8 + 6, -}; - -// unused -static const union AnimCmd *const sSpriteAnimTable_8625B08[] = -{ - sSpriteAnim_8625AD8 + 8, - sSpriteAnim_8625AD8 + 10, -}; - -// unused -static const union AnimCmd *const *const sUnknown_08625B10 = sSpriteAnimTable_8625B08; - -const struct SpriteTemplate gUnknown_08625B14 = -{ - .tileTag = 104, - .paletteTag = 104, - .oam = &sOamData_8625AD0, - .anims = sSpriteAnimTable_8625AF8, + .tileTag = TAG_CONDITION_SPARKLE, + .paletteTag = TAG_CONDITION_SPARKLE, + .oam = &sOam_ConditionSparkle, + .anims = sAnims_ConditionSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81D3564, + .callback = SpriteCB_ConditionSparkle, }; -static const s16 gUnknown_08625B2C[][2] = -{ - {0, -35}, - {20, -28}, - {33, -10}, - {33, 10}, - {20, 28}, - {0, 35}, - {-20, 28}, - {-33, 10}, - {-33, -10}, - {-20, -28}, +static const s16 sConditionSparkleCoords[MAX_CONDITION_SPARKLES][2] = +{ + { 0, -35}, + { 20, -28}, + { 33, -10}, + { 33, 10}, + { 20, 28}, + { 0, 35}, + {-20, 28}, + {-33, 10}, + {-33, -10}, + {-20, -28}, }; -void sub_81D3314(struct Sprite *sprite) +static void SetConditionSparklePosition(struct Sprite *sprite) { - struct Sprite *sprite2 = &gSprites[sprite->data[4]]; + struct Sprite *mon = &gSprites[sprite->sMonSpriteId]; - if (sprite2 != NULL) + if (mon != NULL) { - sprite->pos1.x = sprite2->pos1.x + sprite2->pos2.x + gUnknown_08625B2C[sprite->data[0]][0]; - sprite->pos1.y = sprite2->pos1.y + sprite2->pos2.y + gUnknown_08625B2C[sprite->data[0]][1]; + sprite->pos1.x = mon->pos1.x + mon->pos2.x + sConditionSparkleCoords[sprite->sSparkleId][0]; + sprite->pos1.y = mon->pos1.y + mon->pos2.y + sConditionSparkleCoords[sprite->sSparkleId][1]; } else { - sprite->pos1.x = gUnknown_08625B2C[sprite->data[0]][0] + 40; - sprite->pos1.y = gUnknown_08625B2C[sprite->data[0]][1] + 104; + sprite->pos1.x = sConditionSparkleCoords[sprite->sSparkleId][0] + 40; + sprite->pos1.y = sConditionSparkleCoords[sprite->sSparkleId][1] + 104; } } -void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) +static void InitConditionSparkles(u8 count, bool8 allowFirstShowAll, struct Sprite **sprites) { u16 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) { if (sprites[i] != NULL) { - sprites[i]->data[0] = i; - sprites[i]->data[1] = (i * 16) + 1; - sprites[i]->data[2] = arg0; - sprites[i]->data[3] = i; - if (arg1 == 0 || arg0 != 9) + sprites[i]->sSparkleId = i; + sprites[i]->sDelayTimer = (i * 16) + 1; + sprites[i]->sNumExtraSparkles = count; + sprites[i]->sCurSparkleId = i; + if (!allowFirstShowAll || count != MAX_CONDITION_SPARKLES - 1) { - sprites[i]->callback = sub_81D3564; + sprites[i]->callback = SpriteCB_ConditionSparkle; } else { - sub_81D3314(sprites[i]); - sub_81D35E8(sprites[i]); - sprites[i]->callback = sub_81D32F4; + SetConditionSparklePosition(sprites[i]); + ShowAllConditionSparkles(sprites[i]); + sprites[i]->callback = SpriteCB_ConditionSparkle_WaitForAllAnim; sprites[i]->invisible = FALSE; } } } } -static void sub_81D3408(struct Sprite *sprite) +static void SetNextConditionSparkle(struct Sprite *sprite) { u16 i; - u8 id = sprite->data[5]; - - for (i = 0; i < sprite->data[2] + 1; i++) + u8 id = sprite->sNextSparkleSpriteId; + for (i = 0; i < sprite->sNumExtraSparkles + 1; i++) { - gSprites[id].data[1] = (gSprites[id].data[0] * 16) + 1; - gSprites[id].callback = sub_81D3564; - id = gSprites[id].data[5]; + gSprites[id].sDelayTimer = (gSprites[id].sSparkleId * 16) + 1; + gSprites[id].callback = SpriteCB_ConditionSparkle; + id = gSprites[id].sNextSparkleSpriteId; } } -void sub_81D3464(struct Sprite **sprites) +void ResetConditionSparkleSprites(struct Sprite **sprites) { u8 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) sprites[i] = NULL; } -void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2) +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 _count) { u16 i, spriteId, firstSpriteId = 0; - u8 count = arg2; + u8 count = _count; for (i = 0; i < count + 1; i++) { - spriteId = CreateSprite(&gUnknown_08625B14, 0, 0, 0); + spriteId = CreateSprite(&sSpriteTemplate_ConditionSparkle, 0, 0, 0); if (spriteId != MAX_SPRITES) { sprites[i] = &gSprites[spriteId]; sprites[i]->invisible = TRUE; - sprites[i]->data[4] = arg1; + sprites[i]->sMonSpriteId = monSpriteId; if (i != 0) - sprites[i - 1]->data[5] = spriteId; + sprites[i - 1]->sNextSparkleSpriteId = spriteId; else firstSpriteId = spriteId; } @@ -1401,15 +1400,15 @@ void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2) } } - sprites[count]->data[5] = firstSpriteId; - sub_81D338C(count, 1, sprites); + sprites[count]->sNextSparkleSpriteId = firstSpriteId; + InitConditionSparkles(count, TRUE, sprites); } -void sub_81D3520(struct Sprite **sprites) +void DestroyConditionSparkleSprites(struct Sprite **sprites) { u16 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) { if (sprites[i] != NULL) { @@ -1423,38 +1422,41 @@ void sub_81D3520(struct Sprite **sprites) } } -void sub_81D354C(struct Sprite **sprites) +void FreeConditionSparkles(struct Sprite **sprites) { - sub_81D3520(sprites); - FreeSpriteTilesByTag(104); - FreeSpritePaletteByTag(104); + DestroyConditionSparkleSprites(sprites); + FreeSpriteTilesByTag(TAG_CONDITION_SPARKLE); + FreeSpritePaletteByTag(TAG_CONDITION_SPARKLE); } -static void sub_81D3564(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle(struct Sprite *sprite) { - if (sprite->data[1] != 0) + // Delay, then do sparkle anim + if (sprite->sDelayTimer != 0) { - if (--sprite->data[1] != 0) + if (--sprite->sDelayTimer != 0) return; SeekSpriteAnim(sprite, 0); sprite->invisible = FALSE; } - sub_81D3314(sprite); + SetConditionSparklePosition(sprite); + + // Set up next sparkle if (sprite->animEnded) { sprite->invisible = TRUE; - if (sprite->data[3] == sprite->data[2]) + if (sprite->sCurSparkleId == sprite->sNumExtraSparkles) { - if (sprite->data[3] == 9) + if (sprite->sCurSparkleId == MAX_CONDITION_SPARKLES - 1) { - sub_81D35E8(sprite); - sprite->callback = sub_81D32F4; + ShowAllConditionSparkles(sprite); + sprite->callback = SpriteCB_ConditionSparkle_WaitForAllAnim; } else { - sprite->callback = sub_81D32D4; + sprite->callback = SpriteCB_ConditionSparkle_DoNextAfterDelay; } } else @@ -1464,18 +1466,25 @@ static void sub_81D3564(struct Sprite *sprite) } } -static void sub_81D35E8(struct Sprite *sprite) +static void ShowAllConditionSparkles(struct Sprite *sprite) { - u8 i, id = sprite->data[5]; + u8 i, id = sprite->sNextSparkleSpriteId; - for (i = 0; i < sprite->data[2] + 1; i++) + for (i = 0; i < sprite->sNumExtraSparkles + 1; i++) { SeekSpriteAnim(&gSprites[id], 0); gSprites[id].invisible = FALSE; - id = gSprites[id].data[5]; + id = gSprites[id].sNextSparkleSpriteId; } } +#undef sSparkleId +#undef sDelayTimer +#undef sNumExtraSparkles +#undef sCurSparkleId +#undef sMonSpriteId +#undef sNextSparkleSpriteId + static const u8 *const sLvlUpStatStrings[NUM_STATS] = { gText_MaxHP, diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index 1bfac23d1..847449c45 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -208,7 +208,7 @@ s32 FadeToWonderCardMenu(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(stdpal_get(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(sWonderCardData->unk_0170->pal, 0x10, 0x20); LZ77UnCompWram(sWonderCardData->unk_0170->map, sWonderCardData->buffer_045C); @@ -607,7 +607,7 @@ s32 FadeToWonderNewsMenu(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(stdpal_get(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(sWonderNewsData->unk_01BC->pal, 0x10, 0x20); LZ77UnCompWram(sWonderNewsData->unk_01BC->map, sWonderNewsData->buffer_03A4); diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index be1c42e29..f5ef09cac 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -227,7 +227,7 @@ static void sub_802E938(struct Sprite *sprite) sprite->invisible = FALSE; case 1: case 2: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); StartSpriteAnim(sprite, sprite->data[2]); break; case 3: @@ -249,7 +249,7 @@ static void sub_802E938(struct Sprite *sprite) static void sub_802EA50(u8 taskId) { s16 *data = gTasks[taskId].data; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); gSprites[data[13]].callback = sub_802E938; gSprites[data[13]].invisible = FALSE; gTasks[taskId].data[0] = 3; @@ -350,7 +350,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) // fallthrough case 1: if (sprite->data[2] == 0) - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); if (++sprite->data[2] >= 20) { sprite->data[2] = 0; @@ -443,7 +443,7 @@ static void SpriteCB_Start(struct Sprite *sprite) sprite->pos2.y = data[5] >> 4; if (sprite->pos2.y >= 0) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); sprite->pos2.y = 0; data[0]++; } @@ -452,7 +452,7 @@ static void SpriteCB_Start(struct Sprite *sprite) data[1] += 12; if (data[1] >= 128) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); data[1] = 0; data[0]++; } @@ -463,7 +463,7 @@ static void SpriteCB_Start(struct Sprite *sprite) data[1] += 16; if (data[1] >= 128) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); data[1] = 0; data[0]++; } diff --git a/src/mirage_tower.c b/src/mirage_tower.c index e2f5cefb7..fb3a0a374 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -8,7 +8,7 @@ #include "gpu_regs.h" #include "menu.h" #include "random.h" -#include "roulette_util.h" +#include "palette_util.h" #include "script.h" #include "sound.h" #include "sprite.h" @@ -109,24 +109,24 @@ const struct SpriteSheet gMirageTowerCeilingCrumbleSpriteSheets[] = static const struct MetatileCoords sInvisibleMirageTowerMetatiles[] = { - {18, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {19, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {20, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {18, 58, METATILE_ID(General, SandPit_Center)}, - {19, 58, METATILE_ID(General, SandPit_Center)}, - {20, 58, METATILE_ID(General, SandPit_Center)}, + {18, 53, METATILE_Mauville_DeepSand_Center}, + {19, 53, METATILE_Mauville_DeepSand_Center}, + {20, 53, METATILE_Mauville_DeepSand_Center}, + {18, 54, METATILE_Mauville_DeepSand_Center}, + {19, 54, METATILE_Mauville_DeepSand_Center}, + {20, 54, METATILE_Mauville_DeepSand_Center}, + {18, 55, METATILE_Mauville_DeepSand_Center}, + {19, 55, METATILE_Mauville_DeepSand_Center}, + {20, 55, METATILE_Mauville_DeepSand_Center}, + {18, 56, METATILE_Mauville_DeepSand_Center}, + {19, 56, METATILE_Mauville_DeepSand_Center}, + {20, 56, METATILE_Mauville_DeepSand_Center}, + {18, 57, METATILE_Mauville_DeepSand_BottomMid}, + {19, 57, METATILE_Mauville_DeepSand_BottomMid}, + {20, 57, METATILE_Mauville_DeepSand_BottomMid}, + {18, 58, METATILE_General_SandPit_Center}, + {19, 58, METATILE_General_SandPit_Center}, + {20, 58, METATILE_General_SandPit_Center}, }; static const union AnimCmd gSpriteAnim_8617DEC[] = @@ -168,7 +168,7 @@ const struct PulseBlendSettings gMirageTowerPulseBlendSettings = { .numColors = 15, .delay = 5, .numFadeCycles = -1, - .maxBlendCoeff = 11, + .maxBlendCoeff = -5, .fadeType = 1, .restorePaletteOnUnload = FALSE, .unk7_7 = 1, @@ -370,7 +370,7 @@ static void StartScreenShake(u8 yShakeOffset, u8 xShakeOffset, u8 numShakes, u8 gTasks[taskId].data[3] = shakeDelay; gTasks[taskId].data[4] = yShakeOffset; SetCameraPanningCallback(NULL); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); } static void DoScreenShake(u8 taskId) @@ -412,10 +412,9 @@ void DoMirageTowerCeilingCrumble(void) static void WaitCeilingCrumble(u8 taskId) { - u16 *data = gTasks[taskId].data; - data[1]++; + u16 *data = (u16 *)gTasks[taskId].data; // Either wait 1000 frames, or until all 16 crumble sprites and the one screen-shake task are completed. - if (data[1] == 1000 || data[0] == 17) + if (++data[1] == 1000 || data[0] == 17) gTasks[taskId].func = FinishCeilingCrumbleTask; } @@ -691,7 +690,7 @@ static void DoFossilFallAndSink(u8 taskId) if (gSprites[sUnknown_0203CF0C->spriteId].callback != SpriteCallbackDummy) return; DestroySprite(&gSprites[sUnknown_0203CF0C->spriteId]); - FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);; + FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImage); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImageTiles); FREE_AND_SET_NULL(sUnknown_0203CF0C); diff --git a/src/move_relearner.c b/src/move_relearner.c index 8c4cf7b2e..3e7caf133 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -150,20 +150,22 @@ #define JAM_HEART_EMPTY 2 #define JAM_HEART_FULL 3 +#define MAX_RELEARNER_MOVES (MAX_LEVEL_UP_MOVES > 25 ? MAX_LEVEL_UP_MOVES : 25) + static EWRAM_DATA struct { u8 state; - u8 heartSpriteIds[16]; /*0x001*/ - u16 movesToLearn[25]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[25]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[MAX_RELEARNER_MOVES]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[MAX_RELEARNER_MOVES]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ } *sMoveRelearnerStruct = {0}; static EWRAM_DATA struct { @@ -384,7 +386,7 @@ static void CB2_InitLearnMove(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; SetVBlankCallback(VBlankCB_MoveRelearner); @@ -412,7 +414,7 @@ static void CB2_InitLearnMoveReturnFromSelectMove(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); sMoveRelearnerStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; @@ -452,7 +454,7 @@ static void CB2_MoveRelearnerMain(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -713,13 +715,13 @@ static void DoMoveRelearnerMain(void) { FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); } break; case MENU_STATE_PRINT_TEXT_THEN_FANFARE: if (!MoveRelearnerRunTextPrinters()) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_FANFARE; } break; diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 04902dee8..032cc3340 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -208,7 +208,7 @@ static void CB2_MysteryEventMenu(void) { if (GetLinkPlayerDataExchangeStatusTimed(2, 2) == EXCHANGE_DIFF_SELECTIONS) { - sub_800AC34(); + SetCloseLinkCallback(); GetEventLoadMessage(gStringVar4, 1); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; @@ -249,7 +249,7 @@ static void CB2_MysteryEventMenu(void) gMain.state++; break; case 10: - sub_800AC34(); + SetCloseLinkCallback(); gMain.state++; break; case 11: diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 9672fe0ec..ca5ab1baf 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -410,7 +410,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) break; case 1: LoadPalette(gUnkTextboxBorderPal, 0, 0x20); - LoadPalette(stdpal_get(2), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20); Menu_LoadStdPalAt(0xC0); LoadUserWindowBorderGfx(0, 0xA, 0xE0); LoadUserWindowBorderGfx_(0, 0x1, 0xF0); @@ -431,7 +431,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) case 3: ShowBg(0); ShowBg(3); - PlayBGM(MUS_RG_OKURIMONO); + PlayBGM(MUS_RG_MYSTERY_GIFT); SetVBlankCallback(vblankcb_mystery_gift_e_reader_run); EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); return TRUE; @@ -1023,7 +1023,7 @@ static bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2) { AddTextPrinterToWindow1(arg1); } - PlayFanfare(MUS_FANFA4); + PlayFanfare(MUS_OBTAIN_ITEM); *arg2 = 0; (*state)++; break; @@ -1284,7 +1284,7 @@ void task00_mystery_gift(u8 taskId) switch (mevent_client_do_exec(&data->curPromptWindowId)) { case 6: - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); data->prevPromptWindowId = data->curPromptWindowId; data->state = 13; break; @@ -1647,7 +1647,7 @@ void task00_mystery_gift(u8 taskId) } break; case 33: - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); StringCopy(gStringVar1, gLinkPlayers[1].name); data->state = 34; break; diff --git a/src/naming_screen.c b/src/naming_screen.c index 84b540e99..be921078e 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -28,7 +28,157 @@ #include "constants/event_objects.h" #include "constants/rgb.h" -EWRAM_DATA static struct NamingScreenData *gNamingScreenData = NULL; +enum { + INPUT_NONE, + INPUT_DPAD_UP, + INPUT_DPAD_DOWN, + INPUT_DPAD_LEFT, + INPUT_DPAD_RIGHT, + INPUT_A_BUTTON, + INPUT_B_BUTTON, + INPUT_LR_BUTTON, + INPUT_SELECT, + INPUT_START, +}; + +#define KBROW_COUNT 4 +#define KBCOL_COUNT 8 + +enum { + GFXTAG_BACK_BUTTON, + GFXTAG_OK_BUTTON, + GFXTAG_PAGE_SWAP_FRAME, + GFXTAG_PAGE_SWAP_BUTTON, + GFXTAG_PAGE_SWAP_UPPER, + GFXTAG_PAGE_SWAP_LOWER, + GFXTAG_PAGE_SWAP_OTHERS, + GFXTAG_CURSOR, + GFXTAG_CURSOR_SQUISHED, + GFXTAG_CURSOR_FILLED, + GFXTAG_INPUT_ARROW, + GFXTAG_UNDERSCORE, +}; + +enum { + PALTAG_PC_ICON, + PALTAG_PAGE_SWAP_UPPER, + PALTAG_PAGE_SWAP_LOWER, + PALTAG_PAGE_SWAP_OTHERS, + PALTAG_PAGE_SWAP, + PALTAG_CURSOR, + PALTAG_BACK_BUTTON, + PALTAG_OK_BUTTON, +}; + +enum { + WIN_KB_PAGE_1, // Which of these two windows is in front is cycled as the player swaps + WIN_KB_PAGE_2, // Initially WIN_KB_PAGE_1 is in front, with WIN_KB_PAGE_2 on deck + WIN_TEXT_ENTRY, + WIN_TEXT_ENTRY_BOX, + WIN_BANNER, + WIN_COUNT, +}; + +// The constants for the pages are needlessly complicated because GF didn't keep the indexing order consistent +// This set is used for sNamingScreen->currentPage. It uses the order that the pages are cycled in +enum { + KBPAGE_SYMBOLS, + KBPAGE_LETTERS_UPPER, + KBPAGE_LETTERS_LOWER, + KBPAGE_COUNT, +}; + +// This set is used for initializing a page's keyboard text and getting its number of columns +enum { + KEYBOARD_LETTERS_LOWER, + KEYBOARD_LETTERS_UPPER, + KEYBOARD_SYMBOLS, +}; + +// This set is used for getting the gfx/pal tags of the page's swap button +enum { + PAGE_SWAP_UPPER, + PAGE_SWAP_OTHERS, + PAGE_SWAP_LOWER, +}; + +enum { + KEY_ROLE_CHAR, + KEY_ROLE_PAGE, + KEY_ROLE_BACKSPACE, + KEY_ROLE_OK, +}; + +enum { + BUTTON_PAGE, + BUTTON_BACK, + BUTTON_OK, + BUTTON_COUNT, +}; + +// states for Task_NamingScreen +enum { + STATE_FADE_IN, + STATE_WAIT_FADE_IN, + STATE_HANDLE_INPUT, + STATE_MOVE_TO_OK_BUTTON, + STATE_START_PAGE_SWAP, + STATE_WAIT_PAGE_SWAP, + STATE_PRESSED_OK, + STATE_WAIT_SENT_TO_PC_MESSAGE, + STATE_FADE_OUT, + STATE_EXIT, +}; + +// sates for Task_HandleInput +enum +{ + INPUT_STATE_DISABLED, + INPUT_STATE_ENABLED, + INPUT_STATE_OVERRIDE, +}; + +struct NamingScreenTemplate +{ + u8 copyExistingString; + u8 maxChars; + u8 iconFunction; + u8 addGenderIcon; + u8 initialPage; + u8 unused; + const u8 *title; +}; + +struct NamingScreenData +{ + u8 tilemapBuffer1[0x800]; + u8 tilemapBuffer2[0x800]; + u8 tilemapBuffer3[0x800]; + u8 textBuffer[16]; + u8 tileBuffer[0x600]; + u8 state; + u8 windows[WIN_COUNT]; + u16 inputCharBaseXPos; + u16 bg1vOffset; + u16 bg2vOffset; + u16 bg1Priority; + u16 bg2Priority; + u8 bgToReveal; + u8 bgToHide; + u8 currentPage; + u8 cursorSpriteId; + u8 swapBtnFrameSpriteId; + u8 keyRepeatStartDelayCopy; + const struct NamingScreenTemplate *template; + u8 templateNum; + u8 *destBuffer; + u16 monSpecies; + u16 monGender; + u32 monPersonality; + MainCallback returnCallback; +}; + +EWRAM_DATA static struct NamingScreenData *sNamingScreen = NULL; extern u16 gKeyRepeatStartDelay; // extern text @@ -40,10 +190,10 @@ extern const u8 gText_TellHimTheWords[]; // start of .rodata -static const u8 gSpriteImage_858BBF8[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); -static const u8 gSpriteImage_858BCB8[] = INCBIN_U8("graphics/naming_screen/pc_icon/1.4bpp"); -static const u16 gUnknown_0858BD78[] = INCBIN_U16("graphics/naming_screen/0.gbapal"); -static const u16 gUnknown_0858BD98[] = INCBIN_U16("graphics/naming_screen/1.gbapal"); +static const u8 sPCIconOff_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/off.4bpp"); +static const u8 sPCIconOn_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/on.4bpp"); +static const u16 sKeyboard_Pal[] = INCBIN_U16("graphics/naming_screen/keyboard.gbapal"); +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/naming_screen/unused.gbapal"); static const u8 *const sTransferredToPCMessages[] = { @@ -55,7 +205,7 @@ static const u8 *const sTransferredToPCMessages[] = static const u8 sText_AlphabetUpperLower[] = _("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!"); -static const struct BgTemplate gUnknown_0858BE00[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -83,9 +233,9 @@ static const struct BgTemplate gUnknown_0858BE00[] = } }; -static const struct WindowTemplate gUnknown_0858BE10[] = +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { - { + [WIN_KB_PAGE_1] = { .bg = 1, .tilemapLeft = 3, .tilemapTop = 10, @@ -94,7 +244,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x030 }, - { + [WIN_KB_PAGE_2] = { .bg = 2, .tilemapLeft = 3, .tilemapTop = 10, @@ -103,7 +253,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x0C8 }, - { + [WIN_TEXT_ENTRY] = { .bg = 3, .tilemapLeft = 8, .tilemapTop = 6, @@ -112,7 +262,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x030 }, - { + [WIN_TEXT_ENTRY_BOX] = { .bg = 3, .tilemapLeft = 8, .tilemapTop = 4, @@ -121,7 +271,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x052 }, - { + [WIN_BANNER] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -133,124 +283,146 @@ static const struct WindowTemplate gUnknown_0858BE10[] = DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_0858BE40[] = __("abcdef .ghijkl ,mnopqrs tuvwxyz ABCDEF .GHIJKL ,MNOPQRS TUVWXYZ 01234 56789 !?♂♀/- …“”‘' "); - -static const u8 gUnknown_0858BEA0[] = { 8, 8, 6 }; -static const u8 gUnknown_0858BEA3[] = { 0, 12, 24, 56, 68, 80, 92, 123, 0, 12, 24, 56, 68, 80, 92, 123, 0, 22, 44, 66, 88, 110, 0, 0 }; +// This handles what characters get inserted when a key is pressed +// The keys shown on the keyboard are handled separately by sNamingScreenKeyboardText +static const u8 sKeyboardChars[KBPAGE_COUNT * KBROW_COUNT * KBCOL_COUNT] = __( + "abcdef ." + "ghijkl ," + "mnopqrs " + "tuvwxyz " + "ABCDEF ." + "GHIJKL ," + "MNOPQRS " + "TUVWXYZ " + "01234 " + "56789 " + "!?♂♀/- " + "…“”‘' "); + +static const u8 sPageColumnCounts[KBPAGE_COUNT] = { + [KEYBOARD_LETTERS_LOWER] = KBCOL_COUNT, + [KEYBOARD_LETTERS_UPPER] = KBCOL_COUNT, + [KEYBOARD_SYMBOLS] = 6 +}; +static const u8 sPageColumnXPos[KBPAGE_COUNT * KBCOL_COUNT] = { + 0, 12, 24, 56, 68, 80, 92, 123, // KEYBOARD_LETTERS_LOWER + 0, 12, 24, 56, 68, 80, 92, 123, // KEYBOARD_LETTERS_UPPER + 0, 22, 44, 66, 88, 110 // KEYBOARD_SYMBOLS +}; // forward declarations static const struct NamingScreenTemplate *const sNamingScreenTemplates[]; -static const struct SubspriteTable gUnknown_0858C050[]; -static const struct SubspriteTable gUnknown_0858C058[]; -static const struct SubspriteTable gUnknown_0858C070[]; -static const struct SubspriteTable gUnknown_0858C078[]; -static const struct SpriteTemplate gUnknown_0858C0C0; -static const struct SpriteTemplate gUnknown_0858C0D8; -static const struct SpriteTemplate gUnknown_0858C0F0; -static const struct SpriteTemplate gUnknown_0858C108; -static const struct SpriteTemplate gUnknown_0858C120; -static const struct SpriteTemplate gUnknown_0858C138; +static const struct SubspriteTable sSubspriteTable_PageSwapFrame[]; +static const struct SubspriteTable sSubspriteTable_PageSwapText[]; +static const struct SubspriteTable sSubspriteTable_Button[]; +static const struct SubspriteTable sSubspriteTable_PCIcon[]; +static const struct SpriteTemplate sSpriteTemplate_PageSwapFrame; +static const struct SpriteTemplate sSpriteTemplate_PageSwapButton; +static const struct SpriteTemplate sSpriteTemplate_PageSwapText; +static const struct SpriteTemplate sSpriteTemplate_BackButton; +static const struct SpriteTemplate sSpriteTemplate_OkButton; +static const struct SpriteTemplate sSpriteTemplate_Cursor; static const struct SpriteTemplate sSpriteTemplate_InputArrow; static const struct SpriteTemplate sSpriteTemplate_Underscore; -static const struct SpriteTemplate gUnknown_0858C180; +static const struct SpriteTemplate sSpriteTemplate_PCIcon; static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT]; -static const struct SpriteSheet gUnknown_0858C1C8[]; -static const struct SpritePalette gUnknown_0858C230[]; +static const struct SpriteSheet sSpriteSheets[]; +static const struct SpritePalette sSpritePalettes[]; -static void C2_NamingScreen(void); +static void CB2_LoadNamingScreen(void); static void NamingScreen_Init(void); static void NamingScreen_InitBGs(void); -static void sub_80E3194(void); -static void sub_80E31B0(u8 taskId); -static bool8 MainState_BeginFadeIn(void); +static void CreateNamingScreenTask(void); +static void Task_NamingScreen(u8 taskId); +static bool8 MainState_FadeIn(void); static bool8 MainState_WaitFadeIn(void); static bool8 MainState_HandleInput(void); static bool8 MainState_MoveToOKButton(void); -static bool8 MainState_6(void); -static bool8 MainState_BeginFadeInOut(void); -static bool8 MainState_WaitFadeOutAndExit(void); +static bool8 MainState_PressedOKButton(void); +static bool8 MainState_FadeOut(void); +static bool8 MainState_Exit(void); static void DisplaySentToPCMessage(void); -static bool8 sub_80E3604(void); +static bool8 MainState_WaitSentToPCMessage(void); static bool8 MainState_StartPageSwap(void); static bool8 MainState_WaitPageSwap(void); static void StartPageSwapAnim(void); static void Task_HandlePageSwapAnim(u8); static bool8 IsPageSwapAnimNotInProgress(void); -static void sub_80E3948(u8, u8, u8); -static void Task_80E39BC(u8); -static u16 sub_80E3A74(u8); -static void sub_80E3AE8(u8); -static void sub_80E3B10(struct Task *, u8, u8); -static void sub_80E3CC8(void); -static void CursorInit(void); +static void TryStartButtonFlash(u8, bool8, bool8); +static void Task_UpdateButtonFlash(u8); +static u16 GetButtonPalOffset(u8); +static void RestoreButtonColor(u8); +static void StartButtonFlash(struct Task *, u8, bool8); +static void CreateSprites(void); +static void CreateCursorSprite(void); static void SetCursorPos(s16, s16); static void GetCursorPos(s16 *x, s16 *y); static void MoveCursorToOKButton(void); -static void sub_80E3E3C(u8); -static void sub_80E3E94(u8); +static void SetCursorInvisibility(u8); +static void SetCursorFlashing(bool8); static u8 IsCursorAnimFinished(void); static u8 GetCurrentPageColumnCount(void); -static void CreatePageSwitcherSprites(void); -static void sub_80E4050(void); -static void sub_80E41B8(u8, struct Sprite *, struct Sprite *); +static void CreatePageSwapButtonSprites(void); +static void StartPageSwapButtonAnim(void); +static void SetPageSwapButtonGfx(u8, struct Sprite *, struct Sprite *); static void CreateBackOkSprites(void); -static void CreateUnderscoreSprites(void); +static void CreateTextEntrySprites(void); static void CreateInputTargetIcon(void); static u8 HandleKeyboardEvent(void); -static u8 sub_80E45E0(void); +static u8 SwapKeyboardPage(void); static u8 GetInputEvent(void); static void SetInputState(u8); -static void sub_80E4964(void); -static u8 GetTextCaretPosition(void); +static void DrawTextEntryBox(void); +static u8 GetTextEntryPosition(void); static void DeleteTextCharacter(void); -static bool8 sub_80E4B54(void); -static void AddTextCharacter(u8); -static void sub_80E4BE4(void); -static void choose_name_or_words_screen_load_bg_tile_patterns(void); -static void sub_80E4CB8(void); -static void choose_name_or_words_screen_apply_bg_pals(void); -static void sub_80E4CF8(u8, const void *); -static void nullsub_10(u8, u8); -static void sub_80E4D10(void); -static void sub_80E4DE4(u8, u8); -static void sub_80E4E5C(void); -static void sub_80E4EF0(void); -static void sub_80E4F58(void); -static void NamingScreen_TurnOffScreen(void); -static void NamingScreen_InitDisplayMode(void); +static bool8 AddTextCharacter(void); +static void BufferCharacter(u8); +static void SaveInputText(void); +static void LoadGfx(void); +static void CreateHelperTasks(void); +static void LoadPalettes(void); +static void DrawBgTilemap(u8, const void *); +static void NamingScreen_Dummy(u8, u8); +static void DrawTextEntry(void); +static void PrintKeyboardKeys(u8, u8); +static void DrawKeyboardPageOnDeck(void); +static void PrintControls(void); +static void CB2_NamingScreen(void); +static void ResetVHBlank(void); +static void SetVBlank(void); static void VBlankCB_NamingScreen(void); -static void sub_80E501C(void); -static bool8 IsLetter(u8); +static void NamingScreen_ShowBgs(void); +static bool8 IsWideLetter(u8); void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback) { - gNamingScreenData = Alloc(sizeof(struct NamingScreenData)); - if (!gNamingScreenData) + sNamingScreen = Alloc(sizeof(struct NamingScreenData)); + if (!sNamingScreen) { SetMainCallback2(returnCallback); } else { - gNamingScreenData->templateNum = templateNum; - gNamingScreenData->monSpecies = monSpecies; - gNamingScreenData->monGender = monGender; - gNamingScreenData->monPersonality = monPersonality; - gNamingScreenData->destBuffer = destBuffer; - gNamingScreenData->returnCallback = returnCallback; + sNamingScreen->templateNum = templateNum; + sNamingScreen->monSpecies = monSpecies; + sNamingScreen->monGender = monGender; + sNamingScreen->monPersonality = monPersonality; + sNamingScreen->destBuffer = destBuffer; + sNamingScreen->returnCallback = returnCallback; - if (templateNum == 0) + if (templateNum == NAMING_SCREEN_PLAYER) StartTimer1(); - SetMainCallback2(C2_NamingScreen); + SetMainCallback2(CB2_LoadNamingScreen); } } -static void C2_NamingScreen(void) +static void CB2_LoadNamingScreen(void) { switch (gMain.state) { case 0: - NamingScreen_TurnOffScreen(); + ResetVHBlank(); NamingScreen_Init(); gMain.state++; break; @@ -272,48 +444,48 @@ static void C2_NamingScreen(void) gMain.state++; break; case 5: - choose_name_or_words_screen_apply_bg_pals(); + LoadPalettes(); gMain.state++; break; case 6: - choose_name_or_words_screen_load_bg_tile_patterns(); + LoadGfx(); gMain.state++; break; case 7: - sub_80E3CC8(); + CreateSprites(); UpdatePaletteFade(); - sub_80E501C(); + NamingScreen_ShowBgs(); gMain.state++; break; default: - sub_80E4CB8(); - sub_80E3194(); + CreateHelperTasks(); + CreateNamingScreenTask(); break; } } static void NamingScreen_Init(void) { - gNamingScreenData->state = 0; - gNamingScreenData->bg1vOffset = 0; - gNamingScreenData->bg2vOffset = 0; - gNamingScreenData->bg1Priority = BGCNT_PRIORITY(1); - gNamingScreenData->bg2Priority = BGCNT_PRIORITY(2); - gNamingScreenData->bgToReveal = 0; - gNamingScreenData->bgToHide = 1; - gNamingScreenData->template = sNamingScreenTemplates[gNamingScreenData->templateNum]; - gNamingScreenData->currentPage = gNamingScreenData->template->initialPage; - gNamingScreenData->inputCharBaseXPos = (240 - gNamingScreenData->template->maxChars * 8) / 2 + 6; - if (gNamingScreenData->templateNum == 4) - gNamingScreenData->inputCharBaseXPos += 11; - gNamingScreenData->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; - memset(gNamingScreenData->textBuffer, 0xFF, sizeof(gNamingScreenData->textBuffer)); - if (gNamingScreenData->template->copyExistingString != 0) - StringCopy(gNamingScreenData->textBuffer, gNamingScreenData->destBuffer); + sNamingScreen->state = STATE_FADE_IN; + sNamingScreen->bg1vOffset = 0; + sNamingScreen->bg2vOffset = 0; + sNamingScreen->bg1Priority = BGCNT_PRIORITY(1); + sNamingScreen->bg2Priority = BGCNT_PRIORITY(2); + sNamingScreen->bgToReveal = 0; + sNamingScreen->bgToHide = 1; + sNamingScreen->template = sNamingScreenTemplates[sNamingScreen->templateNum]; + sNamingScreen->currentPage = sNamingScreen->template->initialPage; + sNamingScreen->inputCharBaseXPos = (240 - sNamingScreen->template->maxChars * 8) / 2 + 6; + if (sNamingScreen->templateNum == NAMING_SCREEN_WALDA) + sNamingScreen->inputCharBaseXPos += 11; + sNamingScreen->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; + memset(sNamingScreen->textBuffer, EOS, sizeof(sNamingScreen->textBuffer)); + if (sNamingScreen->template->copyExistingString) + StringCopy(sNamingScreen->textBuffer, sNamingScreen->destBuffer); gKeyRepeatStartDelay = 16; } -static void sub_80E2FA4(void) +static void SetSpritesVisible(void) { u8 i; for (i = 0; i < MAX_SPRITES; i++) @@ -321,7 +493,7 @@ static void sub_80E2FA4(void) if (gSprites[i].inUse) gSprites[i].invisible = FALSE; } - sub_80E3E3C(0); + SetCursorInvisibility(FALSE); } static void NamingScreen_InitBGs(void) @@ -334,7 +506,7 @@ static void NamingScreen_InitBGs(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0858BE00, 4); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -346,125 +518,126 @@ static void NamingScreen_InitBGs(void) ChangeBgY(3, 0, 0); InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); - for (i = 0; i < 5; i++) - gNamingScreenData->windows[i] = AddWindow(&gUnknown_0858BE10[i]); + for (i = 0; i < WIN_COUNT; i++) + sNamingScreen->windows[i] = AddWindow(&sWindowTemplates[i]); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0xC, 0x8)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8)); - SetBgTilemapBuffer(1, gNamingScreenData->tilemapBuffer1); - SetBgTilemapBuffer(2, gNamingScreenData->tilemapBuffer2); - SetBgTilemapBuffer(3, gNamingScreenData->tilemapBuffer3); + SetBgTilemapBuffer(1, sNamingScreen->tilemapBuffer1); + SetBgTilemapBuffer(2, sNamingScreen->tilemapBuffer2); + SetBgTilemapBuffer(3, sNamingScreen->tilemapBuffer3); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); } -static void sub_80E3194(void) +static void CreateNamingScreenTask(void) { - CreateTask(sub_80E31B0, 2); - SetMainCallback2(sub_80E4F58); + CreateTask(Task_NamingScreen, 2); + SetMainCallback2(CB2_NamingScreen); } -static void sub_80E31B0(u8 taskId) +static void Task_NamingScreen(u8 taskId) { - switch (gNamingScreenData->state) + switch (sNamingScreen->state) { - case 0: - MainState_BeginFadeIn(); - sub_80E2FA4(); - NamingScreen_InitDisplayMode(); + case STATE_FADE_IN: + MainState_FadeIn(); + SetSpritesVisible(); + SetVBlank(); break; - case 1: + case STATE_WAIT_FADE_IN: MainState_WaitFadeIn(); break; - case 2: + case STATE_HANDLE_INPUT: MainState_HandleInput(); break; - case 3: + case STATE_MOVE_TO_OK_BUTTON: MainState_MoveToOKButton(); MainState_HandleInput(); break; - case 4: + case STATE_START_PAGE_SWAP: MainState_StartPageSwap(); break; - case 5: + case STATE_WAIT_PAGE_SWAP: MainState_WaitPageSwap(); break; - case 6: - MainState_6(); + case STATE_PRESSED_OK: + MainState_PressedOKButton(); break; - case 7: - sub_80E3604(); + case STATE_WAIT_SENT_TO_PC_MESSAGE: + MainState_WaitSentToPCMessage(); break; - case 8: - MainState_BeginFadeInOut(); + case STATE_FADE_OUT: + MainState_FadeOut(); break; - case 9: - MainState_WaitFadeOutAndExit(); + case STATE_EXIT: + MainState_Exit(); break; } } -static const u8 sPageOrderLowerFirst[] = +// Which gfx/pal to load for the swap page button +static const u8 sPageToNextGfxId[KBPAGE_COUNT] = { - KBPAGE_LETTERS_LOWER, - KBPAGE_SYMBOLS, - KBPAGE_LETTERS_UPPER + [KBPAGE_SYMBOLS] = PAGE_SWAP_UPPER, + [KBPAGE_LETTERS_UPPER] = PAGE_SWAP_LOWER, + [KBPAGE_LETTERS_LOWER] = PAGE_SWAP_OTHERS }; -static const u8 sPageOrderUpperFirst[] = +static const u8 sPageToNextKeyboardId[KBPAGE_COUNT] = { - KBPAGE_LETTERS_UPPER, - KBPAGE_LETTERS_LOWER, - KBPAGE_SYMBOLS + [KBPAGE_SYMBOLS] = KEYBOARD_LETTERS_UPPER, + [KBPAGE_LETTERS_UPPER] = KEYBOARD_LETTERS_LOWER, + [KBPAGE_LETTERS_LOWER] = KEYBOARD_SYMBOLS }; -static const u8 sPageOrderSymbolsFirst[] = +static const u8 sPageToKeyboardId[KBPAGE_COUNT] = { - KBPAGE_SYMBOLS, - KBPAGE_LETTERS_UPPER, - KBPAGE_LETTERS_LOWER + [KBPAGE_SYMBOLS] = KEYBOARD_SYMBOLS, + [KBPAGE_LETTERS_UPPER] = KEYBOARD_LETTERS_UPPER, + [KBPAGE_LETTERS_LOWER] = KEYBOARD_LETTERS_LOWER }; -static u8 sub_80E3244(u8 a1) +static u8 PageToNextGfxId(u8 page) { - return sPageOrderLowerFirst[a1]; + return sPageToNextGfxId[page]; } -static u8 sub_80E3254(void) +static u8 CurrentPageToNextKeyboardId(void) { - return sPageOrderUpperFirst[gNamingScreenData->currentPage]; + return sPageToNextKeyboardId[sNamingScreen->currentPage]; } -static u8 sub_80E3274(void) +static u8 CurrentPageToKeyboardId(void) { - return sPageOrderSymbolsFirst[gNamingScreenData->currentPage]; + return sPageToKeyboardId[sNamingScreen->currentPage]; } -static bool8 MainState_BeginFadeIn(void) +static bool8 MainState_FadeIn(void) { - sub_80E4CF8(3, gUnknown_08DD4544); - gNamingScreenData->currentPage = KBPAGE_LETTERS_UPPER; - sub_80E4CF8(2, gUnknown_08DD46E0); - sub_80E4CF8(1, gUnknown_08DD4620); - sub_80E4DE4(gNamingScreenData->windows[1], KBPAGE_LETTERS_LOWER); - sub_80E4DE4(gNamingScreenData->windows[0], KBPAGE_LETTERS_UPPER); - nullsub_10(2, KBPAGE_LETTERS_LOWER); - nullsub_10(1, KBPAGE_LETTERS_UPPER); - sub_80E4D10(); - sub_80E4964(); - sub_80E4EF0(); + DrawBgTilemap(3, gNamingScreenBackground_Tilemap); + sNamingScreen->currentPage = KBPAGE_LETTERS_UPPER; + DrawBgTilemap(2, gNamingScreenKeyboardLower_Tilemap); + DrawBgTilemap(1, gNamingScreenKeyboardUpper_Tilemap); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_2], KEYBOARD_LETTERS_LOWER); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_1], KEYBOARD_LETTERS_UPPER); + NamingScreen_Dummy(2, KEYBOARD_LETTERS_LOWER); + NamingScreen_Dummy(1, KEYBOARD_LETTERS_UPPER); + DrawTextEntry(); + DrawTextEntryBox(); + PrintControls(); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); BlendPalettes(-1, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gNamingScreenData->state++; + sNamingScreen->state++; return FALSE; } @@ -473,8 +646,8 @@ static bool8 MainState_WaitFadeIn(void) if (!gPaletteFade.active) { SetInputState(INPUT_STATE_ENABLED); - sub_80E3E94(1); - gNamingScreenData->state++; + SetCursorFlashing(TRUE); + sNamingScreen->state++; } return FALSE; } @@ -490,48 +663,48 @@ static bool8 MainState_MoveToOKButton(void) { SetInputState(INPUT_STATE_ENABLED); MoveCursorToOKButton(); - gNamingScreenData->state = MAIN_STATE_HANDLE_INPUT; + sNamingScreen->state = STATE_HANDLE_INPUT; } return FALSE; } -static bool8 MainState_6(void) +static bool8 MainState_PressedOKButton(void) { - sub_80E4BE4(); + SaveInputText(); SetInputState(INPUT_STATE_DISABLED); - sub_80E3E94(0); - sub_80E3948(3, 0, 1); - if (gNamingScreenData->templateNum == NAMING_SCREEN_CAUGHT_MON && - CalculatePlayerPartyCount() >= 6) + SetCursorFlashing(FALSE); + TryStartButtonFlash(BUTTON_COUNT, FALSE, TRUE); + if (sNamingScreen->templateNum == NAMING_SCREEN_CAUGHT_MON + && CalculatePlayerPartyCount() >= PARTY_SIZE) { DisplaySentToPCMessage(); - gNamingScreenData->state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE; + sNamingScreen->state = STATE_WAIT_SENT_TO_PC_MESSAGE; return FALSE; } else { - gNamingScreenData->state = MAIN_STATE_BEGIN_FADE_OUT; - return TRUE; //Exit the naming screen + sNamingScreen->state = STATE_FADE_OUT; + return TRUE; } } -static bool8 MainState_BeginFadeInOut(void) +static bool8 MainState_FadeOut(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gNamingScreenData->state++; + sNamingScreen->state++; return FALSE; } -static bool8 MainState_WaitFadeOutAndExit(void) +static bool8 MainState_Exit(void) { if (!gPaletteFade.active) { - if (gNamingScreenData->templateNum == NAMING_SCREEN_PLAYER) + if (sNamingScreen->templateNum == NAMING_SCREEN_PLAYER) SeedRngAndSetTrainerId(); - SetMainCallback2(gNamingScreenData->returnCallback); - DestroyTask(FindTaskIdByFunc(sub_80E31B0)); + SetMainCallback2(sNamingScreen->returnCallback); + DestroyTask(FindTaskIdByFunc(Task_NamingScreen)); FreeAllWindowBuffers(); - FREE_AND_SET_NULL(gNamingScreenData); + FREE_AND_SET_NULL(sNamingScreen); } return FALSE; } @@ -543,12 +716,12 @@ static void DisplaySentToPCMessage(void) if (!IsDestinationBoxFull()) { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); - StringCopy(gStringVar2, gNamingScreenData->destBuffer); + StringCopy(gStringVar2, sNamingScreen->destBuffer); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); - StringCopy(gStringVar2, gNamingScreenData->destBuffer); + StringCopy(gStringVar2, sNamingScreen->destBuffer); StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); stringToDisplay = 2; } @@ -563,12 +736,11 @@ static void DisplaySentToPCMessage(void) CopyWindowToVram(0, 3); } -static bool8 sub_80E3604(void) +static bool8 MainState_WaitSentToPCMessage(void) { RunTextPrinters(); - - if (!IsTextPrinterActive(0) && (gMain.newKeys & A_BUTTON)) - gNamingScreenData->state = MAIN_STATE_BEGIN_FADE_OUT; + if (!IsTextPrinterActive(0) && JOY_NEW(A_BUTTON)) + sNamingScreen->state = STATE_FADE_OUT; return FALSE; } @@ -576,12 +748,12 @@ static bool8 sub_80E3604(void) static bool8 MainState_StartPageSwap(void) { SetInputState(INPUT_STATE_DISABLED); - sub_80E4050(); + StartPageSwapButtonAnim(); StartPageSwapAnim(); - sub_80E3E3C(1); - sub_80E3948(0, 0, 1); + SetCursorInvisibility(TRUE); + TryStartButtonFlash(BUTTON_PAGE, FALSE, TRUE); PlaySE(SE_WIN_OPEN); - gNamingScreenData->state = MAIN_STATE_WAIT_PAGE_SWAP; + sNamingScreen->state = STATE_WAIT_PAGE_SWAP; return FALSE; } @@ -589,19 +761,19 @@ static bool8 MainState_WaitPageSwap(void) { s16 cursorX; s16 cursorY; - bool32 var3; + bool32 onLastColumn; if (IsPageSwapAnimNotInProgress()) { GetCursorPos(&cursorX, &cursorY); - var3 = (cursorX == GetCurrentPageColumnCount()); + onLastColumn = (cursorX == GetCurrentPageColumnCount()); - gNamingScreenData->state = MAIN_STATE_HANDLE_INPUT; - gNamingScreenData->currentPage++; - gNamingScreenData->currentPage %= 3; + sNamingScreen->state = STATE_HANDLE_INPUT; + sNamingScreen->currentPage++; + sNamingScreen->currentPage %= KBPAGE_COUNT; - if (var3) + if (onLastColumn) { cursorX = GetCurrentPageColumnCount(); } @@ -612,9 +784,9 @@ static bool8 MainState_WaitPageSwap(void) } SetCursorPos(cursorX, cursorY); - sub_80E4E5C(); + DrawKeyboardPageOnDeck(); SetInputState(INPUT_STATE_ENABLED); - sub_80E3E3C(0); + SetCursorInvisibility(FALSE); } return FALSE; } @@ -662,29 +834,29 @@ static bool8 IsPageSwapAnimNotInProgress(void) static bool8 PageSwapAnimState_Init(struct Task *task) { - gNamingScreenData->bg1vOffset = 0; - gNamingScreenData->bg2vOffset = 0; + sNamingScreen->bg1vOffset = 0; + sNamingScreen->bg2vOffset = 0; task->tState++; return 0; } static bool8 PageSwapAnimState_1(struct Task *task) { - u16 *const arr[] = + u16 *const vOffsets[] = { - &gNamingScreenData->bg2vOffset, - &gNamingScreenData->bg1vOffset + &sNamingScreen->bg2vOffset, + &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[gNamingScreenData->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[gNamingScreenData->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *vOffsets[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *vOffsets[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 64) { - u8 temp = gNamingScreenData->bg1Priority; //Why u8 and not u16? + u8 temp = sNamingScreen->bg1Priority; //Why u8 and not u16? - gNamingScreenData->bg1Priority = gNamingScreenData->bg2Priority; - gNamingScreenData->bg2Priority = temp; + sNamingScreen->bg1Priority = sNamingScreen->bg2Priority; + sNamingScreen->bg2Priority = temp; task->tState++; } return 0; @@ -692,21 +864,21 @@ static bool8 PageSwapAnimState_1(struct Task *task) static bool8 PageSwapAnimState_2(struct Task *task) { - u16 *const arr[] = + u16 *const vOffsets[] = { - &gNamingScreenData->bg2vOffset, - &gNamingScreenData->bg1vOffset + &sNamingScreen->bg2vOffset, + &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[gNamingScreenData->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[gNamingScreenData->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *vOffsets[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *vOffsets[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 128) { - u8 temp = gNamingScreenData->bgToReveal; + u8 temp = sNamingScreen->bgToReveal; - gNamingScreenData->bgToReveal = gNamingScreenData->bgToHide; - gNamingScreenData->bgToHide = temp; + sNamingScreen->bgToReveal = sNamingScreen->bgToHide; + sNamingScreen->bgToHide = temp; task->tState++; } return 0; @@ -725,221 +897,260 @@ static bool8 PageSwapAnimState_Done(struct Task *task) // //-------------------------------------------------- -static void sub_80E3920(void) +#define tButtonId data[0] +#define tKeepFlashing data[1] +#define tAllowFlash data[2] +#define tColor data[3] +#define tColorIncr data[4] +#define tColorDelay data[5] +#define tColorDelta data[6] + +static void CreateButtonFlashTask(void) { u8 taskId; - taskId = CreateTask(Task_80E39BC, 3); - gTasks[taskId].data[0] = 3; + taskId = CreateTask(Task_UpdateButtonFlash, 3); + gTasks[taskId].tButtonId = BUTTON_COUNT; } -static void sub_80E3948(u8 a, u8 b, u8 c) +static void TryStartButtonFlash(u8 button, bool8 keepFlashing, bool8 interruptCurFlash) { - struct Task *task = &gTasks[FindTaskIdByFunc(Task_80E39BC)]; + struct Task *task = &gTasks[FindTaskIdByFunc(Task_UpdateButtonFlash)]; - if (a == task->data[0] && c == 0) + if (button == task->tButtonId && !interruptCurFlash) { - task->data[1] = b; - task->data[2] = 1; + task->tKeepFlashing = keepFlashing; + task->tAllowFlash = TRUE; return; } - if (a == 3 && task->data[1] == 0 && c == 0) + if (button == BUTTON_COUNT && !task->tKeepFlashing && !interruptCurFlash) return; - if (task->data[0] != 3) - sub_80E3AE8(task->data[0]); - sub_80E3B10(task, a, b); + + if (task->tButtonId != BUTTON_COUNT) + RestoreButtonColor(task->tButtonId); + + StartButtonFlash(task, button, keepFlashing); } -static void Task_80E39BC(u8 taskId) +static void Task_UpdateButtonFlash(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->data[0] == 3 || task->data[2] == 0) + if (task->tButtonId == BUTTON_COUNT || !task->tAllowFlash) return; - MultiplyInvertedPaletteRGBComponents(sub_80E3A74(task->data[0]), task->data[3], task->data[3], task->data[3]); - if (task->data[5] != 0) - { - task->data[5]--; - if (task->data[5] != 0) - return; - } - task->data[5] = 2; - if (task->data[4] >= 0) + + MultiplyInvertedPaletteRGBComponents(GetButtonPalOffset(task->tButtonId), task->tColor, task->tColor, task->tColor); + + if (task->tColorDelay && --task->tColorDelay) + return; + + task->tColorDelay = 2; + if (task->tColorIncr >= 0) { - if (task->data[3] < 14) + if (task->tColor < 14) { - task->data[3] += task->data[4]; - task->data[6] += task->data[4]; + task->tColor += task->tColorIncr; + task->tColorDelta += task->tColorIncr; } else { - task->data[3] = 16; - task->data[6]++; + task->tColor = 16; + task->tColorDelta++; } } else { - task->data[3] += task->data[4]; - task->data[6] += task->data[4]; + task->tColor += task->tColorIncr; + task->tColorDelta += task->tColorIncr; } - if (task->data[3] == 16 && task->data[6] == 22) + if (task->tColor == 16 && task->tColorDelta == 22) { - task->data[4] = -4; + task->tColorIncr = -4; } - else if (task->data[3] == 0) + else if (task->tColor == 0) { - task->data[2] = task->data[1]; - task->data[4] = 2; - task->data[6] = 0; + task->tAllowFlash = task->tKeepFlashing; + task->tColorIncr = 2; + task->tColorDelta = 0; } } -static u16 sub_80E3A74(u8 a) +static u16 GetButtonPalOffset(u8 button) { - const u16 arr[] = + const u16 palOffsets[BUTTON_COUNT + 1] = { - IndexOfSpritePaletteTag(4) * 16 + 0x10E, - IndexOfSpritePaletteTag(6) * 16 + 0x10E, - IndexOfSpritePaletteTag(7) * 16 + 0x10E, - IndexOfSpritePaletteTag(7) * 16 + 0x101, + [BUTTON_PAGE] = IndexOfSpritePaletteTag(PALTAG_PAGE_SWAP) * 16 + 0x10E, + [BUTTON_BACK] = IndexOfSpritePaletteTag(PALTAG_BACK_BUTTON) * 16 + 0x10E, + [BUTTON_OK] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x10E, + [BUTTON_COUNT] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x101, }; - return arr[a]; + return palOffsets[button]; } -static void sub_80E3AE8(u8 a) +static void RestoreButtonColor(u8 button) { - u16 index = sub_80E3A74(a); - + u16 index = GetButtonPalOffset(button); gPlttBufferFaded[index] = gPlttBufferUnfaded[index]; } -static void sub_80E3B10(struct Task *task, u8 b, u8 c) +static void StartButtonFlash(struct Task *task, u8 button, bool8 keepFlashing) { - task->data[0] = b; - task->data[1] = c; - task->data[2] = 1; - task->data[3] = 4; - task->data[4] = 2; - task->data[5] = 0; - task->data[6] = 4; + task->tButtonId = button; + task->tKeepFlashing = keepFlashing; + task->tAllowFlash = TRUE; + task->tColor = 4; + task->tColorIncr = 2; + task->tColorDelay = 0; + task->tColorDelta = 4; } -static void sub_80E3B30(struct Sprite *sprite) +#undef tButtonId +#undef tColor + +// Sprite data for the the cursor +#define sX data[0] +#define sY data[1] +#define sPrevX data[2] +#define sPrevY data[3] +#define sInvisible data[4] & 0x00FF +#define sFlashing data[4] & 0xFF00 +#define sColor data[5] +#define sColorIncr data[6] +#define sColorDelay data[7] + +static void SpriteCB_Cursor(struct Sprite *sprite) { if (sprite->animEnded) StartSpriteAnim(sprite, 0); - sprite->invisible = (sprite->data[4] & 0xFF); - if (sprite->data[0] == GetCurrentPageColumnCount()) + + // Hide cursor when on button column + sprite->invisible = sprite->sInvisible; + if (sprite->sX == GetCurrentPageColumnCount()) sprite->invisible = TRUE; - if (sprite->invisible || (sprite->data[4] & 0xFF00) == 0 - || sprite->data[0] != sprite->data[2] || sprite->data[1] != sprite->data[3]) + + if (sprite->invisible + || !(sprite->sFlashing) + || sprite->sX != sprite->sPrevX + || sprite->sY != sprite->sPrevY) { - sprite->data[5] = 0; - sprite->data[6] = 2; - sprite->data[7] = 2; + sprite->sColor = 0; + sprite->sColorIncr = 2; + sprite->sColorDelay = 2; } - sprite->data[7]--; - if (sprite->data[7] == 0) + + sprite->sColorDelay--; + if (sprite->sColorDelay == 0) { - sprite->data[5] += sprite->data[6]; - if (sprite->data[5] == 16 || sprite->data[5] == 0) - sprite->data[6] = -sprite->data[6]; - sprite->data[7] = 2; + sprite->sColor += sprite->sColorIncr; + if (sprite->sColor == 16 || sprite->sColor == 0) + sprite->sColorIncr = -sprite->sColorIncr; + sprite->sColorDelay = 2; } - if ((sprite->data[4] & 0xFF00) != 0) + + if (sprite->sFlashing) { - s8 gb = sprite->data[5]; - s8 r = sprite->data[5] >> 1; - u16 index = IndexOfSpritePaletteTag(5) * 16 + 0x0101; + s8 gb = sprite->sColor; + s8 r = sprite->sColor >> 1; + u16 index = IndexOfSpritePaletteTag(PALTAG_CURSOR) * 16 + 0x0101; MultiplyInvertedPaletteRGBComponents(index, r, gb, gb); } } -static void sub_80E3C20(struct Sprite *sprite) +#define sDelay data[0] +#define sXPosId data[1] + +static void SpriteCB_InputArrow(struct Sprite *sprite) { - const s16 arr[] = {0, -4, -2, -1}; + const s16 x[] = {0, -4, -2, -1}; - if (sprite->data[0] == 0 || --sprite->data[0] == 0) + if (sprite->sDelay == 0 || --sprite->sDelay == 0) { - sprite->data[0] = 8; - sprite->data[1] = (sprite->data[1] + 1) & 3; + sprite->sDelay = 8; + sprite->sXPosId = (sprite->sXPosId + 1) & (ARRAY_COUNT(x) - 1); } - sprite->pos2.x = arr[sprite->data[1]]; + sprite->pos2.x = x[sprite->sXPosId]; } -static void sub_80E3C6C(struct Sprite *sprite) +#undef sDelay +#undef sXPosId + +#define sId data[0] // set in CreateTextEntrySprites +#define sYPosId data[1] +#define sDelay data[2] + +static void SpriteCB_Underscore(struct Sprite *sprite) { - const s16 arr[] = {2, 3, 2, 1}; - u8 var; + const s16 y[] = {2, 3, 2, 1}; + u8 pos; - var = GetTextCaretPosition(); - if (var != (u8)sprite->data[0]) + pos = GetTextEntryPosition(); + if (pos != (u8)sprite->sId) { sprite->pos2.y = 0; - sprite->data[1] = 0; - sprite->data[2] = 0; + sprite->sYPosId = 0; + sprite->sDelay = 0; } else { - sprite->pos2.y = arr[sprite->data[1]]; - sprite->data[2]++; - if (sprite->data[2] > 8) + sprite->pos2.y = y[sprite->sYPosId]; + sprite->sDelay++; + if (sprite->sDelay > 8) { - sprite->data[1] = (sprite->data[1] + 1) & 3; - sprite->data[2] = 0; + sprite->sYPosId = (sprite->sYPosId + 1) & (ARRAY_COUNT(y) - 1); + sprite->sDelay = 0; } } } -//-------------------------------------------------- -// Cursor -//-------------------------------------------------- +#undef sId +#undef sYPosId +#undef sDelay -static void sub_80E3CC8(void) +static void CreateSprites(void) { - CursorInit(); - CreatePageSwitcherSprites(); + CreateCursorSprite(); + CreatePageSwapButtonSprites(); CreateBackOkSprites(); - CreateUnderscoreSprites(); + CreateTextEntrySprites(); CreateInputTargetIcon(); } -static void CursorInit(void) +static void CreateCursorSprite(void) { - gNamingScreenData->cursorSpriteId = CreateSprite(&gUnknown_0858C138, 38, 88, 1); - sub_80E3E3C(1); - gSprites[gNamingScreenData->cursorSpriteId].oam.priority = 1; - gSprites[gNamingScreenData->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND; - gSprites[gNamingScreenData->cursorSpriteId].data[6] = 1; - gSprites[gNamingScreenData->cursorSpriteId].data[6] = 2; + sNamingScreen->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, 38, 88, 1); + SetCursorInvisibility(TRUE); + gSprites[sNamingScreen->cursorSpriteId].oam.priority = 1; + gSprites[sNamingScreen->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND; + gSprites[sNamingScreen->cursorSpriteId].sColorIncr = 1; // ? immediately overwritten + gSprites[sNamingScreen->cursorSpriteId].sColorIncr = 2; SetCursorPos(0, 0); } static void SetCursorPos(s16 x, s16 y) { - struct Sprite *cursorSprite = &gSprites[gNamingScreenData->cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; - if (x < gUnknown_0858BEA0[sub_80E3274()]) - cursorSprite->pos1.x = gUnknown_0858BEA3[x + sub_80E3274() * 8] + 38; + if (x < sPageColumnCounts[CurrentPageToKeyboardId()]) + cursorSprite->pos1.x = sPageColumnXPos[x + CurrentPageToKeyboardId() * KBCOL_COUNT] + 38; else cursorSprite->pos1.x = 0; cursorSprite->pos1.y = y * 16 + 88; - cursorSprite->data[2] = cursorSprite->data[0]; - cursorSprite->data[3] = cursorSprite->data[1]; - cursorSprite->data[0] = x; - cursorSprite->data[1] = y; + cursorSprite->sPrevX = cursorSprite->sX; + cursorSprite->sPrevY = cursorSprite->sY; + cursorSprite->sX = x; + cursorSprite->sY = y; } static void GetCursorPos(s16 *x, s16 *y) { - struct Sprite *cursorSprite = &gSprites[gNamingScreenData->cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; - *x = cursorSprite->data[0]; - *y = cursorSprite->data[1]; + *x = cursorSprite->sX; + *y = cursorSprite->sY; } static void MoveCursorToOKButton(void) @@ -947,38 +1158,30 @@ static void MoveCursorToOKButton(void) SetCursorPos(GetCurrentPageColumnCount(), 2); } -static void sub_80E3E3C(u8 a) +static void SetCursorInvisibility(bool8 invisible) { - gSprites[gNamingScreenData->cursorSpriteId].data[4] &= -256; - gSprites[gNamingScreenData->cursorSpriteId].data[4] |= a; - StartSpriteAnim(&gSprites[gNamingScreenData->cursorSpriteId], 0); + gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF00; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= invisible; // sInvisible + StartSpriteAnim(&gSprites[sNamingScreen->cursorSpriteId], 0); } -static void sub_80E3E94(u8 a) +static void SetCursorFlashing(bool8 flashing) { - gSprites[gNamingScreenData->cursorSpriteId].data[4] &= 0xFF; - gSprites[gNamingScreenData->cursorSpriteId].data[4] |= a << 8; + gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= flashing << 8; // sFlashing } -static void sub_80E3ED8(void) +static void SquishCursor(void) { - StartSpriteAnim(&gSprites[gNamingScreenData->cursorSpriteId], 1); + StartSpriteAnim(&gSprites[sNamingScreen->cursorSpriteId], 1); } static bool8 IsCursorAnimFinished(void) { - return gSprites[gNamingScreenData->cursorSpriteId].animEnded; + return gSprites[sNamingScreen->cursorSpriteId].animEnded; } -enum -{ - KEY_ROLE_CHAR, - KEY_ROLE_PAGE, - KEY_ROLE_BACKSPACE, - KEY_ROLE_OK, -}; - -static const u8 sKeyRoles[] = {KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK}; +static const u8 sButtonKeyRoles[] = {KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK}; static u8 GetKeyRoleAtCursorPos(void) { @@ -989,146 +1192,174 @@ static u8 GetKeyRoleAtCursorPos(void) if (cursorX < GetCurrentPageColumnCount()) return KEY_ROLE_CHAR; else - return sKeyRoles[cursorY]; + return sButtonKeyRoles[cursorY]; } +// If the cursor's x is equal to the column count, cursor is in the button column static u8 GetCurrentPageColumnCount(void) { - return gUnknown_0858BEA0[sub_80E3274()]; + return sPageColumnCounts[CurrentPageToKeyboardId()]; } -static void CreatePageSwitcherSprites(void) +#undef sX +#undef sY +#undef sPrevX +#undef sPrevY +#undef sInvisible +#undef sFlashing +#undef sColor +#undef sColorIncr +#undef sColorDelay + +static bool8 PageSwapSprite_Init(struct Sprite *); +static bool8 PageSwapSprite_Idle(struct Sprite *); +static bool8 PageSwapSprite_SlideOff(struct Sprite *); +static bool8 PageSwapSprite_SlideOn(struct Sprite *); + +#define sState data[0] +#define sPage data[1] +#define sTextSpriteId data[6] +#define sButtonSpriteId data[7] + +static void CreatePageSwapButtonSprites(void) { - u8 spriteId1; - u8 spriteId2; - u8 spriteId3; + u8 frameSpriteId; + u8 textSpriteId; + u8 buttonSpriteId; - spriteId1 = CreateSprite(&gUnknown_0858C0C0, 0xCC, 0x58, 0); - gNamingScreenData->selectBtnFrameSpriteId = spriteId1; - SetSubspriteTables(&gSprites[spriteId1], gUnknown_0858C050); - gSprites[spriteId1].invisible = TRUE; + frameSpriteId = CreateSprite(&sSpriteTemplate_PageSwapFrame, 204, 88, 0); + sNamingScreen->swapBtnFrameSpriteId = frameSpriteId; + SetSubspriteTables(&gSprites[frameSpriteId], sSubspriteTable_PageSwapFrame); + gSprites[frameSpriteId].invisible = TRUE; - spriteId2 = CreateSprite(&gUnknown_0858C0F0, 0xCC, 0x54, 1); - gSprites[spriteId1].data[6] = spriteId2; - SetSubspriteTables(&gSprites[spriteId2], gUnknown_0858C058); - gSprites[spriteId2].invisible = TRUE; + textSpriteId = CreateSprite(&sSpriteTemplate_PageSwapText, 204, 84, 1); + gSprites[frameSpriteId].sTextSpriteId = textSpriteId; + SetSubspriteTables(&gSprites[textSpriteId], sSubspriteTable_PageSwapText); + gSprites[textSpriteId].invisible = TRUE; - spriteId3 = CreateSprite(&gUnknown_0858C0D8, 0xCC, 0x53, 2); - gSprites[spriteId3].oam.priority = 1; - gSprites[spriteId1].data[7] = spriteId3; - gSprites[spriteId3].invisible = TRUE; + buttonSpriteId = CreateSprite(&sSpriteTemplate_PageSwapButton, 204, 83, 2); + gSprites[buttonSpriteId].oam.priority = 1; + gSprites[frameSpriteId].sButtonSpriteId = buttonSpriteId; + gSprites[buttonSpriteId].invisible = TRUE; } -static void sub_80E4050(void) +static void StartPageSwapButtonAnim(void) { - struct Sprite *sprite = &gSprites[gNamingScreenData->selectBtnFrameSpriteId]; + struct Sprite *sprite = &gSprites[sNamingScreen->swapBtnFrameSpriteId]; - sprite->data[0] = 2; - sprite->data[1] = gNamingScreenData->currentPage; + sprite->sState = 2; // go to PageSwapSprite_SlideOff + sprite->sPage = sNamingScreen->currentPage; } -static u8 sub_80E40AC(struct Sprite *); -static u8 sub_80E4100(struct Sprite *); -static u8 sub_80E4104(struct Sprite *); -static u8 sub_80E4178(struct Sprite *); - -static u8 (*const gUnknown_0858BEE8[])(struct Sprite *) = +static u8 (*const sPageSwapSpriteFuncs[])(struct Sprite *) = { - sub_80E40AC, - sub_80E4100, - sub_80E4104, - sub_80E4178, + PageSwapSprite_Init, + PageSwapSprite_Idle, + PageSwapSprite_SlideOff, + PageSwapSprite_SlideOn, }; -static void sub_80E4084(struct Sprite *sprite) +static void SpriteCB_PageSwap(struct Sprite *sprite) { - while (gUnknown_0858BEE8[sprite->data[0]](sprite) != 0); + while (sPageSwapSpriteFuncs[sprite->sState](sprite)); } -static u8 sub_80E40AC(struct Sprite *sprite) +static bool8 PageSwapSprite_Init(struct Sprite *sprite) { - struct Sprite *sprite1 = &gSprites[sprite->data[6]]; - struct Sprite *sprite2 = &gSprites[sprite->data[7]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; + struct Sprite *button = &gSprites[sprite->sButtonSpriteId]; - sub_80E41B8(sub_80E3244(gNamingScreenData->currentPage), sprite1, sprite2); - sprite->data[0]++; - return 0; + SetPageSwapButtonGfx(PageToNextGfxId(sNamingScreen->currentPage), text, button); + sprite->sState++; + return FALSE; } -static u8 sub_80E4100(struct Sprite *sprite) +static bool8 PageSwapSprite_Idle(struct Sprite *sprite) { - return 0; + return FALSE; } -static u8 sub_80E4104(struct Sprite *sprite) +static bool8 PageSwapSprite_SlideOff(struct Sprite *sprite) { - struct Sprite *r4 = &gSprites[sprite->data[6]]; - struct Sprite *r5 = &gSprites[sprite->data[7]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; + struct Sprite *button = &gSprites[sprite->sButtonSpriteId]; - r4->pos2.y++; - if (r4->pos2.y > 7) + text->pos2.y++; + if (text->pos2.y > 7) { - sprite->data[0]++; - r4->pos2.y = -4; - r4->invisible = TRUE; - sub_80E41B8(sub_80E3244(((u8)sprite->data[1] + 1) % 3), r4, r5); + sprite->sState++; + text->pos2.y = -4; + text->invisible = TRUE; + SetPageSwapButtonGfx(PageToNextGfxId(((u8)sprite->sPage + 1) % KBPAGE_COUNT), text, button); } - return 0; + return FALSE; } -static u8 sub_80E4178(struct Sprite *sprite) +static bool8 PageSwapSprite_SlideOn(struct Sprite *sprite) { - struct Sprite *r2 = &gSprites[sprite->data[6]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; - r2->invisible = FALSE; - r2->pos2.y++; - if (r2->pos2.y >= 0) + text->invisible = FALSE; + text->pos2.y++; + if (text->pos2.y >= 0) { - r2->pos2.y = 0; - sprite->data[0] = 1; + text->pos2.y = 0; + sprite->sState = 1; // go to PageSwapSprite_Idle } - return 0; + return FALSE; } -static const u16 gUnknown_0858BEF8[] = {1, 3, 2}; -static const u16 gUnknown_0858BEFE[] = {4, 6, 5}; +static const u16 sPageSwapPalTags[] = { + [PAGE_SWAP_UPPER] = PALTAG_PAGE_SWAP_UPPER, + [PAGE_SWAP_OTHERS] = PALTAG_PAGE_SWAP_OTHERS, + [PAGE_SWAP_LOWER] = PALTAG_PAGE_SWAP_LOWER +}; + +static const u16 sPageSwapGfxTags[] = { + [PAGE_SWAP_UPPER] = GFXTAG_PAGE_SWAP_UPPER, + [PAGE_SWAP_OTHERS] = GFXTAG_PAGE_SWAP_OTHERS, + [PAGE_SWAP_LOWER] = GFXTAG_PAGE_SWAP_LOWER +}; -static void sub_80E41B8(u8 a, struct Sprite *b, struct Sprite *c) +static void SetPageSwapButtonGfx(u8 page, struct Sprite *text, struct Sprite *button) { - c->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_0858BEF8[a]); - b->sheetTileStart = GetSpriteTileStartByTag(gUnknown_0858BEFE[a]); - b->subspriteTableNum = a; + button->oam.paletteNum = IndexOfSpritePaletteTag(sPageSwapPalTags[page]); + text->sheetTileStart = GetSpriteTileStartByTag(sPageSwapGfxTags[page]); + text->subspriteTableNum = page; } -// +#undef sState +#undef sPage +#undef sTextSpriteId +#undef sButtonSpriteId static void CreateBackOkSprites(void) { u8 spriteId; - spriteId = CreateSprite(&gUnknown_0858C108, 0xCC, 0x74, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C070); + spriteId = CreateSprite(&sSpriteTemplate_BackButton, 204, 116, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_Button); gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gUnknown_0858C120, 0xCC, 0x8C, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C070); + spriteId = CreateSprite(&sSpriteTemplate_OkButton, 204, 140, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_Button); gSprites[spriteId].invisible = TRUE; } -static void CreateUnderscoreSprites(void) +static void CreateTextEntrySprites(void) { u8 spriteId; s16 xPos; u8 i; - xPos = gNamingScreenData->inputCharBaseXPos - 5; - spriteId = CreateSprite(&sSpriteTemplate_InputArrow, xPos, 0x38, 0); + xPos = sNamingScreen->inputCharBaseXPos - 5; + spriteId = CreateSprite(&sSpriteTemplate_InputArrow, xPos, 56, 0); gSprites[spriteId].oam.priority = 3; gSprites[spriteId].invisible = TRUE; - xPos = gNamingScreenData->inputCharBaseXPos; - for (i = 0; i < gNamingScreenData->template->maxChars; i++, xPos += 8) + xPos = sNamingScreen->inputCharBaseXPos; + for (i = 0; i < sNamingScreen->template->maxChars; i++, xPos += 8) { - spriteId = CreateSprite(&sSpriteTemplate_Underscore, xPos + 3, 0x3C, 0); + spriteId = CreateSprite(&sSpriteTemplate_Underscore, xPos + 3, 60, 0); gSprites[spriteId].oam.priority = 3; gSprites[spriteId].data[0] = i; gSprites[spriteId].invisible = TRUE; @@ -1139,27 +1370,27 @@ static void CreateUnderscoreSprites(void) // Icon creation (the thing you're naming or giving input to) //-------------------------------------------------- -static void TaskDummy2(void); +static void NamingScreen_NoIcon(void); static void NamingScreen_CreatePlayerIcon(void); static void NamingScreen_CreatePCIcon(void); static void NamingScreen_CreateMonIcon(void); -static void NamingScreen_CreateWandaDadIcon(void); +static void NamingScreen_CreateWaldaDadIcon(void); static void (*const sIconFunctions[])(void) = { - TaskDummy2, + NamingScreen_NoIcon, NamingScreen_CreatePlayerIcon, NamingScreen_CreatePCIcon, NamingScreen_CreateMonIcon, - NamingScreen_CreateWandaDadIcon, + NamingScreen_CreateWaldaDadIcon, }; static void CreateInputTargetIcon(void) { - sIconFunctions[gNamingScreenData->template->iconFunction](); + sIconFunctions[sNamingScreen->template->iconFunction](); } -static void TaskDummy2(void) +static void NamingScreen_NoIcon(void) { } @@ -1169,8 +1400,8 @@ static void NamingScreen_CreatePlayerIcon(void) u8 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, gNamingScreenData->monSpecies); - spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 0x38, 0x25, 0); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, sNamingScreen->monSpecies); + spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); } @@ -1179,8 +1410,8 @@ static void NamingScreen_CreatePCIcon(void) { u8 spriteId; - spriteId = CreateSprite(&gUnknown_0858C180, 0x38, 0x29, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C078); + spriteId = CreateSprite(&sSpriteTemplate_PCIcon, 56, 41, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_PCIcon); gSprites[spriteId].oam.priority = 3; } @@ -1189,15 +1420,15 @@ static void NamingScreen_CreateMonIcon(void) u8 spriteId; LoadMonIconPalettes(); - spriteId = CreateMonIcon(gNamingScreenData->monSpecies, SpriteCallbackDummy, 0x38, 0x28, 0, gNamingScreenData->monPersonality, 1); + spriteId = CreateMonIcon(sNamingScreen->monSpecies, SpriteCallbackDummy, 56, 40, 0, sNamingScreen->monPersonality, 1); gSprites[spriteId].oam.priority = 3; } -static void NamingScreen_CreateWandaDadIcon(void) +static void NamingScreen_CreateWaldaDadIcon(void) { u8 spriteId; - spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 0x38, 0x25, 0); + spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); } @@ -1213,87 +1444,87 @@ static bool8 KeyboardKeyHandler_OK(u8); static bool8 (*const sKeyboardKeyHandlers[])(u8) = { - KeyboardKeyHandler_Character, - KeyboardKeyHandler_Page, - KeyboardKeyHandler_Backspace, - KeyboardKeyHandler_OK, + [KEY_ROLE_CHAR] = KeyboardKeyHandler_Character, + [KEY_ROLE_PAGE] = KeyboardKeyHandler_Page, + [KEY_ROLE_BACKSPACE] = KeyboardKeyHandler_Backspace, + [KEY_ROLE_OK] = KeyboardKeyHandler_OK, }; static bool8 HandleKeyboardEvent(void) { - u8 event = GetInputEvent(); + u8 input = GetInputEvent(); u8 keyRole = GetKeyRoleAtCursorPos(); - if (event == KBEVENT_PRESSED_SELECT) + if (input == INPUT_SELECT) { - return sub_80E45E0(); + return SwapKeyboardPage(); } - else if (event == KBEVENT_PRESSED_B) + else if (input == INPUT_B_BUTTON) { DeleteTextCharacter(); return FALSE; } - else if (event == KBEVENT_PRESSED_START) + else if (input == INPUT_START) { MoveCursorToOKButton(); return FALSE; } else { - return sKeyboardKeyHandlers[keyRole](event); + return sKeyboardKeyHandlers[keyRole](input); } } -static bool8 KeyboardKeyHandler_Character(u8 event) +static bool8 KeyboardKeyHandler_Character(u8 input) { - sub_80E3948(3, 0, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_COUNT, FALSE, FALSE); + if (input == INPUT_A_BUTTON) { - bool8 var = sub_80E4B54(); + bool8 textFull = AddTextCharacter(); - sub_80E3ED8(); - if (var) + SquishCursor(); + if (textFull) { - SetInputState(INPUT_STATE_2); - gNamingScreenData->state = MAIN_STATE_MOVE_TO_OK_BUTTON; + SetInputState(INPUT_STATE_OVERRIDE); + sNamingScreen->state = STATE_MOVE_TO_OK_BUTTON; } } return FALSE; } -static bool8 KeyboardKeyHandler_Page(u8 event) +static bool8 KeyboardKeyHandler_Page(u8 input) { - sub_80E3948(0, 1, 0); - if (event == KBEVENT_PRESSED_A) - return sub_80E45E0(); + TryStartButtonFlash(BUTTON_PAGE, TRUE, FALSE); + if (input == INPUT_A_BUTTON) + return SwapKeyboardPage(); else return FALSE; } -static bool8 KeyboardKeyHandler_Backspace(u8 event) +static bool8 KeyboardKeyHandler_Backspace(u8 input) { - sub_80E3948(1, 1, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_BACK, TRUE, FALSE); + if (input == INPUT_A_BUTTON) DeleteTextCharacter(); return FALSE; } -static bool8 KeyboardKeyHandler_OK(u8 event) +static bool8 KeyboardKeyHandler_OK(u8 input) { - sub_80E3948(2, 1, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_OK, TRUE, FALSE); + if (input == INPUT_A_BUTTON) { PlaySE(SE_SELECT); - gNamingScreenData->state = MAIN_STATE_6; + sNamingScreen->state = STATE_PRESSED_OK; return TRUE; } else return FALSE; } -static bool8 sub_80E45E0(void) +static bool8 SwapKeyboardPage(void) { - gNamingScreenData->state = MAIN_STATE_START_PAGE_SWAP; + sNamingScreen->state = STATE_START_PAGE_SWAP; return TRUE; } @@ -1301,33 +1532,26 @@ static bool8 sub_80E45E0(void) // Input handling //-------------------------------------------------- -enum -{ - FNKEY_CASE, - FNKEY_BACK, - FNKEY_OK, -}; - #define tState data[0] #define tKeyboardEvent data[1] -#define tKbFunctionKey data[2] +#define tButtonId data[2] -static void InputState_Disabled(struct Task *); -static void InputState_Enabled(struct Task *); -static void InputState_2(struct Task *); +static void Input_Disabled(struct Task *); +static void Input_Enabled(struct Task *); +static void Input_Override(struct Task *); -static void (*const sInputStateFuncs[])(struct Task *) = +static void (*const sInputFuncs[])(struct Task *) = { - InputState_Disabled, - InputState_Enabled, - InputState_2, + [INPUT_STATE_DISABLED] = Input_Disabled, + [INPUT_STATE_ENABLED] = Input_Enabled, + [INPUT_STATE_OVERRIDE] = Input_Override, }; static void Task_HandleInput(u8); static void HandleDpadMovement(struct Task *); -static void InputInit(void) +static void CreateInputHandlerTask(void) { CreateTask(Task_HandleInput, 1); } @@ -1348,121 +1572,128 @@ static void SetInputState(u8 state) static void Task_HandleInput(u8 taskId) { - sInputStateFuncs[gTasks[taskId].tState](&gTasks[taskId]); + sInputFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void InputState_Disabled(struct Task *task) +static void Input_Disabled(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; } -static void InputState_Enabled(struct Task *task) +static void Input_Enabled(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; - if (gMain.newKeys & A_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_A; - else if (gMain.newKeys & B_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_B; - else if (gMain.newKeys & SELECT_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_SELECT; - else if (gMain.newKeys & START_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_START; + if (JOY_NEW(A_BUTTON)) + task->tKeyboardEvent = INPUT_A_BUTTON; + else if (JOY_NEW(B_BUTTON)) + task->tKeyboardEvent = INPUT_B_BUTTON; + else if (JOY_NEW(SELECT_BUTTON)) + task->tKeyboardEvent = INPUT_SELECT; + else if (JOY_NEW(START_BUTTON)) + task->tKeyboardEvent = INPUT_START; else HandleDpadMovement(task); } -static void InputState_2(struct Task *task) +static void Input_Override(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; } static void HandleDpadMovement(struct Task *task) { const s16 sDpadDeltaX[] = { - 0, //none - 0, //up - 0, //down - -1, //left - 1 //right + [INPUT_NONE] = 0, + [INPUT_DPAD_UP] = 0, + [INPUT_DPAD_DOWN] = 0, + [INPUT_DPAD_LEFT] = -1, + [INPUT_DPAD_RIGHT] = 1 }; const s16 sDpadDeltaY[] = { - 0, //none - -1, //up - 1, //down - 0, //left - 0 //right + [INPUT_NONE] = 0, + [INPUT_DPAD_UP] = -1, + [INPUT_DPAD_DOWN] = 1, + [INPUT_DPAD_LEFT] = 0, + [INPUT_DPAD_RIGHT] = 0 }; - const s16 s4RowTo3RowTableY[] = {0, 1, 1, 2}; - const s16 gUnknown_0858BF50[] = {0, 0, 3}; + const s16 sKeyRowToButtonRow[KBROW_COUNT] = {0, 1, 1, 2}; + const s16 sButtonRowToKeyRow[BUTTON_COUNT] = {0, 0, 3}; s16 cursorX; s16 cursorY; - u16 dpadDir; + u16 input; s16 prevCursorX; GetCursorPos(&cursorX, &cursorY); - dpadDir = 0; - if (gMain.newAndRepeatedKeys & DPAD_UP) - dpadDir = 1; - if (gMain.newAndRepeatedKeys & DPAD_DOWN) - dpadDir = 2; - if (gMain.newAndRepeatedKeys & DPAD_LEFT) - dpadDir = 3; - if (gMain.newAndRepeatedKeys & DPAD_RIGHT) - dpadDir = 4; - - //Get new cursor position + input = INPUT_NONE; + if (JOY_REPEAT(DPAD_UP)) + input = INPUT_DPAD_UP; + if (JOY_REPEAT(DPAD_DOWN)) + input = INPUT_DPAD_DOWN; + if (JOY_REPEAT(DPAD_LEFT)) + input = INPUT_DPAD_LEFT; + if (JOY_REPEAT(DPAD_RIGHT)) + input = INPUT_DPAD_RIGHT; + + // Get new cursor position prevCursorX = cursorX; - cursorX += sDpadDeltaX[dpadDir]; - cursorY += sDpadDeltaY[dpadDir]; + cursorX += sDpadDeltaX[input]; + cursorY += sDpadDeltaY[input]; - //Wrap cursor position in the X direction + // Wrap cursor position in the X direction if (cursorX < 0) cursorX = GetCurrentPageColumnCount(); if (cursorX > GetCurrentPageColumnCount()) cursorX = 0; - //Handle cursor movement in X direction - if (sDpadDeltaX[dpadDir] != 0) + + // Handle moving on/off the button column + if (sDpadDeltaX[input] != 0) { if (cursorX == GetCurrentPageColumnCount()) { - //We are now on the last column - task->tKbFunctionKey = cursorY; - cursorY = s4RowTo3RowTableY[cursorY]; + // Moved onto button column + // Save cursor pos in tButtonId for moving back onto keys + task->tButtonId = cursorY; + cursorY = sKeyRowToButtonRow[cursorY]; } else if (prevCursorX == GetCurrentPageColumnCount()) { - if (cursorY == 1) - cursorY = task->tKbFunctionKey; + // Moved off button column + // If you're on the middle button, go to the row that + // the cursor was on previously (saved in tButtonId above) + if (cursorY == BUTTON_COUNT / 2) + cursorY = task->tButtonId; else - cursorY = gUnknown_0858BF50[cursorY]; + cursorY = sButtonRowToKeyRow[cursorY]; } } + // Wrap cursor position in the y direction if (cursorX == GetCurrentPageColumnCount()) { - //There are only 3 keys on the last column, unlike the others, - //so wrap Y accordingly + // There are only 3 keys in the button column + // so wrap Y accordingly if (cursorY < 0) - cursorY = 2; - if (cursorY > 2) + cursorY = BUTTON_COUNT - 1; + if (cursorY >= BUTTON_COUNT) cursorY = 0; + if (cursorY == 0) - task->tKbFunctionKey = FNKEY_BACK; - else if (cursorY == 2) - task->tKbFunctionKey = FNKEY_OK; + task->tButtonId = BUTTON_BACK; + else if (cursorY == BUTTON_COUNT - 1) + task->tButtonId = BUTTON_OK; } else { if (cursorY < 0) - cursorY = 3; - if (cursorY > 3) + cursorY = KBROW_COUNT - 1; + if (cursorY > KBROW_COUNT - 1) cursorY = 0; } SetCursorPos(cursorX, cursorY); @@ -1470,55 +1701,55 @@ static void HandleDpadMovement(struct Task *task) #undef tState #undef tKeyboardEvent -#undef tKbFunctionKey +#undef tButtonId -static void sub_80E4894(void) +static void DrawNormalTextEntryBox(void) { - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); - AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); - PutWindowTilemap(gNamingScreenData->windows[3]); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], PIXEL_FILL(1)); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], 1, sNamingScreen->template->title, 8, 1, 0, 0); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX]); } -static void sub_80E48E8(void) +static void DrawMonTextEntryBox(void) { - u8 buffer[0x20]; + u8 buffer[32]; - StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); - StringAppendN(buffer, gNamingScreenData->template->title, 15); - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); - AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); - PutWindowTilemap(gNamingScreenData->windows[3]); + StringCopy(buffer, gSpeciesNames[sNamingScreen->monSpecies]); + StringAppendN(buffer, sNamingScreen->template->title, 15); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], PIXEL_FILL(1)); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], 1, buffer, 8, 1, 0, 0); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX]); } -static void (*const gUnknown_0858BF58[])(void) = +static void (*const sDrawTextEntryBoxFuncs[])(void) = { - sub_80E4894, - sub_80E4894, - sub_80E48E8, - sub_80E48E8, - sub_80E4894, + [NAMING_SCREEN_PLAYER] = DrawNormalTextEntryBox, + [NAMING_SCREEN_BOX] = DrawNormalTextEntryBox, + [NAMING_SCREEN_CAUGHT_MON] = DrawMonTextEntryBox, + [NAMING_SCREEN_NICKNAME] = DrawMonTextEntryBox, + [NAMING_SCREEN_WALDA] = DrawNormalTextEntryBox, }; -static void sub_80E4964(void) +static void DrawTextEntryBox(void) { - gUnknown_0858BF58[gNamingScreenData->templateNum](); + sDrawTextEntryBoxFuncs[sNamingScreen->templateNum](); } -static void TaskDummy3(void); -static void sub_80E49BC(void); +static void DummyGenderIcon(void); +static void DrawGenderIcon(void); -static void (*const gUnknown_0858BF6C[])(void) = +static void (*const sDrawGenderIconFuncs[])(void) = { - TaskDummy3, - sub_80E49BC, + [FALSE] = DummyGenderIcon, + [TRUE] = DrawGenderIcon, }; -static void sub_80E498C(void) +static void TryDrawGenderIcon(void) { - gUnknown_0858BF6C[gNamingScreenData->template->addGenderIcon](); + sDrawGenderIconFuncs[sNamingScreen->template->addGenderIcon](); } -static void TaskDummy3(void) +static void DummyGenderIcon(void) { } @@ -1529,49 +1760,48 @@ static const u8 sGenderColors[2][3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED} }; -static void sub_80E49BC(void) +static void DrawGenderIcon(void) { - u8 genderSymbol[2]; + u8 text[2]; bool8 isFemale = FALSE; - StringCopy(genderSymbol, gText_MaleSymbol); - - if (gNamingScreenData->monGender != MON_GENDERLESS) + StringCopy(text, gText_MaleSymbol); + if (sNamingScreen->monGender != MON_GENDERLESS) { - if (gNamingScreenData->monGender == MON_FEMALE) + if (sNamingScreen->monGender == MON_FEMALE) { - StringCopy(genderSymbol, gText_FemaleSymbol); + StringCopy(text, gText_FemaleSymbol); isFemale = TRUE; } - AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); + AddTextPrinterParameterized3(sNamingScreen->windows[WIN_TEXT_ENTRY], 1, 0x68, 1, sGenderColors[isFemale], -1, text); } } -static u8 GetCharAtKeyboardPos(s16 a, s16 b) +static u8 GetCharAtKeyboardPos(s16 x, s16 y) { - return gUnknown_0858BE40[a + b * 8 + sub_80E3274() * 32]; + return sKeyboardChars[x + y * KBCOL_COUNT + CurrentPageToKeyboardId() * KBCOL_COUNT * KBROW_COUNT]; } -static u8 GetTextCaretPosition(void) +static u8 GetTextEntryPosition(void) { u8 i; - for (i = 0; i < gNamingScreenData->template->maxChars; i++) + for (i = 0; i < sNamingScreen->template->maxChars; i++) { - if (gNamingScreenData->textBuffer[i] == EOS) + if (sNamingScreen->textBuffer[i] == EOS) return i; } - return gNamingScreenData->template->maxChars - 1; + return sNamingScreen->template->maxChars - 1; } static u8 GetPreviousTextCaretPosition(void) { s8 i; - for (i = gNamingScreenData->template->maxChars - 1; i > 0; i--) + for (i = sNamingScreen->template->maxChars - 1; i > 0; i--) { - if (gNamingScreenData->textBuffer[i] != EOS) + if (sNamingScreen->textBuffer[i] != EOS) return i; } return 0; @@ -1580,112 +1810,115 @@ static u8 GetPreviousTextCaretPosition(void) static void DeleteTextCharacter(void) { u8 index; - u8 var2; + u8 keyRole; index = GetPreviousTextCaretPosition(); - gNamingScreenData->textBuffer[index] = 0; - sub_80E4D10(); + sNamingScreen->textBuffer[index] = 0; + DrawTextEntry(); CopyBgTilemapBufferToVram(3); - gNamingScreenData->textBuffer[index] = EOS; - var2 = GetKeyRoleAtCursorPos(); - if (var2 == 0 || var2 == 2) - sub_80E3948(1, 0, 1); - PlaySE(SE_BOWA); + sNamingScreen->textBuffer[index] = EOS; + keyRole = GetKeyRoleAtCursorPos(); + + // The below flashes the Back key once on delete + // It incorrectly leaves the Back key 1 shade lighter than its default + if (keyRole == KEY_ROLE_CHAR || keyRole == KEY_ROLE_BACKSPACE) + TryStartButtonFlash(BUTTON_BACK, FALSE, TRUE); + PlaySE(SE_BALL); } -static bool8 sub_80E4B54(void) +// Returns TRUE if the text entry is now full +static bool8 AddTextCharacter(void) { s16 x; s16 y; GetCursorPos(&x, &y); - AddTextCharacter(GetCharAtKeyboardPos(x, y)); - sub_80E4D10(); + BufferCharacter(GetCharAtKeyboardPos(x, y)); + DrawTextEntry(); CopyBgTilemapBufferToVram(3); PlaySE(SE_SELECT); - if (GetPreviousTextCaretPosition() != gNamingScreenData->template->maxChars - 1) + if (GetPreviousTextCaretPosition() != sNamingScreen->template->maxChars - 1) return FALSE; else return TRUE; } -static void AddTextCharacter(u8 ch) +static void BufferCharacter(u8 ch) { - u8 index = GetTextCaretPosition(); - - gNamingScreenData->textBuffer[index] = ch; + u8 index = GetTextEntryPosition(); + sNamingScreen->textBuffer[index] = ch; } -static void sub_80E4BE4(void) +static void SaveInputText(void) { u8 i; - for (i = 0; i < gNamingScreenData->template->maxChars; i++) + for (i = 0; i < sNamingScreen->template->maxChars; i++) { - if (gNamingScreenData->textBuffer[i] != CHAR_SPACE && gNamingScreenData->textBuffer[i] != EOS) + if (sNamingScreen->textBuffer[i] != CHAR_SPACE && sNamingScreen->textBuffer[i] != EOS) { - StringCopyN(gNamingScreenData->destBuffer, gNamingScreenData->textBuffer, gNamingScreenData->template->maxChars + 1); + StringCopyN(sNamingScreen->destBuffer, sNamingScreen->textBuffer, sNamingScreen->template->maxChars + 1); break; } } } -static void choose_name_or_words_screen_load_bg_tile_patterns(void) +static void LoadGfx(void) { - LZ77UnCompWram(gNamingScreenMenu_Gfx, gNamingScreenData->tileBuffer); - LoadBgTiles(1, gNamingScreenData->tileBuffer, 0x600, 0); - LoadBgTiles(2, gNamingScreenData->tileBuffer, 0x600, 0); - LoadBgTiles(3, gNamingScreenData->tileBuffer, 0x600, 0); - LoadSpriteSheets(gUnknown_0858C1C8); - LoadSpritePalettes(gUnknown_0858C230); + LZ77UnCompWram(gNamingScreenMenu_Gfx, sNamingScreen->tileBuffer); + LoadBgTiles(1, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadBgTiles(2, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadBgTiles(3, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadSpriteSheets(sSpriteSheets); + LoadSpritePalettes(sSpritePalettes); } -static void sub_80E4CB8(void) +static void CreateHelperTasks(void) { - InputInit(); - sub_80E3920(); + CreateInputHandlerTask(); + CreateButtonFlashTask(); } -static void choose_name_or_words_screen_apply_bg_pals(void) +static void LoadPalettes(void) { LoadPalette(gNamingScreenMenu_Pal, 0, 0xC0); - LoadPalette(gUnknown_0858BD78, 0xA0, sizeof(gUnknown_0858BD78)); - LoadPalette(stdpal_get(2), 0xB0, 0x20); + LoadPalette(sKeyboard_Pal, 0xA0, sizeof(sKeyboard_Pal)); + LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20); } -static void sub_80E4CF8(u8 bg, const void *src) +static void DrawBgTilemap(u8 bg, const void *src) { CopyToBgTilemapBuffer(bg, src, 0, 0); } -static void nullsub_10(u8 a1, u8 page) +static void NamingScreen_Dummy(u8 bg, u8 page) { } -static void sub_80E4D10(void) +static void DrawTextEntry(void) { u8 i; u8 temp[2]; - u16 unk2; - u8 maxChars = gNamingScreenData->template->maxChars; - u16 unk = gNamingScreenData->inputCharBaseXPos - 0x40; + u16 extraWidth; + u8 maxChars = sNamingScreen->template->maxChars; + u16 x = sNamingScreen->inputCharBaseXPos - 0x40; - FillWindowPixelBuffer(gNamingScreenData->windows[2], PIXEL_FILL(1)); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY], PIXEL_FILL(1)); for (i = 0; i < maxChars; i++) { - temp[0] = gNamingScreenData->textBuffer[i]; + temp[0] = sNamingScreen->textBuffer[i]; temp[1] = gText_ExpandedPlaceholder_Empty[0]; - unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0; + extraWidth = (IsWideLetter(temp[0]) == TRUE) ? 2 : 0; - AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY], 1, temp, i * 8 + x + extraWidth, 1, 0xFF, NULL); } - sub_80E498C(); - CopyWindowToVram(gNamingScreenData->windows[2], 2); - PutWindowTilemap(gNamingScreenData->windows[2]); + TryDrawGenderIcon(); + CopyWindowToVram(sNamingScreen->windows[WIN_TEXT_ENTRY], 2); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY]); } struct TextColor // Needed because of alignment @@ -1704,77 +1937,77 @@ static const struct TextColor sTextColorStruct = static const u8 sFillValues[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = PIXEL_FILL(0xE), - [KBPAGE_LETTERS_UPPER] = PIXEL_FILL(0xD), - [KBPAGE_SYMBOLS] = PIXEL_FILL(0xF) + [KEYBOARD_LETTERS_LOWER] = PIXEL_FILL(14), + [KEYBOARD_LETTERS_UPPER] = PIXEL_FILL(13), + [KEYBOARD_SYMBOLS] = PIXEL_FILL(15) }; static const u8 *const sKeyboardTextColors[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = sTextColorStruct.colors[1], - [KBPAGE_LETTERS_UPPER] = sTextColorStruct.colors[0], - [KBPAGE_SYMBOLS] = sTextColorStruct.colors[2] + [KEYBOARD_LETTERS_LOWER] = sTextColorStruct.colors[1], + [KEYBOARD_LETTERS_UPPER] = sTextColorStruct.colors[0], + [KEYBOARD_SYMBOLS] = sTextColorStruct.colors[2] }; -static void sub_80E4DE4(u8 window, u8 page) +static void PrintKeyboardKeys(u8 window, u8 page) { u8 i; FillWindowPixelBuffer(window, sFillValues[page]); for (i = 0; i < KBROW_COUNT; i++) - { AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sKeyboardTextColors[page], 0, sNamingScreenKeyboardText[page][i]); - } PutWindowTilemap(window); } -static const u8 *const gUnknown_0858BF98[] = +static const u8 *const sNextKeyboardPageTilemaps[] = { - gUnknown_08DD4620, - gUnknown_08DD46E0, - gUnknown_08DD47A0 + [KBPAGE_SYMBOLS] = gNamingScreenKeyboardUpper_Tilemap, + [KBPAGE_LETTERS_UPPER] = gNamingScreenKeyboardLower_Tilemap, // lower + [KBPAGE_LETTERS_LOWER] = gNamingScreenKeyboardSymbols_Tilemap // symbols }; -static void sub_80E4E5C(void) +// There are always 2 keyboard pages drawn, the current page and the one that will shown next if the player swaps +// When the page swap is complete this function invisibly replaces the old page with the new next one +static void DrawKeyboardPageOnDeck(void) { - u8 unk1; - u8 unk2; - u8 unk3; + u8 bg; + u8 bg_; + u8 windowId; u8 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; u8 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; if (bg1Priority > bg2Priority) { - unk1 = 1; - unk2 = 1; - unk3 = gNamingScreenData->windows[0]; + bg = 1; + bg_ = 1; + windowId = sNamingScreen->windows[WIN_KB_PAGE_1]; } else { - unk1 = 2; - unk2 = 2; - unk3 = gNamingScreenData->windows[1]; + bg = 2; + bg_ = 2; + windowId = sNamingScreen->windows[WIN_KB_PAGE_2]; } - sub_80E4CF8(unk1, gUnknown_0858BF98[gNamingScreenData->currentPage]); - sub_80E4DE4(unk3, sub_80E3254()); - nullsub_10(unk1, sub_80E3254()); - CopyBgTilemapBufferToVram(unk2); + DrawBgTilemap(bg, sNextKeyboardPageTilemaps[sNamingScreen->currentPage]); + PrintKeyboardKeys(windowId, CurrentPageToNextKeyboardId()); + NamingScreen_Dummy(bg, CurrentPageToNextKeyboardId()); + CopyBgTilemapBufferToVram(bg_); } -static void sub_80E4EF0(void) +static void PrintControls(void) { const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; - FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_FILL(15)); - AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); - PutWindowTilemap(gNamingScreenData->windows[4]); - CopyWindowToVram(gNamingScreenData->windows[4], 3); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_BANNER], PIXEL_FILL(15)); + AddTextPrinterParameterized3(sNamingScreen->windows[WIN_BANNER], 0, 2, 1, color, 0, gText_MoveOkBack); + PutWindowTilemap(sNamingScreen->windows[WIN_BANNER]); + CopyWindowToVram(sNamingScreen->windows[WIN_BANNER], 3); } -static void sub_80E4F58(void) +static void CB2_NamingScreen(void) { RunTasks(); AnimateSprites(); @@ -1782,13 +2015,13 @@ static void sub_80E4F58(void) UpdatePaletteFade(); } -static void NamingScreen_TurnOffScreen(void) +static void ResetVHBlank(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); } -static void NamingScreen_InitDisplayMode(void) +static void SetVBlank(void) { SetVBlankCallback(VBlankCB_NamingScreen); } @@ -1798,15 +2031,15 @@ static void VBlankCB_NamingScreen(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - SetGpuReg(REG_OFFSET_BG1VOFS, gNamingScreenData->bg1vOffset); - SetGpuReg(REG_OFFSET_BG2VOFS, gNamingScreenData->bg2vOffset); + SetGpuReg(REG_OFFSET_BG1VOFS, sNamingScreen->bg1vOffset); + SetGpuReg(REG_OFFSET_BG2VOFS, sNamingScreen->bg2vOffset); SetGpuReg(REG_OFFSET_BG1CNT, GetGpuReg(REG_OFFSET_BG1CNT) & 0xFFFC); - SetGpuRegBits(REG_OFFSET_BG1CNT, gNamingScreenData->bg1Priority); + SetGpuRegBits(REG_OFFSET_BG1CNT, sNamingScreen->bg1Priority); SetGpuReg(REG_OFFSET_BG2CNT, GetGpuReg(REG_OFFSET_BG2CNT) & 0xFFFC); - SetGpuRegBits(REG_OFFSET_BG2CNT, gNamingScreenData->bg2Priority); + SetGpuRegBits(REG_OFFSET_BG2CNT, sNamingScreen->bg2Priority); } -static void sub_80E501C(void) +static void NamingScreen_ShowBgs(void) { ShowBg(0); ShowBg(1); @@ -1814,7 +2047,8 @@ static void sub_80E501C(void) ShowBg(3); } -static bool8 IsLetter(u8 character) +// Always false (presumably for non-latin languages) +static bool8 IsWideLetter(u8 character) { u8 i; @@ -1826,69 +2060,71 @@ static bool8 IsLetter(u8 character) return FALSE; } -static void sub_80E5074(void) +// Debug? Unused, and arguments aren't sensible for non-player screens. +static void Debug_NamingScreenPlayer(void) { - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E509C(void) +static void Debug_NamingScreenBox(void) { - DoNamingScreen(1, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_BOX, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E50C4(void) +static void Debug_NamingScreenCaughtMon(void) { - DoNamingScreen(2, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E50EC(void) +static void Debug_NamingScreenNickname(void) { - DoNamingScreen(3, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } //-------------------------------------------------- // Forward-declared variables //-------------------------------------------------- -static const struct NamingScreenTemplate playerNamingScreenTemplate = +// Initial pages below are pointless, they're overwritten with KBPAGE_LETTERS_UPPER in MainState_FadeIn() +static const struct NamingScreenTemplate sPlayerNamingScreenTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 7, .iconFunction = 1, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 35, .title = gText_YourName, }; -static const struct NamingScreenTemplate pcBoxNamingTemplate = +static const struct NamingScreenTemplate sPCBoxNamingTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 8, .iconFunction = 2, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 19, .title = gText_BoxName, }; -static const struct NamingScreenTemplate monNamingScreenTemplate = +static const struct NamingScreenTemplate sMonNamingScreenTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 10, .iconFunction = 3, - .addGenderIcon = 1, + .addGenderIcon = TRUE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 35, .title = gText_PkmnsNickname, }; -static const struct NamingScreenTemplate wandaWordsScreenTemplate = +static const struct NamingScreenTemplate sWaldaWordsScreenTemplate = { - .copyExistingString = 1, + .copyExistingString = TRUE, .maxChars = 15, .iconFunction = 4, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 11, .title = gText_TellHimTheWords, @@ -1896,14 +2132,14 @@ static const struct NamingScreenTemplate wandaWordsScreenTemplate = static const struct NamingScreenTemplate *const sNamingScreenTemplates[] = { - &playerNamingScreenTemplate, - &pcBoxNamingTemplate, - &monNamingScreenTemplate, - &monNamingScreenTemplate, - &wandaWordsScreenTemplate, + [NAMING_SCREEN_PLAYER] = &sPlayerNamingScreenTemplate, + [NAMING_SCREEN_BOX] = &sPCBoxNamingTemplate, + [NAMING_SCREEN_CAUGHT_MON] = &sMonNamingScreenTemplate, + [NAMING_SCREEN_NICKNAME] = &sMonNamingScreenTemplate, + [NAMING_SCREEN_WALDA] = &sWaldaWordsScreenTemplate, }; -const struct OamData gOamData_858BFEC = +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1917,7 +2153,7 @@ const struct OamData gOamData_858BFEC = .paletteNum = 0, }; -const struct OamData gOamData_858BFF4 = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1931,7 +2167,7 @@ const struct OamData gOamData_858BFF4 = .paletteNum = 0, }; -const struct OamData gOamData_858BFFC = +static const struct OamData sOam_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1945,7 +2181,7 @@ const struct OamData gOamData_858BFFC = .paletteNum = 0, }; -static const struct Subsprite gUnknown_0858C004[] = +static const struct Subsprite sSubsprites_PageSwapFrame[] = { { .x = -20, @@ -2013,7 +2249,7 @@ static const struct Subsprite gUnknown_0858C004[] = } }; -static const struct Subsprite gUnknown_0858C024[] = +static const struct Subsprite sSubsprites_PageSwapText[] = { { .x = -12, @@ -2033,7 +2269,7 @@ static const struct Subsprite gUnknown_0858C024[] = } }; -static const struct Subsprite gUnknown_0858C02C[] = +static const struct Subsprite sSubsprites_Button[] = { { .x = -20, @@ -2085,7 +2321,7 @@ static const struct Subsprite gUnknown_0858C02C[] = } }; -static const struct Subsprite gUnknown_0858C044[] = +static const struct Subsprite sSubsprites_PCIcon[] = { { .x = -8, @@ -2113,186 +2349,186 @@ static const struct Subsprite gUnknown_0858C044[] = } }; -static const struct SubspriteTable gUnknown_0858C050[] = +static const struct SubspriteTable sSubspriteTable_PageSwapFrame[] = { - {ARRAY_COUNT(gUnknown_0858C004), gUnknown_0858C004} + {ARRAY_COUNT(sSubsprites_PageSwapFrame), sSubsprites_PageSwapFrame} }; -static const struct SubspriteTable gUnknown_0858C058[] = +static const struct SubspriteTable sSubspriteTable_PageSwapText[] = { - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024}, - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024}, - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024} + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText}, + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText}, + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText} }; -static const struct SubspriteTable gUnknown_0858C070[] = +static const struct SubspriteTable sSubspriteTable_Button[] = { - {ARRAY_COUNT(gUnknown_0858C02C), gUnknown_0858C02C} + {ARRAY_COUNT(sSubsprites_Button), sSubsprites_Button} }; -static const struct SubspriteTable gUnknown_0858C078[] = +static const struct SubspriteTable sSubspriteTable_PCIcon[] = { - {ARRAY_COUNT(gUnknown_0858C044), gUnknown_0858C044} + {ARRAY_COUNT(sSubsprites_PCIcon), sSubsprites_PCIcon} }; -static const struct SpriteFrameImage gUnknown_0858C080[] = +static const struct SpriteFrameImage sImageTable_PCIcon[] = { - {gSpriteImage_858BBF8, sizeof(gSpriteImage_858BBF8)}, - {gSpriteImage_858BCB8, sizeof(gSpriteImage_858BCB8)}, + {sPCIconOff_Gfx, sizeof(sPCIconOff_Gfx)}, + {sPCIconOn_Gfx, sizeof(sPCIconOn_Gfx)}, }; -static const union AnimCmd gSpriteAnim_858C090[] = +static const union AnimCmd sAnim_Loop[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_858C098[] = +static const union AnimCmd sAnim_CursorSquish[] = { ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(8, 8), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_858C0A4[] = +static const union AnimCmd sAnim_PCIcon[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(1, 2), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_858C0B0[] = +static const union AnimCmd *const sAnims_Loop[] = { - gSpriteAnim_858C090 + sAnim_Loop }; -static const union AnimCmd *const gSpriteAnimTable_858C0B4[] = +static const union AnimCmd *const sAnims_Cursor[] = { - gSpriteAnim_858C090, - gSpriteAnim_858C098 + sAnim_Loop, + sAnim_CursorSquish }; -static const union AnimCmd *const gSpriteAnimTable_858C0BC[] = +static const union AnimCmd *const sAnims_PCIcon[] = { - gSpriteAnim_858C0A4 + sAnim_PCIcon }; -static const struct SpriteTemplate gUnknown_0858C0C0 = +static const struct SpriteTemplate sSpriteTemplate_PageSwapFrame = { - .tileTag = 0x0002, - .paletteTag = 0x0004, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_PAGE_SWAP_FRAME, + .paletteTag = PALTAG_PAGE_SWAP, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E4084 + .callback = SpriteCB_PageSwap }; -static const struct SpriteTemplate gUnknown_0858C0D8 = +static const struct SpriteTemplate sSpriteTemplate_PageSwapButton = { - .tileTag = 0x0003, - .paletteTag = 0x0001, - .oam = &gOamData_858BFFC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_PAGE_SWAP_BUTTON, + .paletteTag = PALTAG_PAGE_SWAP_UPPER, + .oam = &sOam_32x16, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C0F0 = +static const struct SpriteTemplate sSpriteTemplate_PageSwapText = { - .tileTag = 0x0004, - .paletteTag = 0x0004, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_PAGE_SWAP_UPPER, + .paletteTag = PALTAG_PAGE_SWAP, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C108 = +static const struct SpriteTemplate sSpriteTemplate_BackButton = { - .tileTag = 0x0000, - .paletteTag = 0x0006, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_BACK_BUTTON, + .paletteTag = PALTAG_BACK_BUTTON, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C120 = +static const struct SpriteTemplate sSpriteTemplate_OkButton = { - .tileTag = 0x0001, - .paletteTag = 0x0007, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_OK_BUTTON, + .paletteTag = PALTAG_OK_BUTTON, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C138 = +static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = 0x0007, - .paletteTag = 0x0005, - .oam = &gOamData_858BFF4, - .anims = gSpriteAnimTable_858C0B4, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_CURSOR, + .oam = &sOam_16x16, + .anims = sAnims_Cursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3B30 + .callback = SpriteCB_Cursor }; static const struct SpriteTemplate sSpriteTemplate_InputArrow = { - .tileTag = 0x000A, - .paletteTag = 0x0003, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_INPUT_ARROW, + .paletteTag = PALTAG_PAGE_SWAP_OTHERS, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3C20 + .callback = SpriteCB_InputArrow }; static const struct SpriteTemplate sSpriteTemplate_Underscore = { - .tileTag = 0x000B, - .paletteTag = 0x0003, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0B0, + .tileTag = GFXTAG_UNDERSCORE, + .paletteTag = PALTAG_PAGE_SWAP_OTHERS, + .oam = &sOam_8x8, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3C6C + .callback = SpriteCB_Underscore }; -static const struct SpriteTemplate gUnknown_0858C180 = +static const struct SpriteTemplate sSpriteTemplate_PCIcon = { .tileTag = 0xFFFF, - .paletteTag = 0x0000, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0BC, - .images = gUnknown_0858C080, + .paletteTag = PALTAG_PC_ICON, + .oam = &sOam_8x8, + .anims = sAnims_PCIcon, + .images = sImageTable_PCIcon, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT] = { - [KBPAGE_LETTERS_LOWER] = + [KEYBOARD_LETTERS_LOWER] = { gText_NamingScreenKeyboard_abcdef, gText_NamingScreenKeyboard_ghijkl, gText_NamingScreenKeyboard_mnopqrs, gText_NamingScreenKeyboard_tuvwxyz }, - [KBPAGE_LETTERS_UPPER] = + [KEYBOARD_LETTERS_UPPER] = { gText_NamingScreenKeyboard_ABCDEF, gText_NamingScreenKeyboard_GHIJKL, gText_NamingScreenKeyboard_MNOPQRS, gText_NamingScreenKeyboard_TUVWXYZ }, - [KBPAGE_SYMBOLS] = + [KEYBOARD_SYMBOLS] = { gText_NamingScreenKeyboard_01234, gText_NamingScreenKeyboard_56789, @@ -2301,34 +2537,34 @@ static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT] = }, }; -static const struct SpriteSheet gUnknown_0858C1C8[] = -{ - {gNamingScreenRWindow_Gfx + 0x280, 0x1E0, 0x0000}, - {gNamingScreenRWindow_Gfx + 0x460, 0x1E0, 0x0001}, - {gNamingScreenRWindow_Gfx, 0x280, 0x0002}, - {gNamingScreenKeyboardButton_Gfx + 0x20, 0x100, 0x0003}, - {gNamingScreenROptions_Gfx, 0x060, 0x0004}, - {gNamingScreenROptions_Gfx + 0xA0, 0x060, 0x0005}, - {gNamingScreenROptions_Gfx + 0x140, 0x060, 0x0006}, - {gNamingScreenCursor_Gfx, 0x080, 0x0007}, - {gNamingScreenCursor_Gfx + 0xA0, 0x080, 0x0008}, - {gNamingScreenCursor_Gfx + 0x140, 0x080, 0x0009}, - {gNamingScreenRightPointingTriangleTiles, 0x020, 0x000A}, - {gNamingScreenUnderscoreTiles, 0x020, 0x000B}, - {NULL} -}; - -static const struct SpritePalette gUnknown_0858C230[] = -{ - {gNamingScreenMenu_Pal, 0x0000}, - {gNamingScreenMenu_Pal + 0x10, 0x0001}, - {gNamingScreenMenu_Pal + 0x20, 0x0002}, - {gNamingScreenMenu_Pal + 0x30, 0x0003}, - {gNamingScreenMenu_Pal + 0x40, 0x0004}, - {gNamingScreenMenu_Pal + 0x50, 0x0005}, - {gNamingScreenMenu_Pal + 0x40, 0x0006}, - {gNamingScreenMenu_Pal + 0x40, 0x0007}, - {NULL} +static const struct SpriteSheet sSpriteSheets[] = +{ + {gNamingScreenRWindow_Gfx + 0x280, 0x1E0, GFXTAG_BACK_BUTTON}, + {gNamingScreenRWindow_Gfx + 0x460, 0x1E0, GFXTAG_OK_BUTTON}, + {gNamingScreenRWindow_Gfx, 0x280, GFXTAG_PAGE_SWAP_FRAME}, + {gNamingScreenPageButton_Gfx + 0x20, 0x100, GFXTAG_PAGE_SWAP_BUTTON}, + {gNamingScreenROptions_Gfx, 0x060, GFXTAG_PAGE_SWAP_UPPER}, + {gNamingScreenROptions_Gfx + 0xA0, 0x060, GFXTAG_PAGE_SWAP_LOWER}, + {gNamingScreenROptions_Gfx + 0x140, 0x060, GFXTAG_PAGE_SWAP_OTHERS}, + {gNamingScreenCursor_Gfx, 0x080, GFXTAG_CURSOR}, + {gNamingScreenCursor_Gfx + 0xA0, 0x080, GFXTAG_CURSOR_SQUISHED}, + {gNamingScreenCursor_Gfx + 0x140, 0x080, GFXTAG_CURSOR_FILLED}, + {gNamingScreenInputArrow_Gfx, 0x020, GFXTAG_INPUT_ARROW}, + {gNamingScreenUnderscore_Gfx, 0x020, GFXTAG_UNDERSCORE}, + {} +}; + +static const struct SpritePalette sSpritePalettes[] = +{ + {gNamingScreenMenu_Pal, PALTAG_PC_ICON}, + {gNamingScreenMenu_Pal + 0x10, PALTAG_PAGE_SWAP_UPPER}, + {gNamingScreenMenu_Pal + 0x20, PALTAG_PAGE_SWAP_LOWER}, + {gNamingScreenMenu_Pal + 0x30, PALTAG_PAGE_SWAP_OTHERS}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_PAGE_SWAP}, + {gNamingScreenMenu_Pal + 0x50, PALTAG_CURSOR}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_BACK_BUTTON}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_OK_BUTTON}, + {} }; diff --git a/src/overworld.c b/src/overworld.c index ea0d633bc..d18e3d3bc 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -7,10 +7,11 @@ #include "cable_club.h" #include "clock.h" #include "event_data.h" +#include "event_object_movement.h" +#include "event_scripts.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" -#include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_screen_effect.h" @@ -22,6 +23,7 @@ #include "fldeff.h" #include "gpu_regs.h" #include "heal_location.h" +#include "io_reg.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -44,7 +46,7 @@ #include "save.h" #include "save_location.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "secret_base.h" #include "sound.h" #include "start_menu.h" @@ -82,58 +84,36 @@ #define FACING_FORCED_LEFT 9 #define FACING_FORCED_RIGHT 10 -// event scripts -extern const u8 EventScript_WhiteOut[]; -extern const u8 EventScript_ResetMrBriney[]; -extern const u8 EventScript_DoLinkRoomExit[]; -extern const u8 CableClub_EventScript_TooBusyToNotice[]; -extern const u8 CableClub_EventScript_ReadTrainerCard[]; -extern const u8 CableClub_EventScript_ReadTrainerCardColored[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[]; -extern const u8 EventScript_RecordCenter_Spot0[]; -extern const u8 EventScript_RecordCenter_Spot1[]; -extern const u8 EventScript_RecordCenter_Spot2[]; -extern const u8 EventScript_RecordCenter_Spot3[]; -extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; -extern const u8 EventScript_TradeCenter_Chair1[]; -extern const u8 EventScript_TradeCenter_Chair0[]; -extern const u8 EventScript_ConfirmLeaveTradeRoom[]; -extern const u8 EventScript_TerminateLink[]; - extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; -extern const int gMaxFlashLevel; -extern const u16 gOverworldBackgroundLayerFlags[]; static void Overworld_ResetStateAfterWhiteOut(void); -static void c2_80567AC(void); +static void CB2_ReturnToFieldLocal(void); +static void CB2_ReturnToFieldLink(void); +static void CB2_LoadMapOnReturnToFieldCableClub(void); static void CB2_LoadMap2(void); static void VBlankCB_Field(void); static void SpriteCB_LinkPlayer(struct Sprite *sprite); static void ChooseAmbientCrySpecies(void); -static void do_load_map_stuff_loop(u8 *state); -static bool32 map_loading_iteration_3(u8 *state); -static bool32 sub_8086638(u8 *state); -static bool32 load_map_stuff(u8 *state, u32); -static bool32 map_loading_iteration_2_link(u8 *state); -static void mli4_mapscripts_and_other(void); +static void DoMapLoadLoop(u8 *state); +static bool32 LoadMapInStepsLocal(u8 *state, bool32); +static bool32 LoadMapInStepsLink(u8 *state); +static bool32 ReturnToFieldLocal(u8 *state); +static bool32 ReturnToFieldLink(u8 *state); +static void InitObjectEventsLink(void); +static void InitObjectEventsLocal(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); static u16 KeyInterCB_SendNothing(u32 a1); -static void sub_80867C8(void); +static void ResetMirageTowerAndSaveBlockPtrs(void); static void sub_80867D8(void); -static void sub_8086AE4(void); -static void sub_80869DC(void); -static void sub_8086B14(void); +static void OffsetCameraFocusByLinkPlayerId(void); +static void SpawnLinkPlayers(void); static void SetCameraToTrackGuestPlayer(void); -static void sub_8086988(bool32 arg0); -static void sub_8086A80(void); +static void ResumeMap(bool32 arg0); +static void SetCameraToTrackPlayer(void); static void sub_8086A68(void); -static void sub_8086860(void); +static void InitViewGraphics(void); static void SetCameraToTrackGuestPlayer_2(void); static void CreateLinkPlayerSprites(void); static void ClearAllPlayerKeys(void); @@ -155,7 +135,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); -static void sub_8087584(void); +static void RunTerminateLinkScript(void); static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerObjectEvent(struct LinkPlayerObjectEvent *linkPlayerObjEvent); static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); @@ -181,14 +161,14 @@ static void CB1_UpdateLinkState(void); static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); -static void sub_8085810(void); +static void TransitionMapMusic(void); static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 a2, u8 a3); static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 a2, u16 a3, u8 a4); static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars static void *sUnusedOverworldCallback; -static u8 sPlayerTradingStates[4]; +static u8 sPlayerTradingStates[MAX_LINK_PLAYERS]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything // can process it. @@ -208,13 +188,13 @@ u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars -EWRAM_DATA static u8 sUnknown_020322D8 = 0; +EWRAM_DATA static u8 sObjectEventLoadFlag = 0; EWRAM_DATA struct WarpData gLastUsedWarp = {0}; EWRAM_DATA static struct WarpData sWarpDestination = {0}; // new warp position -EWRAM_DATA static struct WarpData gFixedDiveWarp = {0}; -EWRAM_DATA static struct WarpData gFixedHoleWarp = {0}; +EWRAM_DATA static struct WarpData sFixedDiveWarp = {0}; +EWRAM_DATA static struct WarpData sFixedHoleWarp = {0}; EWRAM_DATA static u16 sLastMapSectionId = 0; -EWRAM_DATA static struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0}; +EWRAM_DATA static struct InitialPlayerAvatarState sInitialPlayerAvatarState = {0}; EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0}; @@ -229,16 +209,9 @@ static const struct WarpData sDummyWarpData = .y = -1, }; -static const u8 sUnusedData[] = +static const u32 sUnusedData[] = { - 0xB0, 0x04, 0x00, 0x00, - 0x10, 0x0E, 0x00, 0x00, - 0xB0, 0x04, 0x00, 0x00, - 0x60, 0x09, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, - 0xD4, 0xFF, 0xFF, 0xFF, - 0x2C, 0x00, 0x00, 0x00, + 1200, 3600, 1200, 2400, 50, 80, -44, 44 }; const struct UCoords32 gDirectionToVectors[] = @@ -547,11 +520,11 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType) } } -static void mapdata_load_assets_to_gpu_and_full_redraw(void) +static void InitMapView(void) { - move_tilemap_camera_to_upper_left_corner(); - copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout); - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + ResetFieldCamera(); + CopyMapTilesetsToVram(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); DrawWholeMapView(); InitTilesetAnimations(); } @@ -568,14 +541,14 @@ void ApplyCurrentWarp(void) { gLastUsedWarp = gSaveBlock1Ptr->location; gSaveBlock1Ptr->location = sWarpDestination; - gFixedDiveWarp = sDummyWarpData; - gFixedHoleWarp = sDummyWarpData; + sFixedDiveWarp = sDummyWarpData; + sFixedHoleWarp = sDummyWarpData; } static void ClearDiveAndHoleWarps(void) { - gFixedDiveWarp = sDummyWarpData; - gFixedHoleWarp = sDummyWarpData; + sFixedDiveWarp = sDummyWarpData; + sFixedHoleWarp = sDummyWarpData; } static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -717,25 +690,25 @@ void SetWarpDestinationToEscapeWarp(void) void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y); + SetWarpData(&sFixedDiveWarp, mapGroup, mapNum, warpId, x, y); } static void SetWarpDestinationToDiveWarp(void) { - sWarpDestination = gFixedDiveWarp; + sWarpDestination = sFixedDiveWarp; } void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y); + SetWarpData(&sFixedHoleWarp, mapGroup, mapNum, warpId, x, y); } void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y) { - if (IsDummyWarp(&gFixedHoleWarp) == TRUE) + if (IsDummyWarp(&sFixedHoleWarp) == TRUE) sWarpDestination = gLastUsedWarp; else - SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y); + SetWarpDestination(sFixedHoleWarp.mapGroup, sFixedHoleWarp.mapNum, -1, x, y); } static void SetWarpDestinationToContinueGameWarp(void) @@ -787,7 +760,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y) else { RunOnDiveWarpMapScript(); - if (IsDummyWarp(&gFixedDiveWarp)) + if (IsDummyWarp(&sFixedDiveWarp)) return FALSE; SetWarpDestinationToDiveWarp(); } @@ -809,8 +782,10 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) s32 paletteIndex; SetWarpDestination(mapGroup, mapNum, -1, -1, -1); - if (gMapHeader.regionMapSectionId != 0x3A) - sub_8085810(); + + // Dont transition map music between BF Outside West/East + if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER) + TransitionMapMusic(); ApplyCurrentWarp(); LoadCurrentMapData(); @@ -827,8 +802,8 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) Overworld_ClearSavedMusic(); RunOnTransitionMapScript(); InitMap(); - copy_map_tileset2_to_vram_2(gMapHeader.mapLayout); - apply_map_tileset2_palette(gMapHeader.mapLayout); + CopySecondaryTilesetToVramUsingHeap(gMapHeader.mapLayout); + LoadSecondaryTilesetPalette(gMapHeader.mapLayout); for (paletteIndex = 6; paletteIndex < 13; paletteIndex++) ApplyWeatherGammaShiftToPal(paletteIndex); @@ -840,17 +815,18 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) ResetFieldTasksArgs(); RunOnResumeMapScript(); - if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId) + if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER + || gMapHeader.regionMapSectionId != sLastMapSectionId) ShowMapNamePopup(); } -static void mli0_load_map(u32 a1) +static void LoadMapFromWarp(bool32 a1) { bool8 isOutdoors; bool8 isIndoors; LoadCurrentMapData(); - if (!(sUnknown_020322D8 & 1)) + if (!(sObjectEventLoadFlag & SKIP_OBJECT_EVENT_LOAD)) { if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR) LoadBattlePyramidObjectEventTemplates(); @@ -869,7 +845,7 @@ static void mli0_load_map(u32 a1) ResetCyclingRoadChallengeData(); RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); - if (a1 != 1) + if (a1 != TRUE) DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); @@ -887,7 +863,7 @@ static void mli0_load_map(u32 a1) else InitMap(); - if (a1 != 1 && isIndoors) + if (a1 != TRUE && isIndoors) { UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); InitSecretBaseAppearance(TRUE); @@ -896,24 +872,24 @@ static void mli0_load_map(u32 a1) void ResetInitialPlayerAvatarState(void) { - gInitialPlayerAvatarState.direction = DIR_SOUTH; - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; + sInitialPlayerAvatarState.direction = DIR_SOUTH; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } void StoreInitialPlayerAvatarState(void) { - gInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); + sInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER; else - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) @@ -921,11 +897,11 @@ static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) struct InitialPlayerAvatarState playerStruct; u8 mapType = GetCurrentMapType(); u16 metatileBehavior = GetCenterScreenMetatileBehavior(); - u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType); + u8 transitionFlags = GetAdjustedInitialTransitionFlags(&sInitialPlayerAvatarState, metatileBehavior, mapType); playerStruct.transitionFlags = transitionFlags; - playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); - gInitialPlayerAvatarState = playerStruct; - return &gInitialPlayerAvatarState; + playerStruct.direction = GetAdjustedInitialDirection(&sInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); + sInitialPlayerAvatarState = playerStruct; + return &sInitialPlayerAvatarState; } static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType) @@ -963,7 +939,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr else if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE) return DIR_WEST; else if ((playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER && transitionFlags == PLAYER_AVATAR_FLAG_SURFING) - || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER )) + || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER)) return playerStruct->direction; else if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE) return playerStruct->direction; @@ -1012,14 +988,15 @@ void SetCurrentMapLayout(u16 mapLayoutId) gMapHeader.mapLayout = GetMapLayout(); } -void sub_8085540(u8 var) +void SetObjectEventLoadFlag(u8 flag) { - sUnknown_020322D8 = var; + sObjectEventLoadFlag = flag; } -u8 sub_808554C(void) +// Unused, sObjectEventLoadFlag is read directly +static u8 GetObjectEventLoadFlag(void) { - return sUnknown_020322D8; + return sObjectEventLoadFlag; } static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) @@ -1099,11 +1076,11 @@ u16 GetLocationMusic(struct WarpData *warp) if (NoMusicInSotopolisWithLegendaries(warp) == TRUE) return 0xFFFF; else if (ShouldLegendaryMusicPlayAtLocation(warp) == TRUE) - return MUS_OOAME; + return MUS_ABNORMAL_WEATHER; else if (IsInflitratedSpaceCenter(warp) == TRUE) - return MUS_MGM0; + return MUS_ENCOUNTER_MAGMA; else if (IsInfiltratedWeatherInstitute(warp) == TRUE) - return MUS_TOZAN; + return MUS_MT_CHIMNEY; else return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music; } @@ -1116,26 +1093,26 @@ u16 GetCurrLocationDefaultMusic(void) if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111) && GetSav1Weather() == WEATHER_SANDSTORM) - return MUS_ASHROAD; + return MUS_ROUTE111; music = GetLocationMusic(&gSaveBlock1Ptr->location); - if (music != MUS_ROUTE_118) + if (music != MUS_ROUTE118) { return music; } else { if (gSaveBlock1Ptr->pos.x < 24) - return MUS_DOORO_X1; + return MUS_ROUTE110; else - return MUS_GRANROAD; + return MUS_ROUTE119; } } u16 GetWarpDestinationMusic(void) { u16 music = GetLocationMusic(&sWarpDestination); - if (music != MUS_ROUTE_118) + if (music != MUS_ROUTE118) { return music; } @@ -1143,9 +1120,9 @@ u16 GetWarpDestinationMusic(void) { if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(MAUVILLE_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(MAUVILLE_CITY)) - return MUS_DOORO_X1; + return MUS_ROUTE110; else - return MUS_GRANROAD; + return MUS_ROUTE119; } } @@ -1158,14 +1135,14 @@ void Overworld_PlaySpecialMapMusic(void) { u16 music = GetCurrLocationDefaultMusic(); - if (music != MUS_OOAME && music != 0xFFFF) + if (music != MUS_ABNORMAL_WEATHER && music != 0xFFFF) { if (gSaveBlock1Ptr->savedMusic) music = gSaveBlock1Ptr->savedMusic; else if (GetCurrentMapType() == MAP_TYPE_UNDERWATER) - music = MUS_DEEPDEEP; + music = MUS_UNDERWATER; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - music = MUS_NAMINORI; + music = MUS_SURF; } if (music != GetCurrentMapMusic()) @@ -1179,21 +1156,21 @@ void Overworld_SetSavedMusic(u16 songNum) void Overworld_ClearSavedMusic(void) { - gSaveBlock1Ptr->savedMusic = 0; + gSaveBlock1Ptr->savedMusic = MUS_DUMMY; } -static void sub_8085810(void) +static void TransitionMapMusic(void) { if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE) { u16 newMusic = GetWarpDestinationMusic(); u16 currentMusic = GetCurrentMapMusic(); - if (newMusic != MUS_OOAME && newMusic != 0xFFFF) + if (newMusic != MUS_ABNORMAL_WEATHER && newMusic != 0xFFFF) { - if (currentMusic == MUS_DEEPDEEP || currentMusic == MUS_NAMINORI) + if (currentMusic == MUS_UNDERWATER || currentMusic == MUS_SURF) return; if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - newMusic = MUS_NAMINORI; + newMusic = MUS_SURF; } if (newMusic != currentMusic) { @@ -1215,7 +1192,7 @@ void Overworld_ChangeMusicToDefault(void) void Overworld_ChangeMusicTo(u16 newMusic) { u16 currentMusic = GetCurrentMapMusic(); - if (currentMusic != newMusic && currentMusic != MUS_OOAME) + if (currentMusic != newMusic && currentMusic != MUS_ABNORMAL_WEATHER) FadeOutAndPlayNewMapMusic(newMusic, 8); } @@ -1234,7 +1211,7 @@ void TryFadeOutOldMapMusic(void) u16 warpMusic = GetWarpDestinationMusic(); if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE && warpMusic != GetCurrentMapMusic()) { - if (currentMusic == MUS_NAMINORI + if (currentMusic == MUS_SURF && VarGet(VAR_SKY_PILLAR_STATE) == 2 && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SOOTOPOLIS_CITY) @@ -1444,7 +1421,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) { struct FieldInput inputStruct; - sub_808B578(); + UpdatePlayerAvatarTransitionState(); FieldClearPlayerInput(&inputStruct); FieldGetPlayerInput(&inputStruct, newKeys, heldKeys); if (!ScriptContext2_IsEnabled()) @@ -1456,7 +1433,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) } else { - player_step(inputStruct.dpadDirection, newKeys, heldKeys); + PlayerStep(inputStruct.dpadDirection, newKeys, heldKeys); } } } @@ -1477,7 +1454,7 @@ static void OverworldBasic(void) BuildOamBuffer(); UpdatePaletteFade(); UpdateTilesetAnimations(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } // This CB2 is used when starting @@ -1507,7 +1484,7 @@ void SetUnusedCallback(void *func) sUnusedOverworldCallback = func; } -static bool8 map_post_load_hook_exec(void) +static bool8 RunFieldCallback(void) { if (gFieldCallback2) { @@ -1546,7 +1523,7 @@ void CB2_NewGame(void) ScriptContext2_Disable(); gFieldCallback = ExecuteTruckSequence; gFieldCallback2 = NULL; - do_load_map_stuff_loop(&gMain.state); + DoMapLoadLoop(&gMain.state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); @@ -1554,7 +1531,7 @@ void CB2_NewGame(void) void CB2_WhiteOut(void) { - u8 val; + u8 state; if (++gMain.state >= 120) { @@ -1566,8 +1543,8 @@ void CB2_WhiteOut(void) ScriptContext1_Init(); ScriptContext2_Disable(); gFieldCallback = FieldCB_WarpExitFadeFromBlack; - val = 0; - do_load_map_stuff_loop(&val); + state = 0; + DoMapLoadLoop(&state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); @@ -1586,13 +1563,13 @@ void CB2_LoadMap(void) static void CB2_LoadMap2(void) { - do_load_map_stuff_loop(&gMain.state); + DoMapLoadLoop(&gMain.state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); } -void sub_8086024(void) +void CB2_ReturnToFieldContestHall(void) { if (!gMain.state) { @@ -1601,7 +1578,7 @@ void sub_8086024(void) ScriptContext2_Disable(); SetMainCallback1(NULL); } - if (load_map_stuff(&gMain.state, 1)) + if (LoadMapInStepsLocal(&gMain.state, TRUE)) { SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); @@ -1613,12 +1590,12 @@ void CB2_ReturnToFieldCableClub(void) { FieldClearVBlankHBlankCallbacks(); gFieldCallback = FieldCB_ReturnToFieldWirelessLink; - SetMainCallback2(c2_80567AC); + SetMainCallback2(CB2_LoadMapOnReturnToFieldCableClub); } -static void c2_80567AC(void) +static void CB2_LoadMapOnReturnToFieldCableClub(void) { - if (map_loading_iteration_3(&gMain.state)) + if (LoadMapInStepsLink(&gMain.state)) { SetFieldVBlankCallback(); SetMainCallback1(CB1_UpdateLinkState); @@ -1640,18 +1617,18 @@ void CB2_ReturnToField(void) } } -void CB2_ReturnToFieldLocal(void) +static void CB2_ReturnToFieldLocal(void) { - if (sub_8086638(&gMain.state)) + if (ReturnToFieldLocal(&gMain.state)) { SetFieldVBlankCallback(); SetMainCallback2(CB2_Overworld); } } -void CB2_ReturnToFieldLink(void) +static void CB2_ReturnToFieldLink(void) { - if (!sub_8087598() && map_loading_iteration_2_link(&gMain.state)) + if (!sub_8087598() && ReturnToFieldLink(&gMain.state)) SetMainCallback2(CB2_Overworld); } @@ -1746,12 +1723,12 @@ void CB2_ContinueSavedGame(void) ClearContinueGameWarpStatus(); SetWarpDestinationToContinueGameWarp(); WarpIntoMap(); - sub_80EDB44(); + TryPutTodaysRivalTrainerOnAir(); SetMainCallback2(CB2_LoadMap); } else { - sub_80EDB44(); + TryPutTodaysRivalTrainerOnAir(); gFieldCallback = sub_8086204; SetMainCallback1(CB1_Overworld); CB2_ReturnToField(); @@ -1812,7 +1789,7 @@ static void InitCurrentFlashLevelScanlineEffect(void) } } -static bool32 map_loading_iteration_3(u8 *state) +static bool32 LoadMapInStepsLink(u8 *state) { switch (*state) { @@ -1820,47 +1797,47 @@ static bool32 map_loading_iteration_3(u8 *state) InitOverworldBgs(); ScriptContext1_Init(); ScriptContext2_Disable(); - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; case 1: - mli0_load_map(1); + LoadMapFromWarp(TRUE); (*state)++; break; case 2: - sub_8086988(TRUE); + ResumeMap(TRUE); (*state)++; break; case 3: - sub_8086AE4(); - sub_80869DC(); - sub_8086B14(); + OffsetCameraFocusByLinkPlayerId(); + InitObjectEventsLink(); + SpawnLinkPlayers(); SetCameraToTrackGuestPlayer(); (*state)++; break; case 4: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 5: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 6: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 8: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -1881,7 +1858,7 @@ static bool32 map_loading_iteration_3(u8 *state) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 13: @@ -1891,51 +1868,51 @@ static bool32 map_loading_iteration_3(u8 *state) return FALSE; } -static bool32 load_map_stuff(u8 *state, u32 a2) +static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2) { switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); - mli0_load_map(a2); + LoadMapFromWarp(a2); (*state)++; break; case 1: - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; case 2: - sub_8086988(a2); + ResumeMap(a2); (*state)++; break; case 3: - mli4_mapscripts_and_other(); - sub_8086A80(); + InitObjectEventsLocal(); + SetCameraToTrackPlayer(); (*state)++; break; case 4: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 5: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 6: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 8: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -1953,7 +1930,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 13: @@ -1963,25 +1940,25 @@ static bool32 load_map_stuff(u8 *state, u32 a2) return FALSE; } -static bool32 sub_8086638(u8 *state) +static bool32 ReturnToFieldLocal(u8 *state) { switch (*state) { case 0: - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); - sub_8086988(0); + ResumeMap(FALSE); sub_8086A68(); - sub_8086A80(); + SetCameraToTrackPlayer(); (*state)++; break; case 1: - sub_8086860(); - sub_81D64C0(); + InitViewGraphics(); + TryLoadTrainerHillEReaderPalette(); (*state)++; break; case 2: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 3: @@ -1991,18 +1968,18 @@ static bool32 sub_8086638(u8 *state) return FALSE; } -static bool32 map_loading_iteration_2_link(u8 *state) +static bool32 ReturnToFieldLink(u8 *state) { switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; case 1: - sub_8086988(1); + ResumeMap(TRUE); (*state)++; break; case 2: @@ -2014,25 +1991,25 @@ static bool32 map_loading_iteration_2_link(u8 *state) case 3: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 4: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 5: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 6: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -2053,7 +2030,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 10: @@ -2068,12 +2045,12 @@ static bool32 map_loading_iteration_2_link(u8 *state) return FALSE; } -static void do_load_map_stuff_loop(u8 *state) +static void DoMapLoadLoop(u8 *state) { - while (!load_map_stuff(state, 0)); + while (!LoadMapInStepsLocal(state, FALSE)); } -static void sub_80867C8(void) +static void ResetMirageTowerAndSaveBlockPtrs(void) { ClearMirageTowerPulseBlend(); MoveSaveBlocks_ResetHeap(); @@ -2090,17 +2067,17 @@ static void sub_80867D8(void) LoadOam(); } -static void sub_8086860(void) +static void InitViewGraphics(void) { InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); - mapdata_load_assets_to_gpu_and_full_redraw(); + InitTextBoxGfxAndPrinters(); + InitMapView(); } static void InitOverworldGraphicsRegisters(void) { - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ResetTempTileDataBuffers(); SetGpuReg(REG_OFFSET_MOSAIC, 0); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); @@ -2133,7 +2110,7 @@ static void InitOverworldGraphicsRegisters(void) InitFieldMessageBox(); } -static void sub_8086988(u32 a1) +static void ResumeMap(bool32 a1) { ResetTasks(); ResetSpriteData(); @@ -2156,7 +2133,7 @@ static void sub_8086988(u32 a1) TryStartMirageTowerPulseBlendEffect(); } -static void sub_80869DC(void) +static void InitObjectEventsLink(void) { gTotalCameraPixelOffsetX = 0; gTotalCameraPixelOffsetY = 0; @@ -2165,7 +2142,7 @@ static void sub_80869DC(void) TryRunOnWarpIntoMapScript(); } -static void mli4_mapscripts_and_other(void) +static void InitObjectEventsLocal(void) { s16 x, y; struct InitialPlayerAvatarState *player; @@ -2189,9 +2166,9 @@ static void sub_8086A68(void) RunOnReturnToFieldMapScript(); } -static void sub_8086A80(void) +static void SetCameraToTrackPlayer(void) { - gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = 1; + gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = TRUE; InitCameraUpdateCallback(gPlayerAvatar.spriteId); } @@ -2206,17 +2183,17 @@ static void SetCameraToTrackGuestPlayer_2(void) InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } -static void sub_8086AE4(void) +static void OffsetCameraFocusByLinkPlayerId(void) { u16 x, y; GetCameraFocusCoords(&x, &y); - // This is a hack of some kind; it's undone in sub_8086B14, which is called + // This is a hack of some kind; it's undone in SpawnLinkPlayers, which is called // soon after this function. - sub_8088B3C(x + gLocalLinkPlayerId, y); + SetCameraFocusCoords(x + gLocalLinkPlayerId, y); } -static void sub_8086B14(void) +static void SpawnLinkPlayers(void) { u16 i; u16 x, y; @@ -2294,7 +2271,7 @@ static void CheckRfuKeepAliveTimer(void) static void ResetAllTradingStates(void) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_LINK_PLAYERS; i++) sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE; } @@ -2345,7 +2322,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); - sub_8087584(); + RunTerminateLinkScript(); } return; } @@ -2763,7 +2740,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) otherPlayerPos.height = 0; linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); - if (linkPlayerId != 4) + if (linkPlayerId != MAX_LINK_PLAYERS) { if (!player->isLocalPlayer) return CableClub_EventScript_TooBusyToNotice; @@ -2843,7 +2820,7 @@ static void InitMenuBasedScript(const u8 *script) ScriptContext2_Enable(); } -static void sub_8087584(void) +static void RunTerminateLinkScript(void) { ScriptContext1_SetupScript(EventScript_TerminateLink); ScriptContext2_Enable(); @@ -3212,7 +3189,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); - if (!linkPlayerObjEvent->movementMode != MOVEMENT_MODE_FREE) + if (linkPlayerObjEvent->movementMode == MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objEvent->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(objEvent->range.as_byte)); diff --git a/src/roulette_util.c b/src/palette_util.c index f1f04a73a..5364ff6d9 100755 --- a/src/roulette_util.c +++ b/src/palette_util.c @@ -1,208 +1,217 @@ #include "global.h" #include "palette.h" -#include "roulette.h" -#include "roulette_util.h" +#include "palette_util.h" #include "util.h" -void sub_8151678(struct UnkStruct0 *r0) +// "RouletteFlash" is more accurately a general flashing/fading util +// this file handles fading the palettes for the color/icon selections on the Roulette wheel +// but it also handles the "pulse blend" effect of Mirage Tower + +void RouletteFlash_Reset(struct RouletteFlashUtil *flash) { - r0->var00 = 0; - r0->var02 = 0; - memset(&r0->var04, 0, sizeof(r0->var04)); + flash->enabled = 0; + flash->flags = 0; + memset(&flash->palettes, 0, sizeof(flash->palettes)); } -u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) +u8 RouletteFlash_Add(struct RouletteFlashUtil *flash, u8 id, const struct RouletteFlashSettings *settings) { - if (!(r1 < 16) || (r0->var04[r1].var00_7)) + if (id >= ARRAY_COUNT(flash->palettes) || flash->palettes[id].available) return 0xFF; - r0->var04[r1].var04.var00 = r2->var00; - r0->var04[r1].var04.var02 = r2->var02; - r0->var04[r1].var04.var04 = r2->var04; - r0->var04[r1].var04.var05 = r2->var05; - r0->var04[r1].var04.var06 = r2->var06; - r0->var04[r1].var04.var07_0 = r2->var07_0; - r0->var04[r1].var04.var07_5 = r2->var07_5; - r0->var04[r1].var04.var07_7 = r2->var07_7; - r0->var04[r1].var00_0 = 0; - r0->var04[r1].var00_7 = 1; - r0->var04[r1].var02 = 0; - r0->var04[r1].var01 = 0; - if (r0->var04[r1].var04.var07_7 < 0) - r0->var04[r1].var03 = 0xFF; + flash->palettes[id].settings.color = settings->color; + flash->palettes[id].settings.paletteOffset = settings->paletteOffset; + flash->palettes[id].settings.numColors = settings->numColors; + flash->palettes[id].settings.delay = settings->delay; + flash->palettes[id].settings.unk6 = settings->unk6; + flash->palettes[id].settings.numFadeCycles = settings->numFadeCycles; + flash->palettes[id].settings.unk7_5 = settings->unk7_5; + flash->palettes[id].settings.colorDeltaDir = settings->colorDeltaDir; + flash->palettes[id].state = 0; + flash->palettes[id].available = TRUE; + flash->palettes[id].fadeCycleCounter = 0; + flash->palettes[id].delayCounter = 0; + if (flash->palettes[id].settings.colorDeltaDir < 0) + flash->palettes[id].colorDelta = -1; else - r0->var04[r1].var03 = 1; + flash->palettes[id].colorDelta = 1; - return r1; + return id; } -u8 sub_8151710(struct UnkStruct0 *r0, u8 r1) +// Unused +static u8 RouletteFlash_Remove(struct RouletteFlashUtil *flash, u8 id) { - if (r1 >= 16) + if (id >= ARRAY_COUNT(flash->palettes)) return 0xFF; - if (!r0->var04[r1].var00_7) + if (!flash->palettes[id].available) return 0xFF; - memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); - return r1; + memset(&flash->palettes[id], 0, sizeof(flash->palettes[id])); + return id; } -u8 sub_8151744(struct UnkStruct3 *r0) +static u8 RouletteFlash_FadePalette(struct RouletteFlashPalette *pal) { u8 i; u8 returnval; - for (i = 0; i < r0->var04.var04; i++) + for (i = 0; i < pal->settings.numColors; i++) { - struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; - struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[pal->settings.paletteOffset + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[pal->settings.paletteOffset + i]; - switch (r0->var00_0) + switch (pal->state) { case 1: - if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) - faded->r += r0->var03; - if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) - faded->g += r0->var03; - if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) - faded->b += r0->var03; + // Fade color + if (faded->r + pal->colorDelta >= 0 && faded->r + pal->colorDelta < 32) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= 0 && faded->g + pal->colorDelta < 32) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= 0 && faded->b + pal->colorDelta < 32) + faded->b += pal->colorDelta; break; case 2: - if (r0->var03 < 0) + // Fade back to original color + if (pal->colorDelta < 0) { - if (faded->r + r0->var03 >= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 >= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 >= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta >= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= unfaded->b) + faded->b += pal->colorDelta; } else { - if (faded->r + r0->var03 <= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 <= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 <= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta <= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta <= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta <= unfaded->b) + faded->b += pal->colorDelta; } break; } } - if ((u32)r0->var02++ != r0->var04.var07_0) + if ((u32)pal->fadeCycleCounter++ != pal->settings.numFadeCycles) { returnval = 0; } else { - r0->var02 = 0; - r0->var03 *= -1; - if (r0->var00_0 == 1) - r0->var00_0++; + pal->fadeCycleCounter = 0; + pal->colorDelta *= -1; + if (pal->state == 1) + pal->state++; else - r0->var00_0--; + pal->state--; returnval = 1; } return returnval; } -u8 sub_815194C(struct UnkStruct3 *r0) +static u8 RouletteFlash_FlashPalette(struct RouletteFlashPalette *pal) { - u8 rg2 = 0; - - switch (r0->var00_0) + u8 i = 0; + switch (pal->state) { case 1: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; - r0->var00_0++; + // Flash to color + for (; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = pal->settings.color; + pal->state++; break; case 2: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; - r0->var00_0--; + // Restore to original color + for (; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = gPlttBufferUnfaded[pal->settings.paletteOffset + i]; + pal->state--; break; } return 1; } -void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +void RouletteFlash_Run(struct RouletteFlashUtil *flash) { u8 i = 0; - if (r0->var00) + if (flash->enabled) { - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (--r0->var04[i].var01 == 0xFF) // if underflow ? + if (--flash->palettes[i].delayCounter == (u8)-1) { - if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? - sub_8151744(&r0->var04[i]); + if (flash->palettes[i].settings.color & FLASHUTIL_USE_EXISTING_COLOR) + RouletteFlash_FadePalette(&flash->palettes[i]); else - sub_815194C(&r0->var04[i]); + RouletteFlash_FlashPalette(&flash->palettes[i]); - r0->var04[i].var01 = r0->var04[i].var04.var05; + flash->palettes[i].delayCounter = flash->palettes[i].settings.delay; } } } } } -void sub_8151A48(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Enable(struct RouletteFlashUtil *flash, u16 flags) { u8 i = 0; - r0->var00++; - for (i = 0; i < 16; i++) + flash->enabled++; + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - r0->var02 |= 1 << i; - r0->var04[i].var00_0 = 1; + flash->flags |= 1 << i; + flash->palettes[i].state = 1; } } } } -void sub_8151A9C(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Stop(struct RouletteFlashUtil *flash, u16 flags) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - u32 offset = r0->var04[i].var04.var02; + u32 offset = flash->palettes[i].settings.paletteOffset; u16 *faded = &gPlttBufferFaded[offset]; u16 *unfaded = &gPlttBufferUnfaded[offset]; - memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); - r0->var04[i].var00_0 = 0; - r0->var04[i].var02 = 0; - r0->var04[i].var01 = 0; - if (r0->var04[i].var04.var07_7 < 0) - r0->var04[i].var03 = 0xFF; + memcpy(faded, unfaded, flash->palettes[i].settings.numColors * 2); + flash->palettes[i].state = 0; + flash->palettes[i].fadeCycleCounter = 0; + flash->palettes[i].delayCounter = 0; + if (flash->palettes[i].settings.colorDeltaDir < 0) + flash->palettes[i].colorDelta = -1; else - r0->var04[i].var03 = 0x1; + flash->palettes[i].colorDelta = 1; } } } } - if (r1 == 0xFFFF) + + if (flags == 0xFFFF) { - r0->var00 = 0; - r0->var02 = 0; + // Stopped all + flash->enabled = 0; + flash->flags = 0; } else { - r0->var02 = r0->var02 & ~r1; + flash->flags &= ~flags; } } @@ -429,7 +438,8 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend) } } -void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +// Below used for the Roulette grid +void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u8 i; @@ -446,7 +456,7 @@ void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) } } -void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u16 *_src = src; diff --git a/src/party_menu.c b/src/party_menu.c index d5bc6dfb6..7514cf545 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -462,7 +462,7 @@ static void CB2_UpdatePartyMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -489,7 +489,7 @@ static bool8 ShowPartyMenu(void) case 0: SetVBlankHBlankCallbacksToNull(); ResetVramOamAndBgCntRegs(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -1294,7 +1294,7 @@ static bool8 IsSelectedMonNotEgg(u8 *slotPtr) { if (GetMonData(&gPlayerParty[*slotPtr], MON_DATA_IS_EGG) == TRUE) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return FALSE; } return TRUE; @@ -1305,7 +1305,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) switch (gPartyMenu.action) { case PARTY_ACTION_SEND_OUT: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; case PARTY_ACTION_SWITCH: case PARTY_ACTION_SOFTBOILED: @@ -1862,7 +1862,7 @@ u8 GetMonAilment(struct Pokemon *mon) static void SetPartyMonsAllowedInMinigame(void) { - u16 *ptr; + s16 *ptr; if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) { @@ -1915,7 +1915,7 @@ static void TryEnterMonForMinigame(u8 taskId, u8 slot) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuMessage(gText_PkmnCantParticipate, FALSE); ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; @@ -3471,7 +3471,7 @@ static void CursorCb_Enter(u8 taskId) } ConvertIntToDecimalStringN(gStringVar1, maxBattlers, STR_CONV_MODE_LEFT_ALIGN, 1); StringExpandPlaceholders(gStringVar4, gText_NoMoreThanVar1Pkmn); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; } @@ -3538,7 +3538,7 @@ static void CursorCb_Register(u8 taskId) Task_ClosePartyMenu(taskId); return; } - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); StringAppend(gStringVar4, gText_PauseUntilPress); @@ -3556,7 +3556,7 @@ static void CursorCb_Trade1(u8 taskId) if (stringId != UR_TRADE_MSG_NONE) { StringExpandPlaceholders(gStringVar4, sUnionRoomTradeMessages[stringId - 1]); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); StringAppend(gStringVar4, gText_PauseUntilPress); @@ -3595,7 +3595,7 @@ static void CursorCb_Trade2(u8 taskId) gTasks[taskId].func = Task_SpinTradeYesNo; return; } - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); StringAppend(gStringVar4, gText_PauseUntilPress); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; @@ -4355,13 +4355,13 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task) gPartyMenuUseExitCallback = TRUE; if (!IsItemFlute(item)) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) RemoveBagItem(item, 1); } else { - PlaySE(SE_BIDORO); + PlaySE(SE_GLASS_FLUTE); } SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) @@ -4426,7 +4426,7 @@ void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task) else { gPartyMenuUseExitCallback = TRUE; - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(item, 1); GetMonNickname(mon, gStringVar1); ItemEffectToStatString(effectType, gStringVar2); @@ -4591,7 +4591,7 @@ static void TryUsePPItem(u8 taskId) { gPartyMenuUseExitCallback = TRUE; mon = &gPlayerParty[ptr->slotId]; - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(item, 1); move = GetMonData(mon, MON_DATA_MOVE1 + *moveSlot); StringCopy(gStringVar1, gMoveNames[move]); @@ -4715,7 +4715,7 @@ static void Task_DoLearnedMoveFanfareAfterText(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); gTasks[taskId].func = Task_LearnNextMoveOrClosePartyMenu; } } @@ -4951,9 +4951,9 @@ static void Task_DisplayLevelUpStatsPg2(u8 taskId) static void DisplayLevelUpStatsPg1(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16*)sPartyMenuInternal->data; - arrayPtr[12] = CreateLevelUpStatsWindow(); + arrayPtr[12] = (u16)CreateLevelUpStatsWindow(); DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); ScheduleBgCopyTilemapToVram(2); @@ -4961,7 +4961,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId) static void DisplayLevelUpStatsPg2(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16 *)sPartyMenuInternal->data; DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); @@ -5095,7 +5095,7 @@ static void UseSacredAsh(u8 taskId) return; } - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); @@ -5596,7 +5596,7 @@ static void Task_ValidateChosenHalfParty(u8 taskId) if (msgId != 0xFF) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(msgId); gTasks[taskId].func = Task_ContinueChoosingHalfParty; } @@ -6077,7 +6077,7 @@ static void Task_MultiPartnerPartySlideIn(u8 taskId) if (gMultiPartnerParty[i - MULTI_PARTY_SIZE].species != SPECIES_NONE) AnimateSelectedPartyIcon(sPartyMenuBoxes[i].monSpriteId, 0); } - PlaySE(SE_W231); // The Harden SE plays once the partners party mons have slid on screen + PlaySE(SE_M_HARDEN); // The Harden SE plays once the partners party mons have slid on screen gTasks[taskId].func = Task_WaitAfterMultiPartnerPartySlideIn; } } diff --git a/src/player_pc.c b/src/player_pc.c index fc0bd9f4c..2010d84f8 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -327,7 +327,7 @@ void PlayerPC(void) static void InitPlayerPCMenu(u8 taskId) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -346,7 +346,7 @@ static void InitPlayerPCMenu(u8 taskId) static void PlayerPCProcessMenuInput(u8 taskId) { - u16 *data; + s16 *data; s8 inputOptionId; data = gTasks[taskId].data; @@ -435,7 +435,7 @@ static void PlayerPC_TurnOff(u8 taskId) static void InitItemStorageMenu(u8 taskId, u8 var) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -548,7 +548,7 @@ static void ItemStorage_Toss(u8 taskId) static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) { - u16 *data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; data[3] = toss; sub_816B4DC(taskId); @@ -581,9 +581,9 @@ static void ItemStorage_SetItemAndMailCount(u8 taskId) static void sub_816B4DC(u8 taskId) { - u16 *data = gTasks[taskId].data; + u16 *data = (u16 *)gTasks[taskId].data; - ClearStdWindowAndFrameToTransparent(data[4], FALSE); + ClearStdWindowAndFrameToTransparent((u8)data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); ScheduleBgCopyTilemapToVram(0); @@ -1380,7 +1380,7 @@ static void ItemStorage_DoItemToss(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) + if (ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId) == 0) { CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); diff --git a/src/pokeball.c b/src/pokeball.c index a065be3f0..b176677bd 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -406,7 +406,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) gSprites[ballSpriteId].oam.affineParam = taskId; gTasks[taskId].tOpponentBattler = gBattlerTarget; gTasks[taskId].func = TaskDummy; - PlaySE(SE_NAGERU); + PlaySE(SE_BALL_THROW); } static void SpriteCB_TestBallThrow(struct Sprite *sprite) @@ -464,7 +464,7 @@ static void sub_807574C(struct Sprite *sprite) { sprite->data[5]++; if (sprite->data[5] == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded) { StartSpriteAnim(sprite, 2); @@ -514,16 +514,16 @@ static void sub_8075838(struct Sprite *sprite) switch (sprite->data[3] >> 8) { case 1: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); break; case 2: - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); break; case 3: - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); break; default: - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); break; } } @@ -565,7 +565,7 @@ static void sub_8075930(struct Sprite *sprite) sprite->affineAnimPaused = TRUE; StartSpriteAffineAnim(sprite, 1); sprite->callback = sub_8075970; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } @@ -634,7 +634,7 @@ static void sub_8075970(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 2); else StartSpriteAffineAnim(sprite, 1); - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } break; } @@ -881,7 +881,7 @@ static void sub_80760F8(struct Sprite *sprite) { gDoingBattleAnim = FALSE; m4aMPlayAllStop(); - PlaySE(MUS_FANFA5); + PlaySE(MUS_EVOLVED); } else if (sprite->data[4] == 315) { @@ -1150,7 +1150,7 @@ static void sub_807687C(struct Sprite *sprite) sprite->data[5]++; if (sprite->data[5] == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); r1 = sprite->data[0]; if (gSprites[r1].affineAnimEnded) { diff --git a/src/pokeblock.c b/src/pokeblock.c index 506c5e4c4..025adf875 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -475,7 +475,7 @@ static void CB2_PokeblockMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -507,7 +507,7 @@ static bool8 InitPokeblockMenu(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -725,8 +725,8 @@ static void PutPokeblockListMenuString(u8 *dst, u16 pkblId) u8 *txtPtr = StringCopy(dst, gPokeblockNames[pkblock->color]); *(txtPtr++) = EXT_CTRL_CODE_BEGIN; - *(txtPtr++) = 0x12; - *(txtPtr++) = 0x57; + *(txtPtr++) = EXT_CTRL_CODE_SKIP; + *(txtPtr++) = 87; ConvertIntToDecimalStringN(gStringVar1, GetHighestPokeblocksFlavorLevel(pkblock), STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(txtPtr, gText_LvVar1); diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index fa29ca981..e15a005e6 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -518,7 +518,7 @@ static void CB2_PokeblockFeed(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -536,7 +536,7 @@ static bool8 TransitionToPokeblockFeedScene(void) case 0: sPokeblockFeed = AllocZeroed(sizeof(*sPokeblockFeed)); SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/pokedex.c b/src/pokedex.c index 0541f3f2e..a86c22153 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1959,7 +1959,7 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId) case 3: //BACK TO POKEDEX BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); break; case 4: //CLOSE POKEDEX BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); @@ -2596,7 +2596,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) selectedMon = GetNextPosition(1, selectedMon, 0, sPokedexView->pokemonListCount - 1); CreateScrollingPokemonSprite(1, selectedMon); CreateMonListEntry(1, selectedMon, ignored); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } else if ((gMain.heldKeys & DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1)) { @@ -2604,7 +2604,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) selectedMon = GetNextPosition(0, selectedMon, 0, sPokedexView->pokemonListCount - 1); CreateScrollingPokemonSprite(2, selectedMon); CreateMonListEntry(2, selectedMon, ignored); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } else if ((gMain.newKeys & DPAD_LEFT) && (selectedMon > 0)) { @@ -2615,7 +2615,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos); ClearMonSprites(); CreateMonSpritesAtPos(selectedMon, 0xE); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } else if ((gMain.newKeys & DPAD_RIGHT) && (selectedMon < sPokedexView->pokemonListCount - 1)) { @@ -2625,7 +2625,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos); ClearMonSprites(); CreateMonSpritesAtPos(selectedMon, 0xE); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } if (scrollDir == 0) @@ -3353,7 +3353,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) // Scroll up/down BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_LoadInfoScreenWaitForFade; - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); return; } if (gMain.newKeys & B_BUTTON) @@ -3382,7 +3382,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) case SIZE_SCREEN: if (!sPokedexListItem->owned) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } else { @@ -3406,7 +3406,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) { sPokedexView->selectedScreen--; HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } if (((gMain.newKeys & DPAD_RIGHT) @@ -3415,7 +3415,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) { sPokedexView->selectedScreen++; HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } } @@ -3654,7 +3654,7 @@ static void Task_HandleCryScreenInput(u8 taskId) m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } if ((gMain.newKeys & DPAD_RIGHT) @@ -3662,7 +3662,7 @@ static void Task_HandleCryScreenInput(u8 taskId) { if (!sPokedexListItem->owned) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } else { @@ -3670,7 +3670,7 @@ static void Task_HandleCryScreenInput(u8 taskId) m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 3; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } return; } @@ -3823,7 +3823,7 @@ static void Task_HandleSizeScreenInput(u8 taskId) BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromSizeScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } } @@ -4145,7 +4145,7 @@ static void PrintMonHeight(u16 height, u8 left, u8 top) inches = (inches - (feet * 120)) / 10; buffer[i++] = EXT_CTRL_CODE_BEGIN; - buffer[i++] = 0x13; + buffer[i++] = EXT_CTRL_CODE_CLEAR_TO; if (feet / 10 == 0) { buffer[i++] = 18; @@ -4936,7 +4936,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId) } if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].tTopBarItem > SEARCH_TOPBAR_SEARCH) { - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); gTasks[taskId].tTopBarItem--; HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem); CopyWindowToVram(0, 2); @@ -4944,7 +4944,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId) } if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].tTopBarItem < SEARCH_TOPBAR_CANCEL) { - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); gTasks[taskId].tTopBarItem++; HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem); CopyWindowToVram(0, 2); @@ -4983,7 +4983,7 @@ static void Task_HandleSearchMenuInput(u8 taskId) if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); SetDefaultSearchModeAndOrder(taskId); gTasks[taskId].func = Task_SwitchToSearchMenuTopBar; return; @@ -5011,7 +5011,7 @@ static void Task_HandleSearchMenuInput(u8 taskId) { EraseAndPrintSearchTextBox(gText_SearchingPleaseWait); gTasks[taskId].func = Task_StartPokedexSearch; - PlaySE(SE_Z_SEARCH); + PlaySE(SE_DEX_SEARCH); CopyWindowToVram(0, 2); } } @@ -5076,12 +5076,12 @@ static void Task_WaitAndCompleteSearch(u8 taskId) { if (sPokedexView->pokemonListCount != 0) { - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); EraseAndPrintSearchTextBox(gText_SearchCompleted); } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); EraseAndPrintSearchTextBox(gText_NoMatchingPkmnWereFound); } gTasks[taskId].func = Task_SearchCompleteWaitForInput; @@ -5105,7 +5105,7 @@ static void Task_SearchCompleteWaitForInput(u8 taskId) else { gTasks[taskId].func = Task_SwitchToSearchMenu; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } } @@ -5117,9 +5117,9 @@ static void Task_SelectSearchMenuItem(u8 taskId) u16 *scrollOffset; DrawOrEraseSearchParameterBox(FALSE); - menuItem = gTasks[taskId].tMenuItem; - cursorPos = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; - scrollOffset = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; + menuItem = (u16)gTasks[taskId].tMenuItem; + cursorPos = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; + scrollOffset = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; gTasks[taskId].tCursorPos = *cursorPos; gTasks[taskId].tScrollOffset = *scrollOffset; PrintSearchParameterText(taskId); @@ -5156,7 +5156,7 @@ static void Task_HandleSearchParameterInput(u8 taskId) } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); ClearSearchParameterBoxText(); DrawOrEraseSearchParameterBox(TRUE); *cursorPos = gTasks[taskId].tCursorPos; diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 0232d4fc4..8450f8530 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -732,7 +732,7 @@ static void Task_HandlePokedexAreaScreenInput(u8 taskId) else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { gTasks[taskId].data[1] = 2; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } else return; diff --git a/src/pokemon.c b/src/pokemon.c index 80e93c568..188624d6a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1868,21 +1868,21 @@ const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up c const u8 gPPUpSetMask[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count const u8 gPPUpAddMask[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count -const u8 gStatStageRatios[][2] = +const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2] = { - {10, 40}, // -6 + {10, 40}, // -6, MIN_STAT_STAGE {10, 35}, // -5 {10, 30}, // -4 {10, 25}, // -3 {10, 20}, // -2 {10, 15}, // -1 - {10, 10}, // 0 + {10, 10}, // 0, DEFAULT_STAT_STAGE {15, 10}, // +1 {20, 10}, // +2 {25, 10}, // +3 {30, 10}, // +4 {35, 10}, // +5 - {40, 10}, // +6 + {40, 10}, // +6, MAX_STAT_STAGE }; static const u16 sDeoxysBaseStats[] = @@ -1898,22 +1898,22 @@ static const u16 sDeoxysBaseStats[] = const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE_LINK_FACILITY_CLASSES] = { // Male classes - FACILITY_CLASS_COOLTRAINER_M, - FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_COOLTRAINER_M, + FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_CAMPER, - FACILITY_CLASS_YOUNGSTER, - FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_BUG_CATCHER, - FACILITY_CLASS_PKMN_BREEDER_M, + FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, // Female Classes - FACILITY_CLASS_COOLTRAINER_F, - FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_COOLTRAINER_F, + FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, - FACILITY_CLASS_LASS, - FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, - FACILITY_CLASS_PKMN_BREEDER_F, + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_BEAUTY }; @@ -3199,7 +3199,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de { if (gCritMultiplier == 2) { - if (attacker->statStages[STAT_ATK] > 6) + if (attacker->statStages[STAT_ATK] > DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK) else damage = attack; @@ -3212,7 +3212,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gCritMultiplier == 2) { - if (defender->statStages[STAT_DEF] < 6) + if (defender->statStages[STAT_DEF] < DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF) else damageHelper = defense; @@ -3249,7 +3249,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de { if (gCritMultiplier == 2) { - if (attacker->statStages[STAT_SPATK] > 6) + if (attacker->statStages[STAT_SPATK] > DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK) else damage = spAttack; @@ -3262,7 +3262,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gCritMultiplier == 2) { - if (defender->statStages[STAT_SPDEF] < 6) + if (defender->statStages[STAT_SPDEF] < DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF) else damageHelper = spDefense; @@ -4499,8 +4499,8 @@ void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord) for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * 4 + j]); - SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * 4 + j]].pp); + SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * MAX_MON_MOVES + j]); + SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * MAX_MON_MOVES + j]].pp); } } } @@ -4624,11 +4624,11 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(battlerId)]; *hpSwitchout = gBattleMons[battlerId].hp; - for (i = 0; i < 8; i++) - gBattleMons[battlerId].statStages[i] = 6; + for (i = 0; i < NUM_BATTLE_STATS; i++) + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[battlerId].status2 = 0; - sub_803FA70(battlerId); + UpdateSentPokesToOpponentValue(battlerId); ClearTemporarySpeciesSpriteData(battlerId, FALSE); } @@ -4728,49 +4728,49 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM0_X_ATTACK) - && gBattleMons[gActiveBattler].statStages[STAT_ATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[cmdIndex] & ITEM0_X_ATTACK; - if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > 12) - gBattleMons[gActiveBattler].statStages[STAT_ATK] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE; retVal = FALSE; } break; // in-battle stat boosting effects case 1: if ((itemEffect[cmdIndex] & ITEM1_X_DEFEND) - && gBattleMons[gActiveBattler].statStages[STAT_DEF] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[cmdIndex] & ITEM1_X_DEFEND) >> 4; - if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > 12) - gBattleMons[gActiveBattler].statStages[STAT_DEF] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE; retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM1_X_SPEED) - && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[cmdIndex] & ITEM1_X_SPEED; - if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > 12) - gBattleMons[gActiveBattler].statStages[STAT_SPEED] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE; retVal = FALSE; } break; // more stat boosting effects case 2: if ((itemEffect[cmdIndex] & ITEM2_X_ACCURACY) - && gBattleMons[gActiveBattler].statStages[STAT_ACC] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[cmdIndex] & ITEM2_X_ACCURACY) >> 4; - if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > 12) - gBattleMons[gActiveBattler].statStages[STAT_ACC] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_ACC] = MAX_STAT_STAGE; retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM2_X_SPATK) - && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[cmdIndex] & ITEM2_X_SPATK; - if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > 12) - gBattleMons[gActiveBattler].statStages[STAT_SPATK] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE; retVal = FALSE; } break; @@ -5806,7 +5806,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) if (friendship > 199) friendshipLevel++; - if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) + if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE)) { s8 mod = sFriendshipEventModifiers[event][friendshipLevel]; @@ -5848,7 +5848,7 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) { if (totalEVs >= MAX_TOTAL_EVS) break; - + if (CheckPartyHasHadPokerus(mon, 0)) multiplier = 2; else @@ -5895,9 +5895,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) if (totalEVs + (s16)evIncrease > MAX_TOTAL_EVS) evIncrease = ((s16)evIncrease + MAX_TOTAL_EVS) - (totalEVs + evIncrease); - if (evs[i] + (s16)evIncrease > 255) + if (evs[i] + (s16)evIncrease > MAX_PER_STAT_EVS) { - int val1 = (s16)evIncrease + 255; + int val1 = (s16)evIncrease + MAX_PER_STAT_EVS; int val2 = evs[i] + evIncrease; evIncrease = val1 - val2; } @@ -6138,7 +6138,7 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) for (i = 0; i < MAX_MON_MOVES; i++) learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0); - for (i = 0; i < 20; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES; i++) { u16 moveLevel; @@ -6171,7 +6171,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 numMoves = 0; int i; - for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; return numMoves; @@ -6180,7 +6180,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) { u16 learnedMoves[MAX_MON_MOVES]; - u16 moves[20]; + u16 moves[MAX_LEVEL_UP_MOVES]; u8 numMoves = 0; u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); @@ -6192,7 +6192,7 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) for (i = 0; i < MAX_MON_MOVES; i++) learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0); - for (i = 0; i < 20; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES; i++) { u16 moveLevel; @@ -6253,11 +6253,11 @@ void ClearBattleMonForms(void) u16 GetBattleBGM(void) { if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) - return MUS_BATTLE34; + return MUS_VS_KYOGRE_GROUDON; else if (gBattleTypeFlags & BATTLE_TYPE_REGI) - return MUS_BATTLE36; + return MUS_VS_REGI; else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - return MUS_BATTLE20; + return MUS_VS_TRAINER; else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { u8 trainerClass; @@ -6273,24 +6273,24 @@ u16 GetBattleBGM(void) { case TRAINER_CLASS_AQUA_LEADER: case TRAINER_CLASS_MAGMA_LEADER: - return MUS_BATTLE30; + return MUS_VS_AQUA_MAGMA_LEADER; case TRAINER_CLASS_TEAM_AQUA: case TRAINER_CLASS_TEAM_MAGMA: case TRAINER_CLASS_AQUA_ADMIN: case TRAINER_CLASS_MAGMA_ADMIN: - return MUS_BATTLE31; + return MUS_VS_AQUA_MAGMA; case TRAINER_CLASS_LEADER: - return MUS_BATTLE32; + return MUS_VS_GYM_LEADER; case TRAINER_CLASS_CHAMPION: - return MUS_BATTLE33; + return MUS_VS_CHAMPION; case TRAINER_CLASS_PKMN_TRAINER_3: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) - return MUS_BATTLE35; + return MUS_VS_RIVAL; if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName)) - return MUS_BATTLE20; - return MUS_BATTLE35; + return MUS_VS_TRAINER; + return MUS_VS_RIVAL; case TRAINER_CLASS_ELITE_FOUR: - return MUS_BATTLE38; + return MUS_VS_ELITE_FOUR; case TRAINER_CLASS_SALON_MAIDEN: case TRAINER_CLASS_DOME_ACE: case TRAINER_CLASS_PALACE_MAVEN: @@ -6298,13 +6298,13 @@ u16 GetBattleBGM(void) case TRAINER_CLASS_FACTORY_HEAD: case TRAINER_CLASS_PIKE_QUEEN: case TRAINER_CLASS_PYRAMID_KING: - return MUS_VS_FRONT; + return MUS_VS_FRONTIER_BRAIN; default: - return MUS_BATTLE20; + return MUS_VS_TRAINER; } } else - return MUS_BATTLE27; + return MUS_VS_WILD; } void PlayBattleBGM(void) @@ -6814,7 +6814,9 @@ static void sub_806F160(struct Unknown_806F160_Struct* structPtr) structPtr->templates[i] = gUnknown_08329D98[i]; for (j = 0; j < structPtr->field_1; j++) { - asm(""); + #ifndef NONMATCHING + asm(""); + #endif structPtr->frameImages[i * structPtr->field_1 + j].data = &structPtr->byteArrays[i][j * 0x800]; } structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->field_1]; diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index a388be39a..37abb90e9 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -2884,7 +2884,11 @@ static void sub_8181C2C(struct Sprite *sprite) } else { - register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8; + #ifndef NONMATCHING + register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8; + #else + s32 var = sUnknown_03001240[sprite->data[0]].field_8; + #endif sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (sUnknown_03001240[sprite->data[0]].field_8 * 8); sprite->pos2.y = -(Sin(counter % 128, 8)); diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 33ddee1b5..96774c0bb 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -576,7 +576,7 @@ static void sub_802ACA0(u8 taskId) case 2: if (!sub_802D0F0() && IsNotWaitingForBGMStop() == TRUE) { - FadeOutAndPlayNewMapMusic(MUS_RG_JUMP, 8); + FadeOutAndPlayNewMapMusic(MUS_RG_POKE_JUMP, 8); gUnknown_02022CFC->unk8++; } break; @@ -1463,7 +1463,7 @@ static bool32 sub_802BC60(void) case 4: if (!gPaletteFade.active) { - sub_800AC34(); + SetCloseLinkCallback(); gUnknown_02022CFC->unkA++; } break; @@ -1721,7 +1721,7 @@ static void sub_802C1BC(void) gUnknown_02022CFC->unk83AC->unk10 = 0; } -static const u16 gUnknown_082FB654[] = {SE_REGI, SE_REAPOKE, SE_W234, SE_RG_EXCELLENT}; +static const u16 gUnknown_082FB654[] = {SE_SHOP, SE_SHINY, SE_M_MORNING_SUN, SE_RG_POKE_JUMP_SUCCESS}; static void sub_802C1DC(void) { @@ -1798,9 +1798,9 @@ static void sub_802C280(void) } if (whichSound & 0x2) - PlaySE(SE_RG_NAWAMISS); + PlaySE(SE_RG_POKE_JUMP_FAILURE); else if (whichSound & 0x1) - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); } static const s8 gUnknown_082FB65C[][48] = @@ -2702,7 +2702,7 @@ static void sub_802CDD4(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); sprite->data[1] = 0; sprite->data[0]++; // fall through @@ -3275,7 +3275,7 @@ static void sub_802D7E8(u16 itemId, u16 quantity) gUnknown_02022D00->unk12 = sub_802DA9C(4, 8, 22, 4); AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk14 = MUS_FANFA1; + gUnknown_02022D00->unk14 = MUS_LEVEL_UP; gUnknown_02022D00->unkD = 0; } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 703371ba9..546f50dce 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -2146,7 +2146,7 @@ static void VblankCb_PSS(void) static void Cb2_PSS(void) { RunTasks(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); ScrollBackground(); sub_80CAA14(); AnimateSprites(); @@ -2214,7 +2214,7 @@ static void sub_80C7E98(void) gReservedSpriteTileCount = 0x280; sub_80D2A90(&sPSSData->unk_0020, sPSSData->unk_0028, 8); gKeyRepeatStartDelay = 20; - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sub_80D259C(3); sub_80D2644(0, 1, gUnknown_0857239C, 8, 4); sub_80D2770(0, 1, 0); @@ -2360,11 +2360,11 @@ static void Cb_ShowPSS(u8 taskId) { case 0: PlaySE(SE_PC_LOGIN); - sub_80F9BCC(0x14, 0, 1); + ComputerScreenOpenEffect(20, 0, 1); sPSSData->state++; break; case 1: - if (!sub_80F9C1C()) + if (!IsComputerScreenOpenEffectActive()) SetPSSCallback(Cb_MainPSS); break; } @@ -2576,7 +2576,7 @@ static void Cb_MainPSS(u8 taskId) sPSSData->state = 7; break; case 24: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; } break; @@ -2622,12 +2622,12 @@ static void Cb_MainPSS(u8 taskId) } break; case 4: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_LAST_POKE); sPSSData->state = 6; break; case 5: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); sPSSData->state = 6; break; @@ -2843,17 +2843,17 @@ static void Cb_OnSelectedMon(u8 taskId) } break; case 3: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_LAST_POKE); sPSSData->state = 6; break; case 5: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG); sPSSData->state = 6; break; case 4: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); sPSSData->state = 6; break; @@ -3277,7 +3277,7 @@ static void Cb_ItemToBag(u8 taskId) case 0: if (!AddBagItem(sPSSData->cursorMonItem, 1)) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_BAG_FULL); sPSSData->state = 3; } @@ -3742,7 +3742,7 @@ static void Cb_OnCloseBoxPressed(u8 taskId) case 0: if (IsMonBeingMoved()) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_HOLDING_POKE); sPSSData->state = 1; } @@ -3781,11 +3781,11 @@ static void Cb_OnCloseBoxPressed(u8 taskId) } break; case 3: - sub_80F9BF4(0x14, 0, 1); + ComputerScreenCloseEffect(20, 0, 1); sPSSData->state++; break; case 4: - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { sub_80CABE0(); gPlayerPartyCount = CalculatePlayerPartyCount(); @@ -3803,7 +3803,7 @@ static void Cb_OnBPressed(u8 taskId) case 0: if (IsMonBeingMoved()) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_HOLDING_POKE); sPSSData->state = 1; } @@ -3842,11 +3842,11 @@ static void Cb_OnBPressed(u8 taskId) } break; case 3: - sub_80F9BF4(0x14, 0, 0); + ComputerScreenCloseEffect(20, 0, 0); sPSSData->state++; break; case 4: - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { sub_80CABE0(); gPlayerPartyCount = CalculatePlayerPartyCount(); @@ -6869,36 +6869,36 @@ static void SetCursorMonData(void *pokemon, u8 mode) txtPtr = sPSSData->cursorMonGenderLvlText; *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; - *(txtPtr)++ = 4; + *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; switch (gender) { case MON_MALE: - *(txtPtr)++ = 4; - *(txtPtr)++ = 1; - *(txtPtr)++ = 5; + *(txtPtr)++ = TEXT_COLOR_RED; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_RED; *(txtPtr)++ = CHAR_MALE; break; case MON_FEMALE: - *(txtPtr)++ = 6; - *(txtPtr)++ = 1; - *(txtPtr)++ = 7; + *(txtPtr)++ = TEXT_COLOR_GREEN; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GREEN; *(txtPtr)++ = CHAR_FEMALE; break; default: - *(txtPtr)++ = 2; - *(txtPtr)++ = 1; - *(txtPtr)++ = 3; - *(txtPtr)++ = 0x77; + *(txtPtr)++ = TEXT_COLOR_DARK_GREY; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GREY; + *(txtPtr)++ = CHAR_UNK_SPACER; break; } *(txtPtr++) = EXT_CTRL_CODE_BEGIN; - *(txtPtr++) = 4; - *(txtPtr++) = 2; - *(txtPtr++) = 1; - *(txtPtr++) = 3; - *(txtPtr++) = 0; - *(txtPtr++) = CHAR_SPECIAL_F9; + *(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(txtPtr++) = TEXT_COLOR_DARK_GREY; + *(txtPtr++) = TEXT_COLOR_WHITE; + *(txtPtr++) = TEXT_COLOR_LIGHT_GREY; + *(txtPtr++) = CHAR_SPACE; + *(txtPtr++) = CHAR_EXTRA_SYMBOL; *(txtPtr++) = CHAR_LV_2; txtPtr = ConvertIntToDecimalStringN(txtPtr, sPSSData->cursorMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -8097,7 +8097,7 @@ static bool8 sub_80D0344(void) if (!IsDma3ManagerBusyWithBgCopy()) { sub_80CFE84(); - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); ShowBg(0); return FALSE; } @@ -8203,7 +8203,7 @@ static bool8 sub_80D04C8(void) case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); sub_80CFE84(); ShowBg(0); return FALSE; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index e8b30f773..d016c455c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -709,9 +709,9 @@ static void (*const sTextPrinterTasks[])(u8 taskId) = static const u8 sMemoNatureTextColor[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); // This is also affected by palettes, apparently -static const u8 sStatsLeftColumnLayout[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); -static const u8 sStatsRightColumnLayout[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); -static const u8 sMovesPPLayout[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); +static const u8 sStatsLeftColumnLayout[] = _("{DYNAMIC 0}/{DYNAMIC 1}\n{DYNAMIC 2}\n{DYNAMIC 3}"); +static const u8 sStatsRightColumnLayout[] = _("{DYNAMIC 0}\n{DYNAMIC 1}\n{DYNAMIC 2}"); +static const u8 sMovesPPLayout[] = _("{PP}{DYNAMIC 0}/{DYNAMIC 1}"); #define TAG_MOVE_SELECTOR 30000 #define TAG_MON_STATUS 30001 @@ -1120,7 +1120,7 @@ static void MainCB2(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -1143,7 +1143,7 @@ static bool8 LoadGraphics(void) case 0: SetVBlankHBlankCallbacksToNull(); ResetVramOamAndBgCntRegs(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -1903,7 +1903,7 @@ static void Task_HandleInput_MoveSelect(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } } else if (gMain.newKeys & B_BUTTON) @@ -2191,7 +2191,7 @@ static void Task_HandleReplaceMoveInput(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); ShowCantForgetHMsWindow(taskId); } } diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c index 84e2a9682..1c7573a44 100644 --- a/src/pokenav_conditions_1.c +++ b/src/pokenav_conditions_1.c @@ -25,7 +25,7 @@ struct PokenavSub11 u8 fill2[0x6320 - 0x6308]; u8 unk6320[3][24]; u8 unk6368[3][64]; - struct UnknownStruct_81D1ED4 unk6428; + struct ConditionGraph unk6428; u8 unk6780[3]; u8 unk6783[3]; s8 unk6786; @@ -337,10 +337,10 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3) boxId = unkPtr->unk4[id].boxId; monId = unkPtr->unk4[id].monId; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 4; - *(str++) = 8; - *(str++) = 0; - *(str++) = 9; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) return StringCopyPadded(str, gText_EggNickname, CHAR_SPACE, 12); @@ -368,40 +368,40 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3) (str_++); *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 0x12; - *(str_++) = 0x3C; + *(str_++) = EXT_CTRL_CODE_SKIP; + *(str_++) = 60; switch (gender) { default: - *(str_++) = 0x77; + *(str_++) = CHAR_UNK_SPACER; break; case MON_MALE: *(str_++) = EXT_CTRL_CODE_BEGIN; *(str_++) = EXT_CTRL_CODE_COLOR; - *(str_++) = 4; + *(str_++) = TEXT_COLOR_RED; *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 3; - *(str_++) = 5; + *(str_++) = EXT_CTRL_CODE_SHADOW; + *(str_++) = TEXT_COLOR_LIGHT_RED; *(str_++) = CHAR_MALE; break; case MON_FEMALE: *(str_++) = EXT_CTRL_CODE_BEGIN; *(str_++) = EXT_CTRL_CODE_COLOR; - *(str_++) = 6; + *(str_++) = TEXT_COLOR_GREEN; *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 3; - *(str_++) = 7; + *(str_++) = EXT_CTRL_CODE_SHADOW; + *(str_++) = TEXT_COLOR_LIGHT_GREEN; *(str_++) = CHAR_FEMALE; break; } *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 4; - *(str_++) = 8; - *(str_++) = 0; - *(str_++) = 9; + *(str_++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str_++) = TEXT_COLOR_BLUE; + *(str_++) = TEXT_COLOR_TRANSPARENT; + *(str_++) = TEXT_COLOR_LIGHT_BLUE; *(str_++) = CHAR_SLASH; - *(str_++) = CHAR_SPECIAL_F9; + *(str_++) = CHAR_EXTRA_SYMBOL; *(str_++) = CHAR_LV_2; txtPtr = str_; str_ = ConvertIntToDecimalStringN(str_, level, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -429,10 +429,10 @@ void sub_81CD824(s16 arg0, u8 arg1) sub_81CD624(structPtr->unk6368[arg1], arg0, FALSE); boxId = unkPtr->unk4[arg0].boxId; structPtr->unk6320[arg1][0] = EXT_CTRL_CODE_BEGIN; - structPtr->unk6320[arg1][1] = 4; - structPtr->unk6320[arg1][2] = 8; - structPtr->unk6320[arg1][3] = 0; - structPtr->unk6320[arg1][4] = 9; + structPtr->unk6320[arg1][1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + structPtr->unk6320[arg1][2] = TEXT_COLOR_BLUE; + structPtr->unk6320[arg1][3] = TEXT_COLOR_TRANSPARENT; + structPtr->unk6320[arg1][4] = TEXT_COLOR_LIGHT_BLUE; if (boxId == TOTAL_BOXES_COUNT) sub_81CD5CC(&structPtr->unk6320[arg1][5], gText_InParty, 8); else @@ -546,7 +546,7 @@ u16 sub_81CDC60(void) return unkPtr->unk2; } -struct UnknownStruct_81D1ED4 *sub_81CDC70(void) +struct ConditionGraph *sub_81CDC70(void) { struct PokenavSub11 *structPtr = GetSubstructPtr(11); return &structPtr->unk6428; diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index 65a85aa7e..7c536cd6a 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -24,8 +24,8 @@ u32 sub_81CE700(s32); BSS_DATA u8 gUnknown_030012BC; -const u16 gUnknown_086231E8[] = INCBIN_U16("graphics/pokenav/86231E8.gbapal"); -const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal"); +const u16 gConditionGraphData_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph_data.gbapal"); +const u16 gConditionText_Pal[] = INCBIN_U16("graphics/pokenav/condition/text.gbapal"); const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz"); const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz"); const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal"); @@ -134,7 +134,7 @@ struct Pokenav7Struct u8 unk1823; struct PokemonMarkMenu monMarks; struct Sprite *unk28dc; - struct Sprite *unk28e0[10]; + struct Sprite *unk28e0[MAX_CONDITION_SPARKLES]; u8 unk2908; u8 filler2[0x38ac - 0x2909]; }; @@ -226,7 +226,7 @@ u32 sub_81CDE94(s32 state) CopyBgTilemapBufferToVram(3); CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20); - CopyPaletteIntoBufferUnfaded(gUnknown_08623208, 0xF0, 0x20); + CopyPaletteIntoBufferUnfaded(gConditionText_Pal, 0xF0, 0x20); structPtr->unk1814 = -80; return LT_INC_AND_PAUSE; case 4: @@ -236,7 +236,7 @@ u32 sub_81CDE94(s32 state) LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]); SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(gUnknown_086231E8, 0x30, 0x20); + CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, 0x30, 0x20); sub_81D21DC(2); return LT_INC_AND_PAUSE; case 5: @@ -323,11 +323,11 @@ u32 sub_81CDE94(s32 state) sub_81CEE74(TRUE); return LT_INC_AND_PAUSE; case 20: - if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); + ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50()) - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return LT_FINISH; } @@ -345,10 +345,10 @@ u32 sub_81CE2D0(s32 state) { case 0: sub_81CEEC8(); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 1: - if (sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) + if (TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814)) return 2; sub_81CEE74(FALSE); return 1; @@ -360,7 +360,7 @@ u32 sub_81CE2D0(s32 state) case 3: if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy()) return 2; - sub_81D354C(structPtr->unk28e0); + FreeConditionSparkles(structPtr->unk28e0); HideBg(1); HideBg(2); HideBg(3); @@ -373,7 +373,7 @@ u32 sub_81CE2D0(s32 state) u32 sub_81CE37C(s32 state) { struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC); - struct UnknownStruct_81D1ED4 *unkPtr = sub_81CDC70(); + struct ConditionGraph *unkPtr = sub_81CDC70(); switch (state) { @@ -385,13 +385,13 @@ u32 sub_81CE37C(s32 state) return 1; case 2: sub_81CD548(2); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: - sub_81D2074(unkPtr); + TransitionConditionGraph(unkPtr); return 1; case 4: - if (!sub_81D3150(&structPtr->unk1814)) + if (!MoveConditionMonOffscreen(&structPtr->unk1814)) { sub_81CED30(sub_81CDC84()); return 1; @@ -412,13 +412,13 @@ u32 sub_81CE37C(s32 state) return 2; case 9: unkPtr = sub_81CDC70(); - if (!sub_81D3178(unkPtr, &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); + ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() != TRUE && sub_81CDC60() == sub_81CDC50()) return 1; - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return 1; } return 2; @@ -459,10 +459,10 @@ u32 sub_81CE4D8(s32 state) return 1; return 2; case 8: - if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + ResetConditionSparkleSprites(structPtr->unk28e0); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return 1; } return 2; @@ -485,10 +485,10 @@ u32 sub_81CE5E4(s32 state) return 1; case 2: sub_81CD548(2); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: - if (!sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814)) return 1; return 2; case 4: @@ -581,10 +581,10 @@ bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2) str = sub_81CDD24(a1); AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 17, 0, NULL); text[0] = EXT_CTRL_CODE_BEGIN; - text[1] = 4; - text[2] = 8; - text[3] = 0; - text[4] = 9; + text[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + text[2] = TEXT_COLOR_BLUE; + text[3] = TEXT_COLOR_TRANSPARENT; + text[4] = TEXT_COLOR_LIGHT_BLUE; StringCopy(text + 5, gText_Number2); AddTextPrinterParameterized(structPtr->unk1821, 1, text, 4, 1, 0, NULL); ConvertIntToDecimalStringN(text + 5, sub_81CDD48(), STR_CONV_MODE_RIGHT_ALIGN, 4); @@ -663,7 +663,7 @@ void sub_81CE9E4(void) u16 i, spriteId; struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC); - sub_81D321C(sprSheets, &sprTemplate, sprPals); + LoadConditionSelectionIcons(sprSheets, &sprTemplate, sprPals); if (sub_81CDD5C() == TRUE) { structPtr->monMarks.baseTileTag = 0x6A; @@ -728,7 +728,7 @@ void sub_81CE9E4(void) } } - sub_81D32B0(&sprSheet, &sprPals[0]); + LoadConditionSparkle(&sprSheet, &sprPals[0]); LoadSpriteSheet(&sprSheet); sprPals[1].data = NULL; Pokenav_AllocAndLoadPalettes(sprPals); @@ -804,7 +804,7 @@ void sub_81CED30(u8 var) if (structPtr->unk1816 == 0xFF) { - sub_81D31D0(&sprSheet, &sprTemplate, &sprPal); + LoadConditionMonPicTemplate(&sprSheet, &sprTemplate, &sprPal); sprSheet.data = sub_81CDCB4(var); sprPal.data = sub_81CDCD4(var); structPtr->unk1818 = LoadSpritePalette(&sprPal); @@ -834,7 +834,7 @@ void sub_81CED30(u8 var) void sub_81CEE44(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); @@ -857,17 +857,17 @@ void sub_81CEE74(bool8 showBg) void sub_81CEE90(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); u8 id = sub_81CDC84(); gUnknown_030012BC = id; sub_81D1F84(unk, unk->unk14[3], unk->unk14[id]); - sub_81D2074(unk); + TransitionConditionGraph(unk); } void sub_81CEEC8(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); if (sub_81CDD5C() || sub_81CDC60() != sub_81CDC50() - 1) sub_81D1F84(unk, unk->unk14[sub_81CDC84()], unk->unk14[3]); diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c index 7a48b9234..eea4aa397 100644 --- a/src/pokenav_conditions_3.c +++ b/src/pokenav_conditions_3.c @@ -707,7 +707,7 @@ static void sub_81CF8E4(struct PokenavMonList * item, u8 * dest) } s = StringCopy(gStringVar1, genderStr); *s++ = CHAR_SLASH; - *s++ = CHAR_SPECIAL_F9; + *s++ = CHAR_EXTRA_SYMBOL; *s++ = CHAR_LV_2; ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); sub_81DB494(dest, 1, gStringVar1, 40); diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index d9aae7e4e..155e30939 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -312,7 +312,7 @@ u32 PokenavMainMenuLoopedTaskIsActive(void) void ShutdownPokenav(void) { - PlaySE(SE_PN_OFF); + PlaySE(SE_POKENAV_OFF); sub_81CAADC(); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); } diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c index 1e4239bbc..265259394 100755 --- a/src/pokenav_match_call_1.c +++ b/src/pokenav_match_call_1.c @@ -118,7 +118,7 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state) else { // Cant exit Match Call menu before calling Mr Stone during tutorial - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } } diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c index d03bad88b..60091577e 100755 --- a/src/pokenav_match_call_2.c +++ b/src/pokenav_match_call_2.c @@ -601,7 +601,7 @@ u32 DoMatchCallMessage(s32 taskState) return LT_PAUSE; PrintCallingDots(state); - PlaySE(SE_TOREEYE); + PlaySE(SE_POKENAV_CALL); state->unkE = 0; return LT_INC_AND_PAUSE; case 2: @@ -654,7 +654,7 @@ u32 sub_81CB888(s32 taskState) { case 0: if (!state->unkE) - PlaySE(SE_TOREOFF); + PlaySE(SE_POKENAV_HANG_UP); PlaySE(SE_SELECT); break; diff --git a/src/pokenav_menu_handler_1.c b/src/pokenav_menu_handler_1.c index bd33a21af..d8d8e1509 100644 --- a/src/pokenav_menu_handler_1.c +++ b/src/pokenav_menu_handler_1.c @@ -273,14 +273,14 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } @@ -298,7 +298,7 @@ static u32 HandleMainMenuInputEndTutorial(struct Pokenav1Struct *state) u32 menuItem = sMenuItems[state->menuType][state->cursorPos]; if (menuItem != POKENAV_MENUITEM_MATCH_CALL && menuItem != POKENAV_MENUITEM_SWITCH_OFF) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } else if (menuItem == POKENAV_MENUITEM_MATCH_CALL) diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c index 86ad8c744..2be92013f 100644 --- a/src/pokenav_menu_handler_2.c +++ b/src/pokenav_menu_handler_2.c @@ -465,7 +465,7 @@ static u32 LoopedTask_OpenMenu(s32 state) PokenavFadeScreen(1); else { - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); PokenavFadeScreen(3); } switch (GetPokenavMenuType()) @@ -675,7 +675,7 @@ static u32 LoopedTask_SelectRibbonsNoWinners(s32 state) switch (state) { case 0: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintNoRibbonWinners(); return LT_INC_AND_PAUSE; case 1: diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c index ffc049c47..aad0053a8 100644 --- a/src/pokenav_ribbons_1.c +++ b/src/pokenav_ribbons_1.c @@ -724,7 +724,7 @@ static void BufferRibbonMonInfoText(struct PokenavMonList * item0, u8 * dest) s = StringCopy(gStringVar1, genderStr); *s++ = CHAR_SLASH; - *s++ = CHAR_SPECIAL_F9; + *s++ = CHAR_EXTRA_SYMBOL; *s++ = CHAR_LV_2; ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); dest = sub_81DB494(dest, 1, gStringVar1, 54); diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c index bb6116472..e5a89acad 100644 --- a/src/pokenav_ribbons_2.c +++ b/src/pokenav_ribbons_2.c @@ -836,7 +836,7 @@ void sub_81D0FF0(struct PokenavSub14 *structPtr) txtPtr = StringCopy(gStringVar1, genderTxt); *(txtPtr++) = CHAR_SLASH; - *(txtPtr++) = CHAR_SPECIAL_F9; + *(txtPtr++) = CHAR_EXTRA_SYMBOL; *(txtPtr++) = CHAR_LV_2; ConvertIntToDecimalStringN(txtPtr, level, STR_CONV_MODE_LEFT_ALIGN, 3); AddTextPrinterParameterized(windowId, 1, gStringVar1, 60, 1, TEXT_SPEED_FF, NULL); diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index 07690960f..78ebe02e4 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -5,7 +5,7 @@ #include "hall_of_fame.h" #include "load_save.h" #include "overworld.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "tv.h" #include "constants/heal_locations.h" #include "constants/tv.h" diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index d902b7319..f47ab5e89 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1244,7 +1244,7 @@ void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)) static void CB2_InitRayquazaScene(void) { SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); FreeAllSpritePalettes(); ResetPaletteFade(); @@ -1260,7 +1260,7 @@ static void CB2_RayquazaScene(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -1565,7 +1565,7 @@ static void Task_DuoFightAnim(u8 taskId) BlendPalettes(-1, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_DuoFight); - PlaySE(SE_T_OOAME); + PlaySE(SE_DOWNPOUR); } static void sub_81D7228(u8 taskId) @@ -1670,14 +1670,14 @@ static void Task_HandleDuoFight(u8 taskId) static void sub_81D7438(void) { - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1); } static void sub_81D7480(void) { - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1); } @@ -1714,7 +1714,7 @@ static void sub_81D752C(u8 taskId) static void DuoFightEnd(u8 taskId, s8 palDelay) { - PlaySE(SE_T_OOAME_E); + PlaySE(SE_DOWNPOUR_STOP); BeginNormalPaletteFade(0xFFFFFFFF, palDelay, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_DuoFightEnd; } @@ -1950,7 +1950,7 @@ static void sub_81D7E9C(void) static void Task_RayTakesFlightAnim(u8 taskId) { s16 *data = gTasks[taskId].data; - PlayNewMapMusic(MUS_REKKUU_KOURIN); + PlayNewMapMusic(MUS_RAYQUAZA_APPEARS); sub_81D7E10(); sub_81D7E9C(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); @@ -2358,7 +2358,7 @@ static void Task_HandleRayCharges(u8 taskId) s16 *data = gTasks[taskId].data; sub_81D8BB4(); if ((data[3] & 7) == 0 && data[0] <= 1 && data[1] <= 89) - PlaySE(SE_OP_BASYU); + PlaySE(SE_INTRO_BLAST); data[3]++; switch (data[0]) @@ -2777,7 +2777,7 @@ static void sub_81D9528(struct Sprite *sprite) } if (sprite->data[4] % 64 == 0) - PlaySE(SE_W250); + PlaySE(SE_M_WHIRLPOOL); sprite->data[4]++; } @@ -2802,7 +2802,7 @@ static void sub_81D961C(struct Sprite *sprite) { sub_81D97E0(sprite); if (sprite->data[4] == 0) - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); if (sprite->data[4] == -3) sub_81D9868(sprite, 2, 48, 16); } @@ -2900,7 +2900,7 @@ static void sub_81D98B4(u8 taskId) break; case 1: if (data[5] == 8) - PlaySE(SE_JIDO_DOA); + PlaySE(SE_SLIDING_DOOR); if (data[2] == 2) { data[0]++; diff --git a/src/record_mixing.c b/src/record_mixing.c index 075bc6aee..6c0a02d8c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -302,7 +302,7 @@ static void Task_RecordMixing_SoundEffect(u8 taskId) { if (++gTasks[taskId].tCounter == 50) { - PlaySE(SE_W213); + PlaySE(SE_M_ATTRACT); gTasks[taskId].tCounter = 0; } } @@ -326,7 +326,7 @@ static void Task_RecordMixing_Main(u8 taskId) VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); - CreateRecordMixingSprite(); + CreateRecordMixingLights(); tState = 1; data[10] = CreateTask(Task_MixingRecordsRecv, 80); tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 81); @@ -336,14 +336,14 @@ static void Task_RecordMixing_Main(u8 taskId) { tState = 2; FlagSet(FLAG_SYS_MIX_RECORD); - DestroyRecordMixingSprite(); + DestroyRecordMixingLights(); DestroyTask(tSndEffTaskId); } break; case 2: data[10] = CreateTask(Task_DoRecordMixing, 10); tState = 3; - PlaySE(SE_W226); + PlaySE(SE_M_BATON_PASS); break; case 3: // wait for Task_DoRecordMixing if (!gTasks[data[10]].isActive) @@ -501,7 +501,7 @@ static void Task_SendPacket(u8 taskId) break; case 1: if (GetMultiplayerId() == 0) - sub_800A4D8(1); + SendBlockRequest(1); task->data[0]++; break; case 2: @@ -872,8 +872,12 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r var2 = sub_80E7A9C(&_src->mail[1]); if (!var1 && var2) { - register u8 one asm("r0") = 1; // boo, a fakematch - sp24[j][1] = one; + #ifndef NONMATCHING + register u8 one asm("r0") = 1; // boo, a fakematch + sp24[j][1] = one; + #else + sp24[j][1] = 1; + #endif } else if ((var1 && var2) || (!var1 && !var2)) { @@ -973,7 +977,7 @@ static void Task_DoRecordMixing(u8 taskId) case 4: // Wait 10 frames if (++task->data[1] > 10) { - sub_800AC34(); + SetCloseLinkCallback(); task->data[0] ++; } break; @@ -1005,7 +1009,7 @@ static void Task_DoRecordMixing(u8 taskId) } break; case 8: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0] ++; break; case 9: diff --git a/src/region_map.c b/src/region_map.c index b8e07c835..de3b04cb2 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1683,7 +1683,7 @@ void CB2_OpenFlyMap(void) break; case 3: LoadUserWindowBorderGfx(0, 0x65, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 4: @@ -1746,7 +1746,7 @@ static void CB2_FlyMap(void) sFlyMap->callback(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } static void SetFlyMapCallback(void callback(void)) diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 2756aa861..204eb6733 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -467,7 +467,7 @@ void CB2_InitResetRtcScreen(void) static void sub_809F048(void) { - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); ScheduleBgCopyTilemapToVram(0); @@ -483,7 +483,7 @@ static void CB2_ResetRtcScreen(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -611,7 +611,7 @@ static void Task_ResetRtcScreen(u8 taskId) if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK) { ShowMessage(gText_SaveCompleted); - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); } else { diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 340fc58dd..162eb3e6d 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -776,7 +776,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) if (GetPlayerSpeed() != 1) affineAnimation += 8; - PlaySE(SE_HI_TURUN); + PlaySE(SE_ROTATING_GATE); StartSpriteAffineAnim(sprite, affineAnimation); } else if (rotationDirection == ROTATE_CLOCKWISE) @@ -786,7 +786,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) if (GetPlayerSpeed() != 1) affineAnimation += 8; - PlaySE(SE_HI_TURUN); + PlaySE(SE_ROTATING_GATE); StartSpriteAffineAnim(sprite, affineAnimation); } diff --git a/src/roulette.c b/src/roulette.c index 58e120cb5..a0d1a7dc0 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -13,199 +13,416 @@ #include "menu_helpers.h" #include "overworld.h" #include "palette.h" +#include "palette_util.h" #include "random.h" #include "roulette.h" -#include "roulette_util.h" #include "rtc.h" #include "scanline_effect.h" #include "script.h" #include "sound.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "trig.h" #include "tv.h" #include "window.h" +#include "constants/coins.h" #include "constants/rgb.h" +#include "constants/roulette.h" #include "constants/species.h" #include "constants/songs.h" -struct StructgUnknown_083F8DF4 -{ - u8 var00; - u8 var01; - u8 var02; - u8 var03; - u8 var04; - u8 filler_05[3]; - u16 var08; - u16 var0A; - u16 var0C; - u8 filler_0E[2]; - u16 var10; - u16 var12; - u16 var14; - u8 filler_16[2]; - u16 var18; - u16 var1A; +#define BALLS_PER_ROUND 6 + +// "Board" is used in this file to refer to both the wheel and the bet selection grid +#define NUM_BOARD_COLORS 3 // Rows on grid +#define NUM_BOARD_POKES 4 // Columns on grid +#define NUM_ROULETTE_SLOTS (NUM_BOARD_COLORS * NUM_BOARD_POKES) + +// The degree change between each slot on the roulette wheel +#define DEGREES_PER_SLOT (360 / NUM_ROULETTE_SLOTS) + +// Where in the slot the ball will drop when landing +#define SLOT_MIDPOINT (DEGREES_PER_SLOT / 2 - 1) + +// IDs for grid selections when betting +#define SELECTION_NONE 0 +#define COL_WYNAUT 1 +#define COL_AZURILL 2 +#define COL_SKITTY 3 +#define COL_MAKUHITA 4 +#define ROW_ORANGE (COL_MAKUHITA + 1) +#define SQU_ORANGE_WYNAUT (ROW_ORANGE + COL_WYNAUT) +#define SQU_ORANGE_AZURILL (ROW_ORANGE + COL_AZURILL) +#define SQU_ORANGE_SKITTY (ROW_ORANGE + COL_SKITTY) +#define SQU_ORANGE_MAKUHITA (ROW_ORANGE + COL_MAKUHITA) +#define ROW_GREEN (SQU_ORANGE_MAKUHITA + 1) +#define SQU_GREEN_WYNAUT (ROW_GREEN + COL_WYNAUT) +#define SQU_GREEN_AZURILL (ROW_GREEN + COL_AZURILL) +#define SQU_GREEN_SKITTY (ROW_GREEN + COL_SKITTY) +#define SQU_GREEN_MAKUHITA (ROW_GREEN + COL_MAKUHITA) +#define ROW_PURPLE (SQU_GREEN_MAKUHITA + 1) +#define SQU_PURPLE_WYNAUT (ROW_PURPLE + COL_WYNAUT) +#define SQU_PURPLE_AZURILL (ROW_PURPLE + COL_AZURILL) +#define SQU_PURPLE_SKITTY (ROW_PURPLE + COL_SKITTY) +#define SQU_PURPLE_MAKUHITA (ROW_PURPLE + COL_MAKUHITA) +#define NUM_GRID_SELECTIONS SQU_PURPLE_MAKUHITA + +// Get the id of the col/row from the selection ID +// e.g. GET_ROW(SQU_PURPLE_SKITTY) is ROW_PURPLE +#define GET_COL(selectionId)((selectionId) % (NUM_BOARD_POKES + 1)) +#define GET_ROW(selectionId)((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) + +// Get the col/row index from the selection ID +// e.g. GET_ROW_IDX(SQU_PURPLE_SKITTY) is 2 (purple being the 3rd row) +#define GET_COL_IDX(selectionId)(selectionId - 1) +#define GET_ROW_IDX(selectionId)(selectionId / 5 - 1) + +// Flags for the above selections, used to set which spaces have been hit or bet on +#define F_WYNAUT_COL (1 << COL_WYNAUT) +#define F_AZURILL_COL (1 << COL_AZURILL) +#define F_SKITTY_COL (1 << COL_SKITTY) +#define F_MAKUHITA_COL (1 << COL_MAKUHITA) +#define F_ORANGE_ROW (1 << ROW_ORANGE) +#define F_ORANGE_WYNAUT (1 << SQU_ORANGE_WYNAUT) +#define F_ORANGE_AZURILL (1 << SQU_ORANGE_AZURILL) +#define F_ORANGE_SKITTY (1 << SQU_ORANGE_SKITTY) +#define F_ORANGE_MAKUHITA (1 << SQU_ORANGE_MAKUHITA) +#define F_GREEN_ROW (1 << ROW_GREEN) +#define F_GREEN_WYNAUT (1 << SQU_GREEN_WYNAUT) +#define F_GREEN_AZURILL (1 << SQU_GREEN_AZURILL) +#define F_GREEN_SKITTY (1 << SQU_GREEN_SKITTY) +#define F_GREEN_MAKUHITA (1 << SQU_GREEN_MAKUHITA) +#define F_PURPLE_ROW (1 << ROW_PURPLE) +#define F_PURPLE_WYNAUT (1 << SQU_PURPLE_WYNAUT) +#define F_PURPLE_AZURILL (1 << SQU_PURPLE_AZURILL) +#define F_PURPLE_SKITTY (1 << SQU_PURPLE_SKITTY) +#define F_PURPLE_MAKUHITA (1 << SQU_PURPLE_MAKUHITA) + +// Flags for flashing selections on the roulette wheel +#define F_FLASH_COLOR_O_WYNAUT (1 << 0) +#define F_FLASH_COLOR_G_AZURILL (1 << 1) +#define F_FLASH_COLOR_P_SKITTY (1 << 2) +#define F_FLASH_COLOR_O_MAKUHITA (1 << 3) +#define F_FLASH_COLOR_G_WYNAUT (1 << 4) +#define F_FLASH_COLOR_P_AZURILL (1 << 5) +#define F_FLASH_COLOR_O_SKITTY (1 << 6) +#define F_FLASH_COLOR_G_MAKUHITA (1 << 7) +#define F_FLASH_COLOR_P_WYNAUT (1 << 8) +#define F_FLASH_COLOR_O_AZURILL (1 << 9) +#define F_FLASH_COLOR_G_SKITTY (1 << 10) +#define F_FLASH_COLOR_P_MAKUHITA (1 << 11) +#define F_FLASH_OUTER_EDGES (1 << 12) // when the player wins +#define FLASH_ICON (NUM_ROULETTE_SLOTS + 1) +#define FLASH_ICON_2 (FLASH_ICON + 1) +#define FLASH_ICON_3 (FLASH_ICON + 2) +#define F_FLASH_ICON (1 << FLASH_ICON) +#define F_FLASH_COLUMN (1 << FLASH_ICON | 1 << FLASH_ICON_2 | 1 << FLASH_ICON_3) + +#define MAX_MULTIPLIER 12 + +#define PALTAG_SHADOW 1 +#define PALTAG_BALL 2 +#define PALTAG_BALL_COUNTER 3 +#define PALTAG_CURSOR 4 +#define PALTAG_INTERFACE 5 +#define PALTAG_SHROOMISH 6 +#define PALTAG_TAILLOW 7 +#define PALTAG_GRID_ICONS 8 +#define PALTAG_WYNAUT 9 +#define PALTAG_AZURILL 10 +#define PALTAG_SKITTY 11 +#define PALTAG_MAKUHITA 12 + +#define GFXTAG_WHEEL_ICONS 0 +#define GFXTAG_HEADERS 4 +#define GFXTAG_GRID_ICONS 5 +#define GFXTAG_WHEEL_CENTER 6 +#define GFXTAG_CREDIT 7 +#define GFXTAG_CREDIT_DIGIT 8 +#define GFXTAG_MULTIPLIER 9 +#define GFXTAG_BALL_COUNTER 10 +#define GFXTAG_CURSOR 11 +#define GFXTAG_BALL 12 +#define GFXTAG_SHROOMISH_TAILLOW 13 +#define GFXTAG_SHADOW 14 + +// 2 different Roulette tables with 2 different rates (normal vs service day special) +// & 1 gets which table, >> 7 gets if ROULETTE_SPECIAL_RATE is set +#define GET_MIN_BET_ID(var)(((var) & 1) + (((var) >> 7) * 2)) + +// Having Shroomish or Taillow in the party can make rolls more consistent in length +// It also increases the likelihood that, if they appear to unstick a ball, they'll move it to a slot the player bet on +#define HAS_SHROOMISH (1 << 0) +#define HAS_TAILLOW (1 << 1) + +#define NO_DELAY 0xFFFF + +enum { + BALL_STATE_ROLLING, + BALL_STATE_STUCK, + BALL_STATE_LANDED = 0xFF, +}; + +enum { + SELECT_STATE_WAIT, + SELECT_STATE_DRAW, + SELECT_STATE_UPDATE, + SELECT_STATE_ERASE = 0xFF, +}; + +// Roulette uses a large amount of sprites, and stores ids for these in a single array +// Many are looped over rather than referenced directly +enum { + SPR_WHEEL_BALL_1, + SPR_WHEEL_BALL_2, + SPR_WHEEL_BALL_3, + SPR_WHEEL_BALL_4, + SPR_WHEEL_BALL_5, + SPR_WHEEL_BALL_6, + SPR_WHEEL_CENTER, + SPR_WHEEL_ICON_ORANGE_WYNAUT, + SPR_WHEEL_ICON_GREEN_AZURILL, + SPR_WHEEL_ICON_PURPLE_SKITTY, + SPR_WHEEL_ICON_ORANGE_MAKUHITA, + SPR_WHEEL_ICON_GREEN_WYNAUT, + SPR_WHEEL_ICON_PURPLE_AZURILL, + SPR_WHEEL_ICON_ORANGE_SKITTY, + SPR_WHEEL_ICON_GREEN_MAKUHITA, + SPR_WHEEL_ICON_PURPLE_WYNAUT, + SPR_WHEEL_ICON_ORANGE_AZURILL, + SPR_WHEEL_ICON_GREEN_SKITTY, + SPR_WHEEL_ICON_PURPLE_MAKUHITA, + SPR_19, // Unused + SPR_CREDIT, + SPR_CREDIT_DIG_1, + SPR_CREDIT_DIG_10, + SPR_CREDIT_DIG_100, + SPR_CREDIT_DIG_1000, + SPR_MULTIPLIER, + SPR_BALL_COUNTER_1, + SPR_BALL_COUNTER_2, + SPR_BALL_COUNTER_3, + SPR_GRID_ICON_ORANGE_WYNAUT, + SPR_GRID_ICON_GREEN_AZURILL, + SPR_GRID_ICON_PURPLE_SKITTY, + SPR_GRID_ICON_ORANGE_MAKUHITA, + SPR_GRID_ICON_GREEN_WYNAUT, + SPR_GRID_ICON_PURPLE_AZURILL, + SPR_GRID_ICON_ORANGE_SKITTY, + SPR_GRID_ICON_GREEN_MAKUHITA, + SPR_GRID_ICON_PURPLE_WYNAUT, + SPR_GRID_ICON_ORANGE_AZURILL, + SPR_GRID_ICON_GREEN_SKITTY, + SPR_GRID_ICON_PURPLE_MAKUHITA, + SPR_POKE_HEADER_1, + SPR_POKE_HEADER_2, + SPR_POKE_HEADER_3, + SPR_POKE_HEADER_4, + SPR_COLOR_HEADER_1, + SPR_COLOR_HEADER_2, + SPR_COLOR_HEADER_3, + SPR_WIN_SLOT_CURSOR, + SPR_GRID_BALL_1, + SPR_GRID_BALL_2, + SPR_GRID_BALL_3, + SPR_GRID_BALL_4, + SPR_GRID_BALL_5, + SPR_GRID_BALL_6, + SPR_CLEAR_MON, // Shroomish/Taillow + SPR_CLEAR_MON_SHADOW_1, + SPR_CLEAR_MON_SHADOW_2, + SPR_58, // Here below unused + SPR_59, + SPR_60, + SPR_61, + SPR_62, + SPR_63, +}; + +// Start points for sprite IDs that are looped over +#define SPR_WHEEL_BALLS SPR_WHEEL_BALL_1 +#define SPR_WHEEL_ICONS SPR_WHEEL_ICON_ORANGE_WYNAUT +#define SPR_BALL_COUNTER SPR_BALL_COUNTER_1 +#define SPR_CREDIT_DIGITS SPR_CREDIT_DIG_1 +#define SPR_GRID_ICONS SPR_GRID_ICON_ORANGE_WYNAUT +#define SPR_POKE_HEADERS SPR_POKE_HEADER_1 +#define SPR_COLOR_HEADERS SPR_COLOR_HEADER_1 +#define SPR_GRID_BALLS SPR_GRID_BALL_1 + +struct Shroomish +{ + u16 startAngle; + u16 dropAngle; + u16 fallSlowdown; +}; + +struct Taillow +{ + u16 baseDropDelay; + u16 rightStartAngle; + u16 leftStartAngle; +}; + +struct RouletteTable +{ + u8 minBet; // Never read + u8 randDistanceHigh; + u8 randDistanceLow; + u8 wheelSpeed; + u8 wheelDelay; + struct Shroomish shroomish; + struct Taillow taillow; + u16 ballSpeed; + u16 baseTravelDist; float var1C; }; -struct StructgUnknown_085B6154 -{ - u8 var00; - u8 var01_0:4; - u8 var01_4:4; - u8 var02; - u8 var03; - u8 var04; - u8 var05; - u8 var06; - u32 var08; - u32 var0C; - u16 var10; +struct GridSelection +{ + u8 spriteIdOffset; + u8 baseMultiplier:4; + u8 column:4; // Never read + u8 row; // Never read + u8 x; + u8 y; + u8 var05; // Never read + u8 tilemapOffset; + u32 flag; + u32 inSelectionFlags; + u16 flashFlags; }; -struct StructgUnknown_083F8D90 +struct RouletteSlot { - u8 var00; - u8 var01; - u8 var02; - u32 var04; + u8 id1; // Never read + u8 id2; // Never read + u8 gridSquare; + u32 flag; }; -EWRAM_DATA struct Roulette -{ - u8 var00; - u8 var01; - u8 var02; - u8 var03_0:5; - u8 var03_5:1; - u8 var03_6:1; - u8 var03_7:1; - u8 var04_0:2; - u8 var04_2:5; - u8 var04_7:1; - u32 var08; - u8 var0C[6]; - u8 var12[4]; - u8 var16[3]; - u8 var19; - u8 var1A_0:4; - u8 var1A_4:4; - u8 var1B[6]; - u8 var21; - u8 var22; - u8 var23; - s16 var24; - s16 var26; - s16 var28; - s16 var2A; - struct OamMatrix var2C; - u16 var34; - struct Sprite *var38; - u8 var3C[MAX_SPRITES]; // Sprite IDs - u8 var7C; - u8 var7D; - u8 var7E; - u8 var7F; - s16 var80; - s16 var82; - u16 var84; - u16 var86; - float var88; - float var8C; - float var90; - float var94; - float var98; - float var9C; +static EWRAM_DATA struct Roulette +{ + u8 unk0; // Never read + u8 shroomishShadowTimer; + u8 partySpeciesFlags; + bool8 useTaillow:5; + bool8 ballStuck:1; + bool8 ballUnstuck:1; + bool8 ballRolling:1; // Never read + u8 tableId:2; + u8 unused:5; + bool8 isSpecialRate:1; + u32 hitFlags; + u8 hitSquares[BALLS_PER_ROUND]; + u8 pokeHits[NUM_BOARD_POKES]; + u8 colorHits[NUM_BOARD_COLORS]; + u8 minBet; + u8 curBallNum:4; // Never actually gets incremented, tracked with tBallNum instead + u8 unk1:4; // Never read + u8 betSelection[BALLS_PER_ROUND]; // Because curBallNum is used as the only index, only the first element is ever used (prev bet selections are never needed) + u8 wheelDelayTimer; + u8 wheelSpeed; + u8 wheelDelay; + s16 wheelAngle; + s16 gridX; + s16 selectionRectDrawState; + s16 updateGridHighlight; + struct OamMatrix wheelRotation; + u16 shroomishShadowAlpha; + struct Sprite *ball; + u8 spriteIds[MAX_SPRITES]; + u8 curBallSpriteId; + u8 ballState; + u8 hitSlot; + u8 stuckHitSlot; + s16 ballTravelDist; // Never read + s16 ballTravelDistFast; + u16 ballTravelDistMed; + u16 ballTravelDistSlow; + float ballAngle; + float ballAngleSpeed; + float ballAngleAccel; + float ballDistToCenter; + float ballFallSpeed; + float ballFallAccel; float varA0; - u8 varA4; - u8 varA5; - u8 v51[2]; - u16 varA8; - u16 varAA; - TaskFunc varAC; - u8 v46[4]; - TaskFunc varB4; - struct UnkStruct0 varB8; + u8 playTaskId; + u8 spinTaskId; + u8 filler_1[2]; + u16 taskWaitDelay; + u16 taskWaitKey; + TaskFunc nextTask; + u8 filler_2[4]; + TaskFunc prevTask; + struct RouletteFlashUtil flashUtil; u16 tilemapBuffers[7][0x400]; - u16 *unk_397C; -} *gUnknown_0203AB88 = NULL; -EWRAM_DATA u8 gUnknown_0203AB8C = 0; - -static void sub_8140814(u8); -static void sub_81408A8(u8); -static void sub_8140968(u8); -static void sub_8140994(u8); -static void sub_8140BD0(u8); -static void sub_8141040(u8); -static void sub_81410FC(u8); -static void sub_8141344(u8); -static void sub_814155C(u8); -static void sub_81415D4(u8); -static void sub_81416D4(u8); -static void sub_8141778(u8); -static void sub_814189C(u8); -static void sub_8141A18(u8); -static void sub_8141AC0(u8); -static void sub_8141B58(u8); -static void dp01t_12_3_battle_menu(u8); -static void sub_8141DE4(u8); -static void sub_8141E7C(u8); -static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3); -static void sub_8141FF4(u8); -static void sub_8142070(void); -static void sub_8142918(u8); -static void sub_814297C(u8); -static u8 sub_81420D0(u8, u8); -static bool8 sub_81421E8(u8, u8); -static void sub_8142284(u8); -static void sub_81424FC(u8); -static u8 sub_8142758(u8); -static void sub_8142814(void); -static void sub_8142C0C(u8); -static void sub_8142CD0(void); -static void sub_8142E70(u8, u8); -static void sub_8142F7C(void); -static void sub_8143038(u8, u8); -static void sub_8143150(u8); -static void sub_81431E4(void); -static void sub_8143280(struct Sprite *); -static void sub_8143314(void); -static void sub_8143514(u16); -static void sub_81436D0(u8); -static void sub_814372C(u8); -static void sub_814390C(struct Sprite *); -static void sub_814391C(void); -static void sub_814399C(struct Sprite *); -static void sub_81439C8(void); -static void sub_8143A40(void); -static void sub_81446AC(struct Sprite *); -static void sub_81446DC(struct Sprite *); -static void sub_81448B8(struct Sprite *); -static void sub_8144A24(struct Sprite *); -static void sub_8144E60(struct Sprite *); -static void sub_8145294(struct Sprite *); - -extern const u8 Roulette_Text_ControlsInstruction[]; -extern const u8 Roulette_Text_KeepPlaying[]; -extern const u8 Roulette_Text_Jackpot[]; -extern const u8 Roulette_Text_ItsAHit[]; -extern const u8 Roulette_Text_NothingDoing[]; -extern const u8 Roulette_Text_YouveWonXCoins[]; -extern const u8 Roulette_Text_BoardWillBeCleared[]; -extern const u8 Roulette_Text_CoinCaseIsFull[]; -extern const u8 Roulette_Text_NoCoinsLeft[]; -extern const u8 Roulette_Text_PlayMinimumWagerIsX[]; -extern const u8 Roulette_Text_SpecialRateTable[]; -extern const u8 Roulette_Text_NotEnoughCoins[]; - -static const u16 gUnknown_085B5BFC[] = INCBIN_U16("graphics/roulette/85B5BFC.gbapal"); -static const u32 gUnknown_085B5DFC[] = INCBIN_U32("graphics/roulette/85B5DFC.bin.lz"); -static const u32 gUnknown_085B5FA0[] = INCBIN_U32("graphics/roulette/wheel_map.bin.lz"); -static const struct BgTemplate gUnknown_085B6140[] = -{ + u16 *gridTilemap; +} *sRoulette = NULL; + +static EWRAM_DATA u8 sTextWindowId = 0; + +static void Task_SpinWheel(u8); +static void Task_StartPlaying(u8); +static void Task_ContinuePlaying(u8); +static void Task_StopPlaying(u8); +static void Task_SelectFirstEmptySquare(u8); +static void Task_HandleBetGridInput(u8); +static void Task_SlideGridOffscreen(u8); +static void Task_InitBallRoll(u8); +static void Task_RollBall(u8); +static void Task_RecordBallHit(u8); +static void Task_SlideGridOnscreen(u8); +static void Task_FlashBallOnWinningSquare(u8); +static void Task_PrintSpinResult(u8); +static void Task_PrintPayout(u8); +static void Task_EndTurn(u8); +static void Task_TryPrintEndTurnMsg(u8); +static void Task_ClearBoard(u8); +static void ExitRoulette(u8); +static void Task_ExitRoulette(u8); +static void StartTaskAfterDelayOrInput(u8, TaskFunc, u16, u16); +static void ResetBallDataForNewSpin(u8); +static void ResetHits(void); +static void Task_AcceptMinBet(u8); +static void Task_DeclineMinBet(u8); +static u8 RecordHit(u8, u8); +static bool8 IsHitInBetSelection(u8, u8); +static void FlashSelectionOnWheel(u8); +static void DrawGridBackground(u8); +static u8 GetMultiplier(u8); +static void UpdateWheelPosition(void); +static void LoadOrFreeMiscSpritePalettesAndSheets(u8); +static void CreateGridSprites(void); +static void ShowHideGridIcons(bool8, u8); +static void CreateGridBallSprites(void); +static void ShowHideGridBalls(bool8, u8); +static void ShowHideWinSlotCursor(u8); +static void CreateWheelIconSprites(void); +static void SpriteCB_WheelIcon(struct Sprite *); +static void CreateInterfaceSprites(void); +static void SetCreditDigits(u16); +static void SetMultiplierSprite(u8); +static void SetBallCounterNumLeft(u8); +static void SpriteCB_GridSquare(struct Sprite *); +static void CreateWheelCenterSprite(void); +static void SpriteCB_WheelCenter(struct Sprite *); +static void CreateWheelBallSprites(void); +static void HideWheelBalls(void); +static void SpriteCB_RollBall_Start(struct Sprite *); +static void CreateShroomishSprite(struct Sprite *); +static void CreateTaillowSprite(struct Sprite *); +static void SetBallStuck(struct Sprite *); +static void SpriteCB_Shroomish(struct Sprite *); +static void SpriteCB_Taillow(struct Sprite *); + +static const u16 sWheel_Pal[] = INCBIN_U16("graphics/roulette/wheel.gbapal"); // also palette for grid +static const u32 sGrid_Tilemap[] = INCBIN_U32("graphics/roulette/grid.bin.lz"); +static const u32 sWheel_Tilemap[] = INCBIN_U32("graphics/roulette/wheel.bin.lz"); +static const struct BgTemplate sBgTemplates[] = +{ + // Text box { .bg = 0, .charBaseIndex = 2, @@ -215,6 +432,7 @@ static const struct BgTemplate gUnknown_085B6140[] = .priority = 0, .baseTile = 0 }, + // Selection grid { .bg = 1, .charBaseIndex = 0, @@ -224,6 +442,7 @@ static const struct BgTemplate gUnknown_085B6140[] = .priority = 1, .baseTile = 0 }, + // Wheel { .bg = 2, .charBaseIndex = 1, @@ -234,7 +453,7 @@ static const struct BgTemplate gUnknown_085B6140[] = .baseTile = 0 } }; -static const struct WindowTemplate gUnknown_085B614C[] = +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, @@ -248,659 +467,679 @@ static const struct WindowTemplate gUnknown_085B614C[] = // BUG: Array not terminated properly //DUMMY_WIN_TEMPLATE }; -static const struct StructgUnknown_085B6154 gUnknown_085B6154[] = + +static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = { - { - .var00 = 0xFF, - .var01_0 = 0, - .var01_4 = 0, - .var02 = 0, - .var03 = 7, - .var04 = 7, + [SELECTION_NONE] = { + .spriteIdOffset = 0xFF, + .baseMultiplier = 0, + .column = 0, + .row = 0, + .x = 7, + .y = 7, .var05 = 0, - .var06 = 0, - .var08 = 0x0, - .var0C = 0x0, - .var10 = 0x0, + .tilemapOffset = 0, + .flag = 0, + .inSelectionFlags = 0, + .flashFlags = 0, }, - { - .var00 = 12, - .var01_0 = 4, - .var01_4 = 1, - .var02 = 0, - .var03 = 17, - .var04 = 7, + [COL_WYNAUT] = { + .spriteIdOffset = 12, + .baseMultiplier = NUM_BOARD_POKES, + .column = 1, + .row = 0, + .x = 17, + .y = 7, .var05 = 0, - .var06 = 0, - .var08 = 0x2, - .var0C = 0x10842, - .var10 = 0xE000, + .tilemapOffset = 0, + .flag = F_WYNAUT_COL, + .inSelectionFlags = F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, + .flashFlags = F_FLASH_COLUMN, }, - { - .var00 = 13, - .var01_0 = 4, - .var01_4 = 2, - .var02 = 0, - .var03 = 20, - .var04 = 7, + [COL_AZURILL] = { + .spriteIdOffset = 13, + .baseMultiplier = NUM_BOARD_POKES, + .column = 2, + .row = 0, + .x = 20, + .y = 7, .var05 = 0, - .var06 = 0, - .var08 = 0x4, - .var0C = 0x21084, - .var10 = 0xE000, + .tilemapOffset = 0, + .flag = F_AZURILL_COL, + .inSelectionFlags = F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, + .flashFlags = F_FLASH_COLUMN, }, - { - .var00 = 14, - .var01_0 = 4, - .var01_4 = 3, - .var02 = 0, - .var03 = 23, - .var04 = 7, + [COL_SKITTY] = { + .spriteIdOffset = 14, + .baseMultiplier = NUM_BOARD_POKES, + .column = 3, + .row = 0, + .x = 23, + .y = 7, .var05 = 0, - .var06 = 0, - .var08 = 0x8, - .var0C = 0x42108, - .var10 = 0xE000, + .tilemapOffset = 0, + .flag = F_SKITTY_COL, + .inSelectionFlags = F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, + .flashFlags = F_FLASH_COLUMN, }, - { - .var00 = 15, - .var01_0 = 4, - .var01_4 = 4, - .var02 = 0, - .var03 = 26, - .var04 = 7, + [COL_MAKUHITA] = { + .spriteIdOffset = 15, + .baseMultiplier = NUM_BOARD_POKES, + .column = 4, + .row = 0, + .x = 26, + .y = 7, .var05 = 0, - .var06 = 0, - .var08 = 0x10, - .var0C = 0x84210, - .var10 = 0xE000, + .tilemapOffset = 0, + .flag = F_MAKUHITA_COL, + .inSelectionFlags = F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA, + .flashFlags = F_FLASH_COLUMN, }, - { - .var00 = 16, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 1, - .var03 = 14, - .var04 = 10, + [ROW_ORANGE] = { + .spriteIdOffset = 16, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 1, + .x = 14, + .y = 10, .var05 = 0, - .var06 = 12, - .var08 = 0x20, - .var0C = 0x3E0, - .var10 = 0x249, + .tilemapOffset = 12, + .flag = F_ORANGE_ROW, + .inSelectionFlags = F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, + .flashFlags = F_FLASH_COLOR_O_WYNAUT | F_FLASH_COLOR_O_AZURILL | F_FLASH_COLOR_O_SKITTY | F_FLASH_COLOR_O_MAKUHITA, }, - { - .var00 = 0, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 1, - .var03 = 17, - .var04 = 10, + [SQU_ORANGE_WYNAUT] = { + .spriteIdOffset = 0, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 1, + .x = 17, + .y = 10, .var05 = 3, - .var06 = 3, - .var08 = 0x40, - .var0C = 0x40, - .var10 = 0x2001, + .tilemapOffset = 3, + .flag = F_ORANGE_WYNAUT, + .inSelectionFlags = F_ORANGE_WYNAUT, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_WYNAUT, }, - { - .var00 = 9, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 1, - .var03 = 20, - .var04 = 10, + [SQU_ORANGE_AZURILL] = { + .spriteIdOffset = 9, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 1, + .x = 20, + .y = 10, .var05 = 3, - .var06 = 3, - .var08 = 0x80, - .var0C = 0x80, - .var10 = 0x2200, + .tilemapOffset = 3, + .flag = F_ORANGE_AZURILL, + .inSelectionFlags = F_ORANGE_AZURILL, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_AZURILL, }, - { - .var00 = 6, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 1, - .var03 = 23, - .var04 = 10, + [SQU_ORANGE_SKITTY] = { + .spriteIdOffset = 6, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 1, + .x = 23, + .y = 10, .var05 = 3, - .var06 = 3, - .var08 = 0x100, - .var0C = 0x100, - .var10 = 0x2040, + .tilemapOffset = 3, + .flag = F_ORANGE_SKITTY, + .inSelectionFlags = F_ORANGE_SKITTY, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_SKITTY, }, - { - .var00 = 3, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 1, - .var03 = 26, - .var04 = 10, + [SQU_ORANGE_MAKUHITA] = { + .spriteIdOffset = 3, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 1, + .x = 26, + .y = 10, .var05 = 3, - .var06 = 3, - .var08 = 0x200, - .var0C = 0x200, - .var10 = 0x2008, + .tilemapOffset = 3, + .flag = F_ORANGE_MAKUHITA, + .inSelectionFlags = F_ORANGE_MAKUHITA, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_MAKUHITA, }, - { - .var00 = 17, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 2, - .var03 = 14, - .var04 = 13, + [ROW_GREEN] = { + .spriteIdOffset = 17, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 2, + .x = 14, + .y = 13, .var05 = 3, - .var06 = 15, - .var08 = 0x400, - .var0C = 0x7C00, - .var10 = 0x492, + .tilemapOffset = 15, + .flag = F_GREEN_ROW, + .inSelectionFlags = F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, + .flashFlags = F_FLASH_COLOR_G_WYNAUT | F_FLASH_COLOR_G_AZURILL | F_FLASH_COLOR_G_SKITTY | F_FLASH_COLOR_G_MAKUHITA, }, - { - .var00 = 4, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 2, - .var03 = 17, - .var04 = 13, + [SQU_GREEN_WYNAUT] = { + .spriteIdOffset = 4, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 2, + .x = 17, + .y = 13, .var05 = 6, - .var06 = 6, - .var08 = 0x800, - .var0C = 0x800, - .var10 = 0x2010, + .tilemapOffset = 6, + .flag = F_GREEN_WYNAUT, + .inSelectionFlags = F_GREEN_WYNAUT, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_WYNAUT, }, - { - .var00 = 1, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 2, - .var03 = 20, - .var04 = 13, + [SQU_GREEN_AZURILL] = { + .spriteIdOffset = 1, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 2, + .x = 20, + .y = 13, .var05 = 6, - .var06 = 6, - .var08 = 0x1000, - .var0C = 0x1000, - .var10 = 0x2002, + .tilemapOffset = 6, + .flag = F_GREEN_AZURILL, + .inSelectionFlags = F_GREEN_AZURILL, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_AZURILL, }, - { - .var00 = 10, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 2, - .var03 = 23, - .var04 = 13, + [SQU_GREEN_SKITTY] = { + .spriteIdOffset = 10, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 2, + .x = 23, + .y = 13, .var05 = 6, - .var06 = 6, - .var08 = 0x2000, - .var0C = 0x2000, - .var10 = 0x2400, + .tilemapOffset = 6, + .flag = F_GREEN_SKITTY, + .inSelectionFlags = F_GREEN_SKITTY, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_SKITTY, }, - { - .var00 = 7, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 2, - .var03 = 26, - .var04 = 13, + [SQU_GREEN_MAKUHITA] = { + .spriteIdOffset = 7, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 2, + .x = 26, + .y = 13, .var05 = 6, - .var06 = 6, - .var08 = 0x4000, - .var0C = 0x4000, - .var10 = 0x2080, + .tilemapOffset = 6, + .flag = F_GREEN_MAKUHITA, + .inSelectionFlags = F_GREEN_MAKUHITA, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_MAKUHITA, }, - { - .var00 = 18, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 3, - .var03 = 14, - .var04 = 16, + [ROW_PURPLE] = { + .spriteIdOffset = 18, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 3, + .x = 14, + .y = 16, .var05 = 6, - .var06 = 18, - .var08 = 0x8000, - .var0C = 0xF8000, - .var10 = 0x924, + .tilemapOffset = 18, + .flag = F_PURPLE_ROW, + .inSelectionFlags = F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA, + .flashFlags = F_FLASH_COLOR_P_WYNAUT | F_FLASH_COLOR_P_AZURILL | F_FLASH_COLOR_P_SKITTY | F_FLASH_COLOR_P_MAKUHITA, }, - { - .var00 = 8, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 3, - .var03 = 17, - .var04 = 16, + [SQU_PURPLE_WYNAUT] = { + .spriteIdOffset = 8, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 3, + .x = 17, + .y = 16, .var05 = 9, - .var06 = 9, - .var08 = 0x10000, - .var0C = 0x10000, - .var10 = 0x2100, + .tilemapOffset = 9, + .flag = F_PURPLE_WYNAUT, + .inSelectionFlags = F_PURPLE_WYNAUT, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_WYNAUT, }, - { - .var00 = 5, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 3, - .var03 = 20, - .var04 = 16, + [SQU_PURPLE_AZURILL] = { + .spriteIdOffset = 5, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 3, + .x = 20, + .y = 16, .var05 = 9, - .var06 = 9, - .var08 = 0x20000, - .var0C = 0x20000, - .var10 = 0x2020, + .tilemapOffset = 9, + .flag = F_PURPLE_AZURILL, + .inSelectionFlags = F_PURPLE_AZURILL, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_AZURILL, }, - { - .var00 = 2, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 3, - .var03 = 23, - .var04 = 16, + [SQU_PURPLE_SKITTY] = { + .spriteIdOffset = 2, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 3, + .x = 23, + .y = 16, .var05 = 9, - .var06 = 9, - .var08 = 0x40000, - .var0C = 0x40000, - .var10 = 0x2004, + .tilemapOffset = 9, + .flag = F_PURPLE_SKITTY, + .inSelectionFlags = F_PURPLE_SKITTY, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_SKITTY, }, - { - .var00 = 11, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 3, - .var03 = 26, - .var04 = 16, + [SQU_PURPLE_MAKUHITA] = { + .spriteIdOffset = 11, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 3, + .x = 26, + .y = 16, .var05 = 9, - .var06 = 9, - .var08 = 0x80000, - .var0C = 0x80000, - .var10 = 0x2800, + .tilemapOffset = 9, + .flag = F_PURPLE_MAKUHITA, + .inSelectionFlags = F_PURPLE_MAKUHITA, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_MAKUHITA, }, }; -static const struct StructgUnknown_083F8D90 gUnknown_085B62E4[] = +static const struct RouletteSlot sRouletteSlots[] = { { - .var00 = 0, - .var01 = 1, - .var02 = 6, - .var04 = 0x40, + .id1 = 0, + .id2 = 1, + .gridSquare = SQU_ORANGE_WYNAUT, + .flag = F_ORANGE_WYNAUT, }, { - .var00 = 1, - .var01 = 3, - .var02 = 12, - .var04 = 0x1000, + .id1 = 1, + .id2 = 3, + .gridSquare = SQU_GREEN_AZURILL, + .flag = F_GREEN_AZURILL, }, { - .var00 = 2, - .var01 = 5, - .var02 = 18, - .var04 = 0x40000, + .id1 = 2, + .id2 = 5, + .gridSquare = SQU_PURPLE_SKITTY, + .flag = F_PURPLE_SKITTY, }, { - .var00 = 3, - .var01 = 7, - .var02 = 9, - .var04 = 0x200, + .id1 = 3, + .id2 = 7, + .gridSquare = SQU_ORANGE_MAKUHITA, + .flag = F_ORANGE_MAKUHITA, }, { - .var00 = 4, - .var01 = 9, - .var02 = 11, - .var04 = 0x800, + .id1 = 4, + .id2 = 9, + .gridSquare = SQU_GREEN_WYNAUT, + .flag = F_GREEN_WYNAUT, }, { - .var00 = 5, - .var01 = 11, - .var02 = 17, - .var04 = 0x20000, + .id1 = 5, + .id2 = 11, + .gridSquare = SQU_PURPLE_AZURILL, + .flag = F_PURPLE_AZURILL, }, { - .var00 = 6, - .var01 = 13, - .var02 = 8, - .var04 = 0x100, + .id1 = 6, + .id2 = 13, + .gridSquare = SQU_ORANGE_SKITTY, + .flag = F_ORANGE_SKITTY, }, { - .var00 = 7, - .var01 = 15, - .var02 = 14, - .var04 = 0x4000, + .id1 = 7, + .id2 = 15, + .gridSquare = SQU_GREEN_MAKUHITA, + .flag = F_GREEN_MAKUHITA, }, { - .var00 = 8, - .var01 = 17, - .var02 = 16, - .var04 = 0x10000, + .id1 = 8, + .id2 = 17, + .gridSquare = SQU_PURPLE_WYNAUT, + .flag = F_PURPLE_WYNAUT, }, { - .var00 = 9, - .var01 = 19, - .var02 = 7, - .var04 = 0x80, + .id1 = 9, + .id2 = 19, + .gridSquare = SQU_ORANGE_AZURILL, + .flag = F_ORANGE_AZURILL, }, { - .var00 = 10, - .var01 = 21, - .var02 = 13, - .var04 = 0x2000, + .id1 = 10, + .id2 = 21, + .gridSquare = SQU_GREEN_SKITTY, + .flag = F_GREEN_SKITTY, }, { - .var00 = 11, - .var01 = 23, - .var02 = 19, - .var04 = 0x80000, + .id1 = 11, + .id2 = 23, + .gridSquare = SQU_PURPLE_MAKUHITA, + .flag = F_PURPLE_MAKUHITA, }, }; -static const u8 gUnknown_085B6344[] = {1, 3, 1, 6}; -static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] = -{ - { - .var00 = 1, - .var01 = 60, - .var02 = 30, - .var03 = 1, - .var04 = 1, - .var08 = 45, - .var0A = 30, - .var0C = 1, - .var10 = 75, - .var12 = 27, - .var14 = 24, - .var18 = 10, - .var1A = 360, +static const u8 sTableMinBets[] = {1, 3, 1, 6}; + +static const struct RouletteTable sRouletteTables[] = +{ + // Left table + { + .minBet = 1, + .randDistanceHigh = DEGREES_PER_SLOT * 2, + .randDistanceLow = DEGREES_PER_SLOT, + .wheelSpeed = 1, + .wheelDelay = 1, + .shroomish = { + .startAngle = 45, + .dropAngle = 30, + .fallSlowdown = 1, + }, + .taillow = { + .baseDropDelay = 75, + .rightStartAngle = 27, + .leftStartAngle = 24, + }, + .ballSpeed = 10, + .baseTravelDist = 360, .var1C = -0.5f }, - { - .var00 = 3, - .var01 = 30, - .var02 = 15, - .var03 = 1, - .var04 = 0, - .var08 = 75, - .var0A = 60, - .var0C = 2, - .var10 = 0, - .var12 = 54, - .var14 = 48, - .var18 = 10, - .var1A = 270, + // Right table + { + .minBet = 3, + .randDistanceHigh = DEGREES_PER_SLOT, + .randDistanceLow = DEGREES_PER_SLOT / 2, + .wheelSpeed = 1, + .wheelDelay = 0, + .shroomish = { + .startAngle = 75, + .dropAngle = 60, + .fallSlowdown = 2, + }, + .taillow = { + .baseDropDelay = 0, + .rightStartAngle = 54, + .leftStartAngle = 48, + }, + .ballSpeed = 10, + .baseTravelDist = 270, .var1C = -1.0f } }; -static const struct UnkStruct1 gUnknown_085B6388[] = -{ - { - .var00 = 0x8000, - .var02 = 0x0005, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 +// Data to flash the color indicator for each slot on the roulette wheel +static const struct RouletteFlashSettings sFlashData_Colors[NUM_ROULETTE_SLOTS + 1] = +{ + { // F_FLASH_COLOR_O_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x5, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x000A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0xA, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0015, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x15, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0055, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x55, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x005A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x5A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0065, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x65, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0075, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x75, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x007A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x7A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0085, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x85, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0095, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x95, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x009A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x9A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x00A5, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0xA5, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x77D6, - .var02 = 0x0028, - .var04 = 2, - .var05 = 10, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = 2, - .var07_7 = 0 + { // F_FLASH_OUTER_EDGES + .color = RGB(22, 30, 29), + .paletteOffset = 0x28, + .numColors = 2, + .delay = 10, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, }; -static const struct UnkStruct1 gUnknown_085B63F0[] = -{ - { - .var00 = 0x53FF, - .var02 = 0x0101, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = 2, - .var07_7 = 0 +// Data to flash any pokemon icon (F_FLASH_ICON) on the roulette wheel. One entry for each color row +// Each poke icon flashes with the tint of the row color it belongs to, so the pokemon itself is irrelevant +static const struct RouletteFlashSettings sFlashData_PokeIcons[NUM_BOARD_COLORS] = +{ + [GET_ROW_IDX(ROW_ORANGE)] = { + .color = RGB(31, 31, 20), + .paletteOffset = 0x101, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x7FFB, - .var02 = 0x0106, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = 2, - .var07_7 = 0 + [GET_ROW_IDX(ROW_GREEN)] = { + .color = RGB(27, 31, 31), + .paletteOffset = 0x106, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x7F7F, - .var02 = 0x010B, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = 2, - .var07_7 = 0 + [GET_ROW_IDX(ROW_PURPLE)] = { + .color = RGB(31, 27, 31), + .paletteOffset = 0x10B, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, } }; -static const struct YesNoFuncTable gUnknown_085B6408 = +static const struct YesNoFuncTable sYesNoTable_AcceptMinBet = { - sub_8142918, - sub_814297C + Task_AcceptMinBet, + Task_DeclineMinBet }; -static const struct YesNoFuncTable gUnknown_085B6410 = +static const struct YesNoFuncTable sYesNoTable_KeepPlaying = { - sub_8140968, - sub_8140994 + Task_ContinuePlaying, + Task_StopPlaying }; -static void sub_8140238(void) +static void CB2_Roulette(void) { RunTasks(); AnimateSprites(); BuildOamBuffer(); - if (gUnknown_0203AB88->varB8.var00) - task_tutorial_controls_fadein(&gUnknown_0203AB88->varB8); + if (sRoulette->flashUtil.enabled) + RouletteFlash_Run(&sRoulette->flashUtil); } -static void sub_8140264(void) +static void VBlankCB_Roulette(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_8142814(); - SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - gUnknown_0203AB88->var26); - if (gUnknown_0203AB88->var01) - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0203AB88->var34); - if (gUnknown_0203AB88->var2A != 0) - { - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340); - gUnknown_0203AB88->var2A = 0; + UpdateWheelPosition(); + SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - sRoulette->gridX); + + if (sRoulette->shroomishShadowTimer) + SetGpuReg(REG_OFFSET_BLDALPHA, sRoulette->shroomishShadowAlpha); + + if (sRoulette->updateGridHighlight) + { + DmaCopy16(3, &sRoulette->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340); + sRoulette->updateGridHighlight = FALSE; } - switch (gUnknown_0203AB88->var28) + switch (sRoulette->selectionRectDrawState) { - case 1: + case SELECT_STATE_DRAW: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 0); ShowBg(0); - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - gUnknown_0203AB88->var28 = 2; + DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); + sRoulette->selectionRectDrawState = SELECT_STATE_UPDATE; break; - case 2: - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); + case SELECT_STATE_UPDATE: + DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); break; - case 0xFF: + case SELECT_STATE_ERASE: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 2); ShowBg(0); DmaFill16(3, 0, (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - gUnknown_0203AB88->var28 = 0; - case 0: + sRoulette->selectionRectDrawState = SELECT_STATE_WAIT; + case SELECT_STATE_WAIT: break; } } -static void sub_8140388(void) +static void InitRouletteBgAndWindows(void) { u32 size = 0; - gUnknown_0203AB88 = AllocZeroed(sizeof(*gUnknown_0203AB88)); + sRoulette = AllocZeroed(sizeof(*sRoulette)); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, gUnknown_085B6140, ARRAY_COUNT(gUnknown_085B6140)); - SetBgTilemapBuffer(0, gUnknown_0203AB88->tilemapBuffers[0]); - SetBgTilemapBuffer(1, gUnknown_0203AB88->tilemapBuffers[2]); - SetBgTilemapBuffer(2, gUnknown_0203AB88->tilemapBuffers[6]); - InitWindows(gUnknown_085B614C); - sub_8197200(); - gUnknown_0203AB8C = 0; - gUnknown_0203AB88->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size); + InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + SetBgTilemapBuffer(0, sRoulette->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRoulette->tilemapBuffers[2]); + SetBgTilemapBuffer(2, sRoulette->tilemapBuffers[6]); + InitWindows(sWindowTemplates); + InitTextBoxGfxAndPrinters(); + sTextWindowId = 0; + sRoulette->gridTilemap = malloc_and_decompress(sGrid_Tilemap, &size); } -static void sub_8140418(void) +static void FreeRoulette(void) { - FREE_AND_SET_NULL(gUnknown_0203AB88->unk_397C); + FREE_AND_SET_NULL(sRoulette->gridTilemap); FreeAllWindowBuffers(); UnsetBgTilemapBuffer(0); UnsetBgTilemapBuffer(1); UnsetBgTilemapBuffer(2); ResetBgsAndClearDma3BusyFlags(0); - memset(gUnknown_0203AB88, 0, sizeof(*gUnknown_0203AB88)); - FREE_AND_SET_NULL(gUnknown_0203AB88); + memset(sRoulette, 0, sizeof(*sRoulette)); + FREE_AND_SET_NULL(sRoulette); } -static void sub_8140470(void) +static void InitRouletteTableData(void) { u8 i; - u16 arr[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // the third is never used ? + u16 bgColors[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // 3rd is never used, same as 1st - gUnknown_0203AB88->var04_0 = (gSpecialVar_0x8004 & 1); + sRoulette->tableId = (gSpecialVar_0x8004 & 1); - if (gSpecialVar_0x8004 & 0x80) - gUnknown_0203AB88->var04_7 = 1; + if (gSpecialVar_0x8004 & ROULETTE_SPECIAL_RATE) + sRoulette->isSpecialRate = TRUE; - gUnknown_0203AB88->var22 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03; - gUnknown_0203AB88->var23 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04; - gUnknown_0203AB88->var19 = gUnknown_085B6344[gUnknown_0203AB88->var04_0 + gUnknown_0203AB88->var04_7 * 2]; - gUnknown_0203AB88->var1A_4 = 1; + sRoulette->wheelSpeed = sRouletteTables[sRoulette->tableId].wheelSpeed; + sRoulette->wheelDelay = sRouletteTables[sRoulette->tableId].wheelDelay; + sRoulette->minBet = sTableMinBets[sRoulette->tableId + sRoulette->isSpecialRate * 2]; + sRoulette->unk1 = 1; - if (gUnknown_0203AB88->var19 == 1) - gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[0]; + // Left table (with min bet of 1) has red background, other table has green + if (sRoulette->minBet == 1) + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = bgColors[0]; else - gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1]; + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = bgColors[1]; - sub_8151678(&gUnknown_0203AB88->varB8); + RouletteFlash_Reset(&sRoulette->flashUtil); - for (i = 0; i < 13; i++) + // Init flash util for flashing the selected colors on the wheel + // + 1 for the additional entry to flash the outer edges on a win + for (i = 0; i < NUM_ROULETTE_SLOTS + 1; i++) { - sub_815168C(&gUnknown_0203AB88->varB8, i, &gUnknown_085B6388[i]); + RouletteFlash_Add(&sRoulette->flashUtil, i, &sFlashData_Colors[i]); } for (i = 0; i < PARTY_SIZE; i++) @@ -908,17 +1147,27 @@ static void sub_8140470(void) switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2)) { case SPECIES_SHROOMISH: - gUnknown_0203AB88->var02 |= 0x1; + sRoulette->partySpeciesFlags |= HAS_SHROOMISH; break; case SPECIES_TAILLOW: - gUnknown_0203AB88->var02 |= 0x2; + sRoulette->partySpeciesFlags |= HAS_TAILLOW; break; } } RtcCalcLocalTime(); } -static void sub_81405CC(void) +// Task data for the roulette game tasks, starting with Task_StartPlaying +#define tMultiplier data[2] +#define tSelectionId data[4] +#define tWonBet data[5] +#define tBallNum data[6] +#define tTotalBallNum data[8] // Same as tBallNum but isn't cleared every 6 balls +#define tConsecutiveWins data[11] +#define tWinningSquare data[12] +#define tCoins data[13] + +static void CB2_LoadRoulette(void) { u8 taskId; @@ -932,7 +1181,7 @@ static void sub_81405CC(void) ResetAllBgsCoordinates(); break; case 1: - sub_8140388(); + InitRouletteBgAndWindows(); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE | BLDCNT_TGT2_BG2 | @@ -946,36 +1195,36 @@ static void sub_81405CC(void) ResetTempTileDataBuffers(); break; case 3: - LoadPalette(&gUnknown_085B5BFC, 0, 0x1C0); - DecompressAndCopyTileDataToVram(1, gRouletteMenuTiles, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, gRouletteWheelTiles, 0, 0, 0); + LoadPalette(&sWheel_Pal, 0, 0x1C0); + DecompressAndCopyTileDataToVram(1, gRouletteMenu_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(2, gRouletteWheel_Gfx, 0, 0, 0); break; case 4: if (FreeTempTileDataBuffersIfPossible()) return; - sub_8140470(); - CopyToBgTilemapBuffer(2, gUnknown_085B5FA0, 0, 0); + InitRouletteTableData(); + CopyToBgTilemapBuffer(2, sWheel_Tilemap, 0, 0); break; case 5: - sub_8142C0C(0); - sub_81439C8(); - sub_814391C(); - sub_8143314(); - sub_8142CD0(); - sub_8142F7C(); - sub_81431E4(); + LoadOrFreeMiscSpritePalettesAndSheets(FALSE); + CreateWheelBallSprites(); + CreateWheelCenterSprite(); + CreateInterfaceSprites(); + CreateGridSprites(); + CreateGridBallSprites(); + CreateWheelIconSprites(); break; case 6: AnimateSprites(); BuildOamBuffer(); - sub_8143514(GetCoins()); - sub_814372C(6); - sub_81436D0(0); - sub_81424FC(0); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + SetCreditDigits(GetCoins()); + SetBallCounterNumLeft(BALLS_PER_ROUND); + SetMultiplierSprite(SELECTION_NONE); + DrawGridBackground(SELECTION_NONE); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); gSpriteCoordOffsetX = -60; gSpriteCoordOffsetY = 0; break; @@ -991,39 +1240,39 @@ static void sub_81405CC(void) break; case 8: EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(sub_8140264); + SetVBlankCallback(VBlankCB_Roulette); BeginHardwarePaletteFade(0xFF, 0, 16, 0, 1); - taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); - gTasks[taskId].data[6] = 6; - gTasks[taskId].data[13] = GetCoins(); + taskId = sRoulette->playTaskId = CreateTask(Task_StartPlaying, 0); + gTasks[taskId].tBallNum = BALLS_PER_ROUND; + gTasks[taskId].tCoins = GetCoins(); AlertTVThatPlayerPlayedRoulette(GetCoins()); - gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); - SetMainCallback2(sub_8140238); + sRoulette->spinTaskId = CreateTask(Task_SpinWheel, 1); + SetMainCallback2(CB2_Roulette); return; } gMain.state++; } -static void sub_8140814(u8 unused) +static void Task_SpinWheel(u8 taskId) { s16 sin; s16 cos; - if (gUnknown_0203AB88->var21++ == gUnknown_0203AB88->var23) + if (sRoulette->wheelDelayTimer++ == sRoulette->wheelDelay) { - gUnknown_0203AB88->var21 = 0; - if ((gUnknown_0203AB88->var24 -= gUnknown_0203AB88->var22) < 0) - gUnknown_0203AB88->var24 = 360 - gUnknown_0203AB88->var22; + sRoulette->wheelDelayTimer = 0; + if ((sRoulette->wheelAngle -= sRoulette->wheelSpeed) < 0) + sRoulette->wheelAngle = 360 - sRoulette->wheelSpeed; } - sin = Sin2(gUnknown_0203AB88->var24); - cos = Cos2(gUnknown_0203AB88->var24); + sin = Sin2(sRoulette->wheelAngle); + cos = Cos2(sRoulette->wheelAngle); sin = sin / 16; - gUnknown_0203AB88->var2C.a = gUnknown_0203AB88->var2C.d = cos / 16; - gUnknown_0203AB88->var2C.b = sin; - gUnknown_0203AB88->var2C.c = -sin; + sRoulette->wheelRotation.a = sRoulette->wheelRotation.d = cos / 16; + sRoulette->wheelRotation.b = sin; + sRoulette->wheelRotation.c = -sin; } -static void sub_81408A8(u8 taskId) +static void Task_StartPlaying(u8 taskId) { if (UpdatePaletteFade() == 0) { @@ -1031,222 +1280,230 @@ static void sub_81408A8(u8 taskId) BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); - gTasks[taskId].data[6] = 0; - sub_8141FF4(taskId); - sub_8142070(); - sub_8143A40(); - sub_81424FC(0); - sub_814372C(6); - sub_8141F7C(taskId, sub_8140968, 0xFFFF, 0x3); + gTasks[taskId].tBallNum = 0; + ResetBallDataForNewSpin(taskId); + ResetHits(); + HideWheelBalls(); + DrawGridBackground(SELECTION_NONE); + SetBallCounterNumLeft(BALLS_PER_ROUND); + StartTaskAfterDelayOrInput(taskId, Task_ContinuePlaying, NO_DELAY, A_BUTTON | B_BUTTON); } } -static void sub_8140914(u8 taskId) +static void Task_AskKeepPlaying(u8 taskId) { DisplayYesNoMenuDefaultYes(); - DrawStdWindowFrame(gUnknown_0203AB8C, 0); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_KeepPlaying, 0, 1, TEXT_SPEED_FF, 0); - CopyWindowToVram(gUnknown_0203AB8C, 3); - DoYesNoFuncWithChoice(taskId, &gUnknown_085B6410); + DrawStdWindowFrame(sTextWindowId, 0); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_KeepPlaying, 0, 1, TEXT_SPEED_FF, 0); + CopyWindowToVram(sTextWindowId, 3); + DoYesNoFuncWithChoice(taskId, &sYesNoTable_KeepPlaying); } -static void sub_8140968(u8 taskId) +static void Task_ContinuePlaying(u8 taskId) { ClearStdWindowAndFrame(0, TRUE); - gTasks[taskId].func = sub_8140BD0; + gTasks[taskId].func = Task_SelectFirstEmptySquare; } -static void sub_8140994(u8 taskId) +static void Task_StopPlaying(u8 taskId) { - DestroyTask(gUnknown_0203AB88->varA5); - sub_8141DE4(taskId); + DestroyTask(sRoulette->spinTaskId); + ExitRoulette(taskId); } -static void sub_81409B8(u8 r0) +static void UpdateGridSelectionRect(u8 selectionId) { u8 temp0, temp1; - switch (r0) + switch (selectionId) { - case 0: - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + case SELECTION_NONE: + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); break; - case 1: - case 2: - case 3: - case 4: - temp0 = (r0 * 3 + 14); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[281], temp0, 7, 3, 13); + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: + temp0 = (selectionId * 3 + 14); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[281], temp0, 7, 3, 13); break; - case 0x5: - case 0xA: - case 0xF: - temp1 = ((r0 - 1) / 5 * 3 + 10); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[320], 14, temp1, 16, 3); + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + temp1 = ((selectionId - 1) / 5 * 3 + 10); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[320], 14, temp1, 16, 3); break; + // Individual square default: - temp0 = ((r0 % 5) * 3 + 14); - temp1 = ((r0 - 1) / 5 * 3 + 7); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[272], temp0, temp1, 3, 3); + temp0 = GET_COL(selectionId) * 3 + 14; + temp1 = ((selectionId - 1) / 5 * 3 + 7); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[272], temp0, temp1, 3, 3); break; } } -static void sub_8140B64(u8 taskId) +static void UpdateGridSelection(u8 taskId) { - sub_81436D0(gTasks[taskId].data[4]); - sub_81409B8(gTasks[taskId].data[4]); + SetMultiplierSprite(gTasks[taskId].tSelectionId); + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); } -static void sub_8140B8C(u8 taskId) +static void Task_StartHandleBetGridInput(u8 taskId) { - gUnknown_0203AB88->var28 = 1; - sub_81409B8(gTasks[taskId].data[4]); - gUnknown_0203AB88->var23 = 2; - gUnknown_0203AB88->var21 = 0; - gTasks[taskId].func = sub_8141040; + sRoulette->selectionRectDrawState = SELECT_STATE_DRAW; + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); + sRoulette->wheelDelay = 2; + sRoulette->wheelDelayTimer = 0; + gTasks[taskId].func = Task_HandleBetGridInput; } -static void sub_8140BD0(u8 taskId) +static void Task_SelectFirstEmptySquare(u8 taskId) { s16 i; - if (gUnknown_0203AB88->var08 & 0x20) + if (sRoulette->hitFlags & F_ORANGE_ROW) { - for (i = 11; i < 14; i++) + // If the whole orange row is filled, get first in green row + for (i = SQU_GREEN_WYNAUT; i < SQU_GREEN_MAKUHITA; i++) { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0) + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) break; } } else { - for (i = 6; i < 10; i++) + // Otherwise get first in orange row + // With only 6 balls both rows can't be filled, no need to check purple row + for (i = SQU_ORANGE_WYNAUT; i <= SQU_ORANGE_MAKUHITA; i++) // <= is accidental, but it will never get that far { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0) + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) break; } } - gTasks[taskId].data[4] = i; - sub_8141FF4(taskId); - sub_81424FC(gTasks[taskId].data[4]); - sub_81436D0(gTasks[taskId].data[4]); - sub_8142284(gTasks[taskId].data[4]); + gTasks[taskId].tSelectionId = i; + ResetBallDataForNewSpin(taskId); + DrawGridBackground(gTasks[taskId].tSelectionId); + SetMultiplierSprite(gTasks[taskId].tSelectionId); + FlashSelectionOnWheel(gTasks[taskId].tSelectionId); gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_8140B8C; + gTasks[taskId].func = Task_StartHandleBetGridInput; } -static u8 sub_8140CA8(s16 *r0, u8 r1) +static bool8 CanMoveSelectionInDir(s16 *selectionId, u8 dir) { s8 temp1 = 0; s8 temp = 0; - s8 arr[4] = {-5, 5, -1, 1}; - s8 t = *r0; + s8 moveOffsets[4] = {-5, 5, -1, 1}; + s8 originalSelection = *selectionId; - switch (r1) + switch (dir) { - case 0: - case 1: - temp1 = (*r0 % 5); - temp = temp1 + 15; - if (temp1 == 0) + case 0: // UP + case 1: // DOWN + temp1 = GET_COL(*selectionId); + temp = temp1 + ROW_PURPLE; + if (temp1 == SELECTION_NONE) temp1 = 5; break; - case 2: - case 3: - temp1 = (*r0 / 5) * 5; - temp = temp1 + 4; - if (temp1 == 0) + case 2: // LEFT + case 3: // RIGHT + temp1 = GET_ROW(*selectionId); + temp = temp1 + COL_MAKUHITA; + if (temp1 == SELECTION_NONE) temp1 = 1; break; } - *r0 += arr[r1]; + *selectionId += moveOffsets[dir]; - if (*r0 < temp1) - *r0 = temp; + if (*selectionId < temp1) + *selectionId = temp; - if (*r0 > temp) - *r0 = temp1; + if (*selectionId > temp) + *selectionId = temp1; - if (*r0 != t) + if (*selectionId != originalSelection) return TRUE; return FALSE; } -static void sub_8140D6C(u8 r0) -{ - u8 z = 0; - bool8 var0 = FALSE; - if (!(gMain.newKeys & DPAD_UP) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 0))) - if (!(gMain.newKeys & DPAD_DOWN) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 1))) - if (!(gMain.newKeys & DPAD_LEFT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 2))) - if (!(gMain.newKeys & DPAD_RIGHT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 3))) - if (var0) - { - u8 i; - sub_81424FC(gTasks[r0].data[4]); - sub_8140B64(r0); - gTasks[r0].data[1] = z; - PlaySE(SE_SELECT); - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0; - sub_8142284(gTasks[r0].data[4]); - for (i = 0; i < 4; i++) - { - gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type; - } - if ((u16)(gTasks[r0].data[4] - 1) < 4 && !(gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[r0].data[4]].var08) ) - { - z = gTasks[r0].data[4] - 1; - gSprites[gUnknown_0203AB88->var3C[z + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[z + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[z + 41]].anims + 1)->type; - } - } +static void ProcessBetGridInput(u8 taskId) +{ + u8 headerOffset = 0; + bool8 dirPressed = FALSE; + if ((!(JOY_NEW(DPAD_UP)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 0))) + && (!(JOY_NEW(DPAD_DOWN)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 1))) + && (!(JOY_NEW(DPAD_LEFT)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 2))) + && (!(JOY_NEW(DPAD_RIGHT)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 3))) + && (dirPressed)) + { + u8 i; + DrawGridBackground(gTasks[taskId].tSelectionId); + UpdateGridSelection(taskId); + gTasks[taskId].data[1] = 0; + PlaySE(SE_SELECT); + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + sRoulette->flashUtil.palettes[FLASH_ICON].available = sRoulette->flashUtil.palettes[FLASH_ICON_2].available = sRoulette->flashUtil.palettes[FLASH_ICON_3].available = FALSE; + FlashSelectionOnWheel(gTasks[taskId].tSelectionId); + + // Switch all the poke (column) headers to gray outlines + for (i = 0; i < NUM_BOARD_POKES; i++) + { + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].anims)->type; + } + // If the current selection is a column with at least 1 unhit space, fill in the header + if ((u16)(gTasks[taskId].tSelectionId - 1) < COL_MAKUHITA && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag)) + { + headerOffset = gTasks[taskId].tSelectionId - 1; + gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].anims + 1)->type; + } + } } -static void sub_8140F6C(u8 r0) +static void Task_StartSpin(u8 taskId) { IncrementDailyRouletteUses(); - gUnknown_0203AB88->var28 = 0xFF; - if (gUnknown_0203AB88->var19 == 1) - gUnknown_0203AB88->var23 = 1; + sRoulette->selectionRectDrawState = SELECT_STATE_ERASE; + if (sRoulette->minBet == 1) + sRoulette->wheelDelay = 1; else - gUnknown_0203AB88->var23 = 0; - gUnknown_0203AB88->var21 = 0; - gTasks[r0].data[1] = 32; - gTasks[r0].func = sub_81410FC; + sRoulette->wheelDelay = 0; + sRoulette->wheelDelayTimer = 0; + gTasks[taskId].data[1] = 32; + gTasks[taskId].func = Task_SlideGridOffscreen; } -static void sub_8140FC4(u8 taskId) +static void Task_PlaceBet(u8 taskId) { - gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = gTasks[taskId].data[4]; - gTasks[taskId].data[2] = sub_8142758(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - sub_81436D0(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - if ((gTasks[taskId].data[13] -= gUnknown_0203AB88->var19) < 0) - gTasks[taskId].data[13] = 0; - sub_8143514(gTasks[taskId].data[13]); - gTasks[taskId].func = sub_8140F6C; + sRoulette->betSelection[sRoulette->curBallNum] = gTasks[taskId].tSelectionId; + gTasks[taskId].tMultiplier = GetMultiplier(sRoulette->betSelection[sRoulette->curBallNum]); + SetMultiplierSprite(sRoulette->betSelection[sRoulette->curBallNum]); + if ((gTasks[taskId].tCoins -= sRoulette->minBet) < 0) + gTasks[taskId].tCoins = 0; + SetCreditDigits(gTasks[taskId].tCoins); + gTasks[taskId].func = Task_StartSpin; } -static void sub_8141040(u8 taskId) +static void Task_HandleBetGridInput(u8 taskId) { - sub_8140D6C(taskId); + ProcessBetGridInput(taskId); + // Flash selection rect switch (gTasks[taskId].data[1]) { case 0: - sub_81409B8(gTasks[taskId].data[4]); + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); gTasks[taskId].data[1]++; break; case 30: - sub_81409B8(0); + UpdateGridSelectionRect(SELECTION_NONE); gTasks[taskId].data[1]++; break; case 59: @@ -1256,83 +1513,86 @@ static void sub_8141040(u8 taskId) gTasks[taskId].data[1]++; } - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[taskId].data[4]].var08)) + if (sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) + { + // Ball has already landed on this space PlaySE(SE_BOO); + } else { - m4aSongNumStart(SE_REGI); - gTasks[taskId].func = sub_8140FC4; + m4aSongNumStart(SE_SHOP); + gTasks[taskId].func = Task_PlaceBet; } } } -static void sub_81410FC(u8 taskId) +static void Task_SlideGridOffscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { + // Slide wheel over if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX += 2; - if ((gUnknown_0203AB88->var26 += 4) == 104) - gSprites[gUnknown_0203AB88->var3C[25]].callback = &SpriteCallbackDummy; + + // Slide grid over + if ((sRoulette->gridX += 4) == 104) + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = &SpriteCallbackDummy; } else { - sub_8142E70(1, -1); - sub_8143038(1, -1); - gTasks[taskId].func = sub_8141344; + ShowHideGridIcons(TRUE, -1); + ShowHideGridBalls(TRUE, -1); + gTasks[taskId].func = Task_InitBallRoll; gTasks[taskId].data[1] = 0; } } -static u8 sub_814118C(u16 r0, u16 r1) +// Each table has a set base distance used to determine how far the ball will travel +// Each roll a random value is generated to add onto this distance +// Half the value returned by this function is the max distance that can be added on per roll +// i.e. the lower this value is, the closer the roll will be to a consistent distance +// Odds of a lower value increase as play continues, if the player has Shroomish and/or Taillow in the party, and dependent on the time +static u8 GetRandomForBallTravelDistance(u16 ballNum, u16 rand) { - switch (gUnknown_0203AB88->var02) + switch (sRoulette->partySpeciesFlags) { - case 1: // SHROOMISH - case 2: // TAILLOW + case HAS_SHROOMISH: + case HAS_TAILLOW: // one of the two is in party if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { - if (r0 < 12 || (r1 & 1)) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + if (ballNum < BALLS_PER_ROUND * 2 || (rand & 1)) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else - { return 1; - } } - else if (!(r1 & 0x3)) + else if (!(rand & 3)) { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } - else + else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; + return sRouletteTables[sRoulette->tableId].randDistanceLow; } break; - case 3: + case HAS_SHROOMISH | HAS_TAILLOW: // both are in party if (gLocalTime.hours > 3 && gLocalTime.hours < 11) { - if (r0 < 6 || (r1 & 1)) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + if (ballNum < BALLS_PER_ROUND || (rand & 1)) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else - { return 1; - } } - else if ((r1 & 1) && r0 > 6) + else if ((rand & 1) && ballNum > BALLS_PER_ROUND) { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 4; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 4; } - else + else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } break; case 0: @@ -1340,257 +1600,252 @@ static u8 sub_814118C(u16 r0, u16 r1) // neither is in party if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { - if (!(r1 & 3)) - { + if (!(rand & 3)) return 1; - } else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } - else if (!(r1 & 3)) + else if (!(rand & 3)) { - if (r0 > 12) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + if (ballNum > BALLS_PER_ROUND * 2) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; - } + return sRouletteTables[sRoulette->tableId].randDistanceLow; } - else if (r1 & 0x8000) + else if (rand & (1 << 15)) { - if (r0 > 12) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; - } + if (ballNum > BALLS_PER_ROUND * 2) + return sRouletteTables[sRoulette->tableId].randDistanceLow; else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01; - } + return sRouletteTables[sRoulette->tableId].randDistanceHigh; } else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 * 2; + return sRouletteTables[sRoulette->tableId].randDistanceHigh * 2; } break; } } -static void sub_8141344(u8 taskId) +static void Task_InitBallRoll(u8 taskId) { - u8 randf; - s8 randfinal; - s8 r5; - u16 g = 0; + u8 randTravelMod; + s8 randTravelDist; + s8 startAngleId; + u16 travelDist = 0; u16 rand; u16 randmod; - u16 angles[4] = {0, 180, 90, 270}; // angles in 90 degree steps + u16 startAngles[4] = {0, 180, 90, 270}; // possible angles to start ball from rand = Random(); randmod = rand % 100; - gUnknown_0203AB88->var7C = gTasks[taskId].data[6]; - gUnknown_0203AB88->var7D = gUnknown_0203AB88->var7E = gUnknown_0203AB88->var7F = g; - randf = sub_814118C(gTasks[taskId].data[8], rand); - randfinal = (rand % randf) - (randf / 2); + sRoulette->curBallSpriteId = gTasks[taskId].tBallNum; + // BALL_STATE_ROLLING set below + sRoulette->ballState = sRoulette->hitSlot = sRoulette->stuckHitSlot = 0; + randTravelMod = GetRandomForBallTravelDistance(gTasks[taskId].tTotalBallNum, rand); + randTravelDist = (rand % randTravelMod) - (randTravelMod / 2); if (gLocalTime.hours < 13) - r5 = 0; + startAngleId = 0; else - r5 = 1; + startAngleId = 1; if (randmod < 80) - r5 *= 2; + startAngleId *= 2; else - r5 = (1 - r5) * 2; - - gUnknown_0203AB88->var80 = g = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1A + randfinal; - - g = S16TOPOSFLOAT(g) / 5.0f; - gUnknown_0203AB88->var82 = g * 3; - gUnknown_0203AB88->var86 = gUnknown_0203AB88->var84 = g; - - gUnknown_0203AB88->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]); - gUnknown_0203AB88->var8C = S16TOPOSFLOAT(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var18); - gUnknown_0203AB88->var90 = ((gUnknown_0203AB88->var8C * 0.5f) - gUnknown_0203AB88->var8C) / S16TOPOSFLOAT(gUnknown_0203AB88->var82); - gUnknown_0203AB88->var94 = 68.0f; - gUnknown_0203AB88->var9C = 0.0f; - gUnknown_0203AB88->var98 = -(8.0f / S16TOPOSFLOAT(gUnknown_0203AB88->var82)); - gUnknown_0203AB88->varA0 = 36.0f; - gTasks[taskId].func = sub_814155C; + startAngleId = (1 - startAngleId) * 2; + + sRoulette->ballTravelDist = travelDist = sRouletteTables[sRoulette->tableId].baseTravelDist + randTravelDist; + + travelDist = S16TOPOSFLOAT(travelDist) / 5.0f; + sRoulette->ballTravelDistFast = travelDist * 3; + sRoulette->ballTravelDistSlow = sRoulette->ballTravelDistMed = travelDist; + + sRoulette->ballAngle = S16TOPOSFLOAT(startAngles[(rand & 1) + startAngleId]); + sRoulette->ballAngleSpeed = S16TOPOSFLOAT(sRouletteTables[sRoulette->tableId].ballSpeed); + sRoulette->ballAngleAccel = ((sRoulette->ballAngleSpeed * 0.5f) - sRoulette->ballAngleSpeed) / S16TOPOSFLOAT(sRoulette->ballTravelDistFast); + sRoulette->ballDistToCenter = 68.0f; + sRoulette->ballFallAccel = 0.0f; + sRoulette->ballFallSpeed = -(8.0f / S16TOPOSFLOAT(sRoulette->ballTravelDistFast)); + sRoulette->varA0 = 36.0f; + gTasks[taskId].func = Task_RollBall; } -static void sub_814155C(u8 taskId) -{ - u8 index; - gUnknown_0203AB88->var03_7 = 1; - index = gUnknown_0203AB88->var3C[gUnknown_0203AB88->var7C]; - gUnknown_0203AB88->var38 = &gSprites[index]; - gUnknown_0203AB88->var38->callback = sub_81446AC; - gTasks[taskId].data[6]++; - gTasks[taskId].data[0x8]++; - sub_814372C(6 - gTasks[taskId].data[6]); - m4aSongNumStart(SE_TAMAKORO); - gTasks[taskId].func = sub_81415D4; +static void Task_RollBall(u8 taskId) +{ + sRoulette->ballRolling = TRUE; + sRoulette->ball = &gSprites[sRoulette->spriteIds[sRoulette->curBallSpriteId]]; + sRoulette->ball->callback = SpriteCB_RollBall_Start; + gTasks[taskId].tBallNum++; + gTasks[taskId].tTotalBallNum++; + SetBallCounterNumLeft(BALLS_PER_ROUND - gTasks[taskId].tBallNum); + m4aSongNumStart(SE_ROULETTE_BALL); + gTasks[taskId].func = Task_RecordBallHit; } -static void sub_81415D4(u8 taskId) +static void Task_RecordBallHit(u8 taskId) { - if (gUnknown_0203AB88->var7D) + // Wait for ball to finish rolling + if (sRoulette->ballState != BALL_STATE_ROLLING) { - if (gUnknown_0203AB88->var03_5) + // If the ball got stuck, wait for it to be unstuck + if (sRoulette->ballStuck) { - if (gUnknown_0203AB88->var03_6) + if (sRoulette->ballUnstuck) { - gUnknown_0203AB88->var03_6 = FALSE; - gUnknown_0203AB88->var03_5 = FALSE; + sRoulette->ballUnstuck = FALSE; + sRoulette->ballStuck = FALSE; } } else { - if (!gTasks[taskId].data[1]) + if (gTasks[taskId].data[1] == 0) { - bool8 temp = sub_81421E8(sub_81420D0(taskId, gUnknown_0203AB88->var7E), gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - gTasks[taskId].data[5] = temp; - if (temp == TRUE) - sub_8151A48(&gUnknown_0203AB88->varB8, 0x1000); + bool8 won = IsHitInBetSelection(RecordHit(taskId, sRoulette->hitSlot), sRoulette->betSelection[sRoulette->curBallNum]); + gTasks[taskId].tWonBet = won; + if (won == TRUE) + RouletteFlash_Enable(&sRoulette->flashUtil, F_FLASH_OUTER_EDGES); } if (gTasks[taskId].data[1] <= 60) { - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) gTasks[taskId].data[1] = 60; gTasks[taskId].data[1]++; } else { - sub_81424FC(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - sub_8142E70(0, gTasks[taskId].data[12]); - sub_8143038(0, gTasks[taskId].data[6] - 1); + DrawGridBackground(sRoulette->betSelection[sRoulette->curBallNum]); + ShowHideGridIcons(FALSE, gTasks[taskId].tWinningSquare); + ShowHideGridBalls(FALSE, gTasks[taskId].tBallNum - 1); gTasks[taskId].data[1] = 32; - gTasks[taskId].func = sub_81416D4; + gTasks[taskId].func = Task_SlideGridOnscreen; } } } } -static void sub_81416D4(u8 taskId) +static void Task_SlideGridOnscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { + // Slide wheel over if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX -= 2; - if ((gUnknown_0203AB88->var26 -= 4) == 104) - gSprites[gUnknown_0203AB88->var3C[25]].callback = sub_814390C; + + // Slide grid over + if ((sRoulette->gridX -= 4) == 104) + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = SpriteCB_GridSquare; } else { - sub_8143150(gTasks[taskId].data[12]); - if (gTasks[taskId].data[5] == 1) + ShowHideWinSlotCursor(gTasks[taskId].tWinningSquare); + if (gTasks[taskId].tWonBet == TRUE) gTasks[taskId].data[1] = 121; else gTasks[taskId].data[1] = 61; - gTasks[taskId].func = sub_8141778; + gTasks[taskId].func = Task_FlashBallOnWinningSquare; } } -static void sub_8141778(u8 taskId) +static void Task_FlashBallOnWinningSquare(u8 taskId) { if (gTasks[taskId].data[1]-- > 1) { switch (gTasks[taskId].data[1] % 16) { case 8: - sub_8142E70(0, -1); - sub_8143038(0, -1); + // Winning square uncovered + ShowHideGridIcons(FALSE, -1); + ShowHideGridBalls(FALSE, -1); break; case 0: - sub_8142E70(0, gTasks[taskId].data[12]); - sub_8143038(0, gTasks[taskId].data[6] - 1); + // Winning square occluded by ball + ShowHideGridIcons(FALSE, gTasks[taskId].tWinningSquare); + ShowHideGridBalls(FALSE, gTasks[taskId].tBallNum - 1); break; } } else { - sub_8141F7C(taskId, sub_814189C, 30, 0); + StartTaskAfterDelayOrInput(taskId, Task_PrintSpinResult, 30, 0); } } -static void sub_8141800(u8 taskId) +static void Task_TryIncrementWins(u8 taskId) { - switch (gTasks[taskId].data[0x5]) + switch (gTasks[taskId].tWonBet) { - case 1: - case 2: + case TRUE: + case 2: // never happens if (IsFanfareTaskInactive()) { u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS); - if (wins < ++gTasks[taskId].data[11]) - SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].data[11]); - sub_8141F7C(taskId, sub_8141A18, 0xFFFF, 3); + if (wins < ++gTasks[taskId].tConsecutiveWins) + SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].tConsecutiveWins); + StartTaskAfterDelayOrInput(taskId, Task_PrintPayout, NO_DELAY, A_BUTTON | B_BUTTON); } break; - case 0: + case FALSE: default: if (!IsSEPlaying()) { - gTasks[taskId].data[11] = FALSE; - sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3); + gTasks[taskId].tConsecutiveWins = 0; + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, NO_DELAY, A_BUTTON | B_BUTTON); } break; } } -static void sub_814189C(u8 taskId) +static void Task_PrintSpinResult(u8 taskId) { - switch (gTasks[taskId].data[5]) + switch (gTasks[taskId].tWonBet) { - case 1: - case 2: - if (gTasks[taskId].data[2] == 12) + case TRUE: + case 2: // never happens + if (gTasks[taskId].tMultiplier == MAX_MULTIPLIER) { - PlayFanfare(MUS_ME_B_BIG); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + PlayFanfare(MUS_SLOTS_JACKPOT); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); } else { - PlayFanfare(MUS_ME_B_SMALL); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + PlayFanfare(MUS_SLOTS_WIN); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); } break; - case 0: + case FALSE: default: - m4aSongNumStart(SE_HAZURE); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + m4aSongNumStart(SE_FAILURE); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); break; } gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_8141800; + gTasks[taskId].func = Task_TryIncrementWins; } -static void sub_8141984(u8 taskId) +#define tPayout data[1] + +static void Task_GivePayout(u8 taskId) { - s32 r0 = gTasks[taskId].data[7]; - switch (r0) + switch (gTasks[taskId].data[7]) { case 0: - gTasks[taskId].data[13]++; + gTasks[taskId].tCoins++; m4aSongNumStart(SE_PIN); - sub_8143514(gTasks[taskId].data[13]); - if (gTasks[taskId].data[13] >= 9999) + SetCreditDigits(gTasks[taskId].tCoins); + if (gTasks[taskId].tCoins >= MAX_COINS) { - gTasks[taskId].data[1] = r0; + gTasks[taskId].tPayout = 0; } else { - gTasks[taskId].data[1]--; + gTasks[taskId].tPayout--; gTasks[taskId].data[7]++; } break; @@ -1602,117 +1857,123 @@ static void sub_8141984(u8 taskId) gTasks[taskId].data[7]++; break; } - if (gTasks[taskId].data[1] == 0) - sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3); + if (gTasks[taskId].tPayout == 0) + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, NO_DELAY, A_BUTTON | B_BUTTON); } -static void sub_8141A18(u8 taskId) +static void Task_PrintPayout(u8 taskId) { - ConvertIntToDecimalStringN(gStringVar1, (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]), STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar1, (sRoulette->minBet * gTasks[taskId].tMultiplier), STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, Roulette_Text_YouveWonXCoins); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - gTasks[taskId].data[1] = (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + gTasks[taskId].tPayout = (sRoulette->minBet * gTasks[taskId].tMultiplier); gTasks[taskId].data[7] = 0; - gTasks[taskId].func = sub_8141984; + gTasks[taskId].func = Task_GivePayout; } -static void sub_8141AC0(u8 taskId) +#undef tPayout + +static void Task_EndTurn(u8 taskId) { - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0; - gSprites[gUnknown_0203AB88->var3C[7 + gUnknown_085B6154[gTasks[taskId].data[12]].var00]].invisible = TRUE; - gTasks[taskId].func = sub_8141B58; + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + sRoulette->flashUtil.palettes[FLASH_ICON].available = sRoulette->flashUtil.palettes[FLASH_ICON_2].available = sRoulette->flashUtil.palettes[FLASH_ICON_3].available = FALSE; + gSprites[sRoulette->spriteIds[SPR_WHEEL_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].spriteIdOffset]].invisible = TRUE; + gTasks[taskId].func = Task_TryPrintEndTurnMsg; } -static void sub_8141B58(u8 taskId) +static void Task_TryPrintEndTurnMsg(u8 taskId) { u8 i = 0; - gTasks[taskId].data[4] = i; - gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = 0; - sub_81424FC(0); - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; - for (i = 0; i < 4; i++) - { - gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type; + gTasks[taskId].tSelectionId = i; + sRoulette->betSelection[sRoulette->curBallNum] = SELECTION_NONE; + DrawGridBackground(SELECTION_NONE); + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; + for (i = 0; i < NUM_BOARD_POKES; i++) + { + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].anims)->type; } - if (gTasks[taskId].data[13] >= gUnknown_0203AB88->var19) + if (gTasks[taskId].tCoins >= sRoulette->minBet) { - if (gTasks[taskId].data[6] == 6) + if (gTasks[taskId].tBallNum == BALLS_PER_ROUND) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, dp01t_12_3_battle_menu, 0xFFFF, 3); + // Reached Ball 6, clear board + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_ClearBoard, NO_DELAY, A_BUTTON | B_BUTTON); } - else if (gTasks[taskId].data[13] == 9999) + else if (gTasks[taskId].tCoins == MAX_COINS) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140914, 0xFFFF, 0x3); + // Player maxed out coins + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON); } else { - gTasks[taskId].func = sub_8140914; + // No special msg, ask to continue + gTasks[taskId].func = Task_AskKeepPlaying; } } else { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140994, 0x3C, 0x3); + // Player out of coins + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_StopPlaying, 60, A_BUTTON | B_BUTTON); } } -static void dp01t_12_3_battle_menu(u8 taskId) +static void Task_ClearBoard(u8 taskId) { u8 i = 0; - gTasks[taskId].data[6] = 0; - sub_8141FF4(taskId); - sub_8142070(); - sub_8143A40(); - sub_81424FC(0); - sub_814372C(6); + gTasks[taskId].tBallNum = 0; + ResetBallDataForNewSpin(taskId); + ResetHits(); + HideWheelBalls(); + DrawGridBackground(SELECTION_NONE); + SetBallCounterNumLeft(BALLS_PER_ROUND); - for (i = 0; i < 12; i++) + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 7]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_WHEEL_ICONS]].invisible = FALSE; } - if (gTasks[taskId].data[13] == 9999) + if (gTasks[taskId].tCoins == MAX_COINS) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140914, 0xFFFF, 3); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON); } else { - gTasks[taskId].func = sub_8140914; + gTasks[taskId].func = Task_AskKeepPlaying; } } -static void sub_8141DE4(u8 taskId) +static void ExitRoulette(u8 taskId) { - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - sub_8151678(&gUnknown_0203AB88->varB8); - SetCoins(gTasks[taskId].data[13]); - if (GetCoins() < gUnknown_0203AB88->var19) + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + RouletteFlash_Reset(&sRoulette->flashUtil); + SetCoins(gTasks[taskId].tCoins); + if (GetCoins() < sRoulette->minBet) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; AlertTVOfNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_8141E7C; + gTasks[taskId].func = Task_ExitRoulette; } -static void sub_8141E7C(u8 taskId) // end roulette ? +static void Task_ExitRoulette(u8 taskId) { if (UpdatePaletteFade() == 0) { @@ -1726,350 +1987,384 @@ static void sub_8141E7C(u8 taskId) // end roulette ? FreeAllSpritePalettes(); ResetPaletteFade(); ResetSpriteData(); - sub_8140418(); + FreeRoulette(); gFieldCallback = FieldCB_ContinueScriptHandleMusic; SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); } } -static void sub_8141EF8(u8 taskId) +static void Task_WaitForNextTask(u8 taskId) { - if (gUnknown_0203AB88->varA8 == 0 || gMain.newKeys & gUnknown_0203AB88->varAA) + if (sRoulette->taskWaitDelay == 0 || JOY_NEW(sRoulette->taskWaitKey)) { - gTasks[taskId].func = gUnknown_0203AB88->varAC; - if (gUnknown_0203AB88->varAA > 0) + gTasks[taskId].func = sRoulette->nextTask; + if (sRoulette->taskWaitKey > 0) PlaySE(SE_SELECT); - gUnknown_0203AB88->varAC = NULL; - gUnknown_0203AB88->varAA = 0; - gUnknown_0203AB88->varA8 = 0; + sRoulette->nextTask = NULL; + sRoulette->taskWaitKey = 0; + sRoulette->taskWaitDelay = 0; } - if (gUnknown_0203AB88->varA8 != 0xFFFF) - gUnknown_0203AB88->varA8--; + if (sRoulette->taskWaitDelay != NO_DELAY) + sRoulette->taskWaitDelay--; } -static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3) +static void StartTaskAfterDelayOrInput(u8 taskId, TaskFunc task, u16 delay, u16 key) { - gUnknown_0203AB88->varB4 = gTasks[taskId].func; - if (r1 == NULL) - r1 = gUnknown_0203AB88->varB4; - gUnknown_0203AB88->varAC = r1; - gUnknown_0203AB88->varA8 = r2; - if (r2 == 0xFFFF && r3 == 0) - gUnknown_0203AB88->varAA = 0xFFFF; + sRoulette->prevTask = gTasks[taskId].func; + if (task == NULL) + task = sRoulette->prevTask; + sRoulette->nextTask = task; + sRoulette->taskWaitDelay = delay; + if (delay == NO_DELAY && key == 0) + sRoulette->taskWaitKey = 0xFFFF; else - gUnknown_0203AB88->varAA = r3; - gTasks[taskId].func = sub_8141EF8; + sRoulette->taskWaitKey = key; + gTasks[taskId].func = Task_WaitForNextTask; } -static void sub_8141FF4(u8 taskId) +static void ResetBallDataForNewSpin(u8 taskId) { u8 i = 0; - gUnknown_0203AB88->var00 = i; - gUnknown_0203AB88->var03_7 = 0; - gUnknown_0203AB88->var03_5 = 0; - gUnknown_0203AB88->var03_6 = 0; - gUnknown_0203AB88->var03_0 = 0; - for (i = 0; i < 6; i++) - { - gUnknown_0203AB88->var1B[i] = 0; - } - gUnknown_0203AB88->var1A_0 = 0; + sRoulette->unk0 = FALSE; + sRoulette->ballRolling = FALSE; + sRoulette->ballStuck = FALSE; + sRoulette->ballUnstuck = FALSE; + sRoulette->useTaillow = FALSE; + + for (i = 0; i < BALLS_PER_ROUND; i++) + sRoulette->betSelection[i] = SELECTION_NONE; + + sRoulette->curBallNum = 0; gTasks[taskId].data[1] = 0; } -static void sub_8142070(void) +static void ResetHits(void) { u8 i; - gUnknown_0203AB88->var08 = 0; - for (i = 0; i < 6; i++) - { - gUnknown_0203AB88->var0C[i] = 0; - } - for (i = 0; i < 4; i++) - { - gUnknown_0203AB88->var12[i] = 0; - } - for (i = 0; i < 3; i++) - { - gUnknown_0203AB88->var16[i] = 0; - } - sub_8143038(1, -1); + sRoulette->hitFlags = 0; + + for (i = 0; i < BALLS_PER_ROUND; i++) + sRoulette->hitSquares[i] = 0; + + for (i = 0; i < NUM_BOARD_POKES; i++) + sRoulette->pokeHits[i] = 0; + + for (i = 0; i < NUM_BOARD_COLORS; i++) + sRoulette->colorHits[i] = 0; + + ShowHideGridBalls(TRUE, -1); } -static u8 sub_81420D0(u8 taskId, u8 r1) +static u8 RecordHit(u8 taskId, u8 slotId) { - u8 i; - u8 z; - u32 t0[4] = {0x10842, 0x21084, 0x42108, 0x84210}; - u32 t1[3] = {0x3E0, 0x7C00, 0xF8000}; + u8 i, j; + u32 columnFlags[NUM_BOARD_POKES] = { + F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, + F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, + F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, + F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA + }; + u32 rowFlags[NUM_BOARD_COLORS] = { + F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, + F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, + F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA + }; - if (r1 > 11) + if (slotId >= NUM_ROULETTE_SLOTS) return 0; - gUnknown_0203AB88->var0C[gTasks[taskId].data[6] - 1] = gUnknown_085B62E4[r1].var02; - gTasks[taskId].data[12] = gUnknown_085B62E4[r1].var02; - gUnknown_0203AB88->var08 |= gUnknown_085B62E4[r1].var04; - for (i = 0; i < 4; i++) + sRoulette->hitSquares[gTasks[taskId].tBallNum - 1] = sRouletteSlots[slotId].gridSquare; + gTasks[taskId].tWinningSquare = sRouletteSlots[slotId].gridSquare; + sRoulette->hitFlags |= sRouletteSlots[slotId].flag; + for (i = 0; i < NUM_BOARD_POKES; i++) { - if (gUnknown_085B62E4[r1].var04 & t0[i]) - gUnknown_0203AB88->var12[i]++; - if (gUnknown_0203AB88->var12[i] > 2) - gUnknown_0203AB88->var08 |= t0[i]; + if (sRouletteSlots[slotId].flag & columnFlags[i]) + sRoulette->pokeHits[i]++; + // If hit every color of a poke, set column completed + if (sRoulette->pokeHits[i] >= NUM_BOARD_COLORS) + sRoulette->hitFlags |= columnFlags[i]; } - for (z = 0; z < 3; z++) + for (j = 0; j < NUM_BOARD_COLORS; j++) { - if (gUnknown_085B62E4[r1].var04 & t1[z]) - gUnknown_0203AB88->var16[z]++; - if (gUnknown_0203AB88->var16[z] > 3) - gUnknown_0203AB88->var08 |= t1[z]; + if (sRouletteSlots[slotId].flag & rowFlags[j]) + sRoulette->colorHits[j]++; + // If hit every poke of a color, set row completed + if (sRoulette->colorHits[j] >= NUM_BOARD_POKES) + sRoulette->hitFlags |= rowFlags[j]; } - return gUnknown_085B62E4[r1].var02; + return sRouletteSlots[slotId].gridSquare; } -static bool8 sub_81421E8(u8 r0, u8 r1) +static bool8 IsHitInBetSelection(u8 gridSquare, u8 betSelection) { - u8 t = r0; - if (--r0 < 19) + u8 hit = gridSquare; + if (--gridSquare < NUM_GRID_SELECTIONS) { - switch (r1) + switch (betSelection) { - case 0: - return 3; - case 1 ... 4: - if (t == r1 + 5 || t == r1 + 10 || t == r1 + 15) + case SELECTION_NONE: + return 3; // should never happen, player must place bet + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: + if (hit == betSelection + ROW_ORANGE + || hit == betSelection + ROW_GREEN + || hit == betSelection + ROW_PURPLE) return TRUE; break; - case 5: - case 10: - case 15: - if (t >= (r1 + 1) && t <= (r1 + 4)) + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + if (hit >= (betSelection + COL_WYNAUT) + && hit <= (betSelection + COL_MAKUHITA)) return TRUE; break; + // Individual square default: - if (t == r1) + if (hit == betSelection) return TRUE; } } return FALSE; } -static void sub_8142284(u8 r0) +static void FlashSelectionOnWheel(u8 selectionId) { - - u16 var0 = 0; - u8 var2; - u16 var3; + u16 flashFlags = 0; + u8 numSelected; + u16 palOffset; u8 i; - switch (r0) + switch (selectionId) { - case 5: - case 10: - case 15: - for (i = (r0 + 1); i < (r0 + 5); i++) + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + // Flash colors of row selection + for (i = (selectionId + 1); i < (selectionId + 5); i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08)) - var0 |= gUnknown_085B6154[i].var10; + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) + flashFlags |= sGridSelections[i].flashFlags; } - sub_8151A48(&gUnknown_0203AB88->varB8, var0 &= 0xDFFF); + RouletteFlash_Enable(&sRoulette->flashUtil, flashFlags &= ~(F_FLASH_ICON)); break; default: { - struct UnkStruct1 var1[3]; - memcpy(var1, gUnknown_085B63F0, sizeof(var1)); - if (r0 > 0 && r0 < 5) - var2 = 3; + // Selection is either a column or individual square + struct RouletteFlashSettings iconFlash[NUM_BOARD_COLORS]; + memcpy(iconFlash, sFlashData_PokeIcons, sizeof(iconFlash)); + + if (selectionId >= COL_WYNAUT && selectionId <= COL_MAKUHITA) + numSelected = NUM_BOARD_COLORS; // Selection is full column else - var2 = 1; - var3 = r0 / 5 - 1; - switch (r0 % 5) + numSelected = 1; + + palOffset = GET_ROW_IDX(selectionId); + switch (GET_COL(selectionId)) { - case 1: - var3 = gSprites[gUnknown_0203AB88->var3C[7]].oam.paletteNum * 16; - break; - case 2: - var3 = gSprites[gUnknown_0203AB88->var3C[8]].oam.paletteNum * 16; - break; - case 3: - var3 = gSprites[gUnknown_0203AB88->var3C[9]].oam.paletteNum * 16; - break; - case 4: - var3 = gSprites[gUnknown_0203AB88->var3C[10]].oam.paletteNum * 16; - break; + // The specific color of the poke it references doesn't matter, because the icons of a poke share a palette + // So it just uses the first sprite ID of each + case COL_WYNAUT: + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; + break; + case COL_AZURILL: + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum * 16; + break; + case COL_SKITTY: + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; + break; + case COL_MAKUHITA: + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; + break; } - if (var2 == 1) + if (numSelected == 1) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08)) + // Selection is individual square, add entry in flash util for its icon + if (!(sRoulette->hitFlags & sGridSelections[selectionId].flag)) { - var1[r0 / 5 - 1].var02 += var3; - sub_815168C(&gUnknown_0203AB88->varB8, 13, &var1[r0 / 5 - 1]); + iconFlash[GET_ROW_IDX(selectionId)].paletteOffset += palOffset; + RouletteFlash_Add(&sRoulette->flashUtil, NUM_ROULETTE_SLOTS + 1, &iconFlash[GET_ROW_IDX(selectionId)]); } else { + // Square was already hit, don't flash it break; } } else { - for (i = 0; i < 3; i++) + // Selection is full column, add entry in flash util for each unhit space's icon + // If there is only 1 unhit space, also add its flags so its color will flash as well + for (i = 0; i < NUM_BOARD_COLORS; i++) { - u8 var4 = i * 5 + r0 + 5; - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[var4].var08)) + u8 columnSlotId = i * 5 + selectionId + 5; + if (!(sRoulette->hitFlags & sGridSelections[columnSlotId].flag)) { - var1[var4 / 5 - 1].var02 += var3; - sub_815168C(&gUnknown_0203AB88->varB8, i + 13, &var1[var4 / 5 - 1]); - if (var2 == 3) - var0 = gUnknown_085B6154[var4].var10; - var2--; + iconFlash[GET_ROW_IDX(columnSlotId)].paletteOffset += palOffset; + RouletteFlash_Add(&sRoulette->flashUtil, i + NUM_ROULETTE_SLOTS + 1, &iconFlash[GET_ROW_IDX(columnSlotId)]); + if (numSelected == 3) + flashFlags = sGridSelections[columnSlotId].flashFlags; + numSelected--; } } - if (var2 != 2) - var0 = 0; + // If there was more than 1 space in the column, reset flags; only icons will flash + if (numSelected != 2) + flashFlags = 0; } - sub_8151A48(&gUnknown_0203AB88->varB8, var0 |= gUnknown_085B6154[r0].var10); + // Do flash + RouletteFlash_Enable(&sRoulette->flashUtil, flashFlags |= sGridSelections[selectionId].flashFlags); break; } } } -static void sub_81424FC(u8 r0) +static void DrawGridBackground(u8 selectionId) { - vu8 i; - vu8 z; - vu16 var1; - vu16 var2; - vu8 var0; - u8 v[5]; - u8 l; - gUnknown_0203AB88->var2A = 1; - sub_8142E70(0, 0); - sub_8152058(gUnknown_0203AB88->tilemapBuffers[2], gUnknown_0203AB88->unk_397C, 14, 7, 16, 13); - switch (r0) + vu8 i, j; + vu16 x, y; + vu8 tilemapOffset; + u8 selectionIds[NUM_BOARD_POKES >= NUM_BOARD_COLORS ? NUM_BOARD_POKES + 1 : NUM_BOARD_COLORS + 1]; + u8 numSquares; + sRoulette->updateGridHighlight = TRUE; + ShowHideGridIcons(FALSE, 0); + SetTilemapRect(sRoulette->tilemapBuffers[2], sRoulette->gridTilemap, 14, 7, 16, 13); + + // Highlight selected square + // (just buffers the highlight, it's actually drawn in VBlankCB_Roulette) + switch (selectionId) { - case 0: + case SELECTION_NONE: return; - case 1 ... 4: - l = 4; - for (i = 0; i < l; i++) - { - v[i] = i * 5 + r0; - } + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: + numSquares = NUM_BOARD_COLORS + 1; // For each poke column, 3 colors and a header + for (i = 0; i < numSquares; i++) + selectionIds[i] = i * ROW_ORANGE + selectionId; break; - case 5: - case 10: - case 15: - l = 5; - for (i = 0; i < l; i++) - { - v[i] = i + r0; - } + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + numSquares = NUM_BOARD_POKES + 1; // For each color row, 4 pokes and a header + for (i = 0; i < numSquares; i++) + selectionIds[i] = i + selectionId; break; + // Individual square default: - l = 1; - v[0] = r0; + numSquares = 1; + selectionIds[0] = selectionId; } - for (i = 0; i < l; i++) + for (i = 0; i < numSquares; i++) { - var0 = gUnknown_085B6154[v[i]].var06; - var1 = gUnknown_085B6154[v[i]].var03; - for (z = 0; z < 3; z++) + tilemapOffset = sGridSelections[selectionIds[i]].tilemapOffset; + x = sGridSelections[selectionIds[i]].x; + + // Grid square highlight is drawn in 9 segments, starting from the top left of the square + // Each iteration of this loop draws 3 segments to form a single horizontal segment + for (j = 0; j < 3; j++) { - var2 = (gUnknown_085B6154[v[i]].var04 + z) * 32; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 0] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 208]; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 1] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 209]; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 2] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 210]; + y = (sGridSelections[selectionIds[i]].y + j) * 32; + sRoulette->tilemapBuffers[2][x + y + 0] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 0]; + sRoulette->tilemapBuffers[2][x + y + 1] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 1]; + sRoulette->tilemapBuffers[2][x + y + 2] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 2]; } } } -static u8 sub_8142758(u8 r0) +static u8 GetMultiplier(u8 selectionId) { - u8 var0[5] = {0, 3, 4, 6, 12}; + u8 multipliers[5] = {0, 3, 4, 6, MAX_MULTIPLIER}; - if (r0 > 19) - r0 = 0; - switch (gUnknown_085B6154[r0].var01_0) + if (selectionId > NUM_GRID_SELECTIONS) + selectionId = 0; + + switch (sGridSelections[selectionId].baseMultiplier) { - case 3: - r0 = r0 / 5 - 1; - if (gUnknown_0203AB88->var16[r0] > 3) + case NUM_BOARD_COLORS: + selectionId = GET_ROW_IDX(selectionId); + // If already hit all pokes of this color, multiplier is 0 + if (sRoulette->colorHits[selectionId] >= NUM_BOARD_POKES) return 0; - return var0[gUnknown_0203AB88->var16[r0] + 1]; - case 4: - r0--; - if (gUnknown_0203AB88->var12[r0] > 2) + return multipliers[sRoulette->colorHits[selectionId] + 1]; + case NUM_BOARD_POKES: + selectionId = GET_COL_IDX(selectionId); + // If already hit all colors of this poke, multiplier is 0 + if (sRoulette->pokeHits[selectionId] >= NUM_BOARD_COLORS) return 0; - return var0[gUnknown_0203AB88->var12[r0] + 2]; - case 12: - if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08) + return multipliers[sRoulette->pokeHits[selectionId] + 2]; + case NUM_ROULETTE_SLOTS: + // If square has been hit already, multiplier is 0 + if (sRoulette->hitFlags & sGridSelections[selectionId].flag) return 0; - return var0[4]; + return multipliers[ARRAY_COUNT(multipliers) - 1]; } return 0; } -static void sub_8142814(void) -{ - s32 x1; - s32 x2; - SetGpuReg(REG_OFFSET_BG2PA, gUnknown_0203AB88->var2C.a); - SetGpuReg(REG_OFFSET_BG2PB, gUnknown_0203AB88->var2C.b); - SetGpuReg(REG_OFFSET_BG2PC, gUnknown_0203AB88->var2C.c); - SetGpuReg(REG_OFFSET_BG2PD, gUnknown_0203AB88->var2C.d); - x1 = 0x7400 - gUnknown_0203AB88->var2C.a * (gSpriteCoordOffsetX + 116) - - gUnknown_0203AB88->var2C.b * (gSpriteCoordOffsetY + 80); - x2 = 0x5400 - gUnknown_0203AB88->var2C.c * (gSpriteCoordOffsetX + 116) - - gUnknown_0203AB88->var2C.d * (gSpriteCoordOffsetY + 80); - SetGpuReg(REG_OFFSET_BG2X_L, x1); - SetGpuReg(REG_OFFSET_BG2X_H, (x1 & 0x0fff0000) >> 16); - SetGpuReg(REG_OFFSET_BG2Y_L, x2); - SetGpuReg(REG_OFFSET_BG2Y_H, (x2 & 0x0fff0000) >> 16); +static void UpdateWheelPosition(void) +{ + s32 bg2x; + s32 bg2y; + SetGpuReg(REG_OFFSET_BG2PA, sRoulette->wheelRotation.a); + SetGpuReg(REG_OFFSET_BG2PB, sRoulette->wheelRotation.b); + SetGpuReg(REG_OFFSET_BG2PC, sRoulette->wheelRotation.c); + SetGpuReg(REG_OFFSET_BG2PD, sRoulette->wheelRotation.d); + bg2x = 0x7400 - sRoulette->wheelRotation.a * (gSpriteCoordOffsetX + 116) + - sRoulette->wheelRotation.b * (gSpriteCoordOffsetY + 80); + bg2y = 0x5400 - sRoulette->wheelRotation.c * (gSpriteCoordOffsetX + 116) + - sRoulette->wheelRotation.d * (gSpriteCoordOffsetY + 80); + SetGpuReg(REG_OFFSET_BG2X_L, bg2x); + SetGpuReg(REG_OFFSET_BG2X_H, (bg2x & 0x0fff0000) >> 16); + SetGpuReg(REG_OFFSET_BG2Y_L, bg2y); + SetGpuReg(REG_OFFSET_BG2Y_H, (bg2y & 0x0fff0000) >> 16); } -static const u8 sFiller_085B644D[3] = {}; -static const u16 RouletteSpritePalette_01[] = INCBIN_U16("graphics/roulette/shadow.gbapal"); -static const u16 RouletteSpritePalette_02[] = INCBIN_U16("graphics/roulette/ball.gbapal"); -static const u16 RouletteSpritePalette_03[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal"); -static const u16 RouletteSpritePalette_04[] = INCBIN_U16("graphics/roulette/cursor.gbapal"); -static const u16 RouletteSpritePalette_05[] = INCBIN_U16("graphics/roulette/credit.gbapal"); -static const u16 RouletteSpritePalette_06[] = INCBIN_U16("graphics/roulette/shroomish.gbapal"); -static const u16 RouletteSpritePalette_07[] = INCBIN_U16("graphics/roulette/tailow.gbapal"); -static const u16 RouletteSpritePalette_08[] = INCBIN_U16("graphics/roulette/poke_icons.gbapal"); -static const u16 RouletteSpritePalette_09[] = INCBIN_U16("graphics/roulette/wynaut.gbapal"); -static const u16 RouletteSpritePalette_10[] = INCBIN_U16("graphics/roulette/azurill.gbapal"); -static const u16 RouletteSpritePalette_11[] = INCBIN_U16("graphics/roulette/skitty.gbapal"); -static const u16 RouletteSpritePalette_12[] = INCBIN_U16("graphics/roulette/makuhita.gbapal"); -static const u16 RouletteSpritePalette_13[] = INCBIN_U16("graphics/roulette/85B65D0.gbapal"); -static const u16 RouletteSpritePalette_14[] = INCBIN_U16("graphics/roulette/85B65F0.gbapal"); -static const u16 RouletteSpritePalette_15[] = INCBIN_U16("graphics/roulette/85B6610.gbapal"); -static const u16 RouletteSpritePalette_16[] = INCBIN_U16("graphics/roulette/85B6630.gbapal"); -static const u32 gUnknown_085B6650[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz"); -static const u32 RouletteBallCounterTiles[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz"); -static const u32 gUnknown_085B67FC[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz"); -static const u32 RoulettePokeIconsTiles[] = INCBIN_U32("graphics/roulette/poke_icons.4bpp.lz"); -static const u32 RoulettePokeIcons2Tiles[] = INCBIN_U32("graphics/roulette/poke_icons2.4bpp.lz"); -static const u32 gUnknown_085B7290[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz"); -static const u32 RouletteCursorTiles[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz"); - -static const struct SpritePalette gUnknown_085B7384[] = -{ - { .data = RouletteSpritePalette_01, .tag = 1 }, - { .data = RouletteSpritePalette_02, .tag = 2 }, - { .data = RouletteSpritePalette_03, .tag = 3 }, - { .data = RouletteSpritePalette_04, .tag = 4 }, - { .data = RouletteSpritePalette_05, .tag = 5 }, - { .data = RouletteSpritePalette_06, .tag = 6 }, - { .data = RouletteSpritePalette_07, .tag = 7 }, - { .data = RouletteSpritePalette_08, .tag = 8 }, - { .data = RouletteSpritePalette_09, .tag = 9 }, - { .data = RouletteSpritePalette_10, .tag = 10 }, - { .data = RouletteSpritePalette_11, .tag = 11 }, - { .data = RouletteSpritePalette_12, .tag = 12 }, +static const u8 sFiller[3] = {}; +static const u16 sShadow_Pal[] = INCBIN_U16("graphics/roulette/shadow.gbapal"); +static const u16 sBall_Pal[] = INCBIN_U16("graphics/roulette/ball.gbapal"); +static const u16 sBallCounter_Pal[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal"); +static const u16 sCursor_Pal[] = INCBIN_U16("graphics/roulette/cursor.gbapal"); +static const u16 sCredit_Pal[] = INCBIN_U16("graphics/roulette/credit.gbapal"); +static const u16 sShroomish_Pal[] = INCBIN_U16("graphics/roulette/shroomish.gbapal"); +static const u16 sTaillow_Pal[] = INCBIN_U16("graphics/roulette/tailow.gbapal"); +static const u16 sGridIcons_Pal[] = INCBIN_U16("graphics/roulette/grid_icons.gbapal"); +static const u16 sWynaut_Pal[] = INCBIN_U16("graphics/roulette/wynaut.gbapal"); +static const u16 sAzurill_Pal[] = INCBIN_U16("graphics/roulette/azurill.gbapal"); +static const u16 sSkitty_Pal[] = INCBIN_U16("graphics/roulette/skitty.gbapal"); +static const u16 sMakuhita_Pal[] = INCBIN_U16("graphics/roulette/makuhita.gbapal"); +static const u16 sUnused1_Pal[] = INCBIN_U16("graphics/roulette/unused_1.gbapal"); +static const u16 sUnused2_Pal[] = INCBIN_U16("graphics/roulette/unused_2.gbapal"); +static const u16 sUnused3_Pal[] = INCBIN_U16("graphics/roulette/unused_3.gbapal"); +static const u16 sUnused4_Pal[] = INCBIN_U16("graphics/roulette/unused_4.gbapal"); +static const u32 sBall_Gfx[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz"); +static const u32 sBallCounter_Gfx[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz"); +static const u32 sShroomishTaillow_Gfx[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz"); +static const u32 sGridIcons_Gfx[] = INCBIN_U32("graphics/roulette/grid_icons.4bpp.lz"); +static const u32 sWheelIcons_Gfx[] = INCBIN_U32("graphics/roulette/wheel_icons.4bpp.lz"); +static const u32 sShadow_Gfx[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz"); +static const u32 sCursor_Gfx[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz"); + +static const struct SpritePalette sSpritePalettes[] = +{ + { .data = sShadow_Pal, .tag = PALTAG_SHADOW }, + { .data = sBall_Pal, .tag = PALTAG_BALL }, + { .data = sBallCounter_Pal, .tag = PALTAG_BALL_COUNTER }, + { .data = sCursor_Pal, .tag = PALTAG_CURSOR }, + { .data = sCredit_Pal, .tag = PALTAG_INTERFACE }, + { .data = sShroomish_Pal, .tag = PALTAG_SHROOMISH }, + { .data = sTaillow_Pal, .tag = PALTAG_TAILLOW }, + { .data = sGridIcons_Pal, .tag = PALTAG_GRID_ICONS }, + { .data = sWynaut_Pal, .tag = PALTAG_WYNAUT }, + { .data = sAzurill_Pal, .tag = PALTAG_AZURILL }, + { .data = sSkitty_Pal, .tag = PALTAG_SKITTY }, + { .data = sMakuhita_Pal, .tag = PALTAG_MAKUHITA }, {} }; -static const struct OamData gOamData_85B73EC = +static const struct OamData sOam_GridHeader = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2078,7 +2373,7 @@ static const struct OamData gOamData_85B73EC = .priority = 1, }; -static const struct OamData gOamData_85B73F4 = +static const struct OamData sOam_GridIcon = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2087,7 +2382,7 @@ static const struct OamData gOamData_85B73F4 = .priority = 1, }; -static const struct OamData gOamData_85B73FC = +static const struct OamData sOam_WheelIcon = { .y = 60, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -2097,35 +2392,35 @@ static const struct OamData gOamData_85B73FC = .priority = 2, }; -static const union AnimCmd gSpriteAnim_85B7404[] = +static const union AnimCmd sAffineAnim_Unused1[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B740C[] = +static const union AnimCmd *const sAffineAnims_Unused1[] = { - gSpriteAnim_85B7404 + sAffineAnim_Unused1 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = +static const union AffineAnimCmd sAffineAnim_Unused2[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = +static const union AffineAnimCmd *const sAffineAnims_Unused2[] = { - gSpriteAffineAnim_85B7410 + sAffineAnim_Unused2 }; -static const struct CompressedSpriteSheet gUnknown_085B741C = +static const struct CompressedSpriteSheet sSpriteSheet_WheelIcons = { - .data = RoulettePokeIcons2Tiles, + .data = sWheelIcons_Gfx, .size = 0xC00, - .tag = 0 + .tag = GFXTAG_WHEEL_ICONS }; -static const union AnimCmd gSpriteAnim_85B7420[] = +static const union AnimCmd sAnim_WheelIcons[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(32, 0), @@ -2142,81 +2437,81 @@ static const union AnimCmd gSpriteAnim_85B7420[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7458[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeWynaut[] = { - &gSpriteAnim_85B7420[0] + &sAnim_WheelIcons[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B745C[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenAzurill[] = { - &gSpriteAnim_85B7420[1] + &sAnim_WheelIcons[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7460[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleSkitty[] = { - &gSpriteAnim_85B7420[2] + &sAnim_WheelIcons[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7464[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeMakuhita[] = { - &gSpriteAnim_85B7420[3] + &sAnim_WheelIcons[3] }; -static const union AnimCmd *const gSpriteAnimTable_85B7468[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenWynaut[] = { - &gSpriteAnim_85B7420[4] + &sAnim_WheelIcons[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B746C[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleAzurill[] = { - &gSpriteAnim_85B7420[5] + &sAnim_WheelIcons[5] }; -static const union AnimCmd *const gSpriteAnimTable_85B7470[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeSkitty[] = { - &gSpriteAnim_85B7420[6] + &sAnim_WheelIcons[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B7474[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenMakuhita[] = { - &gSpriteAnim_85B7420[7] + &sAnim_WheelIcons[7] }; -static const union AnimCmd *const gSpriteAnimTable_85B7478[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleWynaut[] = { - &gSpriteAnim_85B7420[8] + &sAnim_WheelIcons[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B747C[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeAzurill[] = { - &gSpriteAnim_85B7420[9] + &sAnim_WheelIcons[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B7480[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenSkitty[] = { - &gSpriteAnim_85B7420[10] + &sAnim_WheelIcons[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B7484[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleMakuhita[] = { - &gSpriteAnim_85B7420[11] + &sAnim_WheelIcons[11] }; -static const struct CompressedSpriteSheet gUnknown_085B7488 = +static const struct CompressedSpriteSheet sSpriteSheet_Headers = { - .data = gRouletteHeadersTiles, + .data = gRouletteHeaders_Gfx, .size = 0x1600, - .tag = 4 + .tag = GFXTAG_HEADERS }; -static const struct CompressedSpriteSheet gUnknown_085B7490 = +static const struct CompressedSpriteSheet sSpriteSheet_GridIcons = { - .data = RoulettePokeIconsTiles, + .data = sGridIcons_Gfx, .size = 0x400, - .tag = 5 + .tag = GFXTAG_GRID_ICONS }; -static const union AnimCmd gSpriteAnim_85B7498[] = +static const union AnimCmd sAnim_Headers[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(16, 0), @@ -2232,7 +2527,7 @@ static const union AnimCmd gSpriteAnim_85B7498[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B74C8[] = +static const union AnimCmd sAnim_GridIcons[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(4, 0), @@ -2241,285 +2536,287 @@ static const union AnimCmd gSpriteAnim_85B74C8[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = +static const union AnimCmd *const sAnim_WynautHeader[] = { - &gSpriteAnim_85B7498[0] + &sAnim_Headers[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = +static const union AnimCmd *const sAnim_AzurillHeader[] = { - &gSpriteAnim_85B7498[2] + &sAnim_Headers[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = +static const union AnimCmd *const sAnim_SkittyHeader[] = { - &gSpriteAnim_85B7498[4] + &sAnim_Headers[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = +static const union AnimCmd *const sAnim_MakuhitaHeader[] = { - &gSpriteAnim_85B7498[6] + &sAnim_Headers[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = +static const union AnimCmd *const sAnim_OrangeHeader[] = { - &gSpriteAnim_85B7498[8] + &sAnim_Headers[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = +static const union AnimCmd *const sAnim_GreenHeader[] = { - &gSpriteAnim_85B7498[9] + &sAnim_Headers[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = +static const union AnimCmd *const sAnim_PurpleHeader[] = { - &gSpriteAnim_85B7498[10] + &sAnim_Headers[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = +static const union AnimCmd *const sAnim_GridIcon_Wynaut[] = { - &gSpriteAnim_85B74C8[0] + &sAnim_GridIcons[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = +static const union AnimCmd *const sAnim_GridIcon_Azurill[] = { - &gSpriteAnim_85B74C8[1] + &sAnim_GridIcons[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7500[] = +static const union AnimCmd *const sAnim_GridIcon_Skitty[] = { - &gSpriteAnim_85B74C8[2] + &sAnim_GridIcons[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7504[] = +static const union AnimCmd *const sAnim_GridIcon_Makuhita[] = { - &gSpriteAnim_85B74C8[3] + &sAnim_GridIcons[3] }; -static const struct SpriteTemplate gSpriteTemplate_85B7508[] = +static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] = { { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74DC, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_WynautHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E0, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_AzurillHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E4, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_SkittyHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_MakuhitaHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B7568[] = +static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLORS] = { { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74EC, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_OrangeHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74F0, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_GreenHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, - .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74F4, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridHeader, + .anims = sAnim_PurpleHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B75B0[] = +static const struct SpriteTemplate sSpriteTemplate_GridIcons[NUM_BOARD_POKES] = { { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B74F8, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Wynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B74FC, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Azurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B7500, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Skitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B7504, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Makuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B7610[] = +// Wheel icons are listed clockwise starting from 1 oclock on the roulette wheel (with pokeball upside right) +// They go Wynaut -> Azurill -> Skitty -> Makuhita, and Orange -> Green -> Purple +static const struct SpriteTemplate sSpriteTemplates_WheelIcons[NUM_ROULETTE_SLOTS] = { { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7458, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B745C, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7460, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7464, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7468, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B746C, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7470, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7474, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7478, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B747C, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7480, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7484, + .tileTag = GFXTAG_WHEEL_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_WheelIcon } }; -static const struct OamData gOamData_85B7730 = +static const struct OamData sOam_Credit = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2528,7 +2825,7 @@ static const struct OamData gOamData_85B7730 = .priority = 1, }; -static const struct OamData gOamData_85B7738 = +static const struct OamData sOam_CreditDigit = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2537,7 +2834,7 @@ static const struct OamData gOamData_85B7738 = .priority = 1, }; -static const struct OamData gOamData_85B7740 = +static const struct OamData sOam_Multiplier = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2546,7 +2843,7 @@ static const struct OamData gOamData_85B7740 = .priority = 1, }; -static const struct OamData gOamData_85B7748 = +static const struct OamData sOam_BallCounter = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2555,58 +2852,59 @@ static const struct OamData gOamData_85B7748 = .priority = 1, }; -static const struct CompressedSpriteSheet gUnknown_085B7750[] = +static const struct CompressedSpriteSheet sSpriteSheets_Interface[] = { { - .data = gRouletteCreditTiles, + .data = gRouletteCredit_Gfx, .size = 0x400, - .tag = 7 + .tag = GFXTAG_CREDIT }, { - .data = gRouletteNumbersTiles, + .data = gRouletteNumbers_Gfx, .size = 0x280, - .tag = 8 + .tag = GFXTAG_CREDIT_DIGIT }, { - .data = gRouletteMultiplierTiles, + .data = gRouletteMultiplier_Gfx, .size = 0x500, - .tag = 9 + .tag = GFXTAG_MULTIPLIER }, { - .data = RouletteBallCounterTiles, + .data = sBallCounter_Gfx, .size = 0x140, - .tag = 10 + .tag = GFXTAG_BALL_COUNTER }, { - .data = RouletteCursorTiles, + .data = sCursor_Gfx, .size = 0x200, - .tag = 11 + .tag = GFXTAG_CURSOR }, {} }; -static const union AnimCmd gSpriteAnim_85B7780[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_FRAME(2, 0), - ANIMCMD_FRAME(4, 0), - ANIMCMD_FRAME(6, 0), - ANIMCMD_FRAME(8, 0), - ANIMCMD_FRAME(10, 0), - ANIMCMD_FRAME(12, 0), - ANIMCMD_FRAME(14, 0), - ANIMCMD_FRAME(16, 0), - ANIMCMD_FRAME(18, 0), +static const union AnimCmd sAnim_CreditDigit[] = +{ + ANIMCMD_FRAME(0, 0), // 0 + ANIMCMD_FRAME(2, 0), // 1 + ANIMCMD_FRAME(4, 0), // 2 + ANIMCMD_FRAME(6, 0), // 3 + ANIMCMD_FRAME(8, 0), // 4 + ANIMCMD_FRAME(10, 0), // 5 + ANIMCMD_FRAME(12, 0), // 6 + ANIMCMD_FRAME(14, 0), // 7 + ANIMCMD_FRAME(16, 0), // 8 + ANIMCMD_FRAME(18, 0), // 9 // BUG: Animation not terminated properly + // Doesn't matter in practice, the frames are set directly and not looped //ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = +static const union AnimCmd *const sAnims_CreditDigit[] = { - gSpriteAnim_85B7780 + sAnim_CreditDigit }; -static const union AnimCmd gSpriteAnim_85B77AC[] = +static const union AnimCmd sAnim_Multiplier[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(8, 0), @@ -2616,12 +2914,12 @@ static const union AnimCmd gSpriteAnim_85B77AC[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = +static const union AnimCmd *const sAnims_Multiplier[] = { - gSpriteAnim_85B77AC + sAnim_Multiplier }; -static const union AnimCmd gSpriteAnim_85B77C8[] = +static const union AnimCmd sAnim_BallCounter[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), @@ -2631,67 +2929,68 @@ static const union AnimCmd gSpriteAnim_85B77C8[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = +static const union AnimCmd *const sAnims_BallCounter[] = { - gSpriteAnim_85B77C8 + sAnim_BallCounter }; -static const struct SpriteTemplate gSpriteTemplate_85B77E4 = +static const struct SpriteTemplate sSpriteTemplate_Credit = { - .tileTag = 7, - .paletteTag = 5, - .oam = &gOamData_85B7730, + .tileTag = GFXTAG_CREDIT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Credit, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B77FC = +static const struct SpriteTemplate sSpriteTemplate_CreditDigit = { - .tileTag = 8, - .paletteTag = 5, - .oam = &gOamData_85B7738, - .anims = gSpriteAnimTable_85B77A8, + .tileTag = GFXTAG_CREDIT_DIGIT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_CreditDigit, + .anims = sAnims_CreditDigit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B7814 = +static const struct SpriteTemplate sSpriteTemplate_Multiplier = { - .tileTag = 9, - .paletteTag = 5, - .oam = &gOamData_85B7740, - .anims = gSpriteAnimTable_85B77C4, + .tileTag = GFXTAG_MULTIPLIER, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Multiplier, + .anims = sAnims_Multiplier, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }; -static const struct SpriteTemplate gUnknown_085B782C = +static const struct SpriteTemplate sSpriteTemplate_BallCounter = { - .tileTag = 10, - .paletteTag = 3, - .oam = &gOamData_85B7748, - .anims = gSpriteAnimTable_85B77E0, + .tileTag = GFXTAG_BALL_COUNTER, + .paletteTag = PALTAG_BALL_COUNTER, + .oam = &sOam_BallCounter, + .anims = sAnims_BallCounter, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B7844 = +// NOTE: This cursor is only used to identify the winning square on the grid +static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = 11, - .paletteTag = 5, - .oam = &gOamData_85B73EC, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_GridHeader, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_85B785C = +static const struct OamData sOam_Ball = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2700,13 +2999,13 @@ static const struct OamData gOamData_85B785C = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7864 = { - .data = gUnknown_085B6650, +static const struct CompressedSpriteSheet sSpriteSheet_Ball = { + .data = sBall_Gfx, .size = 0x200, - .tag = 12 + .tag = GFXTAG_BALL }; -static const union AnimCmd gSpriteAnim_85B786C[] = +static const union AnimCmd sAnim_Ball_RollFast[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -2715,7 +3014,7 @@ static const union AnimCmd gSpriteAnim_85B786C[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7880[] = +static const union AnimCmd sAnim_Ball_RollMedium[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), @@ -2724,7 +3023,7 @@ static const union AnimCmd gSpriteAnim_85B7880[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7894[] = +static const union AnimCmd sAnim_Ball_RollSlow[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(4, 15), @@ -2733,7 +3032,7 @@ static const union AnimCmd gSpriteAnim_85B7894[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B78A8[] = +static const union AnimCmd sAnim_Ball_StopOnFrame1[] = { ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(8, 5), @@ -2742,7 +3041,7 @@ static const union AnimCmd gSpriteAnim_85B78A8[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78BC[] = +static const union AnimCmd sAnim_Ball_StopOnFrame3[] = { ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(0, 4), @@ -2752,7 +3051,7 @@ static const union AnimCmd gSpriteAnim_85B78BC[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78D4[] = +static const union AnimCmd sAnim_Ball_StopOnFrame4[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 5), @@ -2761,13 +3060,13 @@ static const union AnimCmd gSpriteAnim_85B78D4[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78E8[] = +static const union AnimCmd sAnim_Ball_Still[] = { ANIMCMD_FRAME(12, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78F0[] = +static const union AnimCmd sAnim_Ball_StopOnFrame2[] = { ANIMCMD_FRAME(8, 2), ANIMCMD_FRAME(4, 5), @@ -2776,31 +3075,31 @@ static const union AnimCmd gSpriteAnim_85B78F0[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7904[] = -{ - gSpriteAnim_85B786C, - gSpriteAnim_85B7880, - gSpriteAnim_85B7894, - gSpriteAnim_85B78A8, - gSpriteAnim_85B78F0, - gSpriteAnim_85B78BC, - gSpriteAnim_85B78D4, - gSpriteAnim_85B78D4, - gSpriteAnim_85B78E8 +static const union AnimCmd *const sAnims_Ball[] = +{ + sAnim_Ball_RollFast, + sAnim_Ball_RollMedium, + sAnim_Ball_RollSlow, + sAnim_Ball_StopOnFrame1, + sAnim_Ball_StopOnFrame2, + sAnim_Ball_StopOnFrame3, + sAnim_Ball_StopOnFrame4, + sAnim_Ball_StopOnFrame4, + sAnim_Ball_Still }; -static const struct SpriteTemplate gSpriteTemplate_85B7928 = +static const struct SpriteTemplate sSpriteTemplate_Ball = { - .tileTag = 12, - .paletteTag = 2, - .oam = &gOamData_85B785C, - .anims = gSpriteAnimTable_85B7904, + .tileTag = GFXTAG_BALL, + .paletteTag = PALTAG_BALL, + .oam = &sOam_Ball, + .anims = sAnims_Ball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_85B7940 = +static const struct OamData sOam_WheelCenter = { .y = 81, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -2810,25 +3109,25 @@ static const struct OamData gOamData_85B7940 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7948 = +static const struct CompressedSpriteSheet sSpriteSheet_WheelCenter = { .data = gRouletteCenter_Gfx, .size = 0x800, - .tag = 6 + .tag = GFXTAG_WHEEL_CENTER }; -static const struct SpriteTemplate gSpriteTemplate_85B7950 = +static const struct SpriteTemplate sSpriteTemplate_WheelCenter = { - .tileTag = 6, - .paletteTag = 2, - .oam = &gOamData_85B7940, + .tileTag = GFXTAG_WHEEL_CENTER, + .paletteTag = PALTAG_BALL, + .oam = &sOam_WheelCenter, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814399C + .callback = SpriteCB_WheelCenter }; -static const struct OamData gOamData_85B7968 = +static const struct OamData sOam_Shroomish = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2837,7 +3136,7 @@ static const struct OamData gOamData_85B7968 = .priority = 2, }; -static const struct OamData gOamData_85B7970 = +static const struct OamData sOam_Taillow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2846,14 +3145,14 @@ static const struct OamData gOamData_85B7970 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7978 = +static const struct CompressedSpriteSheet sSpriteSheet_ShroomishTaillow = { - .data = gUnknown_085B67FC, + .data = sShroomishTaillow_Gfx, .size = 0xE00, - .tag = 13 + .tag = GFXTAG_SHROOMISH_TAILLOW }; -static const union AnimCmd gSpriteAnim_85B7980[] = +static const union AnimCmd sAnim_Shroomish[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -2864,84 +3163,84 @@ static const union AnimCmd gSpriteAnim_85B7980[] = ANIMCMD_JUMP(2) }; -static const union AnimCmd gSpriteAnim_85B799C[] = +static const union AnimCmd sAnim_Taillow_WingDown_Left[] = { ANIMCMD_FRAME(80, 10), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79A4[] = +static const union AnimCmd sAnim_Taillow_WingDown_Right[] = { ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79AC[] = +static const union AnimCmd sAnim_Taillow_FlapSlow_Left[] = { ANIMCMD_FRAME(80, 20), ANIMCMD_FRAME(96, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79B8[] = +static const union AnimCmd sAnim_Taillow_FlapSlow_Right[] = { ANIMCMD_FRAME(80, 20, .hFlip = TRUE), ANIMCMD_FRAME(96, 20, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79C4[] = +static const union AnimCmd sAnim_Taillow_FlapFast_Left[] = { ANIMCMD_FRAME(80, 10), ANIMCMD_FRAME(96, 10), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79D0[] = +static const union AnimCmd sAnim_Taillow_FlapFast_Right[] = { ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_FRAME(96, 10, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = +static const union AnimCmd *const sAnims_Shroomish[] = { - gSpriteAnim_85B7980 + sAnim_Shroomish }; -static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = +static const union AnimCmd *const sAnims_Taillow[] = { - gSpriteAnim_85B799C, - gSpriteAnim_85B79A4, - gSpriteAnim_85B79AC, - gSpriteAnim_85B79B8, - gSpriteAnim_85B79C4, - gSpriteAnim_85B79D0 + sAnim_Taillow_WingDown_Left, // While gliding in + sAnim_Taillow_WingDown_Right, + sAnim_Taillow_FlapSlow_Left, // While carrying ball + sAnim_Taillow_FlapSlow_Right, + sAnim_Taillow_FlapFast_Left, // While flying off + sAnim_Taillow_FlapFast_Right }; -static const struct SpriteTemplate gSpriteTemplate_85B79F8 = +static const struct SpriteTemplate sSpriteTemplate_Shroomish = { - .tileTag = 13, - .paletteTag = 6, - .oam = &gOamData_85B7968, - .anims = gSpriteAnimTable_85B79DC, + .tileTag = GFXTAG_SHROOMISH_TAILLOW, + .paletteTag = PALTAG_SHROOMISH, + .oam = &sOam_Shroomish, + .anims = sAnims_Shroomish, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_85B7A10 = +static const struct SpriteTemplate sSpriteTemplate_Taillow = { - .tileTag = 13, - .paletteTag = 7, - .oam = &gOamData_85B7970, - .anims = gSpriteAnimTable_85B79E0, + .tileTag = GFXTAG_SHROOMISH_TAILLOW, + .paletteTag = PALTAG_TAILLOW, + .oam = &sOam_Taillow, + .anims = sAnims_Taillow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8145294 + .callback = SpriteCB_Taillow }; -static const struct OamData gOamData_85B7A28 = +static const struct OamData sOam_ShroomishBallShadow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2950,7 +3249,7 @@ static const struct OamData gOamData_85B7A28 = .priority = 2, }; -static const struct OamData gOamData_85B7A30 = +static const struct OamData sOam_ShroomishShadow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2959,7 +3258,7 @@ static const struct OamData gOamData_85B7A30 = .priority = 2, }; -static const struct OamData gOamData_85B7A38 = +static const struct OamData sOam_TaillowShadow = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, @@ -2968,21 +3267,21 @@ static const struct OamData gOamData_85B7A38 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7A40 = +static const struct CompressedSpriteSheet sSpriteSheet_Shadow = { - .data = gUnknown_085B7290, + .data = sShadow_Gfx, .size = 0x180, - .tag = 14 + .tag = GFXTAG_SHADOW }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = +static const union AffineAnimCmd sAffineAnim_Unused3[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 60), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = +static const union AffineAnimCmd sAffineAnim_TaillowShadow[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-2, 0x0, 0, 15), @@ -2991,99 +3290,101 @@ static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = +static const union AffineAnimCmd *const sAffineAnims_Unused3[] = { - gSpriteAffineAnim_85B7A48 + sAffineAnim_Unused3 }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = +static const union AffineAnimCmd *const sAffineAnims_TaillowShadow[] = { - gSpriteAffineAnim_85B7A60 + sAffineAnim_TaillowShadow }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = +static const union AffineAnimCmd sAffineAnim_Unused4[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = +static const union AffineAnimCmd *const sAffineAnims_Unused4[] = { - gSpriteAffineAnim_85B7A90 + sAffineAnim_Unused4 }; -static const union AnimCmd gSpriteAnim_85B7AA4[] = +static const union AnimCmd sAnim_ShroomishBallShadow[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B7AAC[] = +static const union AnimCmd sAnim_UnstickMonShadow[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = +static const union AnimCmd *const sAnims_ShroomishBallShadow[] = { - gSpriteAnim_85B7AA4 + sAnim_ShroomishBallShadow }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = +static const union AnimCmd *const sAnims_UnstickMonShadow[] = { - gSpriteAnim_85B7AAC + sAnim_UnstickMonShadow }; -static const struct SpriteTemplate gSpriteTemplate_85B7ABC[] = +static const struct SpriteTemplate sSpriteTemplate_ShroomishShadow[] = { + // Ball's shadow as it flies up { - .tileTag = 14, - .paletteTag = 1, - .oam = &gOamData_85B7A28, - .anims = gSpriteAnimTable_85B7AB4, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOam_ShroomishBallShadow, + .anims = sAnims_ShroomishBallShadow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }, + // Shroomish's Shadow { - .tileTag = 14, - .paletteTag = 1, - .oam = &gOamData_85B7A30, - .anims = gSpriteAnimTable_85B7AB8, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOam_ShroomishShadow, + .anims = sAnims_UnstickMonShadow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8144E60 + .callback = SpriteCB_Shroomish } }; -static const struct SpriteTemplate gUnknown_085B7AEC = +static const struct SpriteTemplate sSpriteTemplate_TaillowShadow = { - .tileTag = 14, - .paletteTag = 1, - .oam = &gOamData_85B7A38, - .anims = gSpriteAnimTable_85B7AB8, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOam_TaillowShadow, + .anims = sAnims_UnstickMonShadow, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_85B7A8C, - .callback = sub_8145294 + .affineAnims = sAffineAnims_TaillowShadow, + .callback = SpriteCB_Taillow }; -static void sub_81428C4(u8 r0) +static void Task_ShowMinBetYesNo(u8 taskId) { DisplayYesNoMenuDefaultYes(); - DoYesNoFuncWithChoice(r0, &gUnknown_085B6408); + DoYesNoFuncWithChoice(taskId, &sYesNoTable_AcceptMinBet); } -static void sub_81428E4(u8 taskId) +static void Task_FadeToRouletteGame(u8 taskId) { if (!gPaletteFade.active) { SetVBlankCallback(NULL); - SetMainCallback2(sub_81405CC); + SetMainCallback2(CB2_LoadRoulette); DestroyTask(taskId); } } -static void sub_8142918(u8 taskId) +static void Task_AcceptMinBet(u8 taskId) { ClearStdWindowAndFrame(0, TRUE); HideCoinsWindow(); @@ -3091,10 +3392,10 @@ static void sub_8142918(u8 taskId) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gPaletteFade.delayCounter = gPaletteFade.multipurpose2; UpdatePaletteFade(); - gTasks[taskId].func = sub_81428E4; + gTasks[taskId].func = Task_FadeToRouletteGame; } -static void sub_814297C(u8 taskId) +static void Task_DeclineMinBet(u8 taskId) { ClearStdWindowAndFrame(0, FALSE); HideCoinsWindow(); @@ -3102,10 +3403,10 @@ static void sub_814297C(u8 taskId) DestroyTask(taskId); } -static void sub_81429A0(u8 taskId) +static void Task_NotEnoughForMinBet(u8 taskId) { gTasks[taskId].data[0]++; - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { gSpecialVar_0x8004 = 1; HideCoinsWindow(); @@ -3115,52 +3416,56 @@ static void sub_81429A0(u8 taskId) } } -static void sub_81429F0(u8 taskId) +static void Task_PrintMinBet(u8 taskId) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { - u32 temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)]; - ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1); + u32 minBet = sTableMinBets[GET_MIN_BET_ID(gSpecialVar_0x8004)]; + ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81428C4; + gTasks[taskId].func = Task_ShowMinBetYesNo; } } -static void Task_Roulette_0(u8 taskId) +static void Task_PrintRouletteEntryMsg(u8 taskId) { - s32 temp; - PrintCoinsString(gTasks[taskId].data[13]); - temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)]; - ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1); - if (gTasks[taskId].data[13] >= temp) + s32 minBet; + PrintCoinsString(gTasks[taskId].tCoins); + minBet = sTableMinBets[GET_MIN_BET_ID(gSpecialVar_0x8004)]; + ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); + + if (gTasks[taskId].tCoins >= minBet) { - if ((gSpecialVar_0x8004 & 0x80) && (gSpecialVar_0x8004 & 1)) + if ((gSpecialVar_0x8004 & ROULETTE_SPECIAL_RATE) && (gSpecialVar_0x8004 & 1)) { + // Special rate for Game Corner service day (only at second table) DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, Roulette_Text_SpecialRateTable, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81429F0; + gTasks[taskId].func = Task_PrintMinBet; } else { + // Print minimum bet StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81428C4; + gTasks[taskId].func = Task_ShowMinBetYesNo; } } else { + // Not enough for minimum bet StringExpandPlaceholders(gStringVar4, Roulette_Text_NotEnoughCoins); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81429A0; - gTasks[taskId].data[13] = 0; + gTasks[taskId].func = Task_NotEnoughForMinBet; + gTasks[taskId].tCoins = 0; gTasks[taskId].data[0] = 0; } } @@ -3168,212 +3473,215 @@ static void Task_Roulette_0(u8 taskId) void PlayRoulette(void) { u8 taskId; - ScriptContext2_Enable(); ShowCoinsWindow(GetCoins(), 1, 1); - taskId = CreateTask(Task_Roulette_0, 0); - gTasks[taskId].data[13] = GetCoins(); + taskId = CreateTask(Task_PrintRouletteEntryMsg, 0); + gTasks[taskId].tCoins = GetCoins(); } -static void sub_8142C0C(u8 r0) +static void LoadOrFreeMiscSpritePalettesAndSheets(bool8 free) { - if (!r0) + if (!free) { FreeAllSpritePalettes(); - LoadSpritePalettes(gUnknown_085B7384); - LoadCompressedSpriteSheet(&gUnknown_085B7864); - LoadCompressedSpriteSheet(&gUnknown_085B7978); - LoadCompressedSpriteSheet(&gUnknown_085B7A40); + LoadSpritePalettes(sSpritePalettes); + LoadCompressedSpriteSheet(&sSpriteSheet_Ball); + LoadCompressedSpriteSheet(&sSpriteSheet_ShroomishTaillow); + LoadCompressedSpriteSheet(&sSpriteSheet_Shadow); } else { - FreeSpriteTilesByTag(14); - FreeSpriteTilesByTag(13); - FreeSpriteTilesByTag(12); + // Unused + FreeSpriteTilesByTag(GFXTAG_SHADOW); + FreeSpriteTilesByTag(GFXTAG_SHROOMISH_TAILLOW); + FreeSpriteTilesByTag(GFXTAG_BALL); FreeAllSpritePalettes(); } } -static u8 sub_8142C60(const struct SpriteTemplate *r0, u8 r1, u16 *r2) +static u8 CreateWheelIconSprite(const struct SpriteTemplate *template, u8 r1, u16 *angle) { u16 temp; - u8 spriteId = CreateSprite(r0, 116, 80, r0->oam->y); - gSprites[spriteId].data[0] = *r2; - gSprites[spriteId].data[1] = r1; + u8 spriteId = CreateSprite(template, 116, 80, template->oam->y); + gSprites[spriteId].data[0] = *angle; + gSprites[spriteId].data[1] = r1; gSprites[spriteId].coordOffsetEnabled = TRUE; - gSprites[spriteId].animPaused = TRUE; - gSprites[spriteId].affineAnimPaused = TRUE; - temp = *r2; - *r2 += 30; - if (*r2 >= 360) - *r2 = temp - 330; + gSprites[spriteId].animPaused = TRUE; + gSprites[spriteId].affineAnimPaused = TRUE; + temp = *angle; + *angle += DEGREES_PER_SLOT; + if (*angle >= 360) + *angle = temp - (360 - DEGREES_PER_SLOT); return spriteId; } -static void sub_8142CD0(void) +static void CreateGridSprites(void) { u8 i, j; u8 spriteId; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7488.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_Headers.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7488.size; - s.tag = gUnknown_085B7488.tag; + s.size = sSpriteSheet_Headers.size; + s.tag = sSpriteSheet_Headers.tag; LoadSpriteSheet(&s); - LZ77UnCompWram(gUnknown_085B7490.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_GridIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7490.size; - s.tag = gUnknown_085B7490.tag; + s.size = sSpriteSheet_GridIcons.size; + s.tag = sSpriteSheet_GridIcons.tag; LoadSpriteSheet(&s); - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_BOARD_COLORS; i++) { - u8 o = i * 24; - for (j = 0; j < 4; j++) + u8 y = i * 24; + for (j = 0; j < NUM_BOARD_POKES; j++) { - spriteId = gUnknown_0203AB88->var3C[(i * 4) + 29 + j] = CreateSprite(&gSpriteTemplate_85B75B0[j], (j * 24) + 148, o + 92, 30); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, y + 92, 30); gSprites[spriteId].animPaused = TRUE; - o += 24; - if (o >= 72) - o = 0; + y += 24; + if (y >= 72) + y = 0; } } - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_PokeHeaders); i++) { - spriteId = gUnknown_0203AB88->var3C[i + 41] = CreateSprite(&gSpriteTemplate_85B7508[i], (i * 24) + 148, 70, 30); + spriteId = sRoulette->spriteIds[i + SPR_POKE_HEADERS] = CreateSprite(&sSpriteTemplates_PokeHeaders[i], (i * 24) + 148, 70, 30); gSprites[spriteId].animPaused = TRUE; } - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_ColorHeaders); i++) { - spriteId = gUnknown_0203AB88->var3C[i + 45] = CreateSprite(&gSpriteTemplate_85B7568[i], 126, (i * 24) + 92, 30); + spriteId = sRoulette->spriteIds[i + SPR_COLOR_HEADERS] = CreateSprite(&sSpriteTemplates_ColorHeaders[i], 126, (i * 24) + 92, 30); gSprites[spriteId].animPaused = TRUE; } } -static void unref_sub_8142E3C(void) +// Unused +static void DestroyGridSprites(void) { u8 i; - for (i = 0; i < 12; i++) + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - DestroySprite(&gSprites[gUnknown_0203AB88->var3C[i + 29]]); + DestroySprite(&gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]]); } } -static void sub_8142E70(u8 r0, u8 r1) +static void ShowHideGridIcons(bool8 hideAll, u8 hideSquare) { u8 i; - switch (r0) + switch (hideAll) { - case 1: - for (i = 0; i < 19; i++) + case TRUE: + // Hide grid icons and headers + for (i = 0; i < NUM_GRID_SELECTIONS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = TRUE; } break; - case 0: - for (i = 0; i < 12; i++) + case FALSE: + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[i].var04)) - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; - else if (gUnknown_085B62E4[i].var02 != r1) - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE; + if (!(sRoulette->hitFlags & sRouletteSlots[i].flag)) + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; + else if (sRouletteSlots[i].gridSquare != hideSquare) + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = TRUE; else - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; } - for (; i < 19; i++) + // Always show grid headers + for (; i < NUM_GRID_SELECTIONS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; } break; } } -static void sub_8142F7C(void) +static void CreateGridBallSprites(void) { u8 i; - for (i = 0; i < 6; i++) - { - gUnknown_0203AB88->var3C[i + 49] = CreateSprite(&gSpriteTemplate_85B7928, 116, 20, 10); - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 49]].data[0] = 1; - gSprites[gUnknown_0203AB88->var3C[i + 49]].callback = sub_814390C; - gSprites[gUnknown_0203AB88->var3C[i + 49]].oam.priority = 1; - StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[i + 49]], 8); + for (i = 0; i < BALLS_PER_ROUND; i++) + { + sRoulette->spriteIds[i + SPR_GRID_BALLS] = CreateSprite(&sSpriteTemplate_Ball, 116, 20, 10); + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].data[0] = 1; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].callback = SpriteCB_GridSquare; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].oam.priority = 1; + StartSpriteAnim(&gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]], 8); } } -static void sub_8143038(u8 r0, u8 r1) +static void ShowHideGridBalls(bool8 hideAll, u8 hideBallId) { u8 i = 0; - if (r0) + if (hideAll) { - for ( ; i < 6; i++) + for (; i < BALLS_PER_ROUND; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; } } else { - for ( ; i < 6; i++) + for (; i < BALLS_PER_ROUND; i++) { - if (!gUnknown_0203AB88->var0C[i] || i == r1) + if (!sRoulette->hitSquares[i] || i == hideBallId) { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; } else { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.x = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var03 + 1) * 8 + 4; - gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.y = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var04 + 1) * 8 + 3; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; } } } } -static void sub_8143150(u8 r0) +static void ShowHideWinSlotCursor(u8 selectionId) { - if (!r0) + if (selectionId == 0) { - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; } else { - gSprites[gUnknown_0203AB88->var3C[48]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[48]].pos1.x = (gUnknown_085B6154[r0].var03 + 2) * 8; - gSprites[gUnknown_0203AB88->var3C[48]].pos1.y = (gUnknown_085B6154[r0].var04 + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = FALSE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.x = (sGridSelections[selectionId].x + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.y = (sGridSelections[selectionId].y + 2) * 8; } } -static void sub_81431E4(void) +static void CreateWheelIconSprites(void) { u8 i, j; - u16 k; + u16 angle; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B741C.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_WheelIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B741C.size; - s.tag = gUnknown_085B741C.tag; + s.size = sSpriteSheet_WheelIcons.size; + s.tag = sSpriteSheet_WheelIcons.tag; LoadSpriteSheet(&s); - k = 15; - for (i = 0; i < 3; i++) + angle = 15; + for (i = 0; i < NUM_BOARD_COLORS; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < NUM_BOARD_POKES; j++) { u8 spriteId; - spriteId = gUnknown_0203AB88->var3C[(i * 4) + 7 + j] = sub_8142C60(&gSpriteTemplate_85B7610[i * 4 + j], 40, &k); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_WHEEL_ICONS + j] = CreateWheelIconSprite(&sSpriteTemplates_WheelIcons[i * NUM_BOARD_POKES + j], 40, &angle); gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; } } } -static void sub_8143280(struct Sprite *sprite) +static void SpriteCB_WheelIcon(struct Sprite *sprite) { s16 cos; s16 sin; u32 matrixNum; - s16 angle = gUnknown_0203AB88->var24 + sprite->data[0]; + s16 angle = sRoulette->wheelAngle + sprite->data[0]; if (angle >= 360) angle -= 360; sin = Sin2(angle); @@ -3388,275 +3696,305 @@ static void sub_8143280(struct Sprite *sprite) gOamMatrices[matrixNum].c = -sin; } -static void sub_8143314(void) +static void CreateInterfaceSprites(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteSheets_Interface) - 1; i++) { struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7750[i].data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheets_Interface[i].data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7750[i].size; - s.tag = gUnknown_085B7750[i].tag; + s.size = sSpriteSheets_Interface[i].size; + s.tag = sSpriteSheets_Interface[i].tag; LoadSpriteSheet(&s); } - gUnknown_0203AB88->var3C[20] = CreateSprite(&gSpriteTemplate_85B77E4, 208, 16, 4); - gSprites[gUnknown_0203AB88->var3C[20]].animPaused = TRUE; - for (i = 0; i < 4; i++) + sRoulette->spriteIds[SPR_CREDIT] = CreateSprite(&sSpriteTemplate_Credit, 208, 16, 4); + gSprites[sRoulette->spriteIds[SPR_CREDIT]].animPaused = TRUE; + for (i = 0; i < MAX_COIN_DIGITS; i++) { - gUnknown_0203AB88->var3C[i + 21] = CreateSprite(&gUnknown_085B77FC, i * 8 + 196, 24, 0); - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 21]].animPaused = TRUE; + sRoulette->spriteIds[i + SPR_CREDIT_DIGITS] = CreateSprite(&sSpriteTemplate_CreditDigit, i * 8 + 196, 24, 0); + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].animPaused = TRUE; } - gUnknown_0203AB88->var3C[25] = CreateSprite(&gUnknown_085B7814, 120, 68, 4); - gSprites[gUnknown_0203AB88->var3C[25]].animPaused = TRUE; - for (i = 0; i < 3; i++) - { - gUnknown_0203AB88->var3C[i + 26] = CreateSprite(&gUnknown_085B782C, i * 16 + 192, 36, 4); - gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 26]].animPaused = TRUE; + sRoulette->spriteIds[SPR_MULTIPLIER] = CreateSprite(&sSpriteTemplate_Multiplier, 120, 68, 4); + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].animPaused = TRUE; + for (i = 0; i < BALLS_PER_ROUND / 2; i++) + { + // Each ball counter sprite has 2 balls + sRoulette->spriteIds[i + SPR_BALL_COUNTER] = CreateSprite(&sSpriteTemplate_BallCounter, i * 16 + 192, 36, 4); + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].animPaused = TRUE; } - gUnknown_0203AB88->var3C[48] = CreateSprite(&gUnknown_085B7844, 152, 96, 9); - gSprites[gUnknown_0203AB88->var3C[48]].oam.priority = 1; - gSprites[gUnknown_0203AB88->var3C[48]].animPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; + sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR] = CreateSprite(&sSpriteTemplate_Cursor, 152, 96, 9); + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].oam.priority = 1; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].animPaused = TRUE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; } -static void sub_8143514(u16 r0) +static void SetCreditDigits(u16 num) { u8 i; u16 d = 1000; - bool8 v = FALSE; - for (i = 0; i < 4; i++) + bool8 printZero = FALSE; + for (i = 0; i < MAX_COIN_DIGITS; i++) { - u8 t = r0 / d; - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE; - if (t > 0 || v || i == 3) + u8 digit = num / d; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = TRUE; + if (digit > 0 || printZero || i == MAX_COIN_DIGITS - 1) { - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 21]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 21]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 21]].anims + t)->type; - v = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].anims + digit)->type; + printZero = TRUE; } - r0 = r0 % d; + num = num % d; d = d / 10; } } -static u8 sub_8143614(u8 r0) +// Identical to GetMultiplier but with different data array +static u8 GetMultiplierAnimId(u8 selectionId) { - u8 t[5] = {0, 1, 2, 3, 4}; + u8 animIds[5] = {0, 1, 2, 3, 4}; - if (r0 >= 20) - r0 = 0; - switch (gUnknown_085B6154[r0].var01_0) + if (selectionId > NUM_GRID_SELECTIONS) + selectionId = 0; + + switch (sGridSelections[selectionId].baseMultiplier) { - case 3: - r0 = r0 / 5 - 1; - if (gUnknown_0203AB88->var16[r0] > 3) + case NUM_BOARD_COLORS: + selectionId = GET_ROW_IDX(selectionId); + if (sRoulette->colorHits[selectionId] > 3) return 0; - return t[gUnknown_0203AB88->var16[r0] + 1]; - case 4: - r0--; - if (gUnknown_0203AB88->var12[r0] > 2) + return animIds[sRoulette->colorHits[selectionId] + 1]; + case NUM_BOARD_POKES: + selectionId = GET_COL_IDX(selectionId); + if (sRoulette->pokeHits[selectionId] > 2) return 0; - return t[gUnknown_0203AB88->var12[r0] + 2]; - case 12: - if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08) + return animIds[sRoulette->pokeHits[selectionId] + 2]; + case NUM_ROULETTE_SLOTS: + if (sRoulette->hitFlags & sGridSelections[selectionId].flag) return 0; - return t[4]; + return animIds[4]; } return 0; } -static void sub_81436D0(u8 r0) +static void SetMultiplierSprite(u8 selectionId) { - struct Sprite *s = &gSprites[gUnknown_0203AB88->var3C[25]]; - s->animCmdIndex = sub_8143614(r0); - s->oam.tileNum = s->sheetTileStart + (*s->anims + s->animCmdIndex)->type; + struct Sprite *sprite = &gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]]; + sprite->animCmdIndex = GetMultiplierAnimId(selectionId); + sprite->oam.tileNum = sprite->sheetTileStart + (*sprite->anims + sprite->animCmdIndex)->type; } -static void sub_814372C(u8 r0) +static void SetBallCounterNumLeft(u8 numBalls) { u8 i; u8 t = 0; - if (gUnknown_0203AB88->var19 == 1) + if (sRoulette->minBet == 1) t = 2; - switch (r0) + switch (numBalls) { case 6: - for (i = 0; i < 3; i++) + for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].anims)->type; } break; case 5: - gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].anims + t + 1)->type; break; case 4: - gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].anims + t + 2)->type; break; case 3: - gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].anims + t + 1)->type; break; case 2: - gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].anims + t + 2)->type; break; case 1: - gSprites[gUnknown_0203AB88->var3C[26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[26]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].anims + t + 1)->type; break; case 0: default: - for (i = 0; i < 3; i++) + for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].anims + t + 2)->type; } } } -static void sub_814390C(struct Sprite *sprite) +static void SpriteCB_GridSquare(struct Sprite *sprite) { - sprite->pos2.x = gUnknown_0203AB88->var26; + sprite->pos2.x = sRoulette->gridX; } -static void sub_814391C(void) +static void CreateWheelCenterSprite(void) { u8 spriteId; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7948.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_WheelCenter.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7948.size; - s.tag = gUnknown_085B7948.tag; + s.size = sSpriteSheet_WheelCenter.size; + s.tag = sSpriteSheet_WheelCenter.tag; LoadSpriteSheet(&s); - spriteId = CreateSprite(&gSpriteTemplate_85B7950, 116, 80, 81); - gSprites[spriteId].data[0] = gUnknown_0203AB88->var24; + // This sprite id isn't saved because it doesn't need to be referenced again + // but by virtue of creation order it's SPR_WHEEL_CENTER + spriteId = CreateSprite(&sSpriteTemplate_WheelCenter, 116, 80, 81); + gSprites[spriteId].data[0] = sRoulette->wheelAngle; gSprites[spriteId].data[1] = 0; gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; gSprites[spriteId].coordOffsetEnabled = TRUE; } -static void sub_814399C(struct Sprite *sprite) +static void SpriteCB_WheelCenter(struct Sprite *sprite) { - u32 t = sprite->oam.matrixNum; - struct OamMatrix *m = &gOamMatrices[0]; - m[t].d = gUnknown_0203AB88->var2C.a; - m[t].a = gUnknown_0203AB88->var2C.a; - m[t].b = gUnknown_0203AB88->var2C.b; - m[t].c = gUnknown_0203AB88->var2C.c; + u32 matrixNum = sprite->oam.matrixNum; + struct OamMatrix *matrix = &gOamMatrices[0]; + matrix[matrixNum].d = sRoulette->wheelRotation.a; + matrix[matrixNum].a = sRoulette->wheelRotation.a; + matrix[matrixNum].b = sRoulette->wheelRotation.b; + matrix[matrixNum].c = sRoulette->wheelRotation.c; } -static void sub_81439C8(void) +static void CreateWheelBallSprites(void) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < BALLS_PER_ROUND; i++) { - gUnknown_0203AB88->var3C[i] = CreateSprite(&gSpriteTemplate_85B7928, 116, 80, 57 - i); - if (gUnknown_0203AB88->var3C[i] != MAX_SPRITES) + sRoulette->spriteIds[i] = CreateSprite(&sSpriteTemplate_Ball, 116, 80, 57 - i); + if (sRoulette->spriteIds[i] != MAX_SPRITES) { - gSprites[gUnknown_0203AB88->var3C[i]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i]].coordOffsetEnabled = TRUE; + gSprites[sRoulette->spriteIds[i]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i]].coordOffsetEnabled = TRUE; } } } -static void sub_8143A40(void) +static void HideWheelBalls(void) { - u8 t = gUnknown_0203AB88->var3C[0]; + u8 spriteId = sRoulette->spriteIds[SPR_WHEEL_BALLS]; u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < BALLS_PER_ROUND; i++) { u8 j; - gSprites[t].invisible = TRUE; - gSprites[t].callback = &SpriteCallbackDummy; - StartSpriteAnim(&gSprites[t], 0); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].callback = &SpriteCallbackDummy; + StartSpriteAnim(&gSprites[spriteId], 0); for (j = 0; j < 8; j++) - { - gSprites[t].data[j] = 0; - } - t++; + gSprites[spriteId].data[j] = 0; + + spriteId++; } } -static s16 sub_8143AC8(struct Sprite *sprite) +// Sprite data for the roulette ball +#define sStuckOnWheelLeft data[0] // if true, ball got stuck in left half of wheel, else got stuck in right half +#define sState data[1] +#define sSlotMidpointDist data[2] +#define sBallAngle data[3] +#define sBallDistToCenter data[4] +#define sBallWheelAngle data[6] + +#define LandBall() \ +{ \ + sRoulette->ballState = BALL_STATE_LANDED; \ + sRoulette->ballRolling = FALSE; \ + StartSpriteAnim(sprite, sprite->animCmdIndex + 3); \ + UpdateSlotBelowBall(sprite); \ + sprite->sBallDistToCenter = 30; \ + UpdateBallRelativeWheelAngle(sprite); \ + sprite->sBallWheelAngle = (sprite->sBallWheelAngle / DEGREES_PER_SLOT) * DEGREES_PER_SLOT + 15; \ + sprite->callback = SpriteCB_BallLandInSlot; \ + m4aSongNumStartOrChange(SE_BRIDGE_WALK); \ +} + +// "wheelAngle" and "sBallAngle" are relative to the screen (e.g. 180 degrees for either is always screen bottom) +// "sBallWheelAngle" is the ball's angle relative to the wheel +// e.g. if the ball is screen right (90), but wheel is upside down (180), sBallWheelAngle is 270 (because the ball is wheel left) +static s16 UpdateBallRelativeWheelAngle(struct Sprite *sprite) { - if (gUnknown_0203AB88->var24 > sprite->data[3]) + if (sRoulette->wheelAngle > sprite->sBallAngle) { - sprite->data[6] = 360 - gUnknown_0203AB88->var24 + sprite->data[3]; - if (sprite->data[6] >= 360) - sprite->data[6] -= 360; + sprite->sBallWheelAngle = 360 - sRoulette->wheelAngle + sprite->sBallAngle; + if (sprite->sBallWheelAngle >= 360) + sprite->sBallWheelAngle -= 360; } else { - sprite->data[6] = sprite->data[3] - gUnknown_0203AB88->var24; + sprite->sBallWheelAngle = sprite->sBallAngle - sRoulette->wheelAngle; } - return sprite->data[6]; + return sprite->sBallWheelAngle; } -static u8 sub_8143B14(struct Sprite *sprite) +static u8 UpdateSlotBelowBall(struct Sprite *sprite) { - gUnknown_0203AB88->var7E = sub_8143AC8(sprite) / 30.0f; - return gUnknown_0203AB88->var7E; + sRoulette->hitSlot = UpdateBallRelativeWheelAngle(sprite) / (float) DEGREES_PER_SLOT; + return sRoulette->hitSlot; } -static s16 sub_8143B48(struct Sprite *sprite) +static s16 GetBallDistanceToSlotMidpoint(struct Sprite *sprite) { - s16 t = sub_8143AC8(sprite) % 30; - u16 z; - if (t == 14) + s16 angleIntoSlot = UpdateBallRelativeWheelAngle(sprite) % DEGREES_PER_SLOT; + u16 distanceToMidpoint; + if (angleIntoSlot == SLOT_MIDPOINT) { - z = 0; - return sprite->data[2] = z; + // Ball is at midpoint, ok to drop into slot + distanceToMidpoint = 0; + return sprite->sSlotMidpointDist = distanceToMidpoint; } - else if (t > 13) + else if (angleIntoSlot >= SLOT_MIDPOINT) { - z = 43 - t; - return sprite->data[2] = z; + // Ball has passed midpoint, travel to midpoint of next slot + distanceToMidpoint = (DEGREES_PER_SLOT - 1) + SLOT_MIDPOINT - angleIntoSlot; + return sprite->sSlotMidpointDist = distanceToMidpoint; } else { - z = 14 - t; - return sprite->data[2] = z; + // Ball hasn't reached midpoint of this slot yet + distanceToMidpoint = SLOT_MIDPOINT - angleIntoSlot; + return sprite->sSlotMidpointDist = distanceToMidpoint; } } -static void sub_8143B84(struct Sprite *sprite) +static void UpdateBallPos(struct Sprite *sprite) { s16 sin, cos; - - gUnknown_0203AB88->var8C += gUnknown_0203AB88->var90; - gUnknown_0203AB88->var88 += gUnknown_0203AB88->var8C; - - if (gUnknown_0203AB88->var88 >= 360) - gUnknown_0203AB88->var88 -= 360.0f; - else if (gUnknown_0203AB88->var88 < 0.0f) - gUnknown_0203AB88->var88 += 360.0f; - - sprite->data[3] = gUnknown_0203AB88->var88; - gUnknown_0203AB88->var98 += gUnknown_0203AB88->var9C; - gUnknown_0203AB88->var94 += gUnknown_0203AB88->var98; - sprite->data[4] = gUnknown_0203AB88->var94; - sin = Sin2(sprite->data[3]); - cos = Cos2(sprite->data[3]); - sprite->pos2.x = sin * sprite->data[4] >> 12; - sprite->pos2.y = -cos * sprite->data[4] >> 12; + sRoulette->ballAngleSpeed += sRoulette->ballAngleAccel; + sRoulette->ballAngle += sRoulette->ballAngleSpeed; + + if (sRoulette->ballAngle >= 360) + sRoulette->ballAngle -= 360.0f; + else if (sRoulette->ballAngle < 0.0f) + sRoulette->ballAngle += 360.0f; + + sprite->sBallAngle = sRoulette->ballAngle; + sRoulette->ballFallSpeed += sRoulette->ballFallAccel; + sRoulette->ballDistToCenter += sRoulette->ballFallSpeed; + sprite->sBallDistToCenter = sRoulette->ballDistToCenter; + sin = Sin2(sprite->sBallAngle); + cos = Cos2(sprite->sBallAngle); + sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; + sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; if (IsSEPlaying()) { m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, sprite->pos2.x); @@ -3664,80 +4002,65 @@ static void sub_8143B84(struct Sprite *sprite) } } -static void sub_8143C90(struct Sprite *sprite) +// Snap to the bottom of the slot and continue to spin with the wheel +static void SpriteCB_BallLandInSlot(struct Sprite *sprite) { s16 sin, cos; - sprite->data[3] = gUnknown_0203AB88->var24 + sprite->data[6]; - if (sprite->data[3] >= 360) - sprite->data[3] -= 360; - sin = Sin2(sprite->data[3]); - cos = Cos2(sprite->data[3]); - sprite->pos2.x = sin * sprite->data[4] >> 12; - sprite->pos2.y = -cos * sprite->data[4] >> 12; + sprite->sBallAngle = sRoulette->wheelAngle + sprite->sBallWheelAngle; + if (sprite->sBallAngle >= 360) + sprite->sBallAngle -= 360; + sin = Sin2(sprite->sBallAngle); + cos = Cos2(sprite->sBallAngle); + sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; + sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; sprite->pos2.y += gSpriteCoordOffsetY; } -static void sub_8143CFC(struct Sprite *sprite) +static void SpriteCB_UnstickBall_ShroomishBallFall(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->data[2]++; - if (sprite->data[4] < -132 || sprite->data[4] > 80) + if (sprite->sBallDistToCenter < -132 || sprite->sBallDistToCenter > 80) sprite->invisible = TRUE; else sprite->invisible = FALSE; - if (sprite->data[2] >= 30) + if (sprite->data[2] >= DEGREES_PER_SLOT) { - if (!sprite->data[0]) + if (!sprite->sStuckOnWheelLeft) { - if (gUnknown_0203AB88->var94 <= gUnknown_0203AB88->varA0 - 2.0f) + if (sRoulette->ballDistToCenter <= sRoulette->varA0 - 2.0f) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; - StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = -1.0f; + LandBall() + sRoulette->ballFallAccel = sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = -1.0f; } } else { - if (gUnknown_0203AB88->var94 >= gUnknown_0203AB88->varA0 - 2.0f) + if (sRoulette->ballDistToCenter >= sRoulette->varA0 - 2.0f) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = -1.0f; + LandBall() + sRoulette->ballFallAccel = sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = -1.0f; } } } } -static void sub_8143E14(struct Sprite *sprite) +static void SpriteCB_UnstickBall_Shroomish(struct Sprite *sprite) { - float f0, f1, f2; - sub_8143B84(sprite); + float slotOffset, ballFallDist, ballFallSpeed; + UpdateBallPos(sprite); - switch (sprite->data[3]) + switch (sprite->sBallAngle) { case 0: - if (sprite->data[0] != 1) + if (sprite->sStuckOnWheelLeft != TRUE) { - f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1)); - f2 = (f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C); + slotOffset = sprite->data[7]; + ballFallDist = (slotOffset * sRouletteTables[sRoulette->tableId].randDistanceHigh + (sRouletteTables[sRoulette->tableId].randDistanceLow - 1)); + ballFallSpeed = (slotOffset / sRouletteTables[sRoulette->tableId].shroomish.fallSlowdown); } else { @@ -3745,11 +4068,11 @@ static void sub_8143E14(struct Sprite *sprite) } break; case 180: - if (sprite->data[0] != 0) + if (sprite->sStuckOnWheelLeft) { - f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1)); - f2 = -(f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C); + slotOffset = sprite->data[7]; + ballFallDist = (slotOffset * sRouletteTables[sRoulette->tableId].randDistanceHigh + (sRouletteTables[sRoulette->tableId].randDistanceLow - 1)); + ballFallSpeed = -(slotOffset / sRouletteTables[sRoulette->tableId].shroomish.fallSlowdown); } else { @@ -3759,45 +4082,37 @@ static void sub_8143E14(struct Sprite *sprite) default: return; } - gUnknown_0203AB88->varA0 = gUnknown_0203AB88->var94; - gUnknown_0203AB88->var98 = f2; - gUnknown_0203AB88->var9C = -((f2 * 2.0f) / f1 + (2.0f / (f1 * f1))); - gUnknown_0203AB88->var8C = 0.0f; + sRoulette->varA0 = sRoulette->ballDistToCenter; + sRoulette->ballFallSpeed = ballFallSpeed; + sRoulette->ballFallAccel = -((ballFallSpeed * 2.0f) / ballFallDist + (2.0f / (ballFallDist * ballFallDist))); + sRoulette->ballAngleSpeed = 0.0f; sprite->animPaused = FALSE; sprite->animNum = 0; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->callback = sub_8143CFC; + sprite->callback = SpriteCB_UnstickBall_ShroomishBallFall; sprite->data[2] = 0; } -static void sub_8143FA4(struct Sprite *sprite) +static void SpriteCB_UnstickBall_TaillowDrop(struct Sprite *sprite) { sprite->pos2.y = (s16)(sprite->data[2] * 0.05f * sprite->data[2]) - 45; sprite->data[2]++; - if (sprite->data[2] > 29 && sprite->pos2.y >= 0) - { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var03_6 = TRUE; + if (sprite->data[2] >= DEGREES_PER_SLOT && sprite->pos2.y >= 0) + { + LandBall() + sRoulette->ballUnstuck = TRUE; } } -static void sub_8144050(struct Sprite *sprite) +static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite) { if (sprite->data[2]++ < 45) { sprite->pos2.y--; if (sprite->data[2] == 45) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) sprite->pos2.y++; } } @@ -3805,9 +4120,9 @@ static void sub_8144050(struct Sprite *sprite) { if (sprite->data[2] < sprite->data[7]) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animDelayCounter == 0) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animDelayCounter == 0) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) sprite->pos2.y++; else sprite->pos2.y--; @@ -3820,315 +4135,318 @@ static void sub_8144050(struct Sprite *sprite) sprite->animBeginning = TRUE; sprite->animEnded = FALSE; sprite->data[2] = 0; - sprite->callback = sub_8143FA4; - m4aSongNumStart(SE_NAGERU); + sprite->callback = SpriteCB_UnstickBall_TaillowDrop; + m4aSongNumStart(SE_BALL_THROW); } } } -static void sub_8144128(struct Sprite *sprite) +static void SpriteCB_UnstickBall_Taillow(struct Sprite *sprite) { - sub_8143B84(sprite); - switch (sprite->data[3]) + UpdateBallPos(sprite); + + switch (sprite->sBallAngle) { case 90: - if (sprite->data[0] != 1) + if (sprite->sStuckOnWheelLeft != TRUE) { - sprite->callback = &sub_8144050; + sprite->callback = &SpriteCB_UnstickBall_TaillowPickUp; sprite->data[2] = 0; } break; case 270: - if (sprite->data[0] != 0) + if (sprite->sStuckOnWheelLeft) { - sprite->callback = &sub_8144050; + sprite->callback = &SpriteCB_UnstickBall_TaillowPickUp; sprite->data[2] = 0; } break; } } -static void sub_8144168(struct Sprite *sprite) +// The below SpriteCB_UnstickBall_* callbacks handle the ball while its being cleared by Shroomish/Taillow +// For what Shroomish/Taillow do during this sequence, see SpriteCB_Shroomish / SpriteCB_Taillow +static void SpriteCB_UnstickBall(struct Sprite *sprite) { - sub_8143B84(sprite); - switch (gUnknown_0203AB88->var03_0) + UpdateBallPos(sprite); + switch (sRoulette->useTaillow) { default: - case 0: - sub_81446DC(sprite); - sprite->callback = sub_8143E14; + case FALSE: + CreateShroomishSprite(sprite); + sprite->callback = SpriteCB_UnstickBall_Shroomish; break; - case 1: - sub_81448B8(sprite); - sprite->callback = sub_8144128; + case TRUE: + CreateTaillowSprite(sprite); + sprite->callback = SpriteCB_UnstickBall_Taillow; break; } } -static void prev_quest_read_x24_hm_usage(struct Sprite *sprite) +#define sStillStuck data[0] + +static void SpriteCB_RollBall_TryLandAdjacent(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); + if (sprite->data[2]-- == 16) - gUnknown_0203AB88->var98 *= -1.0f; + sRoulette->ballFallSpeed *= -1.0f; + if (sprite->data[2] == 0) { - if (!sprite->data[0]) + if (!sprite->sStillStuck) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); + // Ball can successfully fall into adjacent space + LandBall() } else { + // Ball is stuck, need Shroomish/Taillow to clear ball sprite->animPaused = TRUE; - m4aSongNumStart(SE_KON); - sub_8144A24(sprite); + m4aSongNumStart(SE_BALL_BOUNCE_1); + SetBallStuck(sprite); } } } -static void sub_8144264(struct Sprite *sprite) +static void SpriteCB_RollBall_TryLand(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->data[2] = 0; - sub_8143B14(sprite); - if (!(gUnknown_085B62E4[gUnknown_0203AB88->var7E].var04 & gUnknown_0203AB88->var08)) - { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); + UpdateSlotBelowBall(sprite); + if (!(sRouletteSlots[sRoulette->hitSlot].flag & sRoulette->hitFlags)) + { + // Space is empty, land successfully + LandBall() } else { - u8 t; - u32 z; - m4aSongNumStart(SE_KON); - z = Random() & 1; - if (z) + // Space has already been landed on, try to fall into adjacent space + u8 slotId; + u32 fallRight; + m4aSongNumStart(SE_BALL_BOUNCE_1); + fallRight = Random() & 1; + if (fallRight) { - gUnknown_0203AB88->var8C = 0.0f; - gUnknown_0203AB88->var7F = t = (gUnknown_0203AB88->var7E + 1) % 12; + sRoulette->ballAngleSpeed = 0.0f; + sRoulette->stuckHitSlot = slotId = (sRoulette->hitSlot + 1) % NUM_ROULETTE_SLOTS; } - else + else // fall left { float temp; - gUnknown_0203AB88->var8C = (temp = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C) * 2.0f; - t = (gUnknown_0203AB88->var7E + 11) % 12; - gUnknown_0203AB88->var7F = gUnknown_0203AB88->var7E; + sRoulette->ballAngleSpeed = (temp = sRouletteTables[sRoulette->tableId].var1C) * 2.0f; + slotId = (sRoulette->hitSlot + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; + sRoulette->stuckHitSlot = sRoulette->hitSlot; } - if (gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08) + if (sRouletteSlots[slotId].flag & sRoulette->hitFlags) { - sprite->data[0] = 1; - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; + // Attempted adjacent space has also been landed on + sprite->sStillStuck = TRUE; + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceLow; } else { - sprite->data[0] = gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08; - if (gUnknown_0203AB88->var04_0) + sprite->sStillStuck = FALSE; + if (sRoulette->tableId) { - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01; + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceHigh; } else { - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; - if (z) - { - gUnknown_0203AB88->var8C = 0.5f; - } + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceLow; + if (fallRight) + sRoulette->ballAngleSpeed = 0.5f; else - { - gUnknown_0203AB88->var8C = -1.5f; - } + sRoulette->ballAngleSpeed = -1.5f; } } - gUnknown_0203AB88->var98 = 0.085f; - sprite->callback = prev_quest_read_x24_hm_usage; - sprite->data[1] = 5; + sRoulette->ballFallSpeed = 0.085f; + sprite->callback = SpriteCB_RollBall_TryLandAdjacent; + sprite->sState = 5; } } -static void sub_8144410(struct Sprite *sprite) +#undef sStillStuck + +static void SpriteCB_RollBall_Slow(struct Sprite *sprite) { - sub_8143B84(sprite); - if (gUnknown_0203AB88->var8C > 0.5f) + UpdateBallPos(sprite); + if (sRoulette->ballAngleSpeed > 0.5f) return; - sub_8143B14(sprite); - if (!sub_8143B48(sprite)) + UpdateSlotBelowBall(sprite); + if (GetBallDistanceToSlotMidpoint(sprite) == 0) { - gUnknown_0203AB88->var90 = 0.0f; - gUnknown_0203AB88->var8C -= (float)(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03) - / (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04 + 1); - sprite->data[1] = 4; - sprite->callback = sub_8144264; + // Reached slot to land in + sRoulette->ballAngleAccel = 0.0f; + sRoulette->ballAngleSpeed -= (float)(sRouletteTables[sRoulette->tableId].wheelSpeed) + / (sRouletteTables[sRoulette->tableId].wheelDelay + 1); + sprite->sState = 4; + sprite->callback = SpriteCB_RollBall_TryLand; } else { - if (gUnknown_0203AB88->var90 != 0.0f) + if (sRoulette->ballAngleAccel != 0.0f) { - if (gUnknown_0203AB88->var8C < 0.0f) + if (sRoulette->ballAngleSpeed < 0.0f) { - gUnknown_0203AB88->var90 = 0.0f; - gUnknown_0203AB88->var8C = 0.0f; - gUnknown_0203AB88->var98 /= 1.2; + sRoulette->ballAngleAccel = 0.0f; + sRoulette->ballAngleSpeed = 0.0f; + sRoulette->ballFallSpeed /= 1.2; } } } } -static void sub_8144514(struct Sprite *sprite) +static void SpriteCB_RollBall_Medium(struct Sprite *sprite) { - sub_8143B84(sprite); - if (gUnknown_0203AB88->var94 > 40.f) + UpdateBallPos(sprite); + if (sRoulette->ballDistToCenter > 40.0f) return; - gUnknown_0203AB88->var98 = -(4.0f / (float)(gUnknown_0203AB88->var86)); - gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / (float)(gUnknown_0203AB88->var86)); + sRoulette->ballFallSpeed = -(4.0f / (float)(sRoulette->ballTravelDistSlow)); + sRoulette->ballAngleAccel = -(sRoulette->ballAngleSpeed / (float)(sRoulette->ballTravelDistSlow)); sprite->animNum = 2; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->data[1] = 3; - sprite->callback = sub_8144410; + sprite->sState = 3; + sprite->callback = SpriteCB_RollBall_Slow; } -static void sub_81445D8(struct Sprite *sprite) +static void SpriteCB_RollBall_Fast(struct Sprite *sprite) { - sub_8143B84(sprite); - if (gUnknown_0203AB88->var94 > 60.0f) + UpdateBallPos(sprite); + if (sRoulette->ballDistToCenter > 60.0f) return; - m4aSongNumStartOrChange(SE_TAMAKORO_E); - gUnknown_0203AB88->var98 = -(20.0f / (float)(gUnknown_0203AB88->var84)); - gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / (float)(gUnknown_0203AB88->var84)); + m4aSongNumStartOrChange(SE_ROULETTE_BALL2); + sRoulette->ballFallSpeed = -(20.0f / (float)(sRoulette->ballTravelDistMed)); + sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (float)(sRoulette->ballTravelDistMed)); sprite->animNum = 1; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->data[1] = 2; - sprite->callback = sub_8144514; + sprite->sState = 2; + sprite->callback = SpriteCB_RollBall_Medium; } -static void sub_81446AC(struct Sprite *sprite) +static void SpriteCB_RollBall_Start(struct Sprite *sprite) { - sprite->data[1] = 1; + sprite->sState = 1; sprite->data[2] = 0; - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->invisible = FALSE; - sprite->callback = sub_81445D8; + sprite->callback = SpriteCB_RollBall_Fast; } -static void sub_81446DC(struct Sprite *sprite) +// Sprite data for Shroomish / its shadows +#define sMonSpriteId data[4] +#define sBallShadowSpriteId data[5] +#define sMonShadowSpriteId data[6] + +static void CreateShroomishSprite(struct Sprite *ball) { u16 t; u8 i; - s16 s[2][2] = { + s16 coords[2][2] = { {116, 44}, {116, 112} }; - struct Roulette *p; - - t = sprite->data[7] - 2; - p = gUnknown_0203AB88; // why??? - gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B79F8, 36, -12, 50); - gUnknown_0203AB88->var3C[56] = CreateSprite(&gSpriteTemplate_85B7ABC[0], s[sprite->data[0]][0], s[sprite->data[0]][1], 59); - gUnknown_0203AB88->var3C[57] = CreateSprite(&gSpriteTemplate_85B7ABC[1], 36, 140, 51); - gSprites[gUnknown_0203AB88->var3C[57]].oam.objMode = ST_OAM_OBJ_BLEND; + struct Roulette *roulette; + + t = ball->data[7] - 2; + roulette = sRoulette; // Unnecessary, needed to match + sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Shroomish, 36, -12, 50); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_ShroomishShadow[0], coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 59); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2] = CreateSprite(&sSpriteTemplate_ShroomishShadow[1], 36, 140, 51); + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]].oam.objMode = ST_OAM_OBJ_BLEND; for (i = 0; i < 3; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 55]].coordOffsetEnabled = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].animPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].affineAnimPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[4] = gUnknown_0203AB88->var3C[55]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[5] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[6] = gUnknown_0203AB88->var3C[57]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[2] = t; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[3] = (sprite->data[7] * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) + - (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 + 0xFFFF); + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].coordOffsetEnabled = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].animPaused = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].affineAnimPaused = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sMonSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sBallShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sMonShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[2] = t; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (ball->data[7] * sRouletteTables[sRoulette->tableId].randDistanceHigh) + + (sRouletteTables[sRoulette->tableId].randDistanceLow + 0xFFFF); } - gSprites[gUnknown_0203AB88->var3C[56]].coordOffsetEnabled = TRUE; - gUnknown_0203AB88->var38 = sprite; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].coordOffsetEnabled = TRUE; + sRoulette->ball = ball; } -static void sub_81448B8(struct Sprite *sprite) +static void CreateTaillowSprite(struct Sprite *ball) { u8 i = 0; s16 t; - s16 s[2][2] = { - {256, 84}, - {-16, 84} + s16 coords[2][2] = { + {256, 84}, // Right approach + {-16, 84} // Left approach }; - t = sprite->data[7] - 2; - gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B7A10, s[sprite->data[0]][0], s[sprite->data[0]][1], 50); - StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[55]], sprite->data[0]); - gUnknown_0203AB88->var3C[56] = CreateSprite(&gUnknown_085B7AEC, s[sprite->data[0]][0], s[sprite->data[0]][1], 51); - gSprites[gUnknown_0203AB88->var3C[56]].affineAnimPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[56]].animPaused = TRUE; - sprite->data[7] = (t * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var10 + 45); + t = ball->data[7] - 2; + sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Taillow, coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 50); + StartSpriteAnim(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]], ball->sStuckOnWheelLeft); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_TaillowShadow, coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 51); + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].affineAnimPaused = TRUE; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].animPaused = TRUE; + ball->data[7] = (t * sRouletteTables[sRoulette->tableId].randDistanceHigh) + (sRouletteTables[sRoulette->tableId].taillow.baseDropDelay + 45); for (; i < 2; i++) { - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[4] = gUnknown_0203AB88->var3C[55]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[5] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[6] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[2] = t; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[3] = sprite->data[7] - 45; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sMonSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sBallShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sMonShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[2] = t; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[3] = ball->data[7] - 45; } - gUnknown_0203AB88->var38 = sprite; + sRoulette->ball = ball; } -static void sub_8144A24(struct Sprite *sprite) +static void SetBallStuck(struct Sprite *sprite) { - u8 z; - u16 o; - u8 h = 0; - u8 j = 5; - u8 p = 0; + u8 slotId; + u16 angle; + u8 numCandidates = 0; + u8 maxSlotToCheck = 5; + u8 betSlotId = 0; u8 i = 0; - u8 val; - u8 s[10] = {}; + u8 slotsToSkip; + u8 slotCandidates[NUM_ROULETTE_SLOTS - 2] = {}; // - 2 because we know at least 2 are already occupied u16 rand = Random(); - gUnknown_0203AB88->var7D = 1; - gUnknown_0203AB88->var03_5 = TRUE; - gUnknown_0203AB88->var03_6 = FALSE; - gUnknown_0203AB88->var7E = 0xFF; - gUnknown_0203AB88->var88 = sprite->data[3]; - gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C; + sRoulette->ballState = BALL_STATE_STUCK; + sRoulette->ballStuck = TRUE; + sRoulette->ballUnstuck = FALSE; + sRoulette->hitSlot = 0xFF; + sRoulette->ballAngle = sprite->sBallAngle; + sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = sRouletteTables[sRoulette->tableId].var1C; + + angle = (sRoulette->tableId * DEGREES_PER_SLOT + 33) + (1 - sRoulette->useTaillow) * 15; - o = (gUnknown_0203AB88->var04_0 * 30 + 33) + (0x1 - gUnknown_0203AB88->var03_0) * 15; + // Determine which quadrant the ball got stuck in + // Use either Shroomish or Taillow to clear the ball depending on where it's stuck for (i = 0; i < 4; i++) { - if (o < sprite->data[3] && sprite->data[3] <= o + 90) + if (angle < sprite->sBallAngle && sprite->sBallAngle <= angle + 90) { - sprite->data[0] = i / 2; - gUnknown_0203AB88->var03_0 = i % 2; + sprite->sStuckOnWheelLeft = i / 2; + sRoulette->useTaillow = i % 2; break; } if (i == 3) { - sprite->data[0] = 1; - gUnknown_0203AB88->var03_0 = 1; + sprite->sStuckOnWheelLeft = TRUE; + sRoulette->useTaillow = TRUE; break; } - o += 90; + angle += 90; } - if (gUnknown_0203AB88->var03_0) + if (sRoulette->useTaillow) { - if (sprite->data[0]) + if (sprite->sStuckOnWheelLeft) PlayCry1(SPECIES_TAILLOW, -63); else PlayCry1(SPECIES_TAILLOW, 63); @@ -4138,41 +4456,47 @@ static void sub_8144A24(struct Sprite *sprite) PlayCry1(SPECIES_SHROOMISH, -63); } - val = 2; - z = (gUnknown_0203AB88->var7F + 2) % 12; + slotsToSkip = 2; + slotId = (sRoulette->stuckHitSlot + 2) % NUM_ROULETTE_SLOTS; - if (gUnknown_0203AB88->var03_0 == 1 && gUnknown_0203AB88->var04_0 == 1) - j += 6; + if (sRoulette->useTaillow == TRUE && sRoulette->tableId == 1) + maxSlotToCheck += 6; // Check all remaining slots else - j += val; + maxSlotToCheck += slotsToSkip; // Check enough slots to guarantee an empty will be found - for (i = val; i < j; i++) + // Identify open slots on the wheel that the stuck ball could be moved to + for (i = slotsToSkip; i < maxSlotToCheck; i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[z].var04)) + if (!(sRoulette->hitFlags & sRouletteSlots[slotId].flag)) { - s[h++] = i; - if (p == 0 && (gUnknown_085B62E4[z].var04 & gUnknown_085B6154[gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]].var0C)) - p = i; + slotCandidates[numCandidates++] = i; + if (betSlotId == 0 && (sRouletteSlots[slotId].flag & sGridSelections[sRoulette->betSelection[sRoulette->curBallNum]].inSelectionFlags)) + betSlotId = i; } - z = (z + 1) % 0xC; + slotId = (slotId + 1) % NUM_ROULETTE_SLOTS; } - if ((gUnknown_0203AB88->var03_0 + 1) & gUnknown_0203AB88->var02) + // Determine which identified slot the ball should be moved to + // The below slot ids are relative to the slot the ball got stuck on + if ((sRoulette->useTaillow + 1) & sRoulette->partySpeciesFlags) { - if (p && (rand & 0xFF) < 0xc0) - sprite->data[7] = p; + // If the player has the corresponding pokemon in their party (HAS_SHROOMISH or HAS_TAILLOW), + // there's a 75% chance that the ball will be moved to a spot they bet on + // assuming it was one of the slots identified as a candidate + if (betSlotId && (rand % 256) < 192) + sprite->data[7] = betSlotId; else - sprite->data[7] = s[rand % h]; + sprite->data[7] = slotCandidates[rand % numCandidates]; } else { - sprite->data[7] = s[rand % h]; + sprite->data[7] = slotCandidates[rand % numCandidates]; } - sprite->callback = sub_8144168; + sprite->callback = SpriteCB_UnstickBall; } -static const u16 gUnknown_085B7B1A[] = { +static const u16 sShroomishShadowAlphas[] = { 0x907, 0x808, 0x709, @@ -4185,26 +4509,28 @@ static const u16 gUnknown_085B7B1A[] = { 0x010, }; -static void sub_8144C70(struct Sprite *sprite) +static void SpriteCB_ShroomishExit(struct Sprite *sprite) { + // Delay for screen shaking, then exit left if (sprite->data[1]++ >= sprite->data[3]) { sprite->pos1.x -= 2; if (sprite->pos1.x < -16) { - if (!gUnknown_0203AB88->var03_6) - gUnknown_0203AB88->var03_6 = TRUE; + if (!sRoulette->ballUnstuck) + sRoulette->ballUnstuck = TRUE; DestroySprite(sprite); - gUnknown_0203AB88->var01 = 0; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0]; + sRoulette->shroomishShadowTimer = 0; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0]; } } } -static void sub_8144CD0(struct Sprite *sprite) +// Handles both the screen shake and ball shadow effect for when Shroomish unsticks the ball +static void SpriteCB_ShroomishShakeScreen(struct Sprite *sprite) { - int p; - u16 t[][4] = { + int screenShakeIdx; + u16 screenShakeOffsets[][4] = { {-1, 0, 1, 0}, {-2, 0, 2, 0}, {-3, 0, 3, 0}, @@ -4214,92 +4540,99 @@ static void sub_8144CD0(struct Sprite *sprite) { if (sprite->data[1] & 1) { - gSpriteCoordOffsetY = t[sprite->data[2] / 2][sprite->data[7]]; - p = sprite->data[7] + 1; - sprite->data[7] = p - ((p / 4) * 4); + // Shake screen + gSpriteCoordOffsetY = screenShakeOffsets[sprite->data[2] / 2][sprite->data[7]]; + screenShakeIdx = sprite->data[7] + 1; + sprite->data[7] = screenShakeIdx - ((screenShakeIdx / 4) * 4); } + // Flicker shadow sprite->invisible ^= 1; } else { gSpriteCoordOffsetY = 0; - gSprites[gUnknown_0203AB88->var3C[55]].animPaused = FALSE; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animPaused = FALSE; DestroySprite(sprite); } } -static void sub_8144D94(struct Sprite *sprite) +static void SpriteCB_ShroomishFall(struct Sprite *sprite) { - float t; + float timer; sprite->data[1]++; - t = sprite->data[1]; - sprite->pos2.y = t * 0.039f * t; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2]; - if (gUnknown_0203AB88->var01 < 19) - gUnknown_0203AB88->var01++; + timer = sprite->data[1]; + sprite->pos2.y = timer * 0.039f * timer; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[(sRoulette->shroomishShadowTimer - 1) / 2]; + if (sRoulette->shroomishShadowTimer < ARRAY_COUNT(sShroomishShadowAlphas) * 2 - 1) + sRoulette->shroomishShadowTimer++; if (sprite->data[1] > 60) { sprite->data[1] = 0; - sprite->callback = sub_8144C70; - gSprites[sprite->data[6]].callback = sub_8144C70; - gSprites[sprite->data[6]].data[1] = -2; - gSprites[sprite->data[5]].invisible = FALSE; - gSprites[sprite->data[5]].callback = sub_8144CD0; - m4aSongNumStart(SE_W070); + sprite->callback = SpriteCB_ShroomishExit; + gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_ShroomishExit; + gSprites[sprite->sMonShadowSpriteId].data[1] = -2; + gSprites[sprite->sBallShadowSpriteId].invisible = FALSE; + gSprites[sprite->sBallShadowSpriteId].callback = SpriteCB_ShroomishShakeScreen; + m4aSongNumStart(SE_M_STRENGTH); } } -static void sub_8144E60(struct Sprite *sprite) +static void SpriteCB_Shroomish(struct Sprite *sprite) { if (sprite->data[7] == 0) { - if (gUnknown_0203AB88->var38->data[0] == 0) + // Wait for the ball to be a specific angle (or its 180 degree opposite) specified by the table + // Once it is, reveal the shadow for Shroomish falling in + if (!sRoulette->ball->sStuckOnWheelLeft) { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.startAngle) return; } else { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08 + 180) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.startAngle + 180) return; } sprite->invisible = FALSE; sprite->data[7]++; - m4aSongNumStart(SE_RU_HYUU); - gUnknown_0203AB88->var01 = 1; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0]; + m4aSongNumStart(SE_FALL); + sRoulette->shroomishShadowTimer = 1; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0]; } else { - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2]; - if (gUnknown_0203AB88->var01 < 19) - gUnknown_0203AB88->var01++; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[(sRoulette->shroomishShadowTimer - 1) / 2]; + if (sRoulette->shroomishShadowTimer < 19) + sRoulette->shroomishShadowTimer++; - if (gUnknown_0203AB88->var38->data[0] == 0) + // Wait for the ball to be a specific angle (or its 180 degree opposite) specified by the table + // Once it is, have Shroomish begin to fall in + // On both tables this angle is 15 degrees off the "start" angle + if (!sRoulette->ball->sStuckOnWheelLeft) { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.dropAngle) return; } else { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A + 180) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.dropAngle + 180) return; } - gSprites[sprite->data[4]].callback = sub_8144D94; - gSprites[sprite->data[4]].invisible = FALSE; + gSprites[sprite->sMonSpriteId].callback = SpriteCB_ShroomishFall; + gSprites[sprite->sMonSpriteId].invisible = FALSE; sprite->callback = &SpriteCallbackDummy; sprite->data[7] = 0; } } -static void sub_8144F94(struct Sprite *sprite) +static void SpriteCB_TaillowShadow_Flash(struct Sprite *sprite) { sprite->invisible ^= 1; } -static void sub_8144FB0(struct Sprite *sprite) +static void SpriteCB_Taillow_FlyAway(struct Sprite *sprite) { if (sprite->pos1.y > -16) { @@ -4310,14 +4643,14 @@ static void sub_8144FB0(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; sprite->invisible = TRUE; sprite->animPaused = TRUE; - m4aSongNumStop(SE_BASABASA); + m4aSongNumStop(SE_TAILLOW_WING_FLAP); DestroySprite(sprite); - FreeOamMatrix(gSprites[gUnknown_0203AB88->var3C[56]].oam.matrixNum); - DestroySprite(&gSprites[gUnknown_0203AB88->var3C[56]]); + FreeOamMatrix(gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].oam.matrixNum); + DestroySprite(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]]); } } -static void sub_8145030(struct Sprite *sprite) +static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite) { if (sprite->data[1] >= 0) { @@ -4341,18 +4674,18 @@ static void sub_8145030(struct Sprite *sprite) } else { - m4aSongNumStart(SE_RU_HYUU); - StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 4); - sprite->callback = sub_8144FB0; - gSprites[sprite->data[6]].affineAnimPaused = FALSE; + m4aSongNumStart(SE_FALL); + StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 4); + sprite->callback = SpriteCB_Taillow_FlyAway; + gSprites[sprite->sMonShadowSpriteId].affineAnimPaused = FALSE; } } } -static void sub_81450D8(struct Sprite *sprite) +static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite) { - s8 t[2] = {-1, 1}; - s8 z[][2] = { + s8 xMoveOffsets[2] = {-1, 1}; + s8 yMoveOffsets[][2] = { {2, 0}, {2, 0}, {2, -1}, @@ -4365,7 +4698,7 @@ static void sub_81450D8(struct Sprite *sprite) if (sprite->data[1]-- > 7) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2; + sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * 2; if (IsSEPlaying()) { s8 pan = -((116 - sprite->pos1.x) / 2); @@ -4377,46 +4710,46 @@ static void sub_81450D8(struct Sprite *sprite) { if (sprite->data[1] >= 0) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * z[7 - sprite->data[1]][0]; - sprite->pos1.y += z[7 - sprite->data[1]][1]; + sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * yMoveOffsets[7 - sprite->data[1]][0]; + sprite->pos1.y += yMoveOffsets[7 - sprite->data[1]][1]; } else { - m4aSongNumStartOrChange(SE_BASABASA); - if (gUnknown_0203AB88->var38->data[0] == 0) + m4aSongNumStartOrChange(SE_TAILLOW_WING_FLAP); + if (sRoulette->ball->sStuckOnWheelLeft == 0) PlayCry1(SPECIES_TAILLOW, 63); else PlayCry1(SPECIES_TAILLOW, -63); - StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 2); + StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 2); sprite->data[1] = 45; - sprite->callback = sub_8145030; + sprite->callback = SpriteCB_Taillow_PickUpBall; } } } -static void sub_8145218(struct Sprite *sprite) +static void SpriteCB_TaillowShadow_FlyIn(struct Sprite *sprite) { - s8 t[2] = {-1, 1}; + s8 moveDir[2] = {-1, 1}; if (sprite->data[1]-- >= 0) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2; - gSprites[sprite->data[6]].invisible ^= 1; + sprite->pos1.x += moveDir[sRoulette->ball->sStuckOnWheelLeft] * 2; + gSprites[sprite->sMonShadowSpriteId].invisible ^= 1; } else { - sprite->callback = sub_8144F94; + sprite->callback = SpriteCB_TaillowShadow_Flash; } } -static void sub_8145294(struct Sprite *sprite) +static void SpriteCB_Taillow(struct Sprite *sprite) { - if (gUnknown_0203AB88->var38->data[0] == 0) + if (sRoulette->ball->sStuckOnWheelLeft == FALSE) { - if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var12 + 90) + if (sRoulette->ball->sBallAngle == sRouletteTables[sRoulette->tableId].taillow.rightStartAngle + 90) { - gSprites[sprite->data[6]].data[1] = 52; - gSprites[sprite->data[4]].data[1] = 52; + gSprites[sprite->sMonShadowSpriteId].data[1] = 52; + gSprites[sprite->sMonSpriteId].data[1] = 52; } else { @@ -4425,17 +4758,17 @@ static void sub_8145294(struct Sprite *sprite) } else { - if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var14 + 270) + if (sRoulette->ball->sBallAngle == sRouletteTables[sRoulette->tableId].taillow.leftStartAngle + 270) { - gSprites[sprite->data[6]].data[1] = 46; - gSprites[sprite->data[4]].data[1] = 46; + gSprites[sprite->sMonShadowSpriteId].data[1] = 46; + gSprites[sprite->sMonSpriteId].data[1] = 46; } else { return; } } - gSprites[sprite->data[6]].callback = sub_8145218; - gSprites[sprite->data[4]].callback = sub_81450D8; - m4aSongNumStart(SE_RU_HYUU); + gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_TaillowShadow_FlyIn; + gSprites[sprite->sMonSpriteId].callback = SpriteCB_Taillow_FlyIn; + m4aSongNumStart(SE_FALL); } diff --git a/src/save.c b/src/save.c index 09e1b7aae..3ae2f6fd5 100644 --- a/src/save.c +++ b/src/save.c @@ -912,7 +912,7 @@ void Task_LinkSave(u8 taskId) tState = 1; break; case 1: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 2; break; case 2: @@ -949,7 +949,7 @@ void Task_LinkSave(u8 taskId) case 7: if (!tPartialSave) ClearContinueGameWarpStatus2(); - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 8; break; case 8: @@ -960,7 +960,7 @@ void Task_LinkSave(u8 taskId) } break; case 9: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 10; break; case 10: diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index a2a2acc8d..7c824e82d 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -349,7 +349,7 @@ static void VBlankCB_UpdateClockGraphics(void) gMain.oamBuffer[0] = sClockOamData; gMain.oamBuffer[0].x = 112; - gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;; + gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8; if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE) { diff --git a/src/scrcmd.c b/src/scrcmd.c index 4a7f4ea73..d2ebcbb85 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -38,7 +38,7 @@ #include "script.h" #include "script_menu.h" #include "script_movement.h" -#include "script_pokemon_80F8.h" +#include "script_pokemon_util.h" #include "shop.h" #include "slot_machine.h" #include "sound.h" @@ -788,8 +788,8 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - u16 x; - u16 y; + s16 x; + s16 y; PlayerGetDestCoords(&x, &y); if (mapGroup == 0xFF && mapNum == 0xFF) @@ -801,6 +801,7 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) return TRUE; } +// RS mossdeep gym warp, unused in Emerald bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); @@ -810,7 +811,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); SetWarpDestination(mapGroup, mapNum, warpId, x, y); - DoTeleportWarp(); + DoTeleportTileWarp(); ResetInitialPlayerAvatarState(); return TRUE; } @@ -1474,7 +1475,7 @@ bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx) if (contestWinnerId != CONTEST_WINNER_ARTIST) SetContestWinnerForPainting(contestWinnerId); - ShowContestWinner(); + ShowContestWinnerPainting(); ScriptContext1_Stop(); return TRUE; } diff --git a/src/script.c b/src/script.c index 9ba1a7429..889c25765 100644 --- a/src/script.c +++ b/src/script.c @@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable s32 i; ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; ctx->stackDepth = 0; - ctx->nativePtr = 0; + ctx->nativePtr = NULL; ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; @@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)) void StopScript(struct ScriptContext *ctx) { ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; } bool8 RunScriptCommand(struct ScriptContext *ctx) diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c new file mode 100755 index 000000000..a7b5433f0 --- /dev/null +++ b/src/script_pokemon_util.c @@ -0,0 +1,224 @@ +#include "global.h" +#include "battle.h" +#include "battle_gfx_sfx_util.h" +#include "berry.h" +#include "data.h" +#include "daycare.h" +#include "decompress.h" +#include "event_data.h" +#include "international_string_util.h" +#include "link.h" +#include "link_rfu.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "pokedex.h" +#include "pokemon.h" +#include "random.h" +#include "script.h" +#include "sprite.h" +#include "string_util.h" +#include "tv.h" +#include "constants/items.h" +#include "constants/species.h" +#include "constants/tv.h" +#include "constants/battle_frontier.h" + +static void CB2_ReturnFromChooseHalfParty(void); +static void CB2_ReturnFromChooseBattleFrontierParty(void); + +void HealPlayerParty(void) +{ + u8 i, j; + u8 ppBonuses; + u8 arg[4]; + + // restore HP. + for(i = 0; i < gPlayerPartyCount; i++) + { + u16 maxHP = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); + arg[0] = maxHP; + arg[1] = maxHP >> 8; + SetMonData(&gPlayerParty[i], MON_DATA_HP, arg); + ppBonuses = GetMonData(&gPlayerParty[i], MON_DATA_PP_BONUSES); + + // restore PP. + for(j = 0; j < MAX_MON_MOVES; j++) + { + arg[0] = CalculatePPWithBonus(GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j), ppBonuses, j); + SetMonData(&gPlayerParty[i], MON_DATA_PP1 + j, arg); + } + + // since status is u32, the four 0 assignments here are probably for safety to prevent undefined data from reaching SetMonData. + arg[0] = 0; + arg[1] = 0; + arg[2] = 0; + arg[3] = 0; + SetMonData(&gPlayerParty[i], MON_DATA_STATUS, arg); + } +} + +u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 unused3) +{ + u16 nationalDexNum; + int sentToPc; + u8 heldItem[2]; + struct Pokemon mon; + + CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + heldItem[0] = item; + heldItem[1] = item >> 8; + SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); + sentToPc = GiveMonToPlayer(&mon); + nationalDexNum = SpeciesToNationalPokedexNum(species); + + switch(sentToPc) + { + case 0: + case 1: + GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); + GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT); + break; + } + return sentToPc; +} + +u8 ScriptGiveEgg(u16 species) +{ + struct Pokemon mon; + u8 isEgg; + + CreateEgg(&mon, species, TRUE); + isEgg = TRUE; + SetMonData(&mon, MON_DATA_IS_EGG, &isEgg); + + return GiveMonToPlayer(&mon); +} + +void HasEnoughMonsForDoubleBattle(void) +{ + switch (GetMonsStateToDoubles()) + { + case PLAYER_HAS_TWO_USABLE_MONS: + gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS; + break; + case PLAYER_HAS_ONE_MON: + gSpecialVar_Result = PLAYER_HAS_ONE_MON; + break; + case PLAYER_HAS_ONE_USABLE_MON: + gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON; + break; + } +} + +static bool8 CheckPartyMonHasHeldItem(u16 item) +{ + int i; + + for(i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) + return TRUE; + } + return FALSE; +} + +bool8 DoesPartyHaveEnigmaBerry(void) +{ + bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY); + if (hasItem == TRUE) + GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY), gStringVar1); + + return hasItem; +} + +void CreateScriptedWildMon(u16 species, u8 level, u16 item) +{ + u8 heldItem[2]; + + ZeroEnemyPartyMons(); + CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (item) + { + heldItem[0] = item; + heldItem[1] = item >> 8; + SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); + } +} + +void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) +{ + if (monIndex > PARTY_SIZE) + monIndex = gPlayerPartyCount - 1; + + SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); +} + +// Note: When control returns to the event script, gSpecialVar_Result will be +// TRUE if the party selection was successful. +void ChooseHalfPartyForBattle(void) +{ + gMain.savedCallback = CB2_ReturnFromChooseHalfParty; + VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); + InitChooseHalfPartyForBattle(0); +} + +static void CB2_ReturnFromChooseHalfParty(void) +{ + switch (gSelectedOrderFromParty[0]) + { + case 0: + gSpecialVar_Result = FALSE; + break; + default: + gSpecialVar_Result = TRUE; + break; + } + + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ChoosePartyForBattleFrontier(void) +{ + gMain.savedCallback = CB2_ReturnFromChooseBattleFrontierParty; + InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); +} + +static void CB2_ReturnFromChooseBattleFrontierParty(void) +{ + switch (gSelectedOrderFromParty[0]) + { + case 0: + gSpecialVar_Result = FALSE; + break; + default: + gSpecialVar_Result = TRUE; + break; + } + + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ReducePlayerPartyToSelectedMons(void) +{ + struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; + int i; + + CpuFill32(0, party, sizeof party); + + // copy the selected pokemon according to the order. + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) + if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop + party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal + + CpuFill32(0, gPlayerParty, sizeof gPlayerParty); + + // overwrite the first 4 with the order copied to. + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) + gPlayerParty[i] = party[i]; + + CalculatePlayerPartyCount(); +} diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c deleted file mode 100755 index 70f68b879..000000000 --- a/src/script_pokemon_util_80F87D8.c +++ /dev/null @@ -1,725 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_gfx_sfx_util.h" -#include "berry.h" -#include "contest.h" -#include "contest_util.h" -#include "contest_painting.h" -#include "data.h" -#include "daycare.h" -#include "decompress.h" -#include "event_data.h" -#include "event_object_movement.h" -#include "international_string_util.h" -#include "link.h" -#include "link_rfu.h" -#include "main.h" -#include "menu.h" -#include "overworld.h" -#include "palette.h" -#include "party_menu.h" -#include "pokedex.h" -#include "pokemon.h" -#include "random.h" -#include "script.h" -#include "script_menu.h" -#include "sprite.h" -#include "string_util.h" -#include "tv.h" -#include "constants/event_objects.h" -#include "constants/items.h" -#include "constants/species.h" -#include "constants/tv.h" -#include "constants/battle_frontier.h" - -extern const u16 gObjectEventPalette8[]; -extern const u16 gObjectEventPalette17[]; -extern const u16 gObjectEventPalette33[]; -extern const u16 gObjectEventPalette34[]; - -static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; - -static void Task_ShowContestEntryMonPic(u8 taskId); -static void Task_LinkContestWaitForConnection(u8 taskId); -static void CB2_ReturnFromChooseHalfParty(void); -static void CB2_ReturnFromChooseBattleFrontierParty(void); - -void SetContestTrainerGfxIds(void) -{ - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_0 - VARS_START] = gContestMons[0].trainerGfxId; - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_1 - VARS_START] = gContestMons[1].trainerGfxId; - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; -} - -// Unused -void sub_80F8814(void) -{ - u16 var1; - u8 var0 = gSpecialVar_0x8005; - switch (var0) - { - case 0: - var1 = 3; - break; - case 1: - var1 = 4; - break; - case 2: - var1 = 5; - break; - default: - var1 = 100; - break; - } - - gSpecialVar_0x8004 = var1; -} - -void BufferContestTrainerAndMonNames(void) -{ - BufferContestantTrainerName(); - BufferContestantMonNickname(); - BufferContestantMonSpecies(); -} - -// Unused -void DoesContestCategoryHaveWinner(void) -{ - int contestWinner; - switch (gSpecialVar_ContestCategory) - { - case CONTEST_CATEGORY_COOL: - contestWinner = 8; - break; - case CONTEST_CATEGORY_BEAUTY: - contestWinner = 9; - break; - case CONTEST_CATEGORY_CUTE: - contestWinner = 10; - break; - case CONTEST_CATEGORY_SMART: - contestWinner = 11; - break; - case CONTEST_CATEGORY_TOUGH: - default: - contestWinner = 12; - break; - } - - if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE) - gSpecialVar_0x8004 = FALSE; - else - gSpecialVar_0x8004 = TRUE; -} - -void SaveMuseumContestPainting(void) -{ - sub_80DEDA8(0xFF); -} - -void ShouldReadyContestArtist(void) -{ - if (gContestFinalStandings[gContestPlayerMonIndex] == 0 - && gSpecialVar_ContestRank == CONTEST_RANK_MASTER - && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) - { - gSpecialVar_0x8004 = TRUE; - } - else - { - gSpecialVar_0x8004 = FALSE; - } -} - -u8 CountPlayerContestPaintings(void) -{ - int i; - u8 count = 0; - - for (i = 0; i < 5; i++) - { - if (gSaveBlock1Ptr->contestWinners[8 + i].species) - count++; - } - - return count; -} - -// Unused -void sub_80F8970(void) -{ - s16 conditions[CONTESTANT_COUNT]; - int i, j; - s16 condition; - s8 var0; - u8 var2; - u8 r8; - u8 r7; - - for (i = 0; i < CONTESTANT_COUNT; i++) - conditions[i] = gContestMonConditions[i]; - - for (i = 0; i < CONTESTANT_COUNT - 1; i++) - { - for (j = CONTESTANT_COUNT - 1; j > i; j--) - { - if (conditions[j - 1] < conditions[j]) - { - int temp; - SWAP(conditions[j], conditions[j - 1], temp) - } - } - } - - condition = conditions[gSpecialVar_0x8006]; - var0 = 0; - r8 = 0; - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (conditions[i] == condition) - { - var0++; - if (i == gSpecialVar_0x8006) - r8 = var0; - } - } - - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (conditions[i] == condition) - break; - } - - r7 = i; - var2 = r8; - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (condition == gContestMonConditions[i]) - { - if (var2 == 1) - break; - var2--; - } - } - - StringCopy(gStringVar1, gContestMons[i].nickname); - StringCopy(gStringVar2, gContestMons[i].trainerName); - sub_81DB5AC(gStringVar2); - - if (var0 == 1) - gSpecialVar_0x8006 = r7; - else if (r8 == var0) - gSpecialVar_0x8006 = r7; - else - gSpecialVar_0x8006 = r7 + 4; -} - -static void ShowContestWinnerCleanup(void) -{ - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ShowContestWinner(void) -{ - /* - if(gUnknown_0203856C) - { - sub_80AAF30(); - gBattleStruct->unk15DDF = 1; - gBattleStruct->unk15DDE = sub_80B2C4C(254, 0); - Contest_SaveWinner(3); - gUnknown_0203856C = 0; - } - */ - - SetMainCallback2(CB2_ContestPainting); - gMain.savedCallback = ShowContestWinnerCleanup; -} - -void SetLinkContestPlayerGfx(void) -{ - int i; - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - for (i = 0; i < gNumLinkContestPlayers; i++) - { - int version = (u8)gLinkPlayers[i].version; - if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) - { - if (gLinkPlayers[i].gender == MALE) - gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; - else - gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_MAY; - } - } - - VarSet(VAR_OBJ_GFX_ID_0, gContestMons[0].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_1, gContestMons[1].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_2, gContestMons[2].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_3, gContestMons[3].trainerGfxId); - } -} - -void LoadLinkContestPlayerPalettes(void) -{ - int i; - u8 objectEventId; - int version; - struct Sprite *sprite; - - gReservedSpritePaletteCount = 12; - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - for (i = 0; i < gNumLinkContestPlayers; i++) - { - objectEventId = GetObjectEventIdByLocalIdAndMap(gUnknown_0858D8EC[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - sprite->oam.paletteNum = 6 + i; - version = (u8)gLinkPlayers[i].version; - if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) - { - if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPalette33, 0x160 + i * 0x10, 0x20); - else - LoadPalette(gObjectEventPalette34, 0x160 + i * 0x10, 0x20); - } - else - { - if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPalette8, 0x160 + i * 0x10, 0x20); - else - LoadPalette(gObjectEventPalette17, 0x160 + i * 0x10, 0x20); - } - } - } -} - -u8 GiveMonArtistRibbon(void) -{ - u8 hasArtistRibbon; - - hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); - if (!hasArtistRibbon - && gContestFinalStandings[gContestPlayerMonIndex] == 0 - && gSpecialVar_ContestRank == CONTEST_RANK_MASTER - && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) - { - hasArtistRibbon = 1; - SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) - TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); - - return 1; - } - else - { - return 0; - } -} - -bool8 IsContestDebugActive(void) -{ - return FALSE; // gUnknown_0203856C in pokeruby -} - -void ShowContestEntryMonPic(void) -{ - const struct CompressedSpritePalette *palette; - u32 personality, otId; - u16 species; - u8 spriteId; - u8 taskId; - u8 left, top; - - if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) - { - AllocateMonSpritesGfx(); - left = 10; - top = 3; - species = gContestMons[gSpecialVar_0x8006].species; - personality = gContestMons[gSpecialVar_0x8006].personality; - otId = gContestMons[gSpecialVar_0x8006].otId; - taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = species; - if (gSpecialVar_0x8006 == gContestPlayerMonIndex) - HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); - else - HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); - - palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; - spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0); - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - if (!(gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)) - DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); - } - else - { - DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); - } - - gTasks[taskId].data[2] = spriteId; - gTasks[taskId].data[3] = left; - gTasks[taskId].data[4] = top; - gSprites[spriteId].callback = SpriteCallbackDummy; - gSprites[spriteId].oam.priority = 0; - } -} - -void HideContestEntryMonPic(void) -{ - u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); - if (taskId != 0xFF) - { - gTasks[taskId].data[0]++; - FreeMonSpritesGfx(); - } -} - -static void Task_ShowContestEntryMonPic(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - struct Sprite *sprite; - - switch(task->data[0]) - { - case 0: - task->data[0]++; - break; - case 1: - task->data[5] = CreateWindowFromRect(10, 3, 8, 8); - SetStandardWindowBorderStyle(task->data[5], 1); - task->data[0]++; - break; - case 2: - break; - case 3: - sprite = &gSprites[task->data[2]]; - FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); - - if(sprite->oam.affineMode) - FreeOamMatrix(sprite->oam.matrixNum); - - DestroySprite(sprite); - task->data[0]++; - break; - case 4: - ClearToTransparentAndRemoveWindow(gTasks[taskId].data[5]); - DestroyTask(taskId); - break; - } -} - -void ScriptGetMultiplayerId(void) -{ - if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - && gNumLinkContestPlayers == CONTESTANT_COUNT - && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) - gSpecialVar_Result = GetMultiplayerId(); - else - gSpecialVar_Result = MAX_LINK_PLAYERS; -} - -void ScriptRandom(void) -{ - u16 random; - u16 *scriptPtr; - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - random = gContestRngValue >> 16; - scriptPtr = &gSpecialVar_Result; - } - else - { - scriptPtr = &gSpecialVar_Result; - random = Random(); - } - *scriptPtr = random % *scriptPtr; -} - -u16 GetContestRand(void) -{ - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - return gContestRngValue >> 16; -} - -bool8 LinkContestWaitForConnection(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - CreateTask(Task_LinkContestWaitForConnection, 5); - return TRUE; - } - else - { - return FALSE; - } -} - -static void Task_LinkContestWaitForConnection(u8 taskId) -{ - switch (gTasks[taskId].data[0]) - { - case 0: - if (IsLinkTaskFinished()) - { - sub_800ADF8(); - gTasks[taskId].data[0]++; - } - break; - case 1: - gTasks[taskId].data[0]++; - break; - default: - if (IsLinkTaskFinished() == 1) - { - EnableBothScriptContexts(); - DestroyTask(taskId); - } - break; - } -} - -void LinkContestTryShowWirelessIndicator(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - if (gReceivedRemoteLinkPlayers) - { - LoadWirelessStatusIndicatorSpriteGfx(); - CreateWirelessStatusIndicatorSprite(8, 8); - } - } -} - -void LinkContestTryHideWirelessIndicator(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - if (gReceivedRemoteLinkPlayers) - DestroyWirelessStatusIndicatorSprite(); - } -} - -bool8 IsContestWithRSPlayer(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) - return TRUE; - else - return FALSE; -} - -void ClearLinkContestFlags(void) -{ - gLinkContestFlags = 0; -} - -bool8 IsWirelessContest(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - return TRUE; - else - return FALSE; -} - -void HealPlayerParty(void) -{ - u8 i, j; - u8 ppBonuses; - u8 arg[4]; - - // restore HP. - for(i = 0; i < gPlayerPartyCount; i++) - { - u16 maxHP = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); - arg[0] = maxHP; - arg[1] = maxHP >> 8; - SetMonData(&gPlayerParty[i], MON_DATA_HP, arg); - ppBonuses = GetMonData(&gPlayerParty[i], MON_DATA_PP_BONUSES); - - // restore PP. - for(j = 0; j < MAX_MON_MOVES; j++) - { - arg[0] = CalculatePPWithBonus(GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j), ppBonuses, j); - SetMonData(&gPlayerParty[i], MON_DATA_PP1 + j, arg); - } - - // since status is u32, the four 0 assignments here are probably for safety to prevent undefined data from reaching SetMonData. - arg[0] = 0; - arg[1] = 0; - arg[2] = 0; - arg[3] = 0; - SetMonData(&gPlayerParty[i], MON_DATA_STATUS, arg); - } -} - -u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 unused3) -{ - u16 nationalDexNum; - int sentToPc; - u8 heldItem[2]; - struct Pokemon mon; - - CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); - heldItem[0] = item; - heldItem[1] = item >> 8; - SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); - sentToPc = GiveMonToPlayer(&mon); - nationalDexNum = SpeciesToNationalPokedexNum(species); - - switch(sentToPc) - { - case 0: - case 1: - GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); - GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT); - break; - } - return sentToPc; -} - -u8 ScriptGiveEgg(u16 species) -{ - struct Pokemon mon; - u8 isEgg; - - CreateEgg(&mon, species, TRUE); - isEgg = TRUE; - SetMonData(&mon, MON_DATA_IS_EGG, &isEgg); - - return GiveMonToPlayer(&mon); -} - -void HasEnoughMonsForDoubleBattle(void) -{ - switch (GetMonsStateToDoubles()) - { - case PLAYER_HAS_TWO_USABLE_MONS: - gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS; - break; - case PLAYER_HAS_ONE_MON: - gSpecialVar_Result = PLAYER_HAS_ONE_MON; - break; - case PLAYER_HAS_ONE_USABLE_MON: - gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON; - break; - } -} - -static bool8 CheckPartyMonHasHeldItem(u16 item) -{ - int i; - - for(i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) - return TRUE; - } - return FALSE; -} - -bool8 DoesPartyHaveEnigmaBerry(void) -{ - bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY); - if (hasItem == TRUE) - GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY), gStringVar1); - - return hasItem; -} - -void CreateScriptedWildMon(u16 species, u8 level, u16 item) -{ - u8 heldItem[2]; - - ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); - if (item) - { - heldItem[0] = item; - heldItem[1] = item >> 8; - SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); - } -} - -void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) -{ - if (monIndex > PARTY_SIZE) - monIndex = gPlayerPartyCount - 1; - - SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); -} - -// Note: When control returns to the event script, gSpecialVar_Result will be -// TRUE if the party selection was successful. -void ChooseHalfPartyForBattle(void) -{ - gMain.savedCallback = CB2_ReturnFromChooseHalfParty; - VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); - InitChooseHalfPartyForBattle(0); -} - -static void CB2_ReturnFromChooseHalfParty(void) -{ - switch (gSelectedOrderFromParty[0]) - { - case 0: - gSpecialVar_Result = FALSE; - break; - default: - gSpecialVar_Result = TRUE; - break; - } - - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ChoosePartyForBattleFrontier(void) -{ - gMain.savedCallback = CB2_ReturnFromChooseBattleFrontierParty; - InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); -} - -static void CB2_ReturnFromChooseBattleFrontierParty(void) -{ - switch (gSelectedOrderFromParty[0]) - { - case 0: - gSpecialVar_Result = FALSE; - break; - default: - gSpecialVar_Result = TRUE; - break; - } - - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ReducePlayerPartyToSelectedMons(void) -{ - struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; - int i; - - CpuFill32(0, party, sizeof party); - - // copy the selected pokemon according to the order. - for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) - if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop - party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal - - CpuFill32(0, gPlayerParty, sizeof gPlayerParty); - - // overwrite the first 4 with the order copied to. - for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) - gPlayerParty[i] = party[i]; - - CalculatePlayerPartyCount(); -} diff --git a/src/secret_base.c b/src/secret_base.c index 83626710f..3f69e0419 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -964,7 +964,7 @@ static void HandleRegistryMenuInput(u8 taskId) data = gTasks[taskId].data; input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); + ListMenuGetScrollAndRow(data[5], (u16 *)&data[2], (u16 *)&data[1]); switch (input) { case LIST_NOTHING_CHOSEN: @@ -1045,10 +1045,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0; BuildRegistryMenuItems(taskId); - sub_812225C(&data[2], &data[1], data[3], data[0]); + sub_812225C((u16 *)&data[2], (u16 *)&data[1], (u16)data[3], (u16)data[0]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1062,7 +1062,7 @@ static void DeleteRegistry_No(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } diff --git a/src/shop.c b/src/shop.c index 837ba1bca..5cba2767d 100755 --- a/src/shop.c +++ b/src/shop.c @@ -416,7 +416,7 @@ static void CB2_BuyMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -446,7 +446,7 @@ static void CB2_InitBuyMenu(void) ResetPaletteFade(); ResetSpriteData(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gShopDataPtr = AllocZeroed(sizeof(struct ShopData)); gShopDataPtr->scrollIndicatorsTaskId = 0xFF; gShopDataPtr->itemSpriteIds[0] = 0xFF; @@ -1089,7 +1089,7 @@ static void BuyMenuSubtractMoney(u8 taskId) { IncrementGameStat(GAME_STAT_SHOPPED); RemoveMoney(&gSaveBlock1Ptr->money, gShopDataPtr->totalCost); - PlaySE(SE_REGI); + PlaySE(SE_SHOP); PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0); if (gMartInfo.martType == MART_TYPE_NORMAL) diff --git a/src/slot_machine.c b/src/slot_machine.c index d1cb05b18..9d19fc9a7 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/songs.h" #include "overworld.h" #include "field_effect.h" #include "random.h" @@ -18,23 +17,225 @@ #include "bg.h" #include "gpu_regs.h" #include "coins.h" +#include "strings.h" #include "tv.h" #include "text_window.h" -#include "constants/rgb.h" #include "main_menu.h" #include "bg.h" #include "window.h" #include "constants/coins.h" +#include "constants/rgb.h" #include "constants/slot_machine.h" +#include "constants/songs.h" -// Text -extern const u8 gText_YouDontHaveThreeCoins[]; -extern const u8 gText_QuitTheGame[]; -extern const u8 gText_YouveGot9999Coins[]; -extern const u8 gText_YouveRunOutOfCoins[]; -extern const u8 gText_ReelTimeHelp[]; - -struct SlotMachineEwramStruct +#define SLOTMACHINE_GFX_TILES 233 +#define MAX_BET 3 + +#define SYMBOLS_PER_REEL 21 +#define REEL_SYMBOL_HEIGHT 24 + +// Lucky Flags +#define LUCKY_BIAS_REPLAY (1 << 0) +#define LUCKY_BIAS_CHERRY (1 << 1) +#define LUCKY_BIAS_LOTAD (1 << 2) +#define LUCKY_BIAS_AZURILL (1 << 3) +#define LUCKY_BIAS_POWER (1 << 4) +#define LUCKY_BIAS_REELTIME (1 << 5) +#define LUCKY_BIAS_MIXED_777 (1 << 6) +#define LUCKY_BIAS_777 (1 << 7) + +enum { + GFXTAG_7_RED, + GFXTAG_7_BLUE, + GFXTAG_AZURILL, + GFXTAG_LOTAD, + GFXTAG_CHERRY, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_NUM_0, + GFXTAG_NUM_1, + GFXTAG_NUM_2, + GFXTAG_NUM_3, + GFXTAG_NUM_4, + GFXTAG_NUM_5, + GFXTAG_NUM_6, + GFXTAG_NUM_7, + GFXTAG_NUM_8, + GFXTAG_NUM_9, + GFXTAG_REEL_BG, + GFXTAG_STOP, + GFXTAG_BONUS, + GFXTAG_BIG, + GFXTAG_REG, +}; + +#define GFXTAG_SYMBOLS_START (GFXTAG_7_RED) +#define GFXTAG_NUMBERS_START (GFXTAG_NUM_0) + +enum { + PALTAG_REEL, + PALTAG_REEL_TIME_PIKACHU, + PALTAG_REEL_TIME_MISC, + PALTAG_REEL_TIME_MACHINE, + PALTAG_MISC, + PALTAG_EXPLOSION, + PALTAG_DIG_DISPLAY, + PALTAG_PIKA_AURA, +}; + +enum { + MATCHED_1CHERRY, + MATCHED_2CHERRY, + MATCHED_REPLAY, + MATCHED_LOTAD, + MATCHED_AZURILL, + MATCHED_POWER, + MATCHED_777_MIXED, + MATCHED_777_RED, + MATCHED_777_BLUE, + MATCHED_NONE, +}; + +enum { + MATCH_MIDDLE_ROW, + MATCH_TOP_ROW, + MATCH_BOTTOM_ROW, + MATCH_NWSE_DIAG, + MATCH_NESW_DIAG, + NUM_MATCH_LINES, +}; + +enum { + LEFT_REEL, + MIDDLE_REEL, + RIGHT_REEL, + NUM_REELS, +}; + +enum { + SLOT_ACTION_UNFADE, + SLOT_ACTION_WAIT_FADE, + SLOT_ACTION_READY_NEW_SPIN, + SLOT_ACTION_READY_NEW_RT_SPIN, + SLOT_ACTION_ASK_INSERT_BET, + SLOT_ACTION_BET_INPUT, + SLOT_ACTION_MSG_NEED_3_COINS, + SLOT_ACTION_WAIT_MSG_NEED_3_COINS, + SLOT_ACTION_WAIT_INFO_BOX, + SLOT_ACTION_START_SPIN, + SLOT_ACTION_START_RT_SPIN, + SLOT_ACTION_SET_LUCKY_SPINS, + SLOT_ACTION_AWAIT_REEL_STOP, + SLOT_ACTION_AWAIT_ALL_REELS_STOP, + SLOT_ACTION_CHECK_MATCHES, + SLOT_ACTION_WAIT_PAYOUT, + SLOT_ACTION_END_PAYOUT, + SLOT_ACTION_MATCHED_POWER, + SLOT_ACTION_WAIT_RT_ANIM, + SLOT_ACTION_RESET_BET_TILES, + SLOT_ACTION_NO_MATCHES, + SLOT_ACTION_ASK_QUIT, + SLOT_ACTION_HANDLE_QUIT_INPUT, + SLOT_ACTION_MSG_MAX_COINS, + SLOT_ACTION_WAIT_MSG_MAX_COINS, + SLOT_ACTION_MSG_NO_MORE_COINS, + SLOT_ACTION_WAIT_MSG_NO_MORE_COINS, + SLOT_ACTION_END, + SLOT_ACTION_FREE, +}; + +enum { + REEL_ACTION_STILL, + REEL_ACTION_SPIN, + REEL_ACTION_STOP, + REEL_ACTION_STOP_MOVE, + REEL_ACTION_STOP_SHAKE, +}; + +#define DIG_SPRITE_DUMMY {255, 0, 0} + +// Sprite template IDs for the digital display in the right panel +enum { + DIG_SPRITE_REEL, + DIG_SPRITE_TIME, + DIG_SPRITE_INSERT, + DIG_SPRITE_WIN, + DIG_SPRITE_LOSE, + DIG_SPRITE_A_BUTTON, + DIG_SPRITE_SMOKE, + DIG_SPRITE_NUMBER, + DIG_SPRITE_POKE_BALL, + DIG_SPRITE_D_PAD, + DIG_SPRITE_STOP_S, + DIG_SPRITE_STOP_T, + DIG_SPRITE_STOP_O, + DIG_SPRITE_STOP_P, + DIG_SPRITE_BONUS_B, + DIG_SPRITE_BONUS_O, + DIG_SPRITE_BONUS_N, + DIG_SPRITE_BONUS_U, + DIG_SPRITE_BONUS_S, + DIG_SPRITE_BIG_B, + DIG_SPRITE_BIG_I, + DIG_SPRITE_BIG_G, + DIG_SPRITE_REG_R, + DIG_SPRITE_REG_E, + DIG_SPRITE_REG_G, + DIG_SPRITE_EMPTY, + NUM_DIG_DISPLAY_SPRITES +}; + +// IDs used by the digital display to set coords and callbacks for its sprites +enum { + DIG_DISPINFO_INSERT, + DIG_DISPINFO_STOP_S, + DIG_DISPINFO_STOP_T, + DIG_DISPINFO_STOP_O, + DIG_DISPINFO_STOP_P, + DIG_DISPINFO_A_BUTTON_STOP, + DIG_DISPINFO_POKE_BALL_ROCKING, + DIG_DISPINFO_WIN, + DIG_DISPINFO_LOSE, + DIG_DISPINFO_SMOKE_NW, + DIG_DISPINFO_SMOKE_NE, + DIG_DISPINFO_SMOKE_SW, + DIG_DISPINFO_SMOKE_SE, + DIG_DISPINFO_REEL, + DIG_DISPINFO_TIME, + DIG_DISPINFO_NUMBER, + DIG_DISPINFO_DPAD, + DIG_DISPINFO_POKE_BALL_SHINING, + DIG_DISPINFO_REG_R, + DIG_DISPINFO_REG_E, + DIG_DISPINFO_REG_G, + DIG_DISPINFO_REG_BONUS_B, + DIG_DISPINFO_REG_BONUS_O, + DIG_DISPINFO_REG_BONUS_N, + DIG_DISPINFO_REG_BONUS_U, + DIG_DISPINFO_REG_BONUS_S, + DIG_DISPINFO_BIG_B, + DIG_DISPINFO_BIG_I, + DIG_DISPINFO_BIG_G, + DIG_DISPINFO_BIG_BONUS_B, + DIG_DISPINFO_BIG_BONUS_O, + DIG_DISPINFO_BIG_BONUS_N, + DIG_DISPINFO_BIG_BONUS_U, + DIG_DISPINFO_BIG_BONUS_S, + DIG_DISPINFO_A_BUTTON_START +}; + +// IDs for digital display "scenes", i.e. each of the screens it can show made up of sprites +enum { + DIG_DISPLAY_INSERT_BET, + DIG_DISPLAY_STOP_REEL, + DIG_DISPLAY_WIN, + DIG_DISPLAY_LOSE, + DIG_DISPLAY_REEL_TIME, + DIG_DISPLAY_BONUS_REG, + DIG_DISPLAY_BONUS_BIG +}; + +struct SlotMachine { /*0x00*/ u8 state; /*0x01*/ u8 machineId; @@ -42,11 +243,11 @@ struct SlotMachineEwramStruct /*0x03*/ u8 luckyGame; /*0x04*/ u8 luckyFlags; /*0x05*/ u8 reelTimeDraw; - /*0x06*/ u8 luckySpinsLeft; // tentative + /*0x06*/ u8 isLuckySpin; /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 fairRollsLeft; // only happens if you win reeltime - /*0x0B*/ u8 fairRollsUsed; + /*0x0A*/ u8 reelTimeSpinsLeft; + /*0x0B*/ u8 reelTimeSpinsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) @@ -55,26 +256,26 @@ struct SlotMachineEwramStruct /*0x16*/ s16 reeltimePosition; /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel - /*0x1C*/ s16 reelPixelOffsets[3]; - /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; - /*0x28*/ s16 reelPositions[3]; - /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 winnerRows[3]; - /*0x3A*/ u8 slotReelTasks[3]; - /*0x3D*/ u8 unkTaskPointer3D; - /*0x3E*/ u8 unkTaskPointer3E; - /*0x3F*/ u8 reelTimeSprite3F; - /*0x40*/ u8 unk40; - /*0x41*/ u8 unk41; - /*0x42*/ u8 unk42; - /*0x43*/ u8 unk43; - /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 unk49[2]; - /*0x49*/ u8 unk4B[3]; - /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 reelTimeSprites1[2]; - /*0x52*/ u8 reelTimeSprites2[2]; - /*0x54*/ u8 unk54[4]; + /*0x1C*/ s16 reelPixelOffsets[NUM_REELS]; + /*0x22*/ u16 reelPixelOffsetsWhileStopping[NUM_REELS]; + /*0x28*/ s16 reelPositions[NUM_REELS]; + /*0x2E*/ s16 reelExtraTurns[NUM_REELS]; + /*0x34*/ s16 winnerRows[NUM_REELS]; + /*0x3A*/ u8 slotReelTasks[NUM_REELS]; + /*0x3D*/ u8 digDisplayTaskId; + /*0x3E*/ u8 pikaPowerBoltTaskId; + /*0x3F*/ u8 reelTimePikachuSpriteId; + /*0x40*/ u8 reelTimeNumberGapSpriteId; + /*0x41*/ u8 reelTimeExplosionSpriteId; + /*0x42*/ u8 reelTimeBrokenMachineSpriteId; + /*0x43*/ u8 reelTimeSmokeSpriteId; + /*0x44*/ u8 flashMatchLineSpriteIds[NUM_MATCH_LINES]; + /*0x49*/ u8 reelTimeMachineSpriteIds[2]; + /*0x49*/ u8 reelTimeNumberSpriteIds[3]; + /*0x4E*/ u8 reelTimeShadowSpriteIds[2]; + /*0x50*/ u8 reelTimeBoltSpriteIds[2]; + /*0x52*/ u8 reelTimePikachuAuraSpriteIds[2]; + /*0x54*/ u8 reelTimeDuckSpriteIds[4]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; @@ -83,66 +284,62 @@ struct SlotMachineEwramStruct /*0x64*/ MainCallback prevMainCb; }; -struct UnkStruct1 +struct DigitalDisplaySprite { - /*0x00*/ u8 unk00; - /*0x01*/ u8 unk01; - /*0x02*/ s16 unk02; + /*0x00*/ u8 spriteTemplateId; + /*0x01*/ u8 dispInfoId; + /*0x02*/ s16 spriteId; }; -#define SLOTMACHINE_GFX_TILES 233 - static void CB2_SlotMachineSetup(void); -static void CB2_SlotMachineLoop(void); -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb); -static void SlotMachineDummyTask(u8 taskId); -static void SlotMachineSetup_0_0(void); -static void SlotMachineSetup_6_2(void); -static void SlotMachineSetup_1_0(void); -static void SlotMachineSetup_2_0(void); -static void SlotMachineSetup_2_1(void); -static void SlotMachineSetup_0_1(void); -static void SlotMachineSetup_3_0(void); -static void SlotMachineSetup_4_0(void); -static void SlotMachineSetup_5_0(void); -static void SlotMachineSetup_6_0(void); -static void SlotMachineSetup_6_1(void); -static void SlotMachineSetup_8_0(void); -static void SlotMachineSetup_9_0(void); -static void SlotMachineSetup_10_0(void); -static void SlotMachineSetupGameplayTasks(void); -static void GameplayTasks_Slots(void); -static void sub_8104DA4(void); -static void RunSlotActions(u8 taskId); -static bool8 SlotAction_UnfadeScreen(struct Task *task); -static bool8 SlotAction_WaitForUnfade(struct Task *task); -static bool8 SlotAction_SetSlotMachineVars(struct Task *task); -static bool8 SlotAction3(struct Task *task); -static bool8 SlotAction4(struct Task *task); -static bool8 SlotAction_AwaitPlayerInput(struct Task *task); -static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); -static bool8 SlotAction_GivingInformation(struct Task *task); -static bool8 SlotAction9(struct Task *task); -static bool8 SlotAction10(struct Task *task); -static bool8 SlotAction_SetLuckySpins(struct Task *task); -static bool8 SlotAction_AwaitReelStop(struct Task *task); -static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); -static bool8 SlotAction_CheckMatches(struct Task *task); -static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); -static bool8 SlotAction_EndOfRoll(struct Task *task); -static bool8 SlotAction_MatchedPower(struct Task *task); -static bool8 SlotAction18(struct Task *task); -static bool8 SlotAction_Loop(struct Task *task); -static bool8 SlotAction_NoMatches(struct Task *task); -static bool8 SlotAction_PrintQuitTheGame(struct Task *task); -static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); -static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task); -static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task); -static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task); -static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task); -static bool8 SlotAction_EndGame(struct Task *task); -static bool8 SlotAction_FreeDataStructures(struct Task *task); +static void CB2_SlotMachine(void); +static void PlaySlotMachine_Internal(u8, MainCallback); +static void SlotMachineDummyTask(u8); +static void SlotMachineSetup_InitBgsWindows(void); +static void SlotMachineSetup_InitVRAM(void); +static void SlotMachineSetup_InitOAM(void); +static void SlotMachineSetup_InitGpuRegs(void); +static void SlotMachineSetup_InitSlotMachineStruct(void); +static void SlotMachineSetup_InitPalsSpritesTasks(void); +static void SlotMachineSetup_InitTilemaps(void); +static void SlotMachineSetup_LoadGfxAndTilemaps(void); +static void SlotMachineSetup_InitVBlank(void); +static void AllocDigitalDisplayGfx(void); +static void SetDigitalDisplayImagePtrs(void); +static void CreateSlotMachineSprites(void); +static void CreateGameplayTasks(void); +static void CreateSlotMachineTask(void); +static void DestroyDigitalDisplayScene(void); +static void Task_SlotMachine(u8); +static bool8 SlotAction_UnfadeScreen(struct Task *); +static bool8 SlotAction_WaitForUnfade(struct Task *); +static bool8 SlotAction_ReadyNewSpin(struct Task *); +static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *); +static bool8 SlotAction_AskInsertBet(struct Task *); +static bool8 SlotAction_HandleBetInput(struct Task *); +static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *); +static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *); +static bool8 SlotAction_WaitForInfoBox(struct Task *); +static bool8 SlotAction_StartSpin(struct Task *); +static bool8 SlotAction_StartReelTimeSpin(struct Task *); +static bool8 SlotAction_SetLuckySpins(struct Task *); +static bool8 SlotAction_AwaitReelStop(struct Task *); +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *); +static bool8 SlotAction_CheckMatches(struct Task *); +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *); +static bool8 SlotAction_EndPayout(struct Task *); +static bool8 SlotAction_MatchedPower(struct Task *); +static bool8 SlotAction_WaitReelTimeAnim(struct Task *); +static bool8 SlotAction_ResetBetTiles(struct Task *); +static bool8 SlotAction_NoMatches(struct Task *); +static bool8 SlotAction_AskQuit(struct Task *); +static bool8 SlotAction_HandleQuitInput(struct Task *); +static bool8 SlotAction_PrintMsg_9999Coins(struct Task *); +static bool8 SlotAction_WaitMsg_9999Coins(struct Task *); +static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *); +static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *); +static bool8 SlotAction_EndGame(struct Task *); +static bool8 SlotAction_FreeDataStructures(struct Task *); static void DrawLuckyFlags(void); static void SetLuckySpins(void); static bool8 IsThisRoundLucky(void); @@ -153,33 +350,33 @@ static void CheckMatch(void); static void CheckMatch_CenterRow(void); static void CheckMatch_TopAndBottom(void); static void CheckMatch_Diagonals(void); -static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +static u8 GetMatchFromSymbols(u8, u8, u8); static void AwardPayout(void); -static void RunAwardPayoutActions(u8 taskId); +static void RunAwardPayoutActions(u8); static bool8 IsFinalTask_RunAwardPayoutActions(void); -static bool8 AwardPayoutAction0(struct Task *task); -static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); -static bool8 AwardPayoutAction_FreeTask(struct Task *task); -static u8 GetTagAtRest(u8 x, s16 y); -static void GameplayTask_StopSlotReel(void); -static void ReelTasks_SetUnkTaskData(u8 a0); -static void sub_8102E1C(u8 a0); -static bool8 IsSlotReelMoving(u8 a0); -static void RunSlotReelActions(u8 taskId); -static bool8 SlotReelAction_StayStill(struct Task *task); -static bool8 SlotReelAction_Spin(struct Task *task); -static bool8 SlotReelAction_DecideWhereToStop(struct Task *task); -static bool8 SlotReelAction_MoveToStop(struct Task *task); -static bool8 SlotReelAction_OscillatingStop(struct Task *task); +static bool8 AwardPayoutAction0(struct Task *); +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *); +static bool8 AwardPayoutAction_FreeTask(struct Task *); +static u8 GetTagAtRest(u8, s16); +static void CreateSlotReelTasks(void); +static void SpinSlotReel(u8); +static void StopSlotReel(u8); +static bool8 IsSlotReelMoving(u8); +static void Task_RunSlotReelActions(u8); +static bool8 SlotReelAction_StayStill(struct Task *); +static bool8 SlotReelAction_Spin(struct Task *); +static bool8 SlotReelAction_DecideWhereToStop(struct Task *); +static bool8 SlotReelAction_MoveToStop(struct Task *); +static bool8 SlotReelAction_OscillatingStop(struct Task *); static bool8 DecideReelTurns_BiasTag_Reel1(void); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8, u8); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8, u8); static bool8 DecideReelTurns_BiasTag_Reel2(void); static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); static bool8 DecideReelTurns_BiasTag_Reel3(void); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8); static void DecideReelTurns_NoBiasTag_Reel1(void); static void DecideReelTurns_NoBiasTag_Reel2(void); static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); @@ -189,243 +386,238 @@ static void DecideReelTurns_NoBiasTag_Reel3(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); -static void sub_8103C14(u8 a0); -static void sub_8103C48(u8 taskId); -static void LoadBetTiles(u8 a0); -static void sub_8103C78(struct Task *task, u8 taskId); -static void sub_8103CAC(struct Task *task, u8 taskId); -static void sub_8103CC8(struct Task *task, u8 taskId); -static void sub_8103D8C(u8 a0); -static void sub_8103DC8(void); -static void sub_8103E04(u8 a0); -static bool8 sub_8103E38(void); -static bool8 sub_8103E7C(void); -static bool8 sub_8103EAC(u8 spriteId); -static void sub_8103EE4(struct Sprite *sprite); -static void sub_8103F70(void); -static bool8 sub_8103FA0(void); -static void sub_8103FE8_(u8 taskId); -static void GameplayTask_PikaPower(void); -static void DisplayPikaPower(u8 pikaPower); -static bool8 sub_81040C8(void); -static void sub_81040E8(u8 taskId); -static void nullsub_68(struct Task *task); -static void sub_810411C(struct Task *task); -static void sub_8104144(struct Task *task); -static void sub_81041AC(struct Task *task); -static void ClearTaskDataFields_2orHigher(struct Task *task); -static void sub_810423C(u8 pikaPower); -static void BeginReeltime(void); -static bool8 IsFinalTask_RunReelTimeActions(void); -static void RunReeltimeActions(u8 taskId); -static void ReeltimeAction0(struct Task *task); -static void ReeltimeAction1(struct Task *task); -static void ReeltimeAction2(struct Task *task); -static void ReeltimeAction3(struct Task *task); -static void ReeltimeAction4(struct Task *task); -static void ReeltimeAction5(struct Task *task); -static void ReeltimeAction6(struct Task *task); -static void ReelTimeAction_LandOnOutcome(struct Task *task); -static void ReeltimeAction8(struct Task *task); -static void ReeltimeAction9(struct Task *task); -static void ReeltimeAction10(struct Task *task); -static void ReeltimeAction11(struct Task *task); -static void ReeltimeAction12(struct Task *task); -static void ReeltimeAction13(struct Task *task); -static void ReeltimeAction14(struct Task *task); -static void ReeltimeAction15(struct Task *task); -static void ReeltimeAction16(struct Task *task); -static void ReeltimeAction17(struct Task *task); -static void sub_8104A40(s16 a0, s16 a1); -static void sub_8104A88(s16 a0); -static void OpenInfoBox(u8 a0); +static void PressStopReelButton(u8); +static void Task_PressStopReelButton(u8); +static void LightenBetTiles(u8); +static void StopReelButton_Press(struct Task *, u8); +static void StopReelButton_Wait(struct Task *, u8); +static void StopReelButton_Unpress(struct Task *, u8); +static void DarkenBetTiles(u8); +static void CreateInvisibleFlashMatchLineSprites(void); +static void FlashMatchLine(u8); +static bool8 IsMatchLineDoneFlashingBeforePayout(void); +static bool8 TryStopMatchLinesFlashing(void); +static bool8 TryStopMatchLineFlashing(u8); +static void SpriteCB_FlashMatchingLines(struct Sprite *); +static void FlashSlotMachineLights(void); +static bool8 TryStopSlotMachineLights(void); +static void Task_FlashSlotMachineLights(u8); +static void CreatePikaPowerBoltTask(void); +static void AddPikaPowerBolt(u8); +static bool8 IsPikaPowerBoltAnimating(void); +static void Task_CreatePikaPowerBolt(u8); +static void PikaPowerBolt_Idle(struct Task *); +static void PikaPowerBolt_AddBolt(struct Task *); +static void PikaPowerBolt_WaitAnim(struct Task *); +static void PikaPowerBolt_ClearAll(struct Task *); +static void ResetPikaPowerBoltTask(struct Task *); +static void LoadPikaPowerMeter(u8 ); +static void BeginReelTime(void); +static bool8 IsReelTimeTaskDone(void); +static void Task_ReelTime(u8 ); +static void ReelTime_Init(struct Task *); +static void ReelTime_WindowEnter(struct Task *); +static void ReelTime_WaitStartPikachu(struct Task *); +static void ReelTime_PikachuSpeedUp1(struct Task *); +static void ReelTime_PikachuSpeedUp2(struct Task *); +static void ReelTime_WaitReel(struct Task *); +static void ReelTime_CheckExplode(struct Task *); +static void ReelTime_LandOnOutcome(struct Task *); +static void ReelTime_PikachuReact(struct Task *); +static void ReelTime_WaitClearPikaPower(struct Task *); +static void ReelTime_CloseWindow(struct Task *); +static void ReelTime_DestroySprites(struct Task *); +static void ReelTime_SetReelIncrement(struct Task *); +static void ReelTime_EndSuccess(struct Task *); +static void ReelTime_ExplodeMachine(struct Task *); +static void ReelTime_WaitExplode(struct Task *); +static void ReelTime_WaitSmoke(struct Task *); +static void ReelTime_EndFailure(struct Task *); +static void LoadReelTimeWindowTilemap(s16, s16); +static void ClearReelTimeWindowTilemap(s16); +static void OpenInfoBox(u8); static bool8 IsInfoBoxClosed(void); -static void RunInfoBoxActions(u8 taskId); -static void InfoBox_FadeIn(struct Task *task); -static void InfoBox_WaitForFade(struct Task *task); -static void InfoBox_8104B80(struct Task *task); -static void InfoBox_AwaitPlayerInput(struct Task *task); -static void InfoBox_AddText(struct Task *task); -static void InfoBox_8104BFC(struct Task *task); -static void InfoBox_812DE14(struct Task *task); -static void InfoBox_812DE30(struct Task *task); -static void InfoBox_FreeTask(struct Task *task); -static void sub_8104C5C(void); -static void sub_8104CAC(u8 arg0); -static bool8 sub_8104E18(void); -static void nullsub_69(struct Task *task); -static void sub_8104E74_(u8 taskId); -static void sub_8104EA8(void); -static void sub_8104F8C(void); -static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -static void sub_81050C4(void); -static void sub_8105100(void); -static void sub_810514C(void); -static void sub_81051C0(void); -static void sub_8105284_(void); -static void sub_81052EC(void); -static void sub_81053A0(void); -static void sub_810545C(void); -static void sub_81054B8(void); -static void sub_8105524(void); -static void sub_8105554(void); -static void CreateReelTimeSprites1(void); -static void sub_8105688(s16 a0); -static void sub_81056C0(void); -static void CreateReelTimeSprite2(void); -static void sub_81057E8(s16 a0); -static void sub_8105804(void); -static void sub_8105854(void); -static void sub_81058A0(void); -static void sub_81058C4(void); -static void sub_81059B8(void); -static void sub_81059E8(void); -static bool8 sub_8105ACC(void); -static void sub_8105AEC(void); -static u8 sub_8105B1C(s16 x, s16 y); -static void sub_8105B88(u8 spriteId); -static u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); -static void sub_81063C0(void); -static void sub_8106404(void); -static void sub_8106448(void); -static void sub_81064B8(void); -static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -static void sub_81065DC(void); -static void sub_812F958(void); -static void sub_812F968(void); -static void LoadSlotMachineWheelOverlay(void); -static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); -static void sub_8105C64(struct Sprite *sprite); -static void sub_8105F54(struct Sprite *sprite); -static void sub_8105F9C(struct Sprite *sprite); -static void sub_8105EB4(struct Sprite *sprite); -static void sub_8105C6C(struct Sprite *sprite); -static void sub_8105CF0(struct Sprite *sprite); -static void sub_8105D08(struct Sprite *sprite); -static void sub_8105D20(struct Sprite *sprite); -static void sub_8105D3C(struct Sprite *sprite); -static void sub_8105DA4(struct Sprite *sprite); -static void sub_8105E08(struct Sprite *sprite); -static void sub_8106058(struct Sprite *sprite); -static void sub_81060FC(struct Sprite *sprite); -static void sub_81061C8(struct Sprite *sprite); -static void sub_8106230(struct Sprite *sprite); -static void sub_810639C(void); -static void sub_8106364(void); -static void sub_8106370(void); -static void nullsub_70(void); -static void sub_8104F18(struct Sprite *sprite); -static void sub_810506C(struct Sprite *sprite); -static void sub_8105170(struct Sprite *sprite); -static void sub_810535C(struct Sprite *sprite); -static void sub_810562C(struct Sprite *sprite); -static void sub_8105784(struct Sprite *sprite); -static void sub_8105894(struct Sprite *sprite); -static void sub_810594C(struct Sprite *sprite); -static void sub_8105A38(struct Sprite *sprite); -static void sub_8105B70(struct Sprite *sprite); +static void RunInfoBoxActions(u8 ); +static void InfoBox_FadeIn(struct Task *); +static void InfoBox_WaitForFade(struct Task *); +static void InfoBox_DrawWindow(struct Task *); +static void InfoBox_AwaitPlayerInput(struct Task *); +static void InfoBox_AddText(struct Task *); +static void InfoBox_LoadPikaPowerMeter(struct Task *); +static void InfoBox_LoadSlotMachineTilemap(struct Task *); +static void InfoBox_CreateDigitalDisplay(struct Task *); +static void InfoBox_FreeTask(struct Task *); +static void CreateDigitalDisplayTask(void); +static void CreateDigitalDisplayScene(u8 ); +static bool8 IsDigitalDisplayAnimFinished(void); +static void DigitalDisplay_Idle(struct Task *); +static void Task_DigitalDisplay(u8); +static void CreateReelSymbolSprites(void); +static void CreateCreditPayoutNumberSprites(void); +static void CreateCoinNumberSprite(s16, s16, u8, s16); +static void CreateReelBackgroundSprite(void); +static void CreateReelTimePikachuSprite(void); +static void DestroyReelTimePikachuSprite(void); +static void CreateReelTimeMachineSprites(void); +static void CreateBrokenReelTimeMachineSprite(void); +static void CreateReelTimeNumberSprites(void); +static void CreateReelTimeShadowSprites(void); +static void CreateReelTimeNumberGapSprite(void); +static void DestroyReelTimeMachineSprites(void); +static void DestroyReelTimeShadowSprites(void); +static void DestroyBrokenReelTimeMachineSprite(void); +static void CreateReelTimeBoltSprites(void); +static void SetReelTimeBoltDelay(s16); +static void DestroyReelTimeBoltSprites(void); +static void CreateReelTimePikachuAuraSprites(void); +static void SetReelTimePikachuAuraFlashDelay(s16); +static void DestroyReelTimePikachuAuraSprites(void); +static void CreateReelTimeExplosionSprite(void); +static void DestroyReelTimeExplosionSprite(void); +static void CreateReelTimeDuckSprites(void); +static void DestroyReelTimeDuckSprites(void); +static void CreateReelTimeSmokeSprite(void); +static bool8 IsReelTimeSmokeAnimFinished(void); +static void DestroyReelTimeSmokeSprite(void); +static u8 CreatePikaPowerBoltSprite(s16, s16); +static void DestroyPikaPowerBoltSprite(u8); +static u8 CreateDigitalDisplaySprite(u8, void (*callback)(struct Sprite*), s16, s16, s16); +static void LoadSlotMachineGfx(void); +static void LoadReelBackground(void); +static void LoadMenuGfx(void); +static void LoadMenuAndReelOverlayTilemaps(void); +static void SetReelButtonTilemap(s16, u16, u16, u16, u16); +static void LoadInfoBoxTilemap(void); +static void LoadSlotMachineMenuTilemap(void); +static void LoadSlotMachineReelOverlay(void); +static u8 CreateStdDigitalDisplaySprite(u8, u8, s16); +static void SpriteCB_DigitalDisplay_Static(struct Sprite *); +static void SpriteCB_DigitalDisplay_Stop(struct Sprite *); +static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *); +static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *); +static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *); +static void SpriteCB_DigitalDisplay_Reel(struct Sprite *); +static void SpriteCB_DigitalDisplay_Time(struct Sprite *); +static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *); +static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *); +static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *); +static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *); +static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *); +static void EndDigitalDisplayScene_InsertBet(void); +static void EndDigitalDisplayScene_StopReel(void); +static void EndDigitalDisplayScene_Win(void); +static void EndDigitalDisplayScene_Dummy(void); +static void SpriteCB_ReelSymbol(struct Sprite *); +static void SpriteCB_CoinNumber(struct Sprite *); +static void SpriteCB_ReelTimePikachu(struct Sprite *); +static void SpriteCB_ReelTimeNumbers(struct Sprite *); +static void SpriteCB_ReelTimeBolt(struct Sprite *); +static void SpriteCB_ReelTimePikachuAura(struct Sprite *); +static void SpriteCB_ReelTimeExplosion(struct Sprite *); +static void SpriteCB_ReelTimeDuck(struct Sprite *); +static void SpriteCB_ReelTimeSmoke(struct Sprite *); +static void SpriteCB_PikaPowerBolt(struct Sprite *); // Ewram variables -static EWRAM_DATA u16 *sUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *sMenuGfx = NULL; static EWRAM_DATA u16 *sSelectedPikaPowerTile = NULL; -static EWRAM_DATA u16 *sUnknown_0203AAD0 = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAD4 = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAD8 = NULL; -static EWRAM_DATA u16 *sUnknown_0203AADC = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAE0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAEC = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAFC = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB00 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB04 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB08 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB0C = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB10 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB14 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB18 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB1C = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB20 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB24 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB28 = NULL; -static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB2C = NULL; -static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; -static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; +static EWRAM_DATA u16 *sReelOverlay_Tilemap = NULL; +static EWRAM_DATA u8 *sDigitalDisplayGfxPtr = NULL; +static EWRAM_DATA u8 *sReelTimeGfxPtr = NULL; +static EWRAM_DATA u16 *sReelButtonPress_Tilemap = NULL; +static EWRAM_DATA u8 *sReelBackground_Gfx = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimePikachu = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachineAntennae = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachine = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_BrokenReelTimeMachine = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Reel = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Time = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Insert = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Stop = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Win = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Lose = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Bonus = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Big = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Reg = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_AButton = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Smoke = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Number = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Pokeball = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_DPad = NULL; +static EWRAM_DATA struct SpriteSheet *sReelBackgroundSpriteSheet = NULL; +static EWRAM_DATA struct SpriteSheet *sSlotMachineSpritesheetsPtr = NULL; +static EWRAM_DATA struct SlotMachine *sSlotMachine = NULL; // IWRAM bss -static struct SpriteFrameImage *gUnknown_03001188[26]; +static struct SpriteFrameImage *sImageTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; // Const rom data. -static const struct UnkStruct1 *const gUnknown_083ED048[]; -static const u16 gPalette_83EDE24[]; -static const u8 gLuckyRoundProbabilities[][3]; -static const u8 gBiasTags[]; -static const u16 gLuckyFlagSettings_Top3[]; -static const u16 gLuckyFlagSettings_NotTop3[]; -static const s16 gUnknown_083ECE7E[][2]; -static const SpriteCallback gUnknown_083ECF0C[]; -static const struct SpriteTemplate *const gUnknown_083EDB5C[]; -static const struct SubspriteTable *const gUnknown_083EDBC4[]; -static const struct SpriteTemplate gSpriteTemplate_83ED6CC; -static const struct SpriteTemplate gSpriteTemplate_83ED564; -static const struct SpriteTemplate gSpriteTemplate_83ED54C; -static const struct SpriteTemplate gSpriteTemplate_83ED534; -static const u8 gUnknown_083ECC58[2]; -static const struct SpriteTemplate gSpriteTemplate_83ED51C; -static const u16 gProbabilityTable_SkipToReeltimeAction14[]; -static const u16 *const gUnknown_083EDE10[]; -static const u16 gReelIncrementTable[][2]; -static const u16 gReelTimeBonusIncrementTable[]; -static const u16 gSlotMatchFlags[]; -static const u16 gSlotPayouts[]; -static const u8 *const gUnknown_083EDCE4; -static const u8 *const gUnknown_083EDCDC; -static const u32 gReelTimeGfx[]; -static const struct SpriteSheet gSlotMachineSpriteSheets[22]; -static const struct SpritePalette gSlotMachineSpritePalettes[]; -static const u16 *const gUnknown_083EDE20; -static const s16 gInitialReelPositions[][2]; -static const struct BgTemplate gUnknown_085A7424[4]; -static const struct WindowTemplate gUnknown_085A7434[]; -static const u8 gLuckyFlagProbabilities_Top3[][6]; -static const u8 gLuckyFlagProbabilities_NotTop3[][6]; -static const u8 gReeltimeProbabilities_UnluckyGame[][17]; -static const u8 gReelTimeProbabilities_LuckyGame[][17]; -static const u8 gSym2Match[]; -static const u8 gReelTimeTags[]; -static const u8 gReelSymbols[][REEL_NUM_TAGS]; -static const u8 *const gUnknown_083EDD08[]; -static const u16 *const gUnknown_083EDD1C[]; -static const u8 gUnknown_083EDD30[]; -static const u8 gBettingTilesId[][2]; -static const u8 gNumberBettingTiles[]; -static const u16 *const gUnknown_083EDDA0[]; -static const u16 *const gUnknown_083EDDAC; -static const u16 gReelTimeWindowTilemap[]; -static const u16 gUnknown_085A9898[]; -static void (*const gUnknown_083ED064[])(void); -static const struct SpriteTemplate gSpriteTemplate_83ED504; -static const struct SpriteTemplate gSpriteTemplate_83ED4EC; -static const struct SpriteTemplate gSpriteTemplate_83ED4D4; -static const struct SpriteTemplate gSpriteTemplate_83ED4BC; -static const struct SpriteTemplate gSpriteTemplate_83ED4A4; -static const struct SpriteTemplate gSpriteTemplate_83ED474; -static const struct SpriteTemplate gSpriteTemplate_83ED48C; -static const struct SpriteTemplate gSpriteTemplate_83ED444; -static const struct SpriteTemplate gSpriteTemplate_83ED42C; -static const struct SpriteTemplate gSpriteTemplate_83ED414; -static const struct SpriteTemplate gSpriteTemplate_83ED45C; -static const struct SubspriteTable gSubspriteTables_83ED7D4[]; -static const struct SubspriteTable gSubspriteTables_83ED7B4[]; -static const struct SubspriteTable gSubspriteTables_83ED78C[]; -static const struct SubspriteTable gSubspriteTables_83ED73C[]; -static const struct SubspriteTable gSubspriteTables_83ED75C[]; -static const struct SubspriteTable gSubspriteTables_83ED704[]; - -static const struct BgTemplate gUnknown_085A7424[] = +static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[]; +static const u16 sUnkPalette[]; +static const u8 sLuckyRoundProbabilities[][3]; +static const u8 sBiasTags[]; +static const u16 sLuckyFlagSettings_Top3[]; +static const u16 sLuckyFlagSettings_NotTop3[]; +static const s16 sDigitalDisplay_SpriteCoords[][2]; +static const SpriteCallback sDigitalDisplay_SpriteCallbacks[]; +static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; +static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; +static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; +static const u16 sReelTimeExplodeProbability[]; +static const u16 *const sPokeballShiningPalTable[]; +static const u16 sReelIncrementTable[][2]; +static const u16 sReelTimeBonusIncrementTable[]; +static const u16 sSlotMatchFlags[]; +static const u16 sSlotPayouts[]; +static const u8 *const sReelBackground_Tilemap; +static const u32 sReelTimeGfx[]; +static const struct SpriteSheet sSlotMachineSpriteSheets[22]; +static const struct SpritePalette sSlotMachineSpritePalettes[]; +static const u16 *const sDigitalDisplay_Pal; +static const s16 sInitialReelPositions[NUM_REELS][2]; +static const u8 sLuckyFlagProbabilities_Top3[][6]; +static const u8 sLuckyFlagProbabilities_NotTop3[][6]; +static const u8 sReeltimeProbabilities_UnluckyGame[][17]; +static const u8 sReelTimeProbabilities_LuckyGame[][17]; +static const u8 sSymToMatch[]; +static const u8 sReelTimeTags[]; +static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL]; +static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES]; +static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES]; +static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES]; +static const u8 sBetToMatchLineIds[MAX_BET][2]; +static const u8 sMatchLinesPerBet[MAX_BET]; +static const u16 *const sFlashingLightsPalTable[]; +static const u16 *const sSlotMachineMenu_Pal; +static const u16 sReelTimeWindow_Tilemap[]; +static const u16 sEmptyTilemap[]; +static void (*const sDigitalDisplaySceneExitCallbacks[])(void); +static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumberGap; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers; +static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine; +static const struct SpriteTemplate sSpriteTemplate_ReelBackground; +static const struct SpriteTemplate sSpriteTemplate_CoinNumber; +static const struct SpriteTemplate sSpriteTemplate_ReelSymbol; +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu; +static const struct SubspriteTable sSubspriteTable_ReelTimeNumberGap[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[]; +static const struct SubspriteTable sSubspriteTable_BrokenReelTimeMachine[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeMachineAntennae[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeMachine[]; +static const struct SubspriteTable sSubspriteTable_ReelBackground[]; + +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -465,194 +657,212 @@ static const struct BgTemplate gUnknown_085A7424[] = }, }; -static const struct WindowTemplate gUnknown_085A7434[] = +static const struct WindowTemplate sWindowTemplates[] = { - {0, 2, 15, 0x1B, 4, 15, 0x194}, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x194 + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_085A7444 = +static const struct WindowTemplate sWindowTemplate_InfoBox = { - 0, 1, 3, 20, 13, 13, 1 + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 20, + .height = 13, + .paletteNum = 13, + .baseBlock = 1 }; static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; -bool8 (*const SlotActions[])(struct Task *task) = -{ - SlotAction_UnfadeScreen, // 0 - SlotAction_WaitForUnfade, // 1 - SlotAction_SetSlotMachineVars, // 2 - SlotAction3, // 3 - SlotAction4, // 4 - SlotAction_AwaitPlayerInput, // 5 - SlotAction_PrintYouDontHaveThreeCoins, // 6 - SlotAction_ExitYouDontHaveThreeCoinsMessage, // 7 - SlotAction_GivingInformation, // 8 - SlotAction9, // 9 - SlotAction10, // 10 - SlotAction_SetLuckySpins, // 11 - SlotAction_AwaitReelStop, // 12 - SlotAction_WaitForAllReelsToStop, // 13 - SlotAction_CheckMatches, // 14 - SlotAction_WaitForPayoutToBeAwarded, // 15 - SlotAction_EndOfRoll, // 16 - SlotAction_MatchedPower, // 17 - SlotAction18, // 18 - SlotAction_Loop, // 19 - SlotAction_NoMatches, // 20 - SlotAction_PrintQuitTheGame, // 21 - SlotAction_SeeIfPlayerQuits, // 22 - SlotAction_PrintMessage_9999Coins, // 23 - SlotAction_ExitMessage_9999Coins, // 24 - SlotAction_PrintMessage_NoMoreCoins, // 25 - SlotAction_ExitMessage_NoMoreCoins, // 26 - SlotAction_EndGame, // 27 - SlotAction_FreeDataStructures, // 28 -}; - -bool8 (*const AwardPayoutActions[])(struct Task *task) = +static bool8 (*const sSlotActions[])(struct Task *task) = +{ + [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, + [SLOT_ACTION_WAIT_FADE] = SlotAction_WaitForUnfade, + [SLOT_ACTION_READY_NEW_SPIN] = SlotAction_ReadyNewSpin, + [SLOT_ACTION_READY_NEW_RT_SPIN] = SlotAction_ReadyNewReelTimeSpin, + [SLOT_ACTION_ASK_INSERT_BET] = SlotAction_AskInsertBet, + [SLOT_ACTION_BET_INPUT] = SlotAction_HandleBetInput, + [SLOT_ACTION_MSG_NEED_3_COINS] = SlotAction_PrintMsg_Need3Coins, + [SLOT_ACTION_WAIT_MSG_NEED_3_COINS] = SlotAction_WaitMsg_Need3Coins, + [SLOT_ACTION_WAIT_INFO_BOX] = SlotAction_WaitForInfoBox, + [SLOT_ACTION_START_SPIN] = SlotAction_StartSpin, + [SLOT_ACTION_START_RT_SPIN] = SlotAction_StartReelTimeSpin, + [SLOT_ACTION_SET_LUCKY_SPINS] = SlotAction_SetLuckySpins, + [SLOT_ACTION_AWAIT_REEL_STOP] = SlotAction_AwaitReelStop, + [SLOT_ACTION_AWAIT_ALL_REELS_STOP] = SlotAction_WaitForAllReelsToStop, + [SLOT_ACTION_CHECK_MATCHES] = SlotAction_CheckMatches, + [SLOT_ACTION_WAIT_PAYOUT] = SlotAction_WaitForPayoutToBeAwarded, + [SLOT_ACTION_END_PAYOUT] = SlotAction_EndPayout, + [SLOT_ACTION_MATCHED_POWER] = SlotAction_MatchedPower, + [SLOT_ACTION_WAIT_RT_ANIM] = SlotAction_WaitReelTimeAnim, + [SLOT_ACTION_RESET_BET_TILES] = SlotAction_ResetBetTiles, + [SLOT_ACTION_NO_MATCHES] = SlotAction_NoMatches, + [SLOT_ACTION_ASK_QUIT] = SlotAction_AskQuit, + [SLOT_ACTION_HANDLE_QUIT_INPUT] = SlotAction_HandleQuitInput, + [SLOT_ACTION_MSG_MAX_COINS] = SlotAction_PrintMsg_9999Coins, + [SLOT_ACTION_WAIT_MSG_MAX_COINS] = SlotAction_WaitMsg_9999Coins, + [SLOT_ACTION_MSG_NO_MORE_COINS] = SlotAction_PrintMsg_NoMoreCoins, + [SLOT_ACTION_WAIT_MSG_NO_MORE_COINS] = SlotAction_WaitMsg_NoMoreCoins, + [SLOT_ACTION_END] = SlotAction_EndGame, + [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, +}; + +static bool8 (*const sAwardPayoutActions[])(struct Task *task) = { AwardPayoutAction0, AwardPayoutAction_GivePayoutToPlayer, AwardPayoutAction_FreeTask }; -bool8 (*const SlotReelActions[])(struct Task *task) = +static bool8 (*const sSlotReelActions[])(struct Task *task) = { - SlotReelAction_StayStill, - SlotReelAction_Spin, - SlotReelAction_DecideWhereToStop, - SlotReelAction_MoveToStop, - SlotReelAction_OscillatingStop + [REEL_ACTION_STILL] = SlotReelAction_StayStill, + [REEL_ACTION_SPIN] = SlotReelAction_Spin, + [REEL_ACTION_STOP] = SlotReelAction_DecideWhereToStop, + [REEL_ACTION_STOP_MOVE] = SlotReelAction_MoveToStop, + [REEL_ACTION_STOP_SHAKE] = SlotReelAction_OscillatingStop }; // returns True if a match with the biasTag is possible in that reel // also modifies data in sSlotMachine reel arrays to indicate how to get to the matching state -bool8 (*const DecideReelTurns_BiasTag[])(void) = +static bool8 (*const sDecideReelTurns_BiasTag[NUM_REELS])(void) = { DecideReelTurns_BiasTag_Reel1, DecideReelTurns_BiasTag_Reel2, DecideReelTurns_BiasTag_Reel3 }; -void (*const DecideReelTurns_NoBiasTag[])(void) = +static void (*const sDecideReelTurns_NoBiasTag[NUM_REELS])(void) = { DecideReelTurns_NoBiasTag_Reel1, DecideReelTurns_NoBiasTag_Reel2, DecideReelTurns_NoBiasTag_Reel3 }; -const u16 ReelStopShocks[] = {2, 4, 4, 4, 8}; +static const u16 sReelStopShocks[] = {2, 4, 4, 4, 8}; -bool8 (*const DecideReelTurns_BiasTag_Reel1_Bets[])(u8 tag1, u8 tag2) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel1_Bets[MAX_BET])(u8 tag1, u8 tag2) = { DecideReelTurns_BiasTag_Reel1_Bet1, DecideReelTurns_BiasTag_Reel1_Bet2or3, DecideReelTurns_BiasTag_Reel1_Bet2or3 }; -bool8 (*const DecideReelTurns_BiasTag_Reel2_Bets[])(void) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel2_Bets[MAX_BET])(void) = { DecideReelTurns_BiasTag_Reel2_Bet1or2, DecideReelTurns_BiasTag_Reel2_Bet1or2, DecideReelTurns_BiasTag_Reel2_Bet3 }; -bool8 (*const DecideReelTurns_BiasTag_Reel3_Bets[])(u8 biasTag) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel3_Bets[MAX_BET])(u8 biasTag) = { DecideReelTurns_BiasTag_Reel3_Bet1or2, DecideReelTurns_BiasTag_Reel3_Bet1or2, DecideReelTurns_BiasTag_Reel3_Bet3 }; -void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = +static void (*const sDecideReelTurns_NoBiasTag_Reel2_Bets[MAX_BET])(void) = { DecideReelTurns_NoBiasTag_Reel2_Bet1, DecideReelTurns_NoBiasTag_Reel2_Bet2, DecideReelTurns_NoBiasTag_Reel2_Bet3 }; -void (*const DecideReelTurns_NoBiasTag_Reel3_Bets[])(void) = +static void (*const sDecideReelTurns_NoBiasTag_Reel3_Bets[MAX_BET])(void) = { DecideReelTurns_NoBiasTag_Reel3_Bet1, DecideReelTurns_NoBiasTag_Reel3_Bet2, DecideReelTurns_NoBiasTag_Reel3_Bet3 }; -void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = +static void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = { - sub_8103C78, - sub_8103CAC, - sub_8103CC8 + StopReelButton_Press, + StopReelButton_Wait, + StopReelButton_Unpress }; -const s16 gUnknown_083ECBAC[] = {5, 10, 15}; +static const s16 sReelButtonOffsets[NUM_REELS] = {5, 10, 15}; -void (*const gUnknown_083ECBB4[])(struct Task *task) = +static void (*const sPikaPowerBoltFuncs[])(struct Task *task) = { - nullsub_68, - sub_810411C, - sub_8104144, - sub_81041AC + PikaPowerBolt_Idle, + PikaPowerBolt_AddBolt, + PikaPowerBolt_WaitAnim, + PikaPowerBolt_ClearAll }; -const u16 pikaPowerTileTable[][2] = +static const u16 sPikaPowerTileTable[][2] = { {0x9e, 0x6e}, {0x9f, 0x6f}, {0xaf, 0x7f}, }; -void (*const ReeltimeActions[])(struct Task *task) = -{ - ReeltimeAction0, - ReeltimeAction1, - ReeltimeAction2, - ReeltimeAction3, - ReeltimeAction4, - ReeltimeAction5, - ReeltimeAction6, - ReelTimeAction_LandOnOutcome, - ReeltimeAction8, - ReeltimeAction9, - ReeltimeAction10, - ReeltimeAction11, - ReeltimeAction12, - ReeltimeAction13, - ReeltimeAction14, - ReeltimeAction15, - ReeltimeAction16, - ReeltimeAction10, - ReeltimeAction17 -}; - -const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; -const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; -const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; - -void (*const InfoBoxActions[])(struct Task *task) = -{ +static void (*const sReelTimeActions[])(struct Task *task) = +{ + ReelTime_Init, + ReelTime_WindowEnter, + ReelTime_WaitStartPikachu, + ReelTime_PikachuSpeedUp1, + ReelTime_PikachuSpeedUp2, + ReelTime_WaitReel, + ReelTime_CheckExplode, + ReelTime_LandOnOutcome, + ReelTime_PikachuReact, + ReelTime_WaitClearPikaPower, + ReelTime_CloseWindow, + ReelTime_DestroySprites, + ReelTime_SetReelIncrement, + ReelTime_EndSuccess, + ReelTime_ExplodeMachine, + ReelTime_WaitExplode, + ReelTime_WaitSmoke, + ReelTime_CloseWindow, + ReelTime_EndFailure +}; + +static const u8 sReelTimePikachuAnimIds[] = {1, 1, 2, 2}; +static const s16 sReelTimeBoltDelays[] = {64, 48, 24, 8}; +static const s16 sPikachuAuraFlashDelays[] = {10, 8, 6, 4}; + +static void (*const sInfoBoxActions[])(struct Task *task) = +{ + // Go to Info screen InfoBox_FadeIn, InfoBox_WaitForFade, - InfoBox_8104B80, + InfoBox_DrawWindow, InfoBox_WaitForFade, InfoBox_AddText, InfoBox_WaitForFade, + // On Info screen InfoBox_AwaitPlayerInput, + // Exit Info screen InfoBox_WaitForFade, - InfoBox_812DE14, + InfoBox_LoadSlotMachineTilemap, InfoBox_WaitForFade, - InfoBox_812DE30, + InfoBox_CreateDigitalDisplay, InfoBox_WaitForFade, - InfoBox_8104BFC, + InfoBox_LoadPikaPowerMeter, InfoBox_WaitForFade, InfoBox_FreeTask, }; -void (*const gUnknown_083ECC54[])(struct Task *task) = +// Just idles, digital display is handled by CreateDigitalDisplayScene and sprite callbacks +static void (*const sDigitalDisplayActions[])(struct Task *task) = { - nullsub_69, + DigitalDisplay_Idle, }; @@ -679,12 +889,12 @@ static void Task_FadeToSlotMachine(u8 taskId) } } -void PlaySlotMachine(u8 slotMachineIndex, MainCallback cb) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback exitCallback) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(slotMachineIndex, cb); + PlaySlotMachine_Internal(slotMachineIndex, exitCallback); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } @@ -696,33 +906,33 @@ static void CB2_SlotMachineSetup(void) switch (gMain.state) { case 0: - SlotMachineSetup_0_0(); - SlotMachineSetup_0_1(); + SlotMachineSetup_InitBgsWindows(); + SlotMachineSetup_InitSlotMachineStruct(); gMain.state++; break; case 1: - SlotMachineSetup_1_0(); + SlotMachineSetup_InitVRAM(); gMain.state++; break; case 2: - SlotMachineSetup_2_0(); - SlotMachineSetup_2_1(); + SlotMachineSetup_InitOAM(); + SlotMachineSetup_InitGpuRegs(); gMain.state++; break; case 3: - SlotMachineSetup_3_0(); + SlotMachineSetup_InitPalsSpritesTasks(); gMain.state++; break; case 4: - SlotMachineSetup_4_0(); + SlotMachineSetup_InitTilemaps(); gMain.state++; break; case 5: - SlotMachineSetup_5_0(); + SlotMachineSetup_LoadGfxAndTilemaps(); gMain.state++; break; case 6: - SlotMachineSetup_6_0(); + SlotMachineSetup_InitVBlank(); gMain.state++; break; case 7: @@ -734,25 +944,25 @@ static void CB2_SlotMachineSetup(void) gMain.state++; break; case 8: - SlotMachineSetup_8_0(); + AllocDigitalDisplayGfx(); gMain.state++; break; case 9: - SlotMachineSetup_9_0(); + SetDigitalDisplayImagePtrs(); gMain.state++; break; case 10: - SlotMachineSetup_10_0(); - SlotMachineSetupGameplayTasks(); + CreateSlotMachineSprites(); + CreateGameplayTasks(); gMain.state++; break; case 11: - SetMainCallback2(CB2_SlotMachineLoop); + SetMainCallback2(CB2_SlotMachine); break; } } -static void CB2_SlotMachineLoop(void) +static void CB2_SlotMachine(void) { RunTasks(); AnimateSprites(); @@ -760,7 +970,7 @@ static void CB2_SlotMachineLoop(void) UpdatePaletteFade(); } -static void SlotMachine_VBlankCallback(void) +static void SlotMachine_VBlankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -771,54 +981,54 @@ static void SlotMachine_VBlankCallback(void) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback exitCallback) { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + StoreWordInTwoHalfwords((u16 *)&task->data[1], (intptr_t)exitCallback); } -static void sub_81019EC(void) +static void SlotMachineInitDummyTask(void) { struct Task *task = &gTasks[FindTaskIdByFunc(SlotMachineDummyTask)]; sSlotMachine->machineId = task->data[0]; - LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); + LoadWordFromTwoHalfwords((u16 *)&task->data[1], (u32 *)&sSlotMachine->prevMainCb); } static void SlotMachineDummyTask(u8 taskId) { } -static void SlotMachineSetup_0_0(void) +static void SlotMachineSetup_InitBgsWindows(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085A7424, ARRAY_COUNT(gUnknown_085A7424)); - InitWindows(gUnknown_085A7434); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); } -static void SlotMachineSetup_6_0(void) +static void SlotMachineSetup_InitVBlank(void) { - SetVBlankCallback(SlotMachine_VBlankCallback); + SetVBlankCallback(SlotMachine_VBlankCB); EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -static void SlotMachineSetup_1_0(void) +static void SlotMachineSetup_InitVRAM(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -static void SlotMachineSetup_2_0(void) +static void SlotMachineSetup_InitOAM(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -static void SlotMachineSetup_2_1(void) +static void SlotMachineSetup_InitGpuRegs(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -832,48 +1042,48 @@ static void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } // set up initial state of slot machine -static void SlotMachineSetup_0_1(void) +static void SlotMachineSetup_InitSlotMachineStruct(void) { u8 i; - sub_81019EC(); // assigns sSlotMachine->machineId, etc. + SlotMachineInitDummyTask(); // assigns sSlotMachine->machineId, etc. sSlotMachine->state = 0; sSlotMachine->pikaPower = 0; sSlotMachine->luckyGame = Random() & 1; sSlotMachine->luckyFlags = 0; sSlotMachine->matchedSymbols = 0; - sSlotMachine->fairRollsLeft = 0; - sSlotMachine->fairRollsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = 0; + sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->coins = GetCoins(); sSlotMachine->payout = 0; sSlotMachine->netCoinLoss = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->reelIncrement = 8; - sSlotMachine->win0h = 0xf0; - sSlotMachine->win0v = 0xa0; - sSlotMachine->winIn = 0x3f; - sSlotMachine->winOut = 0x3f; + sSlotMachine->win0h = DISPLAY_WIDTH; + sSlotMachine->win0v = DISPLAY_HEIGHT; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; - sSlotMachine->reelPositions[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelPositions[i] * REEL_TAG_HEIGHT; - sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; + sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % SYMBOLS_PER_REEL; + sSlotMachine->reelPixelOffsets[i] = SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT - sSlotMachine->reelPositions[i] * REEL_SYMBOL_HEIGHT; + sSlotMachine->reelPixelOffsets[i] %= SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT; } AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } -static void SlotMachineSetup_3_0(void) +static void SlotMachineSetup_InitPalsSpritesTasks(void) { ResetPaletteFade(); ResetSpriteData(); @@ -882,69 +1092,70 @@ static void SlotMachineSetup_3_0(void) ResetTasks(); } -static void SlotMachineSetup_4_0(void) +static void SlotMachineSetup_InitTilemaps(void) { sSelectedPikaPowerTile = Alloc(8); - sUnknown_0203AAD0 = AllocZeroed(0xE); - sUnknown_0203AADC = AllocZeroed(8); + sReelOverlay_Tilemap = AllocZeroed(14); + sReelButtonPress_Tilemap = AllocZeroed(8); // several of these are 1 bit off from each other - sUnknown_0203AAD0[0] = 0x2051; - sUnknown_0203AAD0[1] = 0x2851; - sUnknown_0203AAD0[2] = 0x2061; - sUnknown_0203AAD0[3] = 0x2861; - sUnknown_0203AAD0[4] = 0x20BE; - sUnknown_0203AAD0[5] = 0x28BE; - sUnknown_0203AAD0[6] = 0x20BF; + sReelOverlay_Tilemap[0] = 0x2051; + sReelOverlay_Tilemap[1] = 0x2851; + sReelOverlay_Tilemap[2] = 0x2061; + sReelOverlay_Tilemap[3] = 0x2861; + sReelOverlay_Tilemap[4] = 0x20BE; + sReelOverlay_Tilemap[5] = 0x28BE; + sReelOverlay_Tilemap[6] = 0x20BF; } -static void SlotMachineSetup_5_0(void) +static void SlotMachineSetup_LoadGfxAndTilemaps(void) { - sub_8106448(); - sub_81064B8(); - sub_81063C0(); + LoadMenuGfx(); + LoadMenuAndReelOverlayTilemaps(); + LoadSlotMachineGfx(); LoadMessageBoxGfx(0, 0x200, 0xF0); LoadUserWindowBorderGfx(0, 0x214, 0xE0); PutWindowTilemap(0); } -static void SlotMachineSetup_10_0(void) +static void CreateSlotMachineSprites(void) { - sub_8104EA8(); - sub_8104F8C(); - sub_8103DC8(); - sub_81050C4(); + CreateReelSymbolSprites(); + CreateCreditPayoutNumberSprites(); + CreateInvisibleFlashMatchLineSprites(); + CreateReelBackgroundSprite(); } -// create gameplay tasks -static void SlotMachineSetupGameplayTasks(void) +static void CreateGameplayTasks(void) { - GameplayTask_PikaPower(); - GameplayTask_StopSlotReel(); - sub_8104C5C(); - GameplayTasks_Slots(); + CreatePikaPowerBoltTask(); + CreateSlotReelTasks(); + CreateDigitalDisplayTask(); + CreateSlotMachineTask(); } -static void GameplayTasks_Slots(void) +static void CreateSlotMachineTask(void) { - RunSlotActions(CreateTask(RunSlotActions, 0)); + Task_SlotMachine(CreateTask(Task_SlotMachine, 0)); } // task->data[0] is a timer -static void RunSlotActions(u8 taskId) +static void Task_SlotMachine(u8 taskId) { - while (SlotActions[sSlotMachine->state](&gTasks[taskId])) + while (sSlotActions[sSlotMachine->state](&gTasks[taskId])) ; } +// SLOT_ACTION_UNFADE static bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - sub_810423C(sSlotMachine->pikaPower); - sSlotMachine->state++; + LoadPikaPowerMeter(sSlotMachine->pikaPower); + sSlotMachine->state++; // SLOT_ACTION_WAIT_FADE return FALSE; } +// SLOT_ACTION_WAIT_FADE static bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) @@ -952,448 +1163,478 @@ static bool8 SlotAction_WaitForUnfade(struct Task *task) return FALSE; } -static bool8 SlotAction_SetSlotMachineVars(struct Task *task) +// SLOT_ACTION_READY_NEW_SPIN +static bool8 SlotAction_ReadyNewSpin(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->state = 4; + sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; if (sSlotMachine->coins <= 0) { - sSlotMachine->state = 25; + sSlotMachine->state = SLOT_ACTION_MSG_NO_MORE_COINS; } - else if (sSlotMachine->fairRollsLeft) + else if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->state = 3; - sub_8104CAC(4); + sSlotMachine->state = SLOT_ACTION_READY_NEW_RT_SPIN; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); } return TRUE; } -static bool8 SlotAction3(struct Task *task) +// SLOT_ACTION_READY_NEW_RT_SPIN +static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *task) { - if (sub_8104E18()) - sSlotMachine->state = 4; + if (IsDigitalDisplayAnimFinished()) + sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; return FALSE; } -static bool8 SlotAction4(struct Task *task) +// SLOT_ACTION_ASK_INSERT_BET +static bool8 SlotAction_AskInsertBet(struct Task *task) { - sub_8104CAC(0); - sSlotMachine->state = 5; + CreateDigitalDisplayScene(DIG_DISPLAY_INSERT_BET); + sSlotMachine->state = SLOT_ACTION_BET_INPUT; if (sSlotMachine->coins >= MAX_COINS) - sSlotMachine->state = 23; + sSlotMachine->state = SLOT_ACTION_MSG_MAX_COINS; return TRUE; } -static bool8 SlotAction_AwaitPlayerInput(struct Task *task) +// SLOT_ACTION_BET_INPUT +static bool8 SlotAction_HandleBetInput(struct Task *task) { s16 i; - if (gMain.newKeys & SELECT_BUTTON) + if (JOY_NEW(SELECT_BUTTON)) { - OpenInfoBox(0); - sSlotMachine->state = 8; + OpenInfoBox(DIG_DISPLAY_INSERT_BET); + sSlotMachine->state = SLOT_ACTION_WAIT_INFO_BOX; } - else if (gMain.newKeys & R_BUTTON) // bet the max amount + else if (JOY_NEW(R_BUTTON)) // bet the max amount { - if (sSlotMachine->coins - (3 - sSlotMachine->bet) >= 0) + if (sSlotMachine->coins - (MAX_BET - sSlotMachine->bet) >= 0) { - for (i = sSlotMachine->bet; i < 3; i++) - LoadBetTiles(i); - sSlotMachine->coins -= (3 - sSlotMachine->bet); - sSlotMachine->bet = 3; - sSlotMachine->state = 9; - PlaySE(SE_REGI); + for (i = sSlotMachine->bet; i < MAX_BET; i++) + LightenBetTiles(i); + sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); + sSlotMachine->bet = MAX_BET; + sSlotMachine->state = SLOT_ACTION_START_SPIN; + PlaySE(SE_SHOP); } else // you didn't have enough coins to bet the max { - sSlotMachine->state = 6; + sSlotMachine->state = SLOT_ACTION_MSG_NEED_3_COINS; } } else { - if (gMain.newKeys & DPAD_DOWN && sSlotMachine->coins != 0) + // Increase bet + if (JOY_NEW(DPAD_DOWN) && sSlotMachine->coins != 0) { - PlaySE(SE_REGI); - LoadBetTiles(sSlotMachine->bet); + PlaySE(SE_SHOP); + LightenBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; } - // player maxed out or finished betting - if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->state = 9; - // player wants to quit - if (gMain.newKeys & B_BUTTON) - sSlotMachine->state = 21; + + // Maxed bet or finished betting + if (sSlotMachine->bet >= MAX_BET || (sSlotMachine->bet != 0 && JOY_NEW(A_BUTTON))) + sSlotMachine->state = SLOT_ACTION_START_SPIN; + + // Quit prompt + if (JOY_NEW(B_BUTTON)) + sSlotMachine->state = SLOT_ACTION_ASK_QUIT; } return FALSE; } -static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) +// SLOT_ACTION_NEED_3_COINS +static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 7; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NEED_3_COINS; return FALSE; } -static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) +// SLOT_ACTION_WAIT_MSG_NEED_3_COINS +static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } -static bool8 SlotAction_GivingInformation(struct Task *task) +// SLOT_ACTION_WAIT_INFO_BOX +static bool8 SlotAction_WaitForInfoBox(struct Task *task) { if (IsInfoBoxClosed()) - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; return FALSE; } -// probably make all the slots roll -static bool8 SlotAction9(struct Task *task) +// SLOT_ACTION_START_SPIN +static bool8 SlotAction_StartSpin(struct Task *task) { DrawLuckyFlags(); - sub_8104DA4(); + DestroyDigitalDisplayScene(); - // for each reel... - ReelTasks_SetUnkTaskData(0); - ReelTasks_SetUnkTaskData(1); - ReelTasks_SetUnkTaskData(2); + SpinSlotReel(LEFT_REEL); + SpinSlotReel(MIDDLE_REEL); + SpinSlotReel(RIGHT_REEL); IncrementDailySlotsUses(); task->data[0] = 0; if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { - BeginReeltime(); - sSlotMachine->state = 10; + BeginReelTime(); + sSlotMachine->state = SLOT_ACTION_START_RT_SPIN; } else { - sub_8104CAC(1); - sSlotMachine->state = 11; + CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); + sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; } sSlotMachine->reelIncrement = 8; - if (sSlotMachine->fairRollsLeft) + if (sSlotMachine->reelTimeSpinsLeft) sSlotMachine->reelIncrement = SlowReelSpeed(); return FALSE; } -static bool8 SlotAction10(struct Task *task) +// SLOT_ACTION_START_RT_SPIN +static bool8 SlotAction_StartReelTimeSpin(struct Task *task) { - if (IsFinalTask_RunReelTimeActions()) + if (IsReelTimeTaskDone()) { - sub_8104CAC(1); + CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->state = 11; + sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; } return FALSE; } +// SLOT_ACTION_SET_LUCKY_SPINS static bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { SetLuckySpins(); - sSlotMachine->state = 12; + sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; } return FALSE; } +// SLOT_ACTION_AWAIT_REEL_STOP static bool8 SlotAction_AwaitReelStop(struct Task *task) { - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { - PlaySE(SE_JYUNI); - sub_8102E1C(sSlotMachine->currReel); - sub_8103C14(sSlotMachine->currReel); - sSlotMachine->state = 13; + PlaySE(SE_CONTEST_PLACE); + StopSlotReel(sSlotMachine->currReel); + PressStopReelButton(sSlotMachine->currReel); + sSlotMachine->state = SLOT_ACTION_AWAIT_ALL_REELS_STOP; } return FALSE; } +// SLOT_ACTION_AWAIT_ALL_REELS_STOP static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; - sSlotMachine->state = 12; - if (sSlotMachine->currReel > 2) + sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; + if (sSlotMachine->currReel >= NUM_REELS) { - sSlotMachine->state = 14; + sSlotMachine->state = SLOT_ACTION_CHECK_MATCHES; } return TRUE; } return FALSE; } -// once all reels have stopped +// SLOT_ACTION_CHECK_MATCHES static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); - if (sSlotMachine->fairRollsLeft) + if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->fairRollsLeft--; - sSlotMachine->fairRollsUsed++; + sSlotMachine->reelTimeSpinsLeft--; + sSlotMachine->reelTimeSpinsUsed++; } if (sSlotMachine->matchedSymbols) { - sSlotMachine->state = 15; + sSlotMachine->state = SLOT_ACTION_WAIT_PAYOUT; AwardPayout(); - sub_8103F70(); + FlashSlotMachineLights(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) { sSlotMachine->netCoinLoss = 0; } - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { - PlayFanfare(MUS_ME_B_BIG); - sub_8104CAC(6); + PlayFanfare(MUS_SLOTS_JACKPOT); + CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG); } - else if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) + else if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_MIXED)) { - PlayFanfare(MUS_ME_B_BIG); - sub_8104CAC(5); + PlayFanfare(MUS_SLOTS_JACKPOT); + CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG); } else { - PlayFanfare(MUS_ME_B_SMALL); - sub_8104CAC(2); + PlayFanfare(MUS_SLOTS_WIN); + CreateDigitalDisplayScene(DIG_DISPLAY_WIN); } // if you matched 777... - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_MIXED) | (1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { - sSlotMachine->fairRollsLeft = 0; - sSlotMachine->fairRollsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = 0; + sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->luckyGame = FALSE; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_BLUE)) // this may be an error, but if you get blue 777, the game becomes lucky sSlotMachine->luckyGame = TRUE; } } - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER) && sSlotMachine->pikaPower < 16) { sSlotMachine->pikaPower++; - DisplayPikaPower(sSlotMachine->pikaPower); + AddPikaPowerBolt(sSlotMachine->pikaPower); } } else { - sub_8104CAC(3); - sSlotMachine->state = 20; + CreateDigitalDisplayScene(DIG_DISPLAY_LOSE); + sSlotMachine->state = SLOT_ACTION_NO_MATCHES; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > MAX_COINS) sSlotMachine->netCoinLoss = MAX_COINS; } return FALSE; } +// SLOT_ACTION_WAIT_PAYOUT static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->state = 16; + sSlotMachine->state = SLOT_ACTION_END_PAYOUT; return FALSE; } -static bool8 SlotAction_EndOfRoll(struct Task *task) +// SLOT_ACTION_END_PAYOUT +static bool8 SlotAction_EndPayout(struct Task *task) { - if (sub_8103FA0()) + if (TryStopSlotMachineLights()) { - sSlotMachine->state = 19; - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_RED) | (1 << MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { sSlotMachine->currReel = 0; - sSlotMachine->state = 9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; } - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->state = 17; - if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + + if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER)) + sSlotMachine->state = SLOT_ACTION_MATCHED_POWER; + + if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { - sub_8104CAC(4); - sSlotMachine->state = 18; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); + sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; } } return FALSE; } +// SLOT_ACTION_MATCHED_POWER static bool8 SlotAction_MatchedPower(struct Task *task) { - if (!sub_81040C8()) + if (!IsPikaPowerBoltAnimating()) { - sSlotMachine->state = 19; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { - sSlotMachine->state = 9; - if (sSlotMachine->fairRollsLeft) + sSlotMachine->state = SLOT_ACTION_START_SPIN; + if (sSlotMachine->reelTimeSpinsLeft) { - sub_8104CAC(4); - sSlotMachine->state = 18; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); + sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; } } } return FALSE; } -static bool8 SlotAction18(struct Task *task) +// SLOT_ACTION_WAIT_RT_ANIM +static bool8 SlotAction_WaitReelTimeAnim(struct Task *task) { - if (sub_8104E18()) + if (IsDigitalDisplayAnimFinished()) { - sSlotMachine->state = 19; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { - sSlotMachine->state = 9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; } } return FALSE; } -static bool8 SlotAction_Loop(struct Task *task) +// SLOT_ACTION_RESET_BET_TILES +static bool8 SlotAction_ResetBetTiles(struct Task *task) { - sub_8103D8C(0); - sub_8103D8C(1); - sub_8103D8C(2); - sSlotMachine->state = 2; + DarkenBetTiles(0); + DarkenBetTiles(1); + DarkenBetTiles(2); + sSlotMachine->state = SLOT_ACTION_READY_NEW_SPIN; return FALSE; } +// SLOT_ACTION_NO_MATCHES static bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->state = 19; + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; } return FALSE; } -static bool8 SlotAction_PrintQuitTheGame(struct Task *task) +// SLOT_ACTION_ASK_QUIT +static bool8 SlotAction_AskQuit(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->state = 22; + sSlotMachine->state = SLOT_ACTION_HANDLE_QUIT_INPUT; return FALSE; } -static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) +// SLOT_ACTION_HANDLE_QUIT_INPUT +static bool8 SlotAction_HandleQuitInput(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) // player chooses to quit { ClearDialogWindowAndFrame(0, TRUE); - sub_8103D8C(0); - sub_8103D8C(1); - sub_8103D8C(2); + DarkenBetTiles(0); + DarkenBetTiles(1); + DarkenBetTiles(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->state = 27; + sSlotMachine->state = SLOT_ACTION_END; } else if (input == 1 || input == -1) // player chooses not to quit { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } -static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) +// SLOT_ACTION_MSG_MAX_COINS +static bool8 SlotAction_PrintMsg_9999Coins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 24; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_MAX_COINS; return FALSE; } -static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task) +// SLOT_ACTION_WAIT_MSG_MAX_COINS +static bool8 SlotAction_WaitMsg_9999Coins(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } -static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) +// SLOT_ACTION_MSG_NO_MORE_COINS +static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 26; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NO_MORE_COINS; return FALSE; } -static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) +// SLOT_ACTION_WAIT_MSG_NO_MORE_COINS +static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 27; + sSlotMachine->state = SLOT_ACTION_END; } return FALSE; } +// SLOT_ACTION_END static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); AlertTVOfNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->state++; + sSlotMachine->state++; // SLOT_ACTION_FREE return FALSE; } +// SLOT_ACTION_FREE static bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { SetMainCallback2(sSlotMachine->prevMainCb); - FREE_AND_SET_NULL(sUnknown_0203AAF4); - FREE_AND_SET_NULL(sUnknown_0203AAF8); - FREE_AND_SET_NULL(sUnknown_0203AAFC); - FREE_AND_SET_NULL(sUnknown_0203AB00); - FREE_AND_SET_NULL(sUnknown_0203AB04); - FREE_AND_SET_NULL(sUnknown_0203AB08); - FREE_AND_SET_NULL(sUnknown_0203AB0C); - FREE_AND_SET_NULL(sUnknown_0203AB10); - FREE_AND_SET_NULL(sUnknown_0203AB14); - FREE_AND_SET_NULL(sUnknown_0203AB18); - FREE_AND_SET_NULL(sUnknown_0203AB1C); - FREE_AND_SET_NULL(sUnknown_0203AB20); - FREE_AND_SET_NULL(sUnknown_0203AB24); - FREE_AND_SET_NULL(sUnknown_0203AB28); - if (sUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE4); - if (sUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE8); - if (sUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAEC); - if (sUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAF0); - FREE_AND_SET_NULL(sUnknown_0203AAC8); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Reel); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Time); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Insert); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Stop); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Win); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Lose); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Bonus); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Big); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Reg); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_AButton); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Smoke); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Number); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Pokeball); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_DPad); + if (sImageTable_ReelTimePikachu != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimePikachu); + if (sImageTable_ReelTimeMachineAntennae != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachineAntennae); + if (sImageTable_ReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachine); + if (sImageTable_BrokenReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); + FREE_AND_SET_NULL(sMenuGfx); FREE_AND_SET_NULL(sSelectedPikaPowerTile); - FREE_AND_SET_NULL(sUnknown_0203AAD0); - FREE_AND_SET_NULL(sUnknown_0203AAD4); - FREE_AND_SET_NULL(sUnknown_0203AAD8); - FREE_AND_SET_NULL(sUnknown_0203AADC); - FREE_AND_SET_NULL(sUnknown_0203AAE0); - FREE_AND_SET_NULL(sUnknown_0203AB2C); - FREE_AND_SET_NULL(sUnknown_0203AB30); - + FREE_AND_SET_NULL(sReelOverlay_Tilemap); + FREE_AND_SET_NULL(sDigitalDisplayGfxPtr); + FREE_AND_SET_NULL(sReelTimeGfxPtr); + FREE_AND_SET_NULL(sReelButtonPress_Tilemap); + FREE_AND_SET_NULL(sReelBackground_Gfx); + FREE_AND_SET_NULL(sReelBackgroundSpriteSheet); + FREE_AND_SET_NULL(sSlotMachineSpritesheetsPtr); FREE_AND_SET_NULL(sSlotMachine); } return FALSE; @@ -1403,7 +1644,7 @@ static void DrawLuckyFlags(void) { u8 attempts; - if (sSlotMachine->fairRollsLeft == 0) + if (sSlotMachine->reelTimeSpinsLeft == 0) { if (!(sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777))) { @@ -1413,7 +1654,7 @@ static void DrawLuckyFlags(void) if (attempts != 3) // if you found a lucky number { // attempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= gLuckyFlagSettings_Top3[attempts]; + sSlotMachine->luckyFlags |= sLuckyFlagSettings_Top3[attempts]; if (attempts != 1) { return; @@ -1424,7 +1665,7 @@ static void DrawLuckyFlags(void) attempts = AttemptsAtLuckyFlags_NotTop3(); if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= gLuckyFlagSettings_NotTop3[attempts]; + sSlotMachine->luckyFlags |= sLuckyFlagSettings_NotTop3[attempts]; } } } @@ -1432,9 +1673,9 @@ static void DrawLuckyFlags(void) static void SetLuckySpins(void) { - sSlotMachine->luckySpinsLeft = 0; + sSlotMachine->isLuckySpin = FALSE; if (sSlotMachine->luckyFlags) - sSlotMachine->luckySpinsLeft = 1; + sSlotMachine->isLuckySpin = TRUE; } static u8 GetBiasTag(u8 luckyFlags) @@ -1444,7 +1685,7 @@ static u8 GetBiasTag(u8 luckyFlags) for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return gBiasTags[i]; + return sBiasTags[i]; luckyFlags >>= 1; } return 0; @@ -1454,7 +1695,7 @@ static u8 GetBiasTag(u8 luckyFlags) static bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (gLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (sLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } @@ -1466,7 +1707,7 @@ static u8 AttemptsAtLuckyFlags_Top3(void) for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = gLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; + s16 value = sLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } @@ -1480,7 +1721,7 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void) for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = gLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; + s16 value = sLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game if (count == 0 && sSlotMachine->luckyGame == TRUE) { @@ -1504,9 +1745,9 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void) static u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == FALSE) - return gReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return gReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } static void GetReeltimeDraw(void) @@ -1527,10 +1768,10 @@ static void GetReeltimeDraw(void) sSlotMachine->reelTimeDraw = reelTimeDraw; } -static bool8 SkipToReeltimeAction14(u16 i) +static bool8 ShouldReelTimeMachineExplode(u16 i) { u16 rval = Random() & 0xff; - if (rval < gProbabilityTable_SkipToReeltimeAction14[i]) + if (rval < sReelTimeExplodeProbability[i]) return TRUE; else return FALSE; @@ -1550,11 +1791,11 @@ static u16 SlowReelSpeed(void) else if (sSlotMachine->netCoinLoss >= 150) i = 1; rval = Random() % 100; - value = gReelIncrementTable[i][0]; + value = sReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; + value = sReelIncrementTable[i][1] + sReelTimeBonusIncrementTable[sSlotMachine->reelTimeSpinsUsed]; if (rval < value) return 2; return 8; @@ -1577,12 +1818,12 @@ static void CheckMatch_CenterRow(void) c1 = GetTagAtRest(LEFT_REEL, 2); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 2); - match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + match = GetMatchFromSymbols(c1, c2, c3); + if (match != MATCHED_NONE) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(0); + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + FlashMatchLine(MATCH_MIDDLE_ROW); } } @@ -1593,26 +1834,26 @@ static void CheckMatch_TopAndBottom(void) c1 = GetTagAtRest(LEFT_REEL, 1); c2 = GetTagAtRest(MIDDLE_REEL, 1); c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + match = GetMatchFromSymbols(c1, c2, c3); + if (match != MATCHED_NONE) { - if (match == SLOT_MACHINE_MATCHED_1CHERRY) - match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(1); + if (match == MATCHED_1CHERRY) + match = MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + FlashMatchLine(MATCH_TOP_ROW); } c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 3); c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + match = GetMatchFromSymbols(c1, c2, c3); + if (match != MATCHED_NONE) { - if (match == SLOT_MACHINE_MATCHED_1CHERRY) - match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(2); + if (match == MATCHED_1CHERRY) + match = MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + FlashMatchLine(MATCH_BOTTOM_ROW); } } @@ -1623,42 +1864,42 @@ static void CheckMatch_Diagonals(void) c1 = GetTagAtRest(LEFT_REEL, 1); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + match = GetMatchFromSymbols(c1, c2, c3); + if (match != MATCHED_NONE) { - if (match != SLOT_MACHINE_MATCHED_1CHERRY) + if (match != MATCHED_1CHERRY) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } - sub_8103E04(3); + FlashMatchLine(MATCH_NWSE_DIAG); } c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + match = GetMatchFromSymbols(c1, c2, c3); + if (match != MATCHED_NONE) { - if (match != SLOT_MACHINE_MATCHED_1CHERRY) + if (match != MATCHED_1CHERRY) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } - sub_8103E04(4); + FlashMatchLine(MATCH_NESW_DIAG); } } -static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbols(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) - return gSym2Match[c1]; - if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) - return SLOT_MACHINE_MATCHED_777_MIXED; - if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) - return SLOT_MACHINE_MATCHED_777_MIXED; - if (c1 == SLOT_MACHINE_TAG_CHERRY) - return SLOT_MACHINE_MATCHED_1CHERRY; - return SLOT_MACHINE_MATCHED_NONE; + return sSymToMatch[c1]; + if (c1 == GFXTAG_7_RED && c2 == GFXTAG_7_RED && c3 == GFXTAG_7_BLUE) + return MATCHED_777_MIXED; + if (c1 == GFXTAG_7_BLUE && c2 == GFXTAG_7_BLUE && c3 == GFXTAG_7_RED) + return MATCHED_777_MIXED; + if (c1 == GFXTAG_CHERRY) + return MATCHED_1CHERRY; + return MATCHED_NONE; } static void AwardPayout(void) @@ -1676,13 +1917,13 @@ static bool8 IsFinalTask_RunAwardPayoutActions(void) static void RunAwardPayoutActions(u8 taskId) { - while (AwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sAwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } static bool8 AwardPayoutAction0(struct Task *task) { - if (sub_8103E38()) + if (IsMatchLineDoneFlashingBeforePayout()) { task->data[0]++; if (sSlotMachine->payout == 0) @@ -1707,7 +1948,7 @@ static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) if (gMain.heldKeys & A_BUTTON) task->data[1] = 4; } - if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) + if (IsFanfareTaskInactive() && JOY_NEW(START_BUTTON)) { PlaySE(SE_PIN); sSlotMachine->coins += sSlotMachine->payout; @@ -1722,7 +1963,7 @@ static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) static bool8 AwardPayoutAction_FreeTask(struct Task *task) { - if (sub_8103E7C()) + if (TryStopMatchLinesFlashing()) DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } @@ -1741,17 +1982,17 @@ static bool8 AwardPayoutAction_FreeTask(struct Task *task) // .-----------------. static u8 GetTagAtRest(u8 reel, s16 offset) { - s16 pos = (sSlotMachine->reelPositions[reel] + offset) % REEL_NUM_TAGS; + s16 pos = (sSlotMachine->reelPositions[reel] + offset) % SYMBOLS_PER_REEL; if (pos < 0) - pos += REEL_NUM_TAGS; - return gReelSymbols[reel][pos]; + pos += SYMBOLS_PER_REEL; + return sReelSymbolTileTags[reel][pos]; } // Calculates GetTagAtRest as if the reel were snapped downwards into place. static u8 GetTag(u8 reel, s16 offset) { s16 inc = 0; - s16 pixelOffset = sSlotMachine->reelPixelOffsets[reel] % REEL_TAG_HEIGHT; + s16 pixelOffset = sSlotMachine->reelPixelOffsets[reel] % REEL_SYMBOL_HEIGHT; if (pixelOffset != 0) inc = -1; return GetTagAtRest(reel, offset + inc); @@ -1762,25 +2003,25 @@ static u8 GetNearbyReelTimeTag(s16 n) s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return gReelTimeTags[newPosition]; + return sReelTimeTags[newPosition]; } static void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; - sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; + sSlotMachine->reelPositions[reelIndex] = SYMBOLS_PER_REEL - sSlotMachine->reelPixelOffsets[reelIndex] / REEL_SYMBOL_HEIGHT; } s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) { - s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % REEL_SYMBOL_HEIGHT; if (offset != 0) { if (offset < value) value = offset; AdvanceSlotReel(reelIndex, value); - offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + offset = sSlotMachine->reelPixelOffsets[reelIndex] % REEL_SYMBOL_HEIGHT; } return offset; } @@ -1805,42 +2046,45 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return offset; } -static void GameplayTask_StopSlotReel(void) +#define tState data[0] +#define tMoving data[14] +#define tReelId data[15] + +static void CreateSlotReelTasks(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_REELS; i++) { - u8 taskId = CreateTask(RunSlotReelActions, 2); - gTasks[taskId].data[15] = i; + u8 taskId = CreateTask(Task_RunSlotReelActions, 2); + gTasks[taskId].tReelId = i; sSlotMachine->slotReelTasks[i] = taskId; - RunSlotReelActions(taskId); + Task_RunSlotReelActions(taskId); } } -static void ReelTasks_SetUnkTaskData(u8 reelIndex) +static void SpinSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_SPIN; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving = TRUE; } -static void sub_8102E1C(u8 reelIndex) +static void StopSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_STOP; } static bool8 IsSlotReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; + return gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving; } -static void RunSlotReelActions(u8 taskId) +static void Task_RunSlotReelActions(u8 taskId) { - while (SlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sSlotReelActions[gTasks[taskId].tState](&gTasks[taskId])) ; } // task->data[1] reel turns -// task->data[15] reelIndex static bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; @@ -1848,46 +2092,46 @@ static bool8 SlotReelAction_StayStill(struct Task *task) static bool8 SlotReelAction_Spin(struct Task *task) { - AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); return FALSE; } // As in previous generations, the slot machine often doesn't stop exactly when you press stop static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { - task->data[0]++; - // initialize data for that reel --> these will be changed if gBiasTags can be lined up - sSlotMachine->winnerRows[task->data[15]] = 0; - sSlotMachine->reelExtraTurns[task->data[15]] = 0; + task->tState++; + // initialize data for that reel --> these will be changed if sBiasTags can be lined up + sSlotMachine->winnerRows[task->tReelId] = 0; + sSlotMachine->reelExtraTurns[task->tReelId] = 0; - if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || !sSlotMachine->isLuckySpin || !sDecideReelTurns_BiasTag[task->tReelId]())) { - sSlotMachine->luckySpinsLeft = 0; - DecideReelTurns_NoBiasTag[task->data[15]](); + sSlotMachine->isLuckySpin = FALSE; + sDecideReelTurns_NoBiasTag[task->tReelId](); } - task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; + task->data[1] = sSlotMachine->reelExtraTurns[task->tReelId]; return TRUE; } // go to next tag and then do any additional turns static bool8 SlotReelAction_MoveToStop(struct Task *task) { - u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; + u16 reelStopShocks[ARRAY_COUNT(sReelStopShocks)]; s16 reelPixelPos; - memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + memcpy(reelStopShocks, sReelStopShocks, sizeof(sReelStopShocks)); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) - reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); - else if (sSlotMachine->reelExtraTurns[task->data[15]]) + reelPixelPos = AdvanceSlotReelToNextTag(task->tReelId, sSlotMachine->reelIncrement); + else if (sSlotMachine->reelExtraTurns[task->tReelId]) { - sSlotMachine->reelExtraTurns[task->data[15]]--; - AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + sSlotMachine->reelExtraTurns[task->tReelId]--; + AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; } - if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) + if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->tReelId] == 0) { - task->data[0]++; + task->tState++; task->data[1] = reelStopShocks[task->data[1]]; task->data[2] = 0; } @@ -1897,30 +2141,34 @@ static bool8 SlotReelAction_MoveToStop(struct Task *task) // make selected tag oscillate before it becomes still static bool8 SlotReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; + sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) task->data[1] >>= 1; if (task->data[1] == 0) { - task->data[0] = 0; - task->data[14] = 0; - sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = 0; + task->tState = 0; + task->tMoving = FALSE; + sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = 0; } return FALSE; } +#undef tState +#undef tMoving +#undef tReelId + static bool8 DecideReelTurns_BiasTag_Reel1(void) { u8 tag2 = GetBiasTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { - tag1 = SLOT_MACHINE_TAG_7_RED; - tag2 = SLOT_MACHINE_TAG_7_BLUE; + tag1 = GFXTAG_7_RED; + tag2 = GFXTAG_7_BLUE; } - return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); + return sDecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) @@ -1936,7 +2184,9 @@ static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) static bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetTag(LEFT_REEL, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetTag(LEFT_REEL, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetTag(LEFT_REEL, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) + if (GetTag(LEFT_REEL, 1 - offsetFromCenter) == GFXTAG_CHERRY + || GetTag(LEFT_REEL, 2 - offsetFromCenter) == GFXTAG_CHERRY + || GetTag(LEFT_REEL, 3 - offsetFromCenter) == GFXTAG_CHERRY) return TRUE; else return FALSE; @@ -1959,7 +2209,7 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) // if a lucky tag appears in the center row within 4 turns if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->winnerRows[0] = 2; + sSlotMachine->winnerRows[LEFT_REEL] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2020,7 +2270,7 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) static bool8 DecideReelTurns_BiasTag_Reel2(void) { - return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + return sDecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) @@ -2085,13 +2335,13 @@ static bool8 DecideReelTurns_BiasTag_Reel3(void) u8 biasTag = sSlotMachine->biasTag; if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) { - biasTag = SLOT_MACHINE_TAG_7_RED; - if (sSlotMachine->biasTag == SLOT_MACHINE_TAG_7_RED) + biasTag = GFXTAG_7_RED; + if (sSlotMachine->biasTag == GFXTAG_7_RED) { - biasTag = SLOT_MACHINE_TAG_7_BLUE; + biasTag = GFXTAG_7_BLUE; } } - return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); + return sDecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) @@ -2151,14 +2401,14 @@ static void DecideReelTurns_NoBiasTag_Reel1(void) static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { - if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) + if (*biasTagPtr == GFXTAG_7_RED) { - *biasTagPtr = SLOT_MACHINE_TAG_7_BLUE; + *biasTagPtr = GFXTAG_7_BLUE; return TRUE; } - if (*biasTagPtr == SLOT_MACHINE_TAG_7_BLUE) + if (*biasTagPtr == GFXTAG_7_BLUE) { - *biasTagPtr = SLOT_MACHINE_TAG_7_RED; + *biasTagPtr = GFXTAG_7_RED; return TRUE; } return FALSE; @@ -2166,7 +2416,7 @@ static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) static void DecideReelTurns_NoBiasTag_Reel2(void) { - DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + sDecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } // only does stuff if the biasTag is one of the 7's, plus other conditions @@ -2289,7 +2539,7 @@ static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) static bool8 AreTagsMixed77(u8 tag1, u8 tag2) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED)) return TRUE; else return FALSE; @@ -2297,8 +2547,8 @@ static bool8 AreTagsMixed77(u8 tag1, u8 tag2) static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE)) return TRUE; else return FALSE; @@ -2306,10 +2556,10 @@ static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || - (tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || + (tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || (tag1 == tag2 && tag1 == tag3)) { return FALSE; @@ -2319,7 +2569,7 @@ static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) static void DecideReelTurns_NoBiasTag_Reel3(void) { - DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); + sDecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) @@ -2334,7 +2584,7 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) while (1) { u8 tag3; - if (!(tag1 == (tag3 = GetTag(RIGHT_REEL, 2 - i)) || (tag1 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED))) + if (!(tag1 == (tag3 = GetTag(RIGHT_REEL, 2 - i)) || (tag1 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED))) break; i++; } @@ -2465,273 +2715,312 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) } } -static void sub_8103C14(u8 a0) +static void PressStopReelButton(u8 reelNum) { - u8 taskId = CreateTask(sub_8103C48, 5); - gTasks[taskId].data[15] = a0; - sub_8103C48(taskId); + u8 taskId = CreateTask(Task_PressStopReelButton, 5); + gTasks[taskId].data[15] = reelNum; + Task_PressStopReelButton(taskId); } -static void sub_8103C48(u8 taskId) +static void Task_PressStopReelButton(u8 taskId) { - gUnknown_083ECBA0[gTasks[taskId].data[0]](&gTasks[taskId], taskId); + sReelStopButtonFuncs[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } -static void sub_8103C78(struct Task *task, u8 taskId) +static void StopReelButton_Press(struct Task *task, u8 taskId) { - sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -static void sub_8103CAC(struct Task *task, u8 taskId) +static void StopReelButton_Wait(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -static void sub_8103CC8(struct Task *task, u8 taskId) +static void StopReelButton_Unpress(struct Task *task, u8 taskId) { - sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -static void LoadLitTile(u8 tileId) +static void LightenMatchLine(u8 matchLineId) { - LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); + LoadPalette(sLitMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); } -static void sub_8103D28(u8 a0) +static void DarkenMatchLine(u8 matchLineId) { - LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); + LoadPalette(sDarkMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); } -// light up the value bet by the player -static void LoadBetTiles(u8 betVal) +// light up the match line for each bet by the player +static void LightenBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gNumberBettingTiles[betVal]; i++) - LoadLitTile(gBettingTilesId[betVal][i]); + for (i = 0; i < sMatchLinesPerBet[betVal]; i++) + LightenMatchLine(sBetToMatchLineIds[betVal][i]); } -static void sub_8103D8C(u8 a0) +static void DarkenBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gNumberBettingTiles[a0]; i++) - sub_8103D28(gBettingTilesId[a0][i]); + for (i = 0; i < sMatchLinesPerBet[betVal]; i++) + DarkenMatchLine(sBetToMatchLineIds[betVal][i]); } -static void sub_8103DC8(void) +#define sMatchLineId data[0] +#define sFlashing data[1] +#define sNumFullFlashes data[2] +#define sDelayTimer data[3] +#define sColor data[4] +#define sColorIncr data[5] +#define sAtOriginalColor data[7] + +// Creates invisible sprites that flash the bet lines/numbers where a match occurs +// 5 are created, 1 for each possible match line (3 rows, 2 diagonals) +static void CreateInvisibleFlashMatchLineSprites(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - u8 spriteId = CreateInvisibleSprite(sub_8103EE4); - gSprites[spriteId].data[0] = i; - sSlotMachine->unk44[i] = spriteId; + u8 spriteId = CreateInvisibleSprite(SpriteCB_FlashMatchingLines); + gSprites[spriteId].sMatchLineId = i; + sSlotMachine->flashMatchLineSpriteIds[i] = spriteId; } } -static void sub_8103E04(u8 a0) +static void FlashMatchLine(u8 matchLineId) { - struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; - sprite->data[1] = 1; - sprite->data[2] = 4; - sprite->data[3] = 0; - sprite->data[4] = 0; - sprite->data[5] = 2; - sprite->data[7] = 0; + struct Sprite *sprite = &gSprites[sSlotMachine->flashMatchLineSpriteIds[matchLineId]]; + sprite->sFlashing = TRUE; + sprite->sNumFullFlashes = 4; + sprite->sDelayTimer = 0; + sprite->sColor = 0; + sprite->sColorIncr = 2; + sprite->sAtOriginalColor = FALSE; } -// something with payout digits -static bool8 sub_8103E38(void) +// Match line flashes 4 times before the payout begins +// After this it does half-brightness flashes until the payout finishes +static bool8 IsMatchLineDoneFlashingBeforePayout(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - struct Sprite *sprite = &gSprites[sSlotMachine->unk44[i]]; - if (sprite->data[1] && sprite->data[2]) + struct Sprite *sprite = &gSprites[sSlotMachine->flashMatchLineSpriteIds[i]]; + if (sprite->sFlashing && sprite->sNumFullFlashes) return FALSE; } return TRUE; } -static bool8 sub_8103E7C(void) +// When payout is finished, stop lines flashing (but not if they're in the middle of a flash) +static bool8 TryStopMatchLinesFlashing(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - if (!sub_8103EAC(sSlotMachine->unk44[i])) + if (!TryStopMatchLineFlashing(sSlotMachine->flashMatchLineSpriteIds[i])) return FALSE; } return TRUE; } -static bool8 sub_8103EAC(u8 spriteId) +static bool8 TryStopMatchLineFlashing(u8 spriteId) { - struct Sprite *sprite = gSprites + spriteId; - if (!sprite->data[1]) + struct Sprite *sprite = &gSprites[spriteId]; + if (!sprite->sFlashing) return TRUE; - if (sprite->data[7]) - sprite->data[1] = 0; - return sprite->data[7]; + if (sprite->sAtOriginalColor) + sprite->sFlashing = FALSE; + + return sprite->sAtOriginalColor; } -static void sub_8103EE4(struct Sprite *sprite) +static void SpriteCB_FlashMatchingLines(struct Sprite *sprite) { - s16 r4; - if (sprite->data[1]) + s16 maxColorChange; + if (sprite->sFlashing) { - if (!sprite->data[3]--) + if (!sprite->sDelayTimer--) { - sprite->data[7] = 0; - sprite->data[3] = 1; - sprite->data[4] += sprite->data[5]; - r4 = 4; - if (sprite->data[2]) - r4 = 8; - if (sprite->data[4] <= 0) + sprite->sAtOriginalColor = FALSE; + sprite->sDelayTimer = 1; + sprite->sColor += sprite->sColorIncr; + maxColorChange = 4; + if (sprite->sNumFullFlashes) + maxColorChange = 8; + if (sprite->sColor <= 0) { - sprite->data[7] = 1; - sprite->data[5] = -sprite->data[5]; - if (sprite->data[2]) - sprite->data[2]--; + // Returned to original color, reverse + sprite->sAtOriginalColor = TRUE; + sprite->sColorIncr = -sprite->sColorIncr; + if (sprite->sNumFullFlashes) + sprite->sNumFullFlashes--; + } + else if (sprite->sColor >= maxColorChange) { + // Reached peak darkness, reverse + sprite->sColorIncr = -sprite->sColorIncr; } - else if (sprite->data[4] >= r4) - sprite->data[5] = -sprite->data[5]; - if (sprite->data[2]) - sprite->data[3] <<= 1; + if (sprite->sNumFullFlashes) + sprite->sDelayTimer <<= 1; } - MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]); + MultiplyPaletteRGBComponents(sMatchLinePalOffsets[sprite->sMatchLineId], sprite->sColor, sprite->sColor, sprite->sColor); } } -static void sub_8103F70(void) +#undef sMatchLineId +#undef sFlashing +#undef sNumFullFlashes +#undef sDelayTimer +#undef sColor +#undef sColorIncr +#undef sAtOriginalColor + +#define sDelayTimer data[1] +#define sFlashState data[2] +#define sFlashDir data[3] + +static void FlashSlotMachineLights(void) { - u8 taskId = CreateTask(sub_8103FE8_, 6); - gTasks[taskId].data[3] = 1; - sub_8103FE8_(taskId); + u8 taskId = CreateTask(Task_FlashSlotMachineLights, 6); + gTasks[taskId].sFlashDir = 1; + Task_FlashSlotMachineLights(taskId); } -static bool8 sub_8103FA0(void) +static bool8 TryStopSlotMachineLights(void) { - u8 taskId = FindTaskIdByFunc(sub_8103FE8_); - if (!gTasks[taskId].data[2]) + u8 taskId = FindTaskIdByFunc(Task_FlashSlotMachineLights); + if (gTasks[taskId].sFlashState == 0) { DestroyTask(taskId); - LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); + LoadPalette(sSlotMachineMenu_Pal, 0x10, 0x20); return TRUE; } return FALSE; } -static void sub_8103FE8_(u8 taskId) +static void Task_FlashSlotMachineLights(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (!task->data[1]--) + if (!task->sDelayTimer--) { - task->data[1] = 4; - task->data[2] += task->data[3]; - if (task->data[2] == 0 || task->data[2] == 2) - task->data[3] = -task->data[3]; + task->sDelayTimer = 4; + task->sFlashState += task->sFlashDir; + if (task->sFlashState == 0 || task->sFlashState == 2) + task->sFlashDir = -task->sFlashDir; } - LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); + LoadPalette(sFlashingLightsPalTable[task->sFlashState], 0x10, 0x20); } -static void GameplayTask_PikaPower(void) +#undef sDelayTimer +#undef sFlashState +#undef sFlashDir + +#define tState data[0] +#define tNumBolts data[1] +#define tSpriteId data[2] +#define tTimer data[2] // re-used +#define tAnimating data[15] + +static void CreatePikaPowerBoltTask(void) { - sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); + sSlotMachine->pikaPowerBoltTaskId = CreateTask(Task_CreatePikaPowerBolt, 8); } -static void DisplayPikaPower(u8 pikaPower) +static void AddPikaPowerBolt(u8 pikaPower) { - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; - ClearTaskDataFields_2orHigher(task); - task->data[0] = 1; - task->data[1]++; - task->data[15] = 1; // points to a reelIndex + struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; + ResetPikaPowerBoltTask(task); + task->tState = 1; + task->tNumBolts++; + task->tAnimating = TRUE; } -static void sub_8104098(void) +static void ResetPikaPowerBolts(void) { - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; - ClearTaskDataFields_2orHigher(task); - task->data[0] = 3; - task->data[15] = 1; // points to a reelIndex + struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; + ResetPikaPowerBoltTask(task); + task->tState = 3; + task->tAnimating = TRUE; } -static bool8 sub_81040C8(void) +static bool8 IsPikaPowerBoltAnimating(void) { - return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; + return gTasks[sSlotMachine->pikaPowerBoltTaskId].tAnimating; } -static void sub_81040E8(u8 taskId) +static void Task_CreatePikaPowerBolt(u8 taskId) { - gUnknown_083ECBB4[gTasks[taskId].data[0]](&gTasks[taskId]); + sPikaPowerBoltFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void nullsub_68(struct Task *task) +static void PikaPowerBolt_Idle(struct Task *task) { } -static void sub_810411C(struct Task *task) +static void PikaPowerBolt_AddBolt(struct Task *task) { - task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); - task->data[0]++; + task->tSpriteId = CreatePikaPowerBoltSprite((task->tNumBolts << 3) + 20, 20); + task->tState++; } -static void sub_8104144(struct Task *task) +// The bolt sprite spins around as it appears +// Once the anim is done, destroy the sprite and set the bolt in the tilemap instead +static void PikaPowerBolt_WaitAnim(struct Task *task) { - if (gSprites[task->data[2]].data[7]) + if (gSprites[task->tSpriteId].data[7]) { - s16 r5 = task->data[1] + 2; + s16 r5 = task->tNumBolts + 2; s16 r3 = 0; s16 r2 = 0; - if (task->data[1] == 1) + if (task->tNumBolts == 1) r3 = 1, r2 = 1; - else if (task->data[1] == 16) + else if (task->tNumBolts == 16) r3 = 2, r2 = 2; - sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); - sub_8105B88(task->data[2]); - task->data[0] = 0; - task->data[15] = 0; // points to a reelIndex + DestroyPikaPowerBoltSprite(task->tSpriteId); + task->tState = 0; + task->tAnimating = 0; } } -static void sub_81041AC(struct Task *task) +static void PikaPowerBolt_ClearAll(struct Task *task) { - s16 r5 = task->data[1] + 2; + s16 r5 = task->tNumBolts + 2; s16 r3 = 0; s16 r2 = 3; - if (task->data[1] == 1) + if (task->tNumBolts == 1) r3 = 1, r2 = 1; - else if (task->data[1] == 16) + else if (task->tNumBolts == 16) r3 = 2, r2 = 2; - if (task->data[2] == 0) + if (task->tTimer == 0) { - sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); - task->data[1]--; + task->tNumBolts--; } - if (++task->data[2] >= 20) - task->data[2] = 0; - if (task->data[1] == 0) + if (++task->tTimer >= 20) + task->tTimer = 0; + if (task->tNumBolts == 0) { - task->data[0] = 0; - task->data[15] = 0; + task->tState = 0; + task->tAnimating = 0; } } -static void ClearTaskDataFields_2orHigher(struct Task *task) +static void ResetPikaPowerBoltTask(struct Task *task) { u8 i; - for (i = 2; i < 16; i++) + for (i = 2; i < NUM_TASK_DATA; i++) task->data[i] = 0; } -// possibly load tiles for pika power meter -static void sub_810423C(u8 pikaPower) +static void LoadPikaPowerMeter(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2743,7 +3032,7 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) @@ -2753,40 +3042,47 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; + gTasks[sSlotMachine->pikaPowerBoltTaskId].data[1] = pikaPower; } -static void BeginReeltime(void) +#undef tState +#undef tNumBolts +#undef tSpriteId +#undef tTimer +#undef tAnimating + +#define tState data[0] + +static void BeginReelTime(void) { - u8 taskId = CreateTask(RunReeltimeActions, 7); - RunReeltimeActions(taskId); + u8 taskId = CreateTask(Task_ReelTime, 7); + Task_ReelTime(taskId); } -static bool8 IsFinalTask_RunReelTimeActions(void) +static bool8 IsReelTimeTaskDone(void) { - if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) + if (FindTaskIdByFunc(Task_ReelTime) == TAIL_SENTINEL) return TRUE; return FALSE; } -static void RunReeltimeActions(u8 taskId) +static void Task_ReelTime(u8 taskId) { - // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sReelTimeActions[gTasks[taskId].tState](&gTasks[taskId]); } -static void ReeltimeAction0(struct Task *task) +static void ReelTime_Init(struct Task *task) { - sSlotMachine->fairRollsLeft = 0; + sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; sSlotMachine->reeltimePosition = 0; - task->data[0]++; + task->tState++; task->data[1] = 0; task->data[2] = 30; task->data[4] = 1280; // reel speed @@ -2794,18 +3090,18 @@ static void ReeltimeAction0(struct Task *task) gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); - sub_8104A40(REG_OFFSET_BG3VOFS, 0); - sub_81051C0(); - sub_8105100(); - sub_81052EC(); - sub_81053A0(); - sub_810545C(); + LoadReelTimeWindowTilemap(REG_OFFSET_BG3VOFS, 0); + CreateReelTimeMachineSprites(); + CreateReelTimePikachuSprite(); + CreateReelTimeNumberSprites(); + CreateReelTimeShadowSprites(); + CreateReelTimeNumberGapSprite(); GetReeltimeDraw(); StopMapMusic(); - PlayNewMapMusic(MUS_BD_TIME); + PlayNewMapMusic(MUS_ROULETTE); } -static void ReeltimeAction1(struct Task *task) +static void ReelTime_WindowEnter(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2816,78 +3112,78 @@ static void ReeltimeAction1(struct Task *task) { task->data[2] = r3; task->data[3] = task->data[1] >> 3; - sub_8104A40(r3, task->data[3]); + LoadReelTimeWindowTilemap(r3, task->data[3]); } if (task->data[1] >= 200) { - task->data[0]++; + task->tState++; task->data[3] = 0; } AdvanceReeltimeReel(task->data[4] >> 8); } -static void ReeltimeAction2(struct Task *task) +static void ReelTime_WaitStartPikachu(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) { - task->data[0]++; - CreateReelTimeSprites1(); - CreateReelTimeSprite2(); + task->tState++; + CreateReelTimeBoltSprites(); + CreateReelTimePikachuAuraSprites(); } } -static void ReeltimeAction3(struct Task *task) +static void ReelTime_PikachuSpeedUp1(struct Task *task) { - int r5; - u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; - s16 sp4[ARRAY_COUNT(gUnknown_085A75C4)]; - s16 spC[ARRAY_COUNT(gUnknown_085A75CC)]; + int i; + u8 pikachuAnimIds[ARRAY_COUNT(sReelTimePikachuAnimIds)]; + s16 reelTimeBoltDelays[ARRAY_COUNT(sReelTimeBoltDelays)]; + s16 pikachuAuraFlashDelays[ARRAY_COUNT(sPikachuAuraFlashDelays)]; - memcpy(sp0, gUnknown_085A75C0, sizeof(gUnknown_085A75C0)); - memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); - memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); + memcpy(pikachuAnimIds, sReelTimePikachuAnimIds, sizeof(sReelTimePikachuAnimIds)); + memcpy(reelTimeBoltDelays, sReelTimeBoltDelays, sizeof(sReelTimeBoltDelays)); + memcpy(pikachuAuraFlashDelays, sPikachuAuraFlashDelays, sizeof(sPikachuAuraFlashDelays)); AdvanceReeltimeReel(task->data[4] >> 8); // gradually slow down the reel task->data[4] -= 4; - r5 = 4 - (task->data[4] >> 8); - sub_8105688(sp4[r5]); - sub_81057E8(spC[r5]); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, sp0[r5]); + i = 4 - (task->data[4] >> 8); + SetReelTimeBoltDelay(reelTimeBoltDelays[i]); + SetReelTimePikachuAuraFlashDelay(pikachuAuraFlashDelays[i]); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], pikachuAnimIds[i]); // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { - task->data[0]++; + task->tState++; task->data[4] = 0x100; task->data[5] = 0; } } -static void ReeltimeAction4(struct Task *task) +static void ReelTime_PikachuSpeedUp2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) { - task->data[0]++; + task->tState++; task->data[5] = 0; - sub_81057E8(2); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 3); + SetReelTimePikachuAuraFlashDelay(2); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 3); } } -static void ReeltimeAction5(struct Task *task) +static void ReelTime_WaitReel(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { - task->data[0]++; + task->tState++; task->data[5] = 0; } } -static void ReeltimeAction6(struct Task *task) +static void ReelTime_CheckExplode(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2896,22 +3192,22 @@ static void ReeltimeAction6(struct Task *task) task->data[5] = 0; if (sSlotMachine->reelTimeDraw) { - if (sSlotMachine->fairRollsLeft <= task->data[6]) - task->data[0]++; + if (sSlotMachine->reelTimeSpinsLeft <= task->data[6]) + task->tState++; } else if (task->data[6] > 3) { - task->data[0]++; + task->tState++; } - else if (SkipToReeltimeAction14(task->data[6])) + else if (ShouldReelTimeMachineExplode(task->data[6])) { - task->data[0] = 14; + task->tState = 14; // ReelTime_ExplodeMachine } task->data[6]++; } } -static void ReelTimeAction_LandOnOutcome(struct Task *task) +static void ReelTime_LandOnOutcome(struct Task *task) { s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; if (reeltimePixelOffset) @@ -2928,46 +3224,46 @@ static void ReelTimeAction_LandOnOutcome(struct Task *task) if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving - task->data[0]++; + task->tState++; } } -static void ReeltimeAction8(struct Task *task) +static void ReelTime_PikachuReact(struct Task *task) { if (++task->data[4] >= 60) { StopMapMusic(); - sub_81056C0(); - sub_8105804(); - task->data[0]++; + DestroyReelTimeBoltSprites(); + DestroyReelTimePikachuAuraSprites(); + task->tState++; if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); - PlayFanfare(MUS_ME_ZANNEN); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); + PlayFanfare(MUS_TOO_BAD); } else { task->data[4] = 0xc0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 4); - gSprites[sSlotMachine->reelTimeSprite3F].animCmdIndex = 0; + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 4); + gSprites[sSlotMachine->reelTimePikachuSpriteId].animCmdIndex = 0; if (sSlotMachine->pikaPower) { - sub_8104098(); + ResetPikaPowerBolts(); sSlotMachine->pikaPower = 0; } - PlayFanfare(MUS_ME_B_SMALL); + PlayFanfare(MUS_SLOTS_WIN); } } } -static void ReeltimeAction9(struct Task *task) +static void ReelTime_WaitClearPikaPower(struct Task *task) { - if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) - task->data[0]++; + if ((task->data[4] == 0 || --task->data[4] == 0) && !IsPikaPowerBoltAnimating()) + task->tState++; } -static void ReeltimeAction10(struct Task *task) +static void ReelTime_CloseWindow(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2976,67 +3272,67 @@ static void ReeltimeAction10(struct Task *task) r4 = ((task->data[1] - 8) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (task->data[3] >> 3 <= 25) - sub_8104A88(r4); + ClearReelTimeWindowTilemap(r4); else - task->data[0]++; + task->tState++; } -static void ReeltimeAction11(struct Task *task) +static void ReelTime_DestroySprites(struct Task *task) { - sSlotMachine->fairRollsUsed = 0; - sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; + sSlotMachine->reelTimeSpinsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = sSlotMachine->reelTimeDraw; gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); sSlotMachine->reelIncrement = 8; - sub_810514C(); - sub_81054B8(); - sub_8105524(); + DestroyReelTimePikachuSprite(); + DestroyReelTimeMachineSprites(); + DestroyReelTimeShadowSprites(); PlayNewMapMusic(sSlotMachine->backupMapMusic); - if (sSlotMachine->fairRollsLeft == 0) + if (sSlotMachine->reelTimeSpinsLeft == 0) { - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } else { - sub_8104CAC(4); + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); task->data[1] = SlowReelSpeed(); task->data[2] = 0; task->data[3] = 0; - task->data[0]++; + task->tState++; } } -static void ReeltimeAction12(struct Task *task) +static void ReelTime_SetReelIncrement(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) - task->data[0]++; - else if (sSlotMachine->reelPixelOffsets[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + task->tState++; + else if (sSlotMachine->reelPixelOffsets[0] % REEL_SYMBOL_HEIGHT == 0 && (++task->data[2]& 0x07) == 0) sSlotMachine->reelIncrement >>= 1; } -static void ReeltimeAction13(struct Task *task) +static void ReelTime_EndSuccess(struct Task *task) { - if (sub_8104E18()) - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + if (IsDigitalDisplayAnimFinished()) + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } -static void ReeltimeAction14(struct Task *task) +static void ReelTime_ExplodeMachine(struct Task *task) { - sub_81054B8(); - sub_81056C0(); - sub_8105804(); - sub_8105854(); - gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); - task->data[0]++; + DestroyReelTimeMachineSprites(); + DestroyReelTimeBoltSprites(); + DestroyReelTimePikachuAuraSprites(); + CreateReelTimeExplosionSprite(); + gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = TRUE; + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); + task->tState++; task->data[4] = 4; task->data[5] = 0; StopMapMusic(); - PlayFanfare(MUS_ME_ZANNEN); - PlaySE(SE_W153); + PlayFanfare(MUS_TOO_BAD); + PlaySE(SE_M_EXPLOSION); } -static void ReeltimeAction15(struct Task *task) +static void ReelTime_WaitExplode(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3046,63 +3342,68 @@ static void ReeltimeAction15(struct Task *task) task->data[4] >>= 1; if (task->data[4] == 0) { - sub_81058A0(); - sub_81058C4(); - sub_8105284_(); - sub_81059E8(); - gSprites[sSlotMachine->unk4E[0]].invisible = FALSE; - task->data[0]++; + DestroyReelTimeExplosionSprite(); + CreateReelTimeDuckSprites(); + CreateBrokenReelTimeMachineSprite(); + CreateReelTimeSmokeSprite(); + gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = FALSE; + task->tState++; task->data[5] = 0; } } -static void ReeltimeAction16(struct Task *task) +static void ReelTime_WaitSmoke(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); - if (sub_8105ACC()) + if (IsReelTimeSmokeAnimFinished()) { - task->data[0]++; - sub_8105AEC(); + task->tState++; + DestroyReelTimeSmokeSprite(); } } -static void ReeltimeAction17(struct Task *task) +static void ReelTime_EndFailure(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); PlayNewMapMusic(sSlotMachine->backupMapMusic); - sub_810514C(); - sub_8105554(); - sub_8105524(); - sub_81059B8(); - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + DestroyReelTimePikachuSprite(); + DestroyBrokenReelTimeMachineSprite(); + DestroyReelTimeShadowSprites(); + DestroyReelTimeDuckSprites(); + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } -static void sub_8104A40(s16 a0, s16 a1) +static void LoadReelTimeWindowTilemap(s16 a0, s16 a1) { s16 i; for (i = 4; i < 15; i++) { - LoadBgTilemap(1, &gReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + LoadBgTilemap(1, &sReelTimeWindow_Tilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); } } -static void sub_8104A88(s16 a0) +static void ClearReelTimeWindowTilemap(s16 a0) { u8 i; for (i = 4; i < 15; i++) { - LoadBgTilemap(1, gUnknown_085A9898, 2, 32 * i + a0); + LoadBgTilemap(1, sEmptyTilemap, 2, 32 * i + a0); } } -static void OpenInfoBox(u8 seemsUnused) +#undef tState + +#define tState data[0] + +// Info Box is the screen shown when Select is pressed +static void OpenInfoBox(u8 digDisplayId) { u8 taskId = CreateTask(RunInfoBoxActions, 1); - gTasks[taskId].data[1] = seemsUnused; + gTasks[taskId].data[1] = digDisplayId; RunInfoBoxActions(taskId); } @@ -3116,29 +3417,29 @@ static bool8 IsInfoBoxClosed(void) static void RunInfoBoxActions(u8 taskId) { - InfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sInfoBoxActions[gTasks[taskId].tState](&gTasks[taskId]); } static void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) - task->data[0]++; + task->tState++; } -static void InfoBox_8104B80(struct Task *task) +static void InfoBox_DrawWindow(struct Task *task) { - sub_8104DA4(); - sub_81065DC(); - AddWindow(&gUnknown_085A7444); + DestroyDigitalDisplayScene(); + LoadInfoBoxTilemap(); + AddWindow(&sWindowTemplate_InfoBox); PutWindowTilemap(1); FillWindowPixelBuffer(1, PIXEL_FILL(0)); - task->data[0]++; + task->tState++; } static void InfoBox_AddText(struct Task *task) @@ -3146,40 +3447,40 @@ static void InfoBox_AddText(struct Task *task) AddTextPrinterParameterized3(1, 1, 2, 5, sColors_ReeltimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_AwaitPlayerInput(struct Task *task) { - if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) + if (JOY_NEW(B_BUTTON | SELECT_BUTTON)) { FillWindowPixelBuffer(1, PIXEL_FILL(0)); ClearWindowTilemap(1); CopyWindowToVram(1, 1); RemoveWindow(1); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } } -static void InfoBox_812DE14(struct Task *task) +static void InfoBox_LoadSlotMachineTilemap(struct Task *task) { - sub_812F968(); + LoadSlotMachineMenuTilemap(); ShowBg(3); - task->data[0]++; + task->tState++; } -static void InfoBox_812DE30(struct Task *task) +static void InfoBox_CreateDigitalDisplay(struct Task *task) { - sub_8104CAC(task->data[1]); - task->data[0]++; + CreateDigitalDisplayScene(task->data[1]); + task->tState++; } -static void InfoBox_8104BFC(struct Task *task) +static void InfoBox_LoadPikaPowerMeter(struct Task *task) { - sub_810423C(sSlotMachine->pikaPower); + LoadPikaPowerMeter(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_FreeTask(struct Task *task) @@ -3187,62 +3488,68 @@ static void InfoBox_FreeTask(struct Task *task) DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } -static void sub_8104C5C(void) +#undef tState + +#define sWaitForAnim data[7] + +static void CreateDigitalDisplayTask(void) { u8 i; struct Task *task; - i = CreateTask(sub_8104E74_, 3); - sSlotMachine->unkTaskPointer3D = i; + i = CreateTask(Task_DigitalDisplay, 3); + sSlotMachine->digDisplayTaskId = i; task = &gTasks[i]; task->data[1] = -1; - for (i = 4; i < 16; i++) + for (i = 4; i < NUM_TASK_DATA; i++) task->data[i] = MAX_SPRITES; } -// possibly initialize each wheel -static void sub_8104CAC(u8 arg0) +// For the panel on the right side of the slot screen +static void CreateDigitalDisplayScene(u8 id) { u8 i; struct Task *task; - sub_8104DA4(); + DestroyDigitalDisplayScene(); - task = &gTasks[sSlotMachine->unkTaskPointer3D]; - task->data[1] = arg0; + task = &gTasks[sSlotMachine->digDisplayTaskId]; + task->data[1] = id; - for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) + for (i = 0; sDigitalDisplayScenes[id][i].spriteTemplateId != 255; i++) { u8 spriteId; - spriteId = sub_8105BB4( - gUnknown_083ED048[arg0][i].unk00, - gUnknown_083ED048[arg0][i].unk01, - gUnknown_083ED048[arg0][i].unk02 + spriteId = CreateStdDigitalDisplaySprite( + sDigitalDisplayScenes[id][i].spriteTemplateId, + sDigitalDisplayScenes[id][i].dispInfoId, + sDigitalDisplayScenes[id][i].spriteId ); task->data[4 + i] = spriteId; } } -static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void AddDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 spriteId) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; - for (i = 4; i < 16; i++) + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] == MAX_SPRITES) { - task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4); + task->data[i] = CreateDigitalDisplaySprite(templateIdx, callback, x, y, spriteId); break; } } } -static void sub_8104DA4(void) +static void DestroyDigitalDisplayScene(void) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; + if ((u16)task->data[1] != 0xFFFF) - gUnknown_083ED064[task->data[1]](); - for (i = 4; i < 16; i++) + sDigitalDisplaySceneExitCallbacks[task->data[1]](); + + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) { @@ -3252,31 +3559,31 @@ static void sub_8104DA4(void) } } -static bool8 sub_8104E18(void) +static bool8 IsDigitalDisplayAnimFinished(void) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; - for (i = 4; i < 16; i++) + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) { - if (gSprites[task->data[i]].data[7]) + if (gSprites[task->data[i]].sWaitForAnim) return FALSE; } } return TRUE; } -static void sub_8104E74_(u8 taskId) +static void Task_DigitalDisplay(u8 taskId) { - gUnknown_083ECC54[gTasks[taskId].data[0]](&gTasks[taskId]); + sDigitalDisplayActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void nullsub_69(struct Task *task) +static void DigitalDisplay_Idle(struct Task *task) { } -static void sub_8104EA8(void) +static void CreateReelSymbolSprites(void) { s16 i; s16 j; @@ -3285,7 +3592,7 @@ static void sub_8104EA8(void) { for (j = 0; j < 120; j += 24) { - struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14); + struct Sprite *sprite = gSprites + CreateSprite(&sSpriteTemplate_ReelSymbol, x, 0, 14); sprite->oam.priority = 3; sprite->data[0] = i; sprite->data[1] = j; @@ -3294,7 +3601,7 @@ static void sub_8104EA8(void) } } -static void sub_8104F18(struct Sprite *sprite) +static void SpriteCB_ReelSymbol(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; @@ -3303,28 +3610,31 @@ static void sub_8104F18(struct Sprite *sprite) SetSpriteSheetFrameTileNum(sprite); } -static void sub_8104F8C(void) +static void CreateCreditPayoutNumberSprites(void) { s16 i; s16 x; + // Credit number sprite for (x = 203, i = 1; i <= MAX_COINS; i *= 10, x -= 7) - sub_8104FF4(x, 23, 0, i); + CreateCoinNumberSprite(x, 23, FALSE, i); + + // Payout number sprite for (x = 235, i = 1; i <= MAX_COINS; i *= 10, x -= 7) - sub_8104FF4(x, 23, 1, i); + CreateCoinNumberSprite(x, 23, TRUE, i); } -static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +static void CreateCoinNumberSprite(s16 x, s16 y, bool8 isPayout, s16 a3) { - struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); + struct Sprite *sprite = &gSprites[CreateSprite(&sSpriteTemplate_CoinNumber, x, y, 13)]; sprite->oam.priority = 2; - sprite->data[0] = a2; + sprite->data[0] = isPayout; sprite->data[1] = a3; sprite->data[2] = a3 * 10; sprite->data[3] = -1; } -static void sub_810506C(struct Sprite *sprite) +static void SpriteCB_CoinNumber(struct Sprite *sprite) { u16 tag = sSlotMachine->coins; if (sprite->data[0]) @@ -3340,47 +3650,47 @@ static void sub_810506C(struct Sprite *sprite) } } -static void sub_81050C4(void) +static void CreateReelBackgroundSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelBackground, 88, 72, 15); gSprites[spriteId].oam.priority = 3; - SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_ReelBackground); } -static void sub_8105100(void) +static void CreateReelTimePikachuSprite(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; - if (sUnknown_0203AAE4 == NULL) - sUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - - sUnknown_0203AAE4[0].data = sUnknown_0203AAD8 + (0 * 0x800); - sUnknown_0203AAE4[0].size = 0x800; - sUnknown_0203AAE4[1].data = sUnknown_0203AAD8 + (1 * 0x800); - sUnknown_0203AAE4[1].size = 0x800; - sUnknown_0203AAE4[2].data = sUnknown_0203AAD8 + (2 * 0x800); - sUnknown_0203AAE4[2].size = 0x800; - sUnknown_0203AAE4[3].data = sUnknown_0203AAD8 + (3 * 0x800); - sUnknown_0203AAE4[3].size = 0x800; - sUnknown_0203AAE4[4].data = sUnknown_0203AAD8 + (4 * 0x800); - sUnknown_0203AAE4[4].size = 0x800; - - spriteTemplate = gSpriteTemplate_83ED45C; - spriteTemplate.images = sUnknown_0203AAE4; + if (sImageTable_ReelTimePikachu == NULL) + sImageTable_ReelTimePikachu = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + + sImageTable_ReelTimePikachu[0].data = sReelTimeGfxPtr + (0 * 0x800); + sImageTable_ReelTimePikachu[0].size = 0x800; + sImageTable_ReelTimePikachu[1].data = sReelTimeGfxPtr + (1 * 0x800); + sImageTable_ReelTimePikachu[1].size = 0x800; + sImageTable_ReelTimePikachu[2].data = sReelTimeGfxPtr + (2 * 0x800); + sImageTable_ReelTimePikachu[2].size = 0x800; + sImageTable_ReelTimePikachu[3].data = sReelTimeGfxPtr + (3 * 0x800); + sImageTable_ReelTimePikachu[3].size = 0x800; + sImageTable_ReelTimePikachu[4].data = sReelTimeGfxPtr + (4 * 0x800); + sImageTable_ReelTimePikachu[4].size = 0x800; + + spriteTemplate = sSpriteTemplate_ReelTimePikachu; + spriteTemplate.images = sImageTable_ReelTimePikachu; spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; - sSlotMachine->reelTimeSprite3F = spriteId; + sSlotMachine->reelTimePikachuSpriteId = spriteId; } -static void sub_810514C(void) +static void DestroyReelTimePikachuSprite(void) { - DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); - if (sUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE4); + DestroySprite(&gSprites[sSlotMachine->reelTimePikachuSpriteId]); + if (sImageTable_ReelTimePikachu != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimePikachu); } -static void sub_8105170(struct Sprite *sprite) +static void SpriteCB_ReelTimePikachu(struct Sprite *sprite) { sprite->pos2.y = sprite->pos2.x = 0; if (sprite->animNum == 4) @@ -3391,78 +3701,78 @@ static void sub_8105170(struct Sprite *sprite) } } -static void sub_81051C0(void) +static void CreateReelTimeMachineSprites(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - if (sUnknown_0203AAE8 == NULL) - sUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_ReelTimeMachineAntennae == NULL) + sImageTable_ReelTimeMachineAntennae = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAE8[0].data = sUnknown_0203AAD8 + 0x2800; - sUnknown_0203AAE8[0].size = 0x300; - spriteTemplate = gSpriteTemplate_83ED474; - spriteTemplate.images = sUnknown_0203AAE8; + sImageTable_ReelTimeMachineAntennae[0].data = sReelTimeGfxPtr + 0x2800; + sImageTable_ReelTimeMachineAntennae[0].size = 0x300; + spriteTemplate = sSpriteTemplate_ReelTimeMachineAntennae; + spriteTemplate.images = sImageTable_ReelTimeMachineAntennae; spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED73C); - sSlotMachine->unk49[0] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeMachineAntennae); + sSlotMachine->reelTimeMachineSpriteIds[0] = spriteId; - if (sUnknown_0203AAEC == NULL) - sUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_ReelTimeMachine == NULL) + sImageTable_ReelTimeMachine = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAEC[0].data = sUnknown_0203AAD8 + 0x2800 + 0x300; - sUnknown_0203AAEC[0].size = 0x500; - spriteTemplate = gSpriteTemplate_83ED48C; - spriteTemplate.images = sUnknown_0203AAEC; + sImageTable_ReelTimeMachine[0].data = sReelTimeGfxPtr + 0x2800 + 0x300; + sImageTable_ReelTimeMachine[0].size = 0x500; + spriteTemplate = sSpriteTemplate_ReelTimeMachine; + spriteTemplate.images = sImageTable_ReelTimeMachine; spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED75C); - sSlotMachine->unk49[1] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeMachine); + sSlotMachine->reelTimeMachineSpriteIds[1] = spriteId; } -static void sub_8105284_(void) +static void CreateBrokenReelTimeMachineSprite(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - if (sUnknown_0203AAF0 == NULL) - sUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_BrokenReelTimeMachine == NULL) + sImageTable_BrokenReelTimeMachine = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF0[0].data = sUnknown_0203AAD8 + 0x3000; - sUnknown_0203AAF0[0].size = 0x600; - spriteTemplate = gSpriteTemplate_83ED4A4; - spriteTemplate.images = sUnknown_0203AAF0; - spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); + sImageTable_BrokenReelTimeMachine[0].data = sReelTimeGfxPtr + 0x3000; + sImageTable_BrokenReelTimeMachine[0].size = 0x600; + spriteTemplate = sSpriteTemplate_BrokenReelTimeMachine; + spriteTemplate.images = sImageTable_BrokenReelTimeMachine; + spriteId = CreateSprite(&spriteTemplate, 168 - gSpriteCoordOffsetX, 80, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED78C); - sSlotMachine->unk42 = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_BrokenReelTimeMachine); + sSlotMachine->reelTimeBrokenMachineSpriteId = spriteId; } -static void sub_81052EC(void) +static void CreateReelTimeNumberSprites(void) { u8 i; s16 r5; - for (i = 0, r5 = 0; i < 3; i++, r5 += 20) + for (i = 0, r5 = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeNumberSpriteIds); i++, r5 += 20) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0, 10); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumbers, 368, 0, 10); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; sprite->data[7] = r5; - sSlotMachine->unk4B[i] = spriteId; + sSlotMachine->reelTimeNumberSpriteIds[i] = spriteId; } } -static void sub_810535C(struct Sprite *sprite) +static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite) { s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; @@ -3470,92 +3780,98 @@ static void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } -static void sub_81053A0(void) +static void CreateReelTimeShadowSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 368, 100, 9); struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); - sSlotMachine->unk4E[0] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeShadow); + sSlotMachine->reelTimeShadowSpriteIds[0] = spriteId; - spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 288, 104, 4); sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); - sSlotMachine->unk4E[1] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeShadow); + sSlotMachine->reelTimeShadowSpriteIds[1] = spriteId; } -static void sub_810545C(void) +// Creates a small black bar on the Reel Time machine to fill the gap between the numbers +static void CreateReelTimeNumberGapSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumberGap, 368, 76, 11); struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7D4); - sSlotMachine->unk40 = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeNumberGap); + sSlotMachine->reelTimeNumberGapSpriteId = spriteId; } -static void sub_81054B8(void) +static void DestroyReelTimeMachineSprites(void) { u8 i; - DestroySprite(&gSprites[sSlotMachine->unk40]); - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk49[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeNumberGapSpriteId]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeMachineSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeMachineSpriteIds[i]]); - if (sUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE8); - if (sUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAEC); + if (sImageTable_ReelTimeMachineAntennae != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachineAntennae); + if (sImageTable_ReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachine); - for (i = 0; i < 3; i++) - DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeNumberSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeNumberSpriteIds[i]]); } -static void sub_8105524(void) +static void DestroyReelTimeShadowSprites(void) { u8 i; - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeShadowSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeShadowSpriteIds[i]]); } -static void sub_8105554(void) +static void DestroyBrokenReelTimeMachineSprite(void) { - DestroySprite(&gSprites[sSlotMachine->unk42]); - if (sUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAF0); + DestroySprite(&gSprites[sSlotMachine->reelTimeBrokenMachineSpriteId]); + if (sImageTable_BrokenReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); } -// TODO: check if this is true -static void CreateReelTimeSprites1(void) +#define sDelayTimer data[0] +#define sXDir data[1] +#define sYDir data[2] +#define sCounter data[3] +#define sDelay data[7] + +static void CreateReelTimeBoltSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 152, 32, 5); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->hFlip = TRUE; - sSlotMachine->reelTimeSprites1[0] = spriteId; - sprite->data[0] = 8; - sprite->data[1] = -1; - sprite->data[2] = -1; - sprite->data[7] = 0x20; + sSlotMachine->reelTimeBoltSpriteIds[0] = spriteId; + sprite->sDelayTimer = 8; + sprite->sXDir = -1; + sprite->sYDir = -1; + sprite->sDelay = 32; - spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 184, 32, 5); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; - sSlotMachine->reelTimeSprites1[1] = spriteId; - sprite->data[1] = 1; - sprite->data[2] = -1; - sprite->data[7] = 0x20; + sSlotMachine->reelTimeBoltSpriteIds[1] = spriteId; + sprite->sXDir = 1; + sprite->sYDir = -1; + sprite->sDelay = 32; } -static void sub_810562C(struct Sprite *sprite) +static void SpriteCB_ReelTimeBolt(struct Sprite *sprite) { - if (sprite->data[0] != 0) + if (sprite->sDelayTimer != 0) { - sprite->data[0]--; + sprite->sDelayTimer--; sprite->pos2.x = 0; sprite->pos2.y = 0; sprite->invisible = TRUE; @@ -3563,104 +3879,123 @@ static void sub_810562C(struct Sprite *sprite) else { sprite->invisible = FALSE; - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; - if (++sprite->data[3] >= 8) + sprite->pos2.x += sprite->sXDir; + sprite->pos2.y += sprite->sYDir; + if (++sprite->sCounter >= 8) { - sprite->data[0] = sprite->data[7]; - sprite->data[3] = 0; + sprite->sDelayTimer = sprite->sDelay; + sprite->sCounter = 0; } } } -static void sub_8105688(s16 a0) +static void SetReelTimeBoltDelay(s16 delay) { - gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; - gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[0]].sDelay = delay; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[1]].sDelay = delay; } -static void sub_81056C0(void) +static void DestroyReelTimeBoltSprites(void) { u8 i; - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeBoltSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeBoltSpriteIds[i]]); } -static void CreateReelTimeSprite2(void) +#undef sDelayTimer +#undef sXDir +#undef sYDir +#undef sCounter +#undef sDelay + +#define sFlashPal data[0] +#define sColorIdx data[5] +#define sDelayTimer data[6] +#define sDelay data[7] + +static void CreateReelTimePikachuAuraSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); + // Left half of electricity orb + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 72, 80, 3); gSprites[spriteId].oam.priority = 1; - gSprites[spriteId].data[0] = 1; - gSprites[spriteId].data[5] = 0; - gSprites[spriteId].data[6] = 16; - gSprites[spriteId].data[7] = 8; - sSlotMachine->reelTimeSprites2[0] = spriteId; - - spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); + gSprites[spriteId].sFlashPal = TRUE; // Only one of them needs to do the flashing, they share the palette + gSprites[spriteId].sColorIdx = 0; + gSprites[spriteId].sDelayTimer = 16; + gSprites[spriteId].sDelay = 8; + sSlotMachine->reelTimePikachuAuraSpriteIds[0] = spriteId; + + // Right half + spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 104, 80, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].hFlip = TRUE; - sSlotMachine->reelTimeSprites2[1] = spriteId; + sSlotMachine->reelTimePikachuAuraSpriteIds[1] = spriteId; } -static void sub_8105784(struct Sprite *sprite) +static void SpriteCB_ReelTimePikachuAura(struct Sprite *sprite) { - u8 sp[] = {16, 0}; - if (sprite->data[0] && --sprite->data[6] <= 0) + u8 colors[] = {16, 0}; + if (sprite->sFlashPal && --sprite->sDelayTimer <= 0) { - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); - ++sprite->data[5]; - sprite->data[5] &= 1; - sprite->data[6] = sprite->data[7]; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(PALTAG_PIKA_AURA) << 4) + 0x103, colors[sprite->sColorIdx], colors[sprite->sColorIdx], colors[sprite->sColorIdx]); + ++sprite->sColorIdx; + sprite->sColorIdx &= 1; + sprite->sDelayTimer = sprite->sDelay; } } -static void sub_81057E8(s16 a0) +static void SetReelTimePikachuAuraFlashDelay(s16 delay) { - gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[0]].sDelay = delay; } -static void sub_8105804(void) +static void DestroyReelTimePikachuAuraSprites(void) { u8 i; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(PALTAG_PIKA_AURA) << 4) + 0x103, 0, 0, 0); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimePikachuAuraSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[i]]); } -static void sub_8105854(void) +#undef sFlashPal +#undef sColorIdx +#undef sDelayTimer +#undef sDelay + +static void CreateReelTimeExplosionSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeExplosion, 168, 80, 6); gSprites[spriteId].oam.priority = 1; - sSlotMachine->unk41 = spriteId; + sSlotMachine->reelTimeExplosionSpriteId = spriteId; } -static void sub_8105894(struct Sprite *sprite) +static void SpriteCB_ReelTimeExplosion(struct Sprite *sprite) { sprite->pos2.y = gSpriteCoordOffsetY; } -static void sub_81058A0(void) +static void DestroyReelTimeExplosionSprite(void) { - DestroySprite(&gSprites[sSlotMachine->unk41]); + DestroySprite(&gSprites[sSlotMachine->reelTimeExplosionSpriteId]); } -static void sub_81058C4(void) +// The "confusion" ducks that circle Pikachu if the Reel Time machine explodes +static void CreateReelTimeDuckSprites(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeDuckSpriteIds); i++) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeDuck, 80 - gSpriteCoordOffsetX, 68, 0); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = sp[i]; - sSlotMachine->unk54[i] = spriteId; + sSlotMachine->reelTimeDuckSpriteIds[i] = spriteId; } } -static void sub_810594C(struct Sprite *sprite) +static void SpriteCB_ReelTimeDuck(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; @@ -3678,67 +4013,77 @@ static void sub_810594C(struct Sprite *sprite) } } -static void sub_81059B8(void) +static void DestroyReelTimeDuckSprites(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeDuckSpriteIds); i++) { - DestroySprite(&gSprites[sSlotMachine->unk54[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeDuckSpriteIds[i]]); } } -static void sub_81059E8(void) +#define sState data[0] +#define sMoveY data[1] +#define sTimer data[2] +#define sAnimFinished data[7] + +static void CreateReelTimeSmokeSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeSmoke, 168, 60, 8); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; InitSpriteAffineAnim(sprite); - sSlotMachine->unk43 = spriteId; + sSlotMachine->reelTimeSmokeSpriteId = spriteId; } -static void sub_8105A38(struct Sprite *sprite) +static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite) { - if (sprite->data[0] == 0) + if (sprite->sState == 0) { if (sprite->affineAnimEnded) - sprite->data[0]++; + sprite->sState++; } - else if (sprite->data[0] == 1) + else if (sprite->sState == 1) { sprite->invisible ^= 1; - if (++sprite->data[2] >= 24) + if (++sprite->sTimer >= 24) { - sprite->data[0]++; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 0; } } else { sprite->invisible = TRUE; - if (++sprite->data[2] >= 16) - sprite->data[7] = 1; + if (++sprite->sTimer >= 16) + sprite->sAnimFinished = TRUE; } - sprite->data[1] &= 0xff; - sprite->data[1] += 16; - sprite->pos2.y -= (sprite->data[1] >> 8); + sprite->sMoveY &= 0xff; + sprite->sMoveY += 16; + sprite->pos2.y -= (sprite->sMoveY >> 8); } -static u8 sub_8105ACC(void) +static u8 IsReelTimeSmokeAnimFinished(void) { - return gSprites[sSlotMachine->unk43].data[7]; + return gSprites[sSlotMachine->reelTimeSmokeSpriteId].sAnimFinished; } -static void sub_8105AEC(void) +static void DestroyReelTimeSmokeSprite(void) { - struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; + struct Sprite *sprite = &gSprites[sSlotMachine->reelTimeSmokeSpriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -static u8 sub_8105B1C(s16 x, s16 y) +#undef sState +#undef sMoveY +#undef sTimer +#undef sAnimFinished + +static u8 CreatePikaPowerBoltSprite(s16 x, s16 y) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); + u8 spriteId = CreateSprite(&sSpriteTemplate_PikaPowerBolt, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 2; sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; @@ -3746,153 +4091,159 @@ static u8 sub_8105B1C(s16 x, s16 y) return spriteId; } -static void sub_8105B70(struct Sprite *sprite) +static void SpriteCB_PikaPowerBolt(struct Sprite *sprite) { if (sprite->affineAnimEnded) - sprite->data[7] = 1; + sprite->data[7] = TRUE; } -static void sub_8105B88(u8 spriteId) +static void DestroyPikaPowerBoltSprite(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 dispInfoId, s16 spriteId) { - return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); + return CreateDigitalDisplaySprite(templateIdx, sDigitalDisplay_SpriteCallbacks[dispInfoId], sDigitalDisplay_SpriteCoords[dispInfoId][0], sDigitalDisplay_SpriteCoords[dispInfoId][1], spriteId); } -static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +#define sState data[0] +#define sCounter data[1] +#define sSpriteId data[6] + +static u8 CreateDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 internalSpriteId) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - spriteTemplate = *gUnknown_083EDB5C[templateIdx]; - spriteTemplate.images = gUnknown_03001188[templateIdx]; + spriteTemplate = *sSpriteTemplates_DigitalDisplay[templateIdx]; + spriteTemplate.images = sImageTables_DigitalDisplay[templateIdx]; spriteId = CreateSprite(&spriteTemplate, x, y, 16); sprite = &gSprites[spriteId]; sprite->oam.priority = 3; sprite->callback = callback; - sprite->data[6] = a4; - sprite->data[7] = 1; - if (gUnknown_083EDBC4[templateIdx]) - SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]); + sprite->sSpriteId = internalSpriteId; + sprite->sWaitForAnim = TRUE; + if (sSubspriteTables_DigitalDisplay[templateIdx]) + SetSubspriteTables(sprite, sSubspriteTables_DigitalDisplay[templateIdx]); return spriteId; } -static void sub_8105C64(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Static(struct Sprite *sprite) { - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; } -static void sub_8105C6C(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *sprite) { - s16 sp0[] = {4, -4, 4, -4}; - s16 sp8[] = {4, 4, -4, -4}; + s16 targetX[] = {4, -4, 4, -4}; + s16 targetY[] = {4, 4, -4, -4}; - if (sprite->data[1]++ >= 16) + if (sprite->sCounter++ >= 16) { sprite->subspriteTableNum ^= 1; - sprite->data[1] = 0; + sprite->sCounter = 0; } sprite->pos2.x = 0; sprite->pos2.y = 0; if (sprite->subspriteTableNum != 0) { - sprite->pos2.x = sp0[sprite->data[6]]; - sprite->pos2.y = sp8[sprite->data[6]]; + sprite->pos2.x = targetX[sprite->sSpriteId]; + sprite->pos2.y = targetY[sprite->sSpriteId]; } } -static void sub_8105CF0(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *sprite) { sprite->hFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D08(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *sprite) { sprite->vFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D20(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D3C(struct Sprite *sprite) +// The word "Reel" in Reel Time +static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->pos1.x += 4; if (sprite->pos1.x >= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 2: sprite->pos1.x += 4; if (sprite->pos1.x >= 0x110) - sprite->data[0]++; + sprite->sState++; break; case 3: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105DA4(struct Sprite *sprite) +// The word "Time" in Reel Time +static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->pos1.x -= 4; if (sprite->pos1.x <= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 2: sprite->pos1.x -= 4; if (sprite->pos1.x <= 0x90) - sprite->data[0]++; + sprite->sState++; break; case 3: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105E08(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - StartSpriteAnim(sprite, sSlotMachine->fairRollsLeft - 1); - sprite->data[0]++; + StartSpriteAnim(sprite, sSlotMachine->reelTimeSpinsLeft - 1); + sprite->sState++; // fallthrough case 1: - if (++sprite->data[1] >= 4) + if (++sprite->sCounter >= 4) { - sprite->data[0]++; - sprite->data[1] = 0; + sprite->sState++; + sprite->sCounter = 0; } break; case 2: @@ -3900,54 +4251,54 @@ static void sub_8105E08(struct Sprite *sprite) if (sprite->pos1.x >= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 3: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 4: sprite->pos1.x += 4; if (sprite->pos1.x >= 0xf8) - sprite->data[0]++; + sprite->sState++; break; case 5: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105EB4(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->animPaused = TRUE; - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: sprite->pos1.y += 8; if (sprite->pos1.y >= 0x70) { sprite->pos1.y = 0x70; - sprite->data[1] = 16; - sprite->data[0]++; + sprite->sCounter = 16; + sprite->sState++; } break; case 2: if (sprite->data[2] == 0) { - sprite->pos1.y -= sprite->data[1]; - sprite->data[1] = -sprite->data[1]; + sprite->pos1.y -= sprite->sCounter; + sprite->sCounter = -sprite->sCounter; if (++sprite->data[3] >= 2) { - sprite->data[1] >>= 2; + sprite->sCounter >>= 2; sprite->data[3] = 0; - if (sprite->data[1] == 0) + if (sprite->sCounter == 0) { - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; sprite->animPaused = FALSE; } } @@ -3958,53 +4309,53 @@ static void sub_8105EB4(struct Sprite *sprite) } } -static void sub_8105F54(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Stop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (++sprite->data[1] > 8) - sprite->data[0]++; + if (++sprite->sCounter > 8) + sprite->sState++; break; case 1: sprite->pos1.y += 2; if (sprite->pos1.y >= 0x30) { sprite->pos1.y = 0x30; - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; } break; } } -static void sub_8105F9C(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->invisible = TRUE; - if (++sprite->data[1] > 0x20) + if (++sprite->sCounter > 0x20) { - sprite->data[0]++; - sprite->data[1] = 5; + sprite->sState++; + sprite->sCounter = 5; sprite->oam.mosaic = TRUE; sprite->invisible = FALSE; StartSpriteAnim(sprite, 1); - SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->sCounter << 4) | sprite->sCounter) << 8); } break; case 1: - sprite->data[1] -= (sprite->data[2] >> 8); - if (sprite->data[1] < 0) - sprite->data[1] = 0; - SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + sprite->sCounter -= (sprite->data[2] >> 8); + if (sprite->sCounter < 0) + sprite->sCounter = 0; + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->sCounter << 4) | sprite->sCounter) << 8); sprite->data[2] &= 0xff; sprite->data[2] += 0x80; - if (sprite->data[1] == 0) + if (sprite->sCounter == 0) { - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; sprite->oam.mosaic = FALSE; StartSpriteAnim(sprite, 0); } @@ -4012,11 +4363,11 @@ static void sub_8105F9C(struct Sprite *sprite) } } -static void sub_8106058(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite) { - if (sprite->data[1] < 3) + if (sprite->sCounter < 3) { - LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); if (++sprite->data[2] >= 4) { sprite->data[1]++; @@ -4025,34 +4376,35 @@ static void sub_8106058(struct Sprite *sprite) } else { - LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); if (++sprite->data[2] >= 25) { - sprite->data[1] = 0; + sprite->sCounter = 0; sprite->data[2] = 0; } } StartSpriteAnimIfDifferent(sprite, 1); - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; } -static void sub_81060FC(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite) { - s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; - s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; - s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; + // Elements in array correspond to R E G B O N U S + s16 letterXOffset[] = { 0, -40, 0, 0, 48, 0, 24, 0}; + s16 letterYOffset[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + s16 letterDelay[] = { 16, 12, 16, 0, 0, 4, 8, 8}; - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->pos2.x = sp00[sprite->data[6]]; - sprite->pos2.y = sp10[sprite->data[6]]; - sprite->data[1] = sp20[sprite->data[6]]; - sprite->data[0]++; + sprite->pos2.x = letterXOffset[sprite->sSpriteId]; + sprite->pos2.y = letterYOffset[sprite->sSpriteId]; + sprite->sCounter = letterDelay[sprite->sSpriteId]; + sprite->sState++; // fallthrough case 1: - if (sprite->data[1]-- == 0) - sprite->data[0]++; + if (sprite->sCounter-- == 0) + sprite->sState++; break; case 2: if (sprite->pos2.x > 0) @@ -4066,166 +4418,168 @@ static void sub_81060FC(struct Sprite *sprite) sprite->pos2.y += 4; if (sprite->pos2.x == 0 && sprite->pos2.y == 0) - sprite->data[0]++; + sprite->sState++; break; } } -static void sub_81061C8(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; - if (sprite->data[0] == 0) + if (sprite->sState == 0) { - sprite->data[0]++; - sprite->data[1] = 12; + sprite->sState++; + sprite->sCounter = 12; } - sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]); - sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]); - if (sprite->data[1] != 0) - sprite->data[1]--; + sprite->pos2.x = Cos(sp0[sprite->sSpriteId], sprite->sCounter); + sprite->pos2.y = Sin(sp0[sprite->sSpriteId], sprite->sCounter); + if (sprite->sCounter != 0) + sprite->sCounter--; } -static void sub_8106230(struct Sprite *sprite) +// For the A Button prompt when inserting bet +// Initially no sprite until after the first bet +static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sSlotMachine->winIn = 0x2f; - sSlotMachine->winOut = 0x3f; - sSlotMachine->win0v = 0x2088; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + sSlotMachine->win0v = WIN_RANGE(32, 136); sprite->invisible = TRUE; - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: - sprite->data[1] += 2; - sprite->data[2] = sprite->data[1] + 0xb0; - sprite->data[3] = 0xf0 - sprite->data[1]; - if (sprite->data[2] > 0xd0) - sprite->data[2] = 0xd0; - if (sprite->data[3] < 0xd0) - sprite->data[3] = 0xd0; + sprite->sCounter += 2; + sprite->data[2] = sprite->sCounter + 176; + sprite->data[3] = DISPLAY_WIDTH - sprite->sCounter; + if (sprite->data[2] > 208) + sprite->data[2] = 208; + if (sprite->data[3] < 208) + sprite->data[3] = 208; sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; - if (sprite->data[1] > 0x33) + if (sprite->sCounter > 51) { - sprite->data[0]++; - sSlotMachine->winIn = 0x3f; + sprite->sState++; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; } break; case 2: if (sSlotMachine->bet == 0) break; - sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0); - sSlotMachine->win0h = 0xc0e0; - sSlotMachine->win0v = 0x6880; - sSlotMachine->winIn = 0x2f; - sprite->data[0]++; - sprite->data[1] = 0; + AddDigitalDisplaySprite(DIG_SPRITE_A_BUTTON, SpriteCallbackDummy, 208, 116, 0); + sSlotMachine->win0h = WIN_RANGE(192, 224); + sSlotMachine->win0v = WIN_RANGE(104, 128); + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_CLR; + sprite->sState++; + sprite->sCounter = 0; // fallthrough case 3: - sprite->data[1] += 2; - sprite->data[2] = sprite->data[1] + 0xc0; - sprite->data[3] = 0xe0 - sprite->data[1]; - if (sprite->data[2] > 0xd0) - sprite->data[2] = 0xd0; - if (sprite->data[3] < 0xd0) - sprite->data[3] = 0xd0; + sprite->sCounter += 2; + sprite->data[2] = sprite->sCounter + 192; + sprite->data[3] = DISPLAY_WIDTH - 16 - sprite->sCounter; + if (sprite->data[2] > 208) + sprite->data[2] = 208; + if (sprite->data[3] < 208) + sprite->data[3] = 208; sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; - if (sprite->data[1] > 0x0f) + if (sprite->sCounter > 15) { - sprite->data[0]++; - sSlotMachine->winIn = 0x3f; + sprite->sState++; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; } break; } } -static void nullsub_70(void) +static void EndDigitalDisplayScene_Dummy(void) { } -static void sub_8106364(void) +static void EndDigitalDisplayScene_StopReel(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -static void sub_8106370(void) +static void EndDigitalDisplayScene_Win(void) { - LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sDigitalDisplay_Pal, (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 0x20); } -static void sub_810639C(void) +static void EndDigitalDisplayScene_InsertBet(void) { - sSlotMachine->win0h = 0xf0; - sSlotMachine->win0v = 0xa0; - sSlotMachine->winIn = 0x3f; - sSlotMachine->winOut = 0x3f; + sSlotMachine->win0h = DISPLAY_WIDTH; + sSlotMachine->win0v = DISPLAY_HEIGHT; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; } -static void sub_81063C0(void) +static void LoadSlotMachineGfx(void) { u8 i; - sub_8106404(); - sUnknown_0203AAD4 = Alloc(0x3200); - LZDecompressWram(gSlotMachineReelTime_Gfx, sUnknown_0203AAD4); - sUnknown_0203AAD8 = Alloc(0x3600); - LZDecompressWram(gReelTimeGfx, sUnknown_0203AAD8); - sUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * ARRAY_COUNT(gSlotMachineSpriteSheets)); - for (i = 0; i < ARRAY_COUNT(gSlotMachineSpriteSheets); i++) + LoadReelBackground(); + sDigitalDisplayGfxPtr = Alloc(0x3200); + LZDecompressWram(gSlotMachineDigitalDisplay_Gfx, sDigitalDisplayGfxPtr); + sReelTimeGfxPtr = Alloc(0x3600); + LZDecompressWram(sReelTimeGfx, sReelTimeGfxPtr); + sSlotMachineSpritesheetsPtr = AllocZeroed(sizeof(struct SpriteSheet) * ARRAY_COUNT(sSlotMachineSpriteSheets)); + for (i = 0; i < ARRAY_COUNT(sSlotMachineSpriteSheets); i++) { - sUnknown_0203AB30[i].data = gSlotMachineSpriteSheets[i].data; - sUnknown_0203AB30[i].size = gSlotMachineSpriteSheets[i].size; - sUnknown_0203AB30[i].tag = gSlotMachineSpriteSheets[i].tag; + sSlotMachineSpritesheetsPtr[i].data = sSlotMachineSpriteSheets[i].data; + sSlotMachineSpritesheetsPtr[i].size = sSlotMachineSpriteSheets[i].size; + sSlotMachineSpritesheetsPtr[i].tag = sSlotMachineSpriteSheets[i].tag; } - sUnknown_0203AB30[17].data = sUnknown_0203AAD4 + 0xA00; - sUnknown_0203AB30[18].data = sUnknown_0203AAD4 + 0x1400; - sUnknown_0203AB30[19].data = sUnknown_0203AAD4 + 0x1600; - sUnknown_0203AB30[20].data = sUnknown_0203AAD4 + 0x1900; - LoadSpriteSheets(sUnknown_0203AB30); - LoadSpritePalettes(gSlotMachineSpritePalettes); + sSlotMachineSpritesheetsPtr[GFXTAG_STOP - 1].data = sDigitalDisplayGfxPtr + 0xA00; + sSlotMachineSpritesheetsPtr[GFXTAG_BONUS - 1].data = sDigitalDisplayGfxPtr + 0x1400; + sSlotMachineSpritesheetsPtr[GFXTAG_BIG - 1].data = sDigitalDisplayGfxPtr + 0x1600; + sSlotMachineSpritesheetsPtr[GFXTAG_REG - 1].data = sDigitalDisplayGfxPtr + 0x1900; + LoadSpriteSheets(sSlotMachineSpritesheetsPtr); + LoadSpritePalettes(sSlotMachineSpritePalettes); } -static void sub_8106404(void) +static void LoadReelBackground(void) { u8 *dest; u8 i, j; - sUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); - sUnknown_0203AAE0 = AllocZeroed(0x2000); - dest = sUnknown_0203AAE0; + sReelBackgroundSpriteSheet = AllocZeroed(sizeof(struct SpriteSheet)); + sReelBackground_Gfx = AllocZeroed(0x2000); // Background is plain white + dest = sReelBackground_Gfx; for (i = 0; i < 0x40; i++) { for (j = 0; j < 0x20; j++, dest++) - *dest = gUnknown_083EDCDC[j]; + *dest = sReelBackground_Tilemap[j]; } - sUnknown_0203AB2C->data = sUnknown_0203AAE0; - sUnknown_0203AB2C->size = 0x800; - sUnknown_0203AB2C->tag = 0x11; - LoadSpriteSheet(sUnknown_0203AB2C); + sReelBackgroundSpriteSheet->data = sReelBackground_Gfx; + sReelBackgroundSpriteSheet->size = 0x800; + sReelBackgroundSpriteSheet->tag = GFXTAG_REEL_BG; + LoadSpriteSheet(sReelBackgroundSpriteSheet); } -static void sub_8106448(void) +static void LoadMenuGfx(void) { - sUnknown_0203AAC8 = Alloc(0x2200); - LZDecompressWram(gSlotMachineMenu_Gfx, sUnknown_0203AAC8); - LoadBgTiles(2, sUnknown_0203AAC8, 0x2200, 0); + sMenuGfx = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, sMenuGfx); + LoadBgTiles(2, sMenuGfx, 0x2200, 0); LoadPalette(gSlotMachineMenu_Pal, 0, 160); - LoadPalette(gPalette_83EDE24, 208, 32); + LoadPalette(sUnkPalette, 208, 32); } -static void sub_81064B8(void) +static void LoadMenuAndReelOverlayTilemaps(void) { - sub_812F968(); - LoadSlotMachineWheelOverlay(); + LoadSlotMachineMenuTilemap(); + LoadSlotMachineReelOverlay(); } -static void sub_812F968(void) +static void LoadSlotMachineMenuTilemap(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -static void LoadSlotMachineWheelOverlay(void) +static void LoadSlotMachineReelOverlay(void) { s16 x, y, dx; @@ -4233,226 +4587,227 @@ static void LoadSlotMachineWheelOverlay(void) { for (dx = 0; dx < 4; dx++) { - LoadBgTilemap(3, sUnknown_0203AAD0, 2, x + dx + 5 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap, 2, x + dx + 5 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 3, 2, x + dx + 12 * 32); } - LoadBgTilemap(3, sUnknown_0203AAD0 + 4, 2, x + 6 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 5, 2, x + 12 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 4, 2, x + 6 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 5, 2, x + 12 * 32); for (y = 7; y <= 11; y++) - LoadBgTilemap(3, sUnknown_0203AAD0 + 6, 2, x + y * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 6, 2, x + y * 32); } } -static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +// For (un)shading the gray button at the bottom of a reel when A is pressed. The button is colored in quadrants +static void SetReelButtonTilemap(s16 offset, u16 topLeft, u16 topRight, u16 bottomLeft, u16 bottomRight) { - sUnknown_0203AADC[0] = arg1; - sUnknown_0203AADC[1] = arg2; - sUnknown_0203AADC[2] = arg3; - sUnknown_0203AADC[3] = arg4; + sReelButtonPress_Tilemap[0] = topLeft; + sReelButtonPress_Tilemap[1] = topRight; + sReelButtonPress_Tilemap[2] = bottomLeft; + sReelButtonPress_Tilemap[3] = bottomRight; - LoadBgTilemap(2, sUnknown_0203AADC, 2, 15 * 32 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 2, 2, 16 * 32 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); + LoadBgTilemap(2, sReelButtonPress_Tilemap, 2, 15 * 32 + offset); // Top left + LoadBgTilemap(2, sReelButtonPress_Tilemap + 1, 2, 15 * 32 + 1 + offset); // Top right + LoadBgTilemap(2, sReelButtonPress_Tilemap + 2, 2, 16 * 32 + offset); // Bottom left + LoadBgTilemap(2, sReelButtonPress_Tilemap + 3, 2, 16 * 32 + 1 + offset); // Bottom Right } -static void sub_81065DC(void) +static void LoadInfoBoxTilemap(void) { - LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); + LoadBgTilemap(2, gSlotMachineInfoBox_Tilemap, 0x500, 0); HideBg(3); } -static void SlotMachineSetup_9_0(void) -{ - gUnknown_03001188[0] = sUnknown_0203AAF4; - gUnknown_03001188[1] = sUnknown_0203AAF8; - gUnknown_03001188[2] = sUnknown_0203AAFC; - gUnknown_03001188[3] = sUnknown_0203AB04; - gUnknown_03001188[4] = sUnknown_0203AB08; - gUnknown_03001188[5] = sUnknown_0203AB18; - gUnknown_03001188[6] = sUnknown_0203AB1C; - gUnknown_03001188[7] = sUnknown_0203AB20; - gUnknown_03001188[8] = sUnknown_0203AB24; - gUnknown_03001188[9] = sUnknown_0203AB28; - gUnknown_03001188[10] = sUnknown_0203AB00; - gUnknown_03001188[11] = sUnknown_0203AB00; - gUnknown_03001188[12] = sUnknown_0203AB00; - gUnknown_03001188[13] = sUnknown_0203AB00; - gUnknown_03001188[14] = sUnknown_0203AB0C; - gUnknown_03001188[15] = sUnknown_0203AB0C; - gUnknown_03001188[16] = sUnknown_0203AB0C; - gUnknown_03001188[17] = sUnknown_0203AB0C; - gUnknown_03001188[18] = sUnknown_0203AB0C; - gUnknown_03001188[19] = sUnknown_0203AB10; - gUnknown_03001188[20] = sUnknown_0203AB10; - gUnknown_03001188[21] = sUnknown_0203AB10; - gUnknown_03001188[22] = sUnknown_0203AB14; - gUnknown_03001188[23] = sUnknown_0203AB14; - gUnknown_03001188[24] = sUnknown_0203AB14; - gUnknown_03001188[25] = NULL; -} - -static void SlotMachineSetup_8_0(void) -{ - sUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF4[0].data = sUnknown_0203AAD4; - sUnknown_0203AAF4[0].size = 0x600; - - sUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF8[0].data = sUnknown_0203AAD4 + 0x600; - sUnknown_0203AAF8[0].size = 0x200; - - sUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAFC[0].data = sUnknown_0203AAD4 + 0x800; - sUnknown_0203AAFC[0].size = 0x200; - - sUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB00[0].data = sUnknown_0203AAD4 + 0xA00; - sUnknown_0203AB00[0].size = 0x200; - - sUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB04[0].data = sUnknown_0203AAD4 + 0xC00; - sUnknown_0203AB04[0].size = 0x300; - - sUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB08[0].data = sUnknown_0203AAD4 + 0x1000; - sUnknown_0203AB08[0].size = 0x400; - - sUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB0C[0].data = sUnknown_0203AAD4 + 0x1400; - sUnknown_0203AB0C[0].size = 0x200; - - sUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB10[0].data = sUnknown_0203AAD4 + 0x1600; - sUnknown_0203AB10[0].size = 0x300; - - sUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB14[0].data = sUnknown_0203AAD4 + 0x1900; - sUnknown_0203AB14[0].size = 0x300; - - sUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB18[0].data = sUnknown_0203AAD4 + 0x1C00; - sUnknown_0203AB18[0].size = 0x200; - sUnknown_0203AB18[1].data = sUnknown_0203AAD4 + 0x1E00; - sUnknown_0203AB18[1].size = 0x200; - - sUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB1C[0].data = sUnknown_0203AAD4 + 0x2000; - sUnknown_0203AB1C[0].size = 640; - - sUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - sUnknown_0203AB20[0].data = sUnknown_0203AAD4 + 0x2280; - sUnknown_0203AB20[0].size = 0x80; - sUnknown_0203AB20[1].data = sUnknown_0203AAD4 + 0x2300; - sUnknown_0203AB20[1].size = 0x80; - sUnknown_0203AB20[2].data = sUnknown_0203AAD4 + 0x2380; - sUnknown_0203AB20[2].size = 0x80; - sUnknown_0203AB20[3].data = sUnknown_0203AAD4 + 0x2400; - sUnknown_0203AB20[3].size = 0x80; - sUnknown_0203AB20[4].data = sUnknown_0203AAD4 + 0x2480; - sUnknown_0203AB20[4].size = 0x80; - - sUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB24[0].data = sUnknown_0203AAD4 + 0x2600; - sUnknown_0203AB24[0].size = 0x480; - sUnknown_0203AB24[1].data = sUnknown_0203AAD4 + 10880; - sUnknown_0203AB24[1].size = 0x480; - - sUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB28[0].data = sUnknown_0203AAD4 + 0x2F00; - sUnknown_0203AB28[0].size = 0x180; - sUnknown_0203AB28[1].data = sUnknown_0203AAD4 + 0x3080; - sUnknown_0203AB28[1].size = 0x180; -} - -static const u8 gReelSymbols[][REEL_NUM_TAGS] = -{ - { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY +static void SetDigitalDisplayImagePtrs(void) +{ + sImageTables_DigitalDisplay[DIG_SPRITE_REEL] = sImageTable_DigitalDisplay_Reel; + sImageTables_DigitalDisplay[DIG_SPRITE_TIME] = sImageTable_DigitalDisplay_Time; + sImageTables_DigitalDisplay[DIG_SPRITE_INSERT] = sImageTable_DigitalDisplay_Insert; + sImageTables_DigitalDisplay[DIG_SPRITE_WIN] = sImageTable_DigitalDisplay_Win; + sImageTables_DigitalDisplay[DIG_SPRITE_LOSE] = sImageTable_DigitalDisplay_Lose; + sImageTables_DigitalDisplay[DIG_SPRITE_A_BUTTON] = sImageTable_DigitalDisplay_AButton; + sImageTables_DigitalDisplay[DIG_SPRITE_SMOKE] = sImageTable_DigitalDisplay_Smoke; + sImageTables_DigitalDisplay[DIG_SPRITE_NUMBER] = sImageTable_DigitalDisplay_Number; + sImageTables_DigitalDisplay[DIG_SPRITE_POKE_BALL] = sImageTable_DigitalDisplay_Pokeball; + sImageTables_DigitalDisplay[DIG_SPRITE_D_PAD] = sImageTable_DigitalDisplay_DPad; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_S] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_T] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_O] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_P] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_B] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_O] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_N] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_U] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_S] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_B] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_I] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_G] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_R] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_E] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_G] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_EMPTY] = NULL; +} + +static void AllocDigitalDisplayGfx(void) +{ + sImageTable_DigitalDisplay_Reel = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Reel[0].data = sDigitalDisplayGfxPtr; + sImageTable_DigitalDisplay_Reel[0].size = 0x600; + + sImageTable_DigitalDisplay_Time = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Time[0].data = sDigitalDisplayGfxPtr + 0x600; + sImageTable_DigitalDisplay_Time[0].size = 0x200; + + sImageTable_DigitalDisplay_Insert = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Insert[0].data = sDigitalDisplayGfxPtr + 0x800; + sImageTable_DigitalDisplay_Insert[0].size = 0x200; + + sImageTable_DigitalDisplay_Stop = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Stop[0].data = sDigitalDisplayGfxPtr + 0xA00; + sImageTable_DigitalDisplay_Stop[0].size = 0x200; + + sImageTable_DigitalDisplay_Win = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Win[0].data = sDigitalDisplayGfxPtr + 0xC00; + sImageTable_DigitalDisplay_Win[0].size = 0x300; + + sImageTable_DigitalDisplay_Lose = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Lose[0].data = sDigitalDisplayGfxPtr + 0x1000; + sImageTable_DigitalDisplay_Lose[0].size = 0x400; + + sImageTable_DigitalDisplay_Bonus = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Bonus[0].data = sDigitalDisplayGfxPtr + 0x1400; + sImageTable_DigitalDisplay_Bonus[0].size = 0x200; + + sImageTable_DigitalDisplay_Big = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Big[0].data = sDigitalDisplayGfxPtr + 0x1600; + sImageTable_DigitalDisplay_Big[0].size = 0x300; + + sImageTable_DigitalDisplay_Reg = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Reg[0].data = sDigitalDisplayGfxPtr + 0x1900; + sImageTable_DigitalDisplay_Reg[0].size = 0x300; + + sImageTable_DigitalDisplay_AButton = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_AButton[0].data = sDigitalDisplayGfxPtr + 0x1C00; + sImageTable_DigitalDisplay_AButton[0].size = 0x200; + sImageTable_DigitalDisplay_AButton[1].data = sDigitalDisplayGfxPtr + 0x1E00; + sImageTable_DigitalDisplay_AButton[1].size = 0x200; + + sImageTable_DigitalDisplay_Smoke = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Smoke[0].data = sDigitalDisplayGfxPtr + 0x2000; + sImageTable_DigitalDisplay_Smoke[0].size = 640; + + sImageTable_DigitalDisplay_Number = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + sImageTable_DigitalDisplay_Number[0].data = sDigitalDisplayGfxPtr + 0x2280; + sImageTable_DigitalDisplay_Number[0].size = 0x80; + sImageTable_DigitalDisplay_Number[1].data = sDigitalDisplayGfxPtr + 0x2300; + sImageTable_DigitalDisplay_Number[1].size = 0x80; + sImageTable_DigitalDisplay_Number[2].data = sDigitalDisplayGfxPtr + 0x2380; + sImageTable_DigitalDisplay_Number[2].size = 0x80; + sImageTable_DigitalDisplay_Number[3].data = sDigitalDisplayGfxPtr + 0x2400; + sImageTable_DigitalDisplay_Number[3].size = 0x80; + sImageTable_DigitalDisplay_Number[4].data = sDigitalDisplayGfxPtr + 0x2480; + sImageTable_DigitalDisplay_Number[4].size = 0x80; + + sImageTable_DigitalDisplay_Pokeball = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_Pokeball[0].data = sDigitalDisplayGfxPtr + 0x2600; + sImageTable_DigitalDisplay_Pokeball[0].size = 0x480; + sImageTable_DigitalDisplay_Pokeball[1].data = sDigitalDisplayGfxPtr + 10880; + sImageTable_DigitalDisplay_Pokeball[1].size = 0x480; + + sImageTable_DigitalDisplay_DPad = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_DPad[0].data = sDigitalDisplayGfxPtr + 0x2F00; + sImageTable_DigitalDisplay_DPad[0].size = 0x180; + sImageTable_DigitalDisplay_DPad[1].data = sDigitalDisplayGfxPtr + 0x3080; + sImageTable_DigitalDisplay_DPad[1].size = 0x180; +} + +static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = +{ + [LEFT_REEL] = { + GFXTAG_7_RED, + GFXTAG_CHERRY, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_7_BLUE, + GFXTAG_LOTAD, + GFXTAG_CHERRY, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_AZURILL, + GFXTAG_7_RED, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_AZURILL, + GFXTAG_7_BLUE, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_REPLAY }, - { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY + [MIDDLE_REEL] = { + GFXTAG_7_RED, + GFXTAG_CHERRY, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_CHERRY, + GFXTAG_REPLAY, + GFXTAG_POWER, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_7_BLUE, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY, + GFXTAG_AZURILL, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY }, - { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_CHERRY + [RIGHT_REEL] = { + GFXTAG_7_RED, + GFXTAG_POWER, + GFXTAG_7_BLUE, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_POWER, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_CHERRY }, }; -static const u8 gReelTimeTags[] = { +static const u8 sReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -static const s16 gInitialReelPositions[][2] = { - {0, 6}, - {0, 10}, - {0, 2} +static const s16 sInitialReelPositions[NUM_REELS][2] = { + [LEFT_REEL] = {0, 6}, + [MIDDLE_REEL] = {0, 10}, + [RIGHT_REEL] = {0, 2} }; -static const u8 gLuckyRoundProbabilities[][3] = { +static const u8 sLuckyRoundProbabilities[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4461,13 +4816,13 @@ static const u8 gLuckyRoundProbabilities[][3] = { {3, 3, 16} }; -static const u8 gLuckyFlagProbabilities_Top3[][6] = { +static const u8 sLuckyFlagProbabilities_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -static const u8 gLuckyFlagProbabilities_NotTop3[][6] = { +static const u8 sLuckyFlagProbabilities_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4475,7 +4830,7 @@ static const u8 gLuckyFlagProbabilities_NotTop3[][6] = { {40, 40, 35, 35, 40, 40} }; -static const u8 gReeltimeProbabilities_UnluckyGame[][17] = { +static const u8 sReeltimeProbabilities_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4484,7 +4839,7 @@ static const u8 gReeltimeProbabilities_UnluckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -static const u8 gReelTimeProbabilities_LuckyGame[][17] = { +static const u8 sReelTimeProbabilities_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4493,11 +4848,11 @@ static const u8 gReelTimeProbabilities_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -static const u16 gProbabilityTable_SkipToReeltimeAction14[] = { +static const u16 sReelTimeExplodeProbability[] = { 128, 175, 200, 225, 256 }; -static const u16 gReelIncrementTable[][2] = { +static const u16 sReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4505,211 +4860,219 @@ static const u16 gReelIncrementTable[][2] = { {10, 35} }; -static const u16 gReelTimeBonusIncrementTable[] = { +static const u16 sReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; // tentative name -static const u8 gBiasTags[] = { - SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED +static const u8 sBiasTags[] = { + GFXTAG_REPLAY, GFXTAG_CHERRY, GFXTAG_LOTAD, GFXTAG_AZURILL, GFXTAG_POWER, GFXTAG_7_RED, GFXTAG_7_RED, GFXTAG_7_RED }; -static const u16 gLuckyFlagSettings_Top3[] = { +static const u16 sLuckyFlagSettings_Top3[] = { LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; -static const u16 gLuckyFlagSettings_NotTop3[] = { +static const u16 sLuckyFlagSettings_NotTop3[] = { LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; -static const u8 gSym2Match[] = { - SLOT_MACHINE_MATCHED_777_RED, - SLOT_MACHINE_MATCHED_777_BLUE, - SLOT_MACHINE_MATCHED_AZURILL, - SLOT_MACHINE_MATCHED_LOTAD, - SLOT_MACHINE_MATCHED_1CHERRY, - SLOT_MACHINE_MATCHED_POWER, - SLOT_MACHINE_MATCHED_REPLAY -}; - -static const u16 gSlotMatchFlags[] = { - 1 << SLOT_MACHINE_MATCHED_1CHERRY, - 1 << SLOT_MACHINE_MATCHED_2CHERRY, - 1 << SLOT_MACHINE_MATCHED_REPLAY, - 1 << SLOT_MACHINE_MATCHED_LOTAD, - 1 << SLOT_MACHINE_MATCHED_AZURILL, - 1 << SLOT_MACHINE_MATCHED_POWER, - 1 << SLOT_MACHINE_MATCHED_777_MIXED, - 1 << SLOT_MACHINE_MATCHED_777_RED, - 1 << SLOT_MACHINE_MATCHED_777_BLUE -}; - -static const u16 gSlotPayouts[] = { - 2, 4, 0, 6, 12, 3, 90, 300, 300 -}; - -static const s16 gUnknown_083ECE7E[][2] = { - { 0xd0, 0x38}, - { 0xb8, 0x00}, - { 0xc8, 0x08}, - { 0xd8, 0x10}, - { 0xe8, 0x18}, - { 0xd0, 0x48}, - { 0xd0, 0x08}, - { 0xd0, 0x40}, - { 0xd0, 0x38}, - { 0xc0, 0x58}, - { 0xe0, 0x58}, - { 0xc0, 0x78}, - { 0xe0, 0x78}, - { 0x90, 0x38}, - {0x110, 0x58}, - { 0xa8, 0x70}, - { 0xd0, 0x54}, - { 0xd0, 0x70}, - { 0xbc, 0x34}, - { 0xd0, 0x34}, - { 0xe4, 0x34}, - { 0xb8, 0x48}, - { 0xc4, 0x48}, - { 0xd0, 0x48}, - { 0xdc, 0x48}, - { 0xe8, 0x48}, - { 0xbc, 0x34}, - { 0xd0, 0x34}, - { 0xe4, 0x34}, - { 0xb8, 0x48}, - { 0xc4, 0x48}, - { 0xd0, 0x48}, - { 0xdc, 0x48}, - { 0xe8, 0x48}, - { 0x00, 0x00} -}; - -static const SpriteCallback gUnknown_083ECF0C[] = { - sub_8105C64, - sub_8105F54, - sub_8105F54, - sub_8105F54, - sub_8105F54, - sub_8105F9C, - sub_8105EB4, - sub_8105C64, - sub_8105C64, - sub_8105C6C, - sub_8105CF0, - sub_8105D08, - sub_8105D20, - sub_8105D3C, - sub_8105DA4, - sub_8105E08, - sub_8105C64, - sub_8106058, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_8106230 -}; - -static const struct UnkStruct1 Unknown_83ECF98[] = { - {25, 34, 0}, - {2, 0, 0}, - {9, 16, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ECFA8[] = { - {10, 1, 0}, - {11, 2, 0}, - {12, 3, 0}, - {13, 4, 0}, - {5, 5, 0}, - {8, 6, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ECFC4[] = { - {3, 7, 0}, - {8, 17, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ECFD0[] = { - {4, 8, 0}, - {6, 9, 0}, - {6, 10, 1}, - {6, 11, 2}, - {6, 12, 3}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ECFE8[] = { - {0, 13, 0}, - {1, 14, 0}, - {7, 15, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ECFF8[] = { - {19, 26, 0}, - {20, 27, 1}, - {21, 28, 2}, - {14, 29, 3}, - {15, 30, 4}, - {16, 31, 5}, - {17, 32, 6}, - {18, 33, 7}, - {8, 17, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 Unknown_83ED020[] = { - {22, 18, 0}, - {23, 19, 1}, - {24, 20, 2}, - {14, 21, 3}, - {15, 22, 4}, - {16, 23, 5}, - {17, 24, 6}, - {18, 25, 7}, - {8, 17, 0}, - {255, 0, 0} -}; - -static const struct UnkStruct1 *const gUnknown_083ED048[] = { - Unknown_83ECF98, - Unknown_83ECFA8, - Unknown_83ECFC4, - Unknown_83ECFD0, - Unknown_83ECFE8, - Unknown_83ED020, - Unknown_83ECFF8 -}; - -static void (*const gUnknown_083ED064[])(void) = { - sub_810639C, - sub_8106364, - sub_8106370, - nullsub_70, - nullsub_70, - sub_8106370, - sub_8106370 -}; - -static const struct OamData gUnknown_085A7A3C = +static const u8 sSymToMatch[] = { + [GFXTAG_7_RED] = MATCHED_777_RED, + [GFXTAG_7_BLUE] = MATCHED_777_BLUE, + [GFXTAG_AZURILL] = MATCHED_AZURILL, + [GFXTAG_LOTAD] = MATCHED_LOTAD, + [GFXTAG_CHERRY] = MATCHED_1CHERRY, + [GFXTAG_POWER] = MATCHED_POWER, + [GFXTAG_REPLAY] = MATCHED_REPLAY +}; + +static const u16 sSlotMatchFlags[] = { + [MATCHED_1CHERRY] = 1 << MATCHED_1CHERRY, + [MATCHED_2CHERRY] = 1 << MATCHED_2CHERRY, + [MATCHED_REPLAY] = 1 << MATCHED_REPLAY, + [MATCHED_LOTAD] = 1 << MATCHED_LOTAD, + [MATCHED_AZURILL] = 1 << MATCHED_AZURILL, + [MATCHED_POWER] = 1 << MATCHED_POWER, + [MATCHED_777_MIXED] = 1 << MATCHED_777_MIXED, + [MATCHED_777_RED] = 1 << MATCHED_777_RED, + [MATCHED_777_BLUE] = 1 << MATCHED_777_BLUE +}; + +static const u16 sSlotPayouts[] = { + [MATCHED_1CHERRY] = 2, + [MATCHED_2CHERRY] = 4, + [MATCHED_REPLAY] = 0, + [MATCHED_LOTAD] = 6, + [MATCHED_AZURILL] = 12, + [MATCHED_POWER] = 3, + [MATCHED_777_MIXED] = 90, + [MATCHED_777_RED] = 300, + [MATCHED_777_BLUE] = 300 +}; + +static const s16 sDigitalDisplay_SpriteCoords[][2] = { + [DIG_DISPINFO_INSERT] = { 208, 56}, + [DIG_DISPINFO_STOP_S] = { 184, 0}, + [DIG_DISPINFO_STOP_T] = { 200, 8}, + [DIG_DISPINFO_STOP_O] = { 216, 16}, + [DIG_DISPINFO_STOP_P] = { 232, 24}, + [DIG_DISPINFO_A_BUTTON_STOP] = { 208, 72}, + [DIG_DISPINFO_POKE_BALL_ROCKING] = { 208, 8}, + [DIG_DISPINFO_WIN] = { 208, 64}, + [DIG_DISPINFO_LOSE] = { 208, 56}, + [DIG_DISPINFO_SMOKE_NW] = { 192, 88}, + [DIG_DISPINFO_SMOKE_NE] = { 224, 88}, + [DIG_DISPINFO_SMOKE_SW] = { 192, 120}, + [DIG_DISPINFO_SMOKE_SE] = { 224, 120}, + [DIG_DISPINFO_REEL] = { 144, 56}, + [DIG_DISPINFO_TIME] = { 272, 88}, + [DIG_DISPINFO_NUMBER] = { 168, 112}, + [DIG_DISPINFO_DPAD] = { 208, 84}, + [DIG_DISPINFO_POKE_BALL_SHINING] = { 208, 112}, + [DIG_DISPINFO_REG_R] = { 188, 52}, + [DIG_DISPINFO_REG_E] = { 208, 52}, + [DIG_DISPINFO_REG_G] = { 228, 52}, + [DIG_DISPINFO_REG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_REG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_REG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_REG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_REG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_BIG_B] = { 188, 52}, + [DIG_DISPINFO_BIG_I] = { 208, 52}, + [DIG_DISPINFO_BIG_G] = { 228, 52}, + [DIG_DISPINFO_BIG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_BIG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_BIG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_BIG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_BIG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_A_BUTTON_START] = { 0, 0} // Initially offscreen +}; + +static const SpriteCallback sDigitalDisplay_SpriteCallbacks[] = { + [DIG_DISPINFO_INSERT] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_STOP_S] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_T] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_O] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_P] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_A_BUTTON_STOP] = SpriteCB_DigitalDisplay_AButtonStop, + [DIG_DISPINFO_POKE_BALL_ROCKING] = SpriteCB_DigitalDisplay_PokeballRocking, + [DIG_DISPINFO_WIN] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_LOSE] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_SMOKE_NW] = SpriteCB_DigitalDisplay_Smoke, + [DIG_DISPINFO_SMOKE_NE] = SpriteCB_DigitalDisplay_SmokeNE, + [DIG_DISPINFO_SMOKE_SW] = SpriteCB_DigitalDisplay_SmokeSW, + [DIG_DISPINFO_SMOKE_SE] = SpriteCB_DigitalDisplay_SmokeSE, + [DIG_DISPINFO_REEL] = SpriteCB_DigitalDisplay_Reel, + [DIG_DISPINFO_TIME] = SpriteCB_DigitalDisplay_Time, + [DIG_DISPINFO_NUMBER] = SpriteCB_DigitalDisplay_ReelTimeNumber, + [DIG_DISPINFO_DPAD] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_POKE_BALL_SHINING] = SpriteCB_DigitalDisplay_PokeballShining, + [DIG_DISPINFO_REG_R] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_E] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_G] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_B] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_O] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_N] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_U] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_S] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_BIG_B] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_I] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_G] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_B] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_O] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_N] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_U] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_S] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_A_BUTTON_START] = SpriteCB_DigitalDisplay_AButtonStart +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_InsertBet[] = { + {DIG_SPRITE_EMPTY, DIG_DISPINFO_A_BUTTON_START, 0}, // Sprite replaced with DIG_SPRITE_A_BUTTON after first bet + {DIG_SPRITE_INSERT, DIG_DISPINFO_INSERT, 0}, + {DIG_SPRITE_D_PAD, DIG_DISPINFO_DPAD, 0}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_StopReel[] = { + {DIG_SPRITE_STOP_S, DIG_DISPINFO_STOP_S, 0}, + {DIG_SPRITE_STOP_T, DIG_DISPINFO_STOP_T, 0}, + {DIG_SPRITE_STOP_O, DIG_DISPINFO_STOP_O, 0}, + {DIG_SPRITE_STOP_P, DIG_DISPINFO_STOP_P, 0}, + {DIG_SPRITE_A_BUTTON, DIG_DISPINFO_A_BUTTON_STOP, 0}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_ROCKING, 0}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_Win[] = { + {DIG_SPRITE_WIN, DIG_DISPINFO_WIN, 0}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_Lose[] = { + {DIG_SPRITE_LOSE, DIG_DISPINFO_LOSE, 0}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_NW, 0}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_NE, 1}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_SW, 2}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_SE, 3}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_ReelTime[] = { + {DIG_SPRITE_REEL, DIG_DISPINFO_REEL, 0}, + {DIG_SPRITE_TIME, DIG_DISPINFO_TIME, 0}, + {DIG_SPRITE_NUMBER, DIG_DISPINFO_NUMBER, 0}, // Number of reel time spins left + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_BonusBig[] = { + {DIG_SPRITE_BIG_B, DIG_DISPINFO_BIG_B, 0}, + {DIG_SPRITE_BIG_I, DIG_DISPINFO_BIG_I, 1}, + {DIG_SPRITE_BIG_G, DIG_DISPINFO_BIG_G, 2}, + {DIG_SPRITE_BONUS_B, DIG_DISPINFO_BIG_BONUS_B, 3}, + {DIG_SPRITE_BONUS_O, DIG_DISPINFO_BIG_BONUS_O, 4}, + {DIG_SPRITE_BONUS_N, DIG_DISPINFO_BIG_BONUS_N, 5}, + {DIG_SPRITE_BONUS_U, DIG_DISPINFO_BIG_BONUS_U, 6}, + {DIG_SPRITE_BONUS_S, DIG_DISPINFO_BIG_BONUS_S, 7}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite sDigitalDisplay_BonusRegular[] = { + {DIG_SPRITE_REG_R, DIG_DISPINFO_REG_R, 0}, + {DIG_SPRITE_REG_E, DIG_DISPINFO_REG_E, 1}, + {DIG_SPRITE_REG_G, DIG_DISPINFO_REG_G, 2}, + {DIG_SPRITE_BONUS_B, DIG_DISPINFO_REG_BONUS_B, 3}, + {DIG_SPRITE_BONUS_O, DIG_DISPINFO_REG_BONUS_O, 4}, + {DIG_SPRITE_BONUS_N, DIG_DISPINFO_REG_BONUS_N, 5}, + {DIG_SPRITE_BONUS_U, DIG_DISPINFO_REG_BONUS_U, 6}, + {DIG_SPRITE_BONUS_S, DIG_DISPINFO_REG_BONUS_S, 7}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, + DIG_SPRITE_DUMMY +}; + +static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[] = { + [DIG_DISPLAY_INSERT_BET] = sDigitalDisplay_InsertBet, + [DIG_DISPLAY_STOP_REEL] = sDigitalDisplay_StopReel, + [DIG_DISPLAY_WIN] = sDigitalDisplay_Win, + [DIG_DISPLAY_LOSE] = sDigitalDisplay_Lose, + [DIG_DISPLAY_REEL_TIME] = sDigitalDisplay_ReelTime, + [DIG_DISPLAY_BONUS_REG] = sDigitalDisplay_BonusRegular, + [DIG_DISPLAY_BONUS_BIG] = sDigitalDisplay_BonusBig +}; + +static void (*const sDigitalDisplaySceneExitCallbacks[])(void) = { + [DIG_DISPLAY_INSERT_BET] = EndDigitalDisplayScene_InsertBet, + [DIG_DISPLAY_STOP_REEL] = EndDigitalDisplayScene_StopReel, + [DIG_DISPLAY_WIN] = EndDigitalDisplayScene_Win, + [DIG_DISPLAY_LOSE] = EndDigitalDisplayScene_Dummy, + [DIG_DISPLAY_REEL_TIME] = EndDigitalDisplayScene_Dummy, + [DIG_DISPLAY_BONUS_REG] = EndDigitalDisplayScene_Win, + [DIG_DISPLAY_BONUS_BIG] = EndDigitalDisplayScene_Win +}; + +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4726,7 +5089,7 @@ static const struct OamData gUnknown_085A7A3C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A44 = +static const struct OamData sOam_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4743,7 +5106,7 @@ static const struct OamData gUnknown_085A7A44 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A4C = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4760,7 +5123,7 @@ static const struct OamData gUnknown_085A7A4C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A54 = +static const struct OamData sOam_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4777,7 +5140,7 @@ static const struct OamData gUnknown_085A7A54 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A5C = +static const struct OamData sOam_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4794,7 +5157,7 @@ static const struct OamData gUnknown_085A7A5C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A64 = +static const struct OamData sOam_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4811,7 +5174,7 @@ static const struct OamData gUnknown_085A7A64 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A6C = +static const struct OamData sOam_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4828,7 +5191,7 @@ static const struct OamData gUnknown_085A7A6C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A74 = +static const struct OamData sOam_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4845,7 +5208,7 @@ static const struct OamData gUnknown_085A7A74 = .affineParam = 0, }; -static const struct SpriteFrameImage gUnknown_085A7A7C[] = +static const struct SpriteFrameImage sImageTable_ReelTimeNumbers[] = { { gSlotMachineReelTimeNumber0, 0x80 }, { gSlotMachineReelTimeNumber1, 0x80 }, @@ -4855,151 +5218,151 @@ static const struct SpriteFrameImage gUnknown_085A7A7C[] = { gSlotMachineReelTimeNumber5, 0x80 }, }; -static const struct SpriteFrameImage gUnknown_085A7AAC[] = { gSlotMachineReelTimeShadow, 0x200 }; -static const struct SpriteFrameImage gUnknown_085A7AB4[] = { gUnknown_08DD1A18, 0x40 }; +static const struct SpriteFrameImage sImageTable_ReelTimeShadow[] = { gSlotMachineReelTimeShadow, 0x200 }; +static const struct SpriteFrameImage sImageTable_ReelTimeNumberGap[] = { gSlotMachineReelTimeNumberGap_Gfx, 0x40 }; -static const struct SpriteFrameImage gUnknown_085A7ABC[] = +static const struct SpriteFrameImage sImageTable_ReelTimeBolt[] = { - { gSlotMachineReelTimeLargeBolt0, 0x100 }, - { gSlotMachineReelTimeLargeBolt1, 0x100 }, + { gSlotMachineReelTimeBolt0, 0x100 }, + { gSlotMachineReelTimeBolt1, 0x100 }, }; -static const struct SpriteFrameImage gUnknown_085A7ACC[] = { gSlotMachineReelTimePikaAura, 0x400 }; +static const struct SpriteFrameImage sImageTable_ReelTimePikachuAura[] = { gSlotMachineReelTimePikaAura, 0x400 }; -static const struct SpriteFrameImage gUnknown_085A7AD4[] = +static const struct SpriteFrameImage sImageTable_ReelTimeExplosion[] = { { gSlotMachineReelTimeExplosion0, 0x200 }, { gSlotMachineReelTimeExplosion1, 0x200 }, }; -static const struct SpriteFrameImage gUnknown_085A7AE4[] = { gSlotMachineReelTimeDuck, 0x20}; -static const struct SpriteFrameImage gUnknown_085A7AEC[] = { gSlotMachineReelTimeSmoke, 0x80}; -static const struct SpriteFrameImage gUnknown_085A7AF4[] = { gSlotMachineReelTimeBolt, 0x20}; +static const struct SpriteFrameImage sImageTable_ReelTimeDuck[] = { gSlotMachineReelTimeDuck, 0x20}; +static const struct SpriteFrameImage sImageTable_ReelTimeSmoke[] = { gSlotMachineReelTimeSmoke, 0x80}; +static const struct SpriteFrameImage sImageTable_PikaPowerBolt[] = { gSlotMachinePikaPowerBolt, 0x20}; -static const union AnimCmd gUnknown_085A7AFC[] = +static const union AnimCmd sAnim_SingleFrame[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B04[] = +static const union AnimCmd sAnim_ReelTimeDuck[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B0C[] = +static const union AnimCmd sAnim_ReelTimePikachu_Still[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B14[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingSlow[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 16), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B20[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingMedium[] = { ANIMCMD_FRAME(1, 8), ANIMCMD_FRAME(0, 8), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B2C[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingFast[] = { ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B38[] = +static const union AnimCmd sAnim_ReelTimePikachu_Cheering[] = { ANIMCMD_FRAME(2, 32), ANIMCMD_FRAME(3, 32), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B44[] = +static const union AnimCmd sAnim_ReelTimePikachu_FellOver[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B4C[] = +static const union AnimCmd sAnim_ReelTimeNumber_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B54[] = +static const union AnimCmd sAnim_ReelTimeNumber_1[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B5C[] = +static const union AnimCmd sAnim_ReelTimeNumber_2[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B64[] = +static const union AnimCmd sAnim_ReelTimeNumber_3[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B6C[] = +static const union AnimCmd sAnim_ReelTimeNumber_4[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B74[] = +static const union AnimCmd sAnim_ReelTimeNumber_5[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B7C[] = +static const union AnimCmd sAnim_ReelTimeBolt[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B88[] = +static const union AnimCmd sAnim_ReelTimeExplosion[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B94[] = +static const union AnimCmd sAnim_DigitalDisplay_AButton_Flashing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BA0[] = +static const union AnimCmd sAnim_DigitalDisplay_AButton_Static[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BA8[] = +static const union AnimCmd sAnim_DigitalDisplay_DPad_Flashing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BB4[] = +static const union AnimCmd sAnim_DigitalDisplay_Pokeball_Rocking[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), @@ -5008,110 +5371,110 @@ static const union AnimCmd gUnknown_085A7BB4[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BC8[] = +static const union AnimCmd sAnim_DigitalDisplay_Pokeball_Static[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BD0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BD8[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BE0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_3[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BE8[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_4[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BF0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_5[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085A7BF8[] = +static const union AnimCmd *const sAnims_SingleFrame[] = { - gUnknown_085A7AFC + sAnim_SingleFrame }; -static const union AnimCmd *const gUnknown_085A7BFC[] = +static const union AnimCmd *const sAnims_ReelTimeDuck[] = { - gUnknown_085A7B04 + sAnim_ReelTimeDuck }; -static const union AnimCmd *const gUnknown_085A7C00[] = +static const union AnimCmd *const sAnims_ReelTimePikachu[] = { - gUnknown_085A7B0C, - gUnknown_085A7B14, - gUnknown_085A7B20, - gUnknown_085A7B2C, - gUnknown_085A7B38, - gUnknown_085A7B44 + sAnim_ReelTimePikachu_Still, + sAnim_ReelTimePikachu_ChargingSlow, + sAnim_ReelTimePikachu_ChargingMedium, + sAnim_ReelTimePikachu_ChargingFast, + sAnim_ReelTimePikachu_Cheering, + sAnim_ReelTimePikachu_FellOver }; -static const union AnimCmd *const gUnknown_085A7C18[] = +static const union AnimCmd *const sAnims_ReelTimeNumbers[] = { - gUnknown_085A7B4C, - gUnknown_085A7B54, - gUnknown_085A7B5C, - gUnknown_085A7B64, - gUnknown_085A7B6C, - gUnknown_085A7B74 + sAnim_ReelTimeNumber_0, + sAnim_ReelTimeNumber_1, + sAnim_ReelTimeNumber_2, + sAnim_ReelTimeNumber_3, + sAnim_ReelTimeNumber_4, + sAnim_ReelTimeNumber_5 }; -static const union AnimCmd *const gUnknown_085A7C30[] = +static const union AnimCmd *const sAnims_ReelTimeBolt[] = { - gUnknown_085A7B7C + sAnim_ReelTimeBolt }; -static const union AnimCmd *const gUnknown_085A7C34[] = +static const union AnimCmd *const sAnims_ReelTimeExplosion[] = { - gUnknown_085A7B88 + sAnim_ReelTimeExplosion }; -static const union AnimCmd *const gUnknown_085A7C38[] = +static const union AnimCmd *const sAnims_DigitalDisplay_AButton[] = { - gUnknown_085A7B94, - gUnknown_085A7BA0 + sAnim_DigitalDisplay_AButton_Flashing, + sAnim_DigitalDisplay_AButton_Static }; -static const union AnimCmd *const gUnknown_085A7C40[] = +static const union AnimCmd *const sAnims_DigitalDisplay_DPad[] = { - gUnknown_085A7BA8 + sAnim_DigitalDisplay_DPad_Flashing }; -static const union AnimCmd *const gUnknown_085A7C44[] = +static const union AnimCmd *const sAnims_DigitalDisplay_Pokeball[] = { - gUnknown_085A7BB4, - gUnknown_085A7BC8 + sAnim_DigitalDisplay_Pokeball_Rocking, + sAnim_DigitalDisplay_Pokeball_Static }; -static const union AnimCmd *const gUnknown_085A7C4C[] = +static const union AnimCmd *const sAnims_DigitalDisplay_Number[] = { - gUnknown_085A7BD0, - gUnknown_085A7BD8, - gUnknown_085A7BE0, - gUnknown_085A7BE8, - gUnknown_085A7BF0 + sAnim_DigitalDisplay_Number_1, + sAnim_DigitalDisplay_Number_2, + sAnim_DigitalDisplay_Number_3, + sAnim_DigitalDisplay_Number_4, + sAnim_DigitalDisplay_Number_5 }; -static const union AffineAnimCmd gUnknown_085A7C60[] = +static const union AffineAnimCmd sAffineAnim_ReelTimeSmoke[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_LOOP(0), @@ -5120,12 +5483,13 @@ static const union AffineAnimCmd gUnknown_085A7C60[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_085A7C88[] = +static const union AffineAnimCmd *const sAffineAnims_ReelTimeSmoke[] = { - gUnknown_085A7C60 + sAffineAnim_ReelTimeSmoke }; -static const union AffineAnimCmd gUnknown_085A7C8C[] = +// Spin as it appears +static const union AffineAnimCmd sAffineAnim_PikaPowerBolt[] = { AFFINEANIMCMD_FRAME(0, 0, 8, 32), AFFINEANIMCMD_FRAME(0, 0, 6, 32), @@ -5139,342 +5503,342 @@ static const union AffineAnimCmd gUnknown_085A7C8C[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_085A7CDC[] = +static const union AffineAnimCmd *const sAffineAnims_PikaPowerBolt[] = { - gUnknown_085A7C8C + sAffineAnim_PikaPowerBolt }; -static const struct SpriteTemplate gSpriteTemplate_83ED414 = +static const struct SpriteTemplate sSpriteTemplate_ReelSymbol = { - .tileTag = 0, - .paletteTag = 0, - .oam = &gUnknown_085A7A5C, - .anims = gUnknown_085A7BF8, + .tileTag = GFXTAG_SYMBOLS_START, + .paletteTag = PALTAG_REEL, + .oam = &sOam_32x32, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8104F18 + .callback = SpriteCB_ReelSymbol }; -static const struct SpriteTemplate gSpriteTemplate_83ED42C = +static const struct SpriteTemplate sSpriteTemplate_CoinNumber = { - .tileTag = 7, - .paletteTag = 4, - .oam = &gUnknown_085A7A44, - .anims = gUnknown_085A7BF8, + .tileTag = GFXTAG_NUMBERS_START, + .paletteTag = PALTAG_MISC, + .oam = &sOam_8x16, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810506C + .callback = SpriteCB_CoinNumber }; -static const struct SpriteTemplate gSpriteTemplate_83ED444 = +static const struct SpriteTemplate sSpriteTemplate_ReelBackground = { - .tileTag = 17, - .paletteTag = 0, - .oam = &gUnknown_085A7A74, - .anims = gUnknown_085A7BF8, + .tileTag = GFXTAG_REEL_BG, + .paletteTag = PALTAG_REEL, + .oam = &sOam_64x64, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED45C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu = { .tileTag = 0xFFFF, - .paletteTag = 1, - .oam = &gUnknown_085A7A74, - .anims = gUnknown_085A7C00, + .paletteTag = PALTAG_REEL_TIME_PIKACHU, + .oam = &sOam_64x64, + .anims = sAnims_ReelTimePikachu, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105170 + .callback = SpriteCB_ReelTimePikachu }; -static const struct SpriteTemplate gSpriteTemplate_83ED474 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae = { .tileTag = 0xFFFF, - .paletteTag = 2, - .oam = &gUnknown_085A7A44, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_REEL_TIME_MISC, + .oam = &sOam_8x16, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED48C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine = { .tileTag = 0xFFFF, - .paletteTag = 3, - .oam = &gUnknown_085A7A44, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_REEL_TIME_MACHINE, + .oam = &sOam_8x16, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4A4 = +static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine = { .tileTag = 0xFFFF, - .paletteTag = 3, - .oam = &gUnknown_085A7A44, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_REEL_TIME_MACHINE, + .oam = &sOam_8x16, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4BC = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7C18, - .images = gUnknown_085A7A7C, + .paletteTag = PALTAG_MISC, + .oam = &sOam_16x16, + .anims = sAnims_ReelTimeNumbers, + .images = sImageTable_ReelTimeNumbers, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810535C + .callback = SpriteCB_ReelTimeNumbers }; -static const struct SpriteTemplate gSpriteTemplate_83ED4D4 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AAC, + .paletteTag = PALTAG_MISC, + .oam = &sOam_16x16, + .anims = sAnims_SingleFrame, + .images = sImageTable_ReelTimeShadow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4EC = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumberGap = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AB4, + .paletteTag = PALTAG_MISC, + .oam = &sOam_16x16, + .anims = sAnims_SingleFrame, + .images = sImageTable_ReelTimeNumberGap, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED504 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A54, - .anims = gUnknown_085A7C30, - .images = gUnknown_085A7ABC, + .paletteTag = PALTAG_MISC, + .oam = &sOam_16x32, + .anims = sAnims_ReelTimeBolt, + .images = sImageTable_ReelTimeBolt, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810562C + .callback = SpriteCB_ReelTimeBolt }; -static const struct SpriteTemplate gSpriteTemplate_83ED51C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura = { .tileTag = 0xFFFF, - .paletteTag = 7, - .oam = &gUnknown_085A7A64, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7ACC, + .paletteTag = PALTAG_PIKA_AURA, + .oam = &sOam_32x64, + .anims = sAnims_SingleFrame, + .images = sImageTable_ReelTimePikachuAura, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105784 + .callback = SpriteCB_ReelTimePikachuAura }; -static const struct SpriteTemplate gSpriteTemplate_83ED534 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion = { .tileTag = 0xFFFF, - .paletteTag = 5, - .oam = &gUnknown_085A7A5C, - .anims = gUnknown_085A7C34, - .images = gUnknown_085A7AD4, + .paletteTag = PALTAG_EXPLOSION, + .oam = &sOam_32x32, + .anims = sAnims_ReelTimeExplosion, + .images = sImageTable_ReelTimeExplosion, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105894 + .callback = SpriteCB_ReelTimeExplosion }; -static const struct SpriteTemplate gSpriteTemplate_83ED54C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BFC, - .images = gUnknown_085A7AE4, + .paletteTag = PALTAG_MISC, + .oam = &sOam_8x8, + .anims = sAnims_ReelTimeDuck, + .images = sImageTable_ReelTimeDuck, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810594C + .callback = SpriteCB_ReelTimeDuck }; -static const struct SpriteTemplate gSpriteTemplate_83ED564 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AEC, - .affineAnims = gUnknown_085A7C88, - .callback = sub_8105A38 + .paletteTag = PALTAG_MISC, + .oam = &sOam_16x16, + .anims = sAnims_SingleFrame, + .images = sImageTable_ReelTimeSmoke, + .affineAnims = sAffineAnims_ReelTimeSmoke, + .callback = SpriteCB_ReelTimeSmoke }; -static const struct SpriteTemplate gUnknown_085A7E48 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reel = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E60 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Time = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E78 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Insert = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E90 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Stop = { .tileTag = 18, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EA8 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Win = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A6C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_64x32, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EC0 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Lose = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A6C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_64x32, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7ED8 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = { .tileTag = 19, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EF0 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = { .tileTag = 20, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F08 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reg = { .tileTag = 21, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F20 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_AButton = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A5C, - .anims = gUnknown_085A7C38, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_32x32, + .anims = sAnims_DigitalDisplay_AButton, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F38 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Smoke = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F50 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Number = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7C4C, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_16x16, + .anims = sAnims_DigitalDisplay_Number, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F68 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Pokeball = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7C44, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_DigitalDisplay_Pokeball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F80 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_DPad = { .tileTag = 0xFFFF, - .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7C40, + .paletteTag = PALTAG_DIG_DISPLAY, + .oam = &sOam_8x8, + .anims = sAnims_DigitalDisplay_DPad, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED6CC = +static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt = { .tileTag = 0xFFFF, - .paletteTag = 4, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AF4, - .affineAnims = gUnknown_085A7CDC, - .callback = sub_8105B70 + .paletteTag = PALTAG_MISC, + .oam = &sOam_8x8, + .anims = sAnims_SingleFrame, + .images = sImageTable_PikaPowerBolt, + .affineAnims = sAffineAnims_PikaPowerBolt, + .callback = SpriteCB_PikaPowerBolt }; -static const struct Subsprite gUnknown_085A7FB0[] = +static const struct Subsprite sSubsprites_ReelBackground[] = { { .x = -64, @@ -5510,12 +5874,12 @@ static const struct Subsprite gUnknown_085A7FB0[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED704[] = +static const struct SubspriteTable sSubspriteTable_ReelBackground[] = { - ARRAY_COUNT(gUnknown_085A7FB0), gUnknown_085A7FB0 + ARRAY_COUNT(sSubsprites_ReelBackground), sSubsprites_ReelBackground }; -static const struct Subsprite gUnknown_085A7FC8[] = +static const struct Subsprite sSubsprites_ReelTimeMachineAntennae[] = { { .x = -32, @@ -5567,12 +5931,12 @@ static const struct Subsprite gUnknown_085A7FC8[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED73C[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeMachineAntennae[] = { - ARRAY_COUNT(gUnknown_085A7FC8), gUnknown_085A7FC8 + ARRAY_COUNT(sSubsprites_ReelTimeMachineAntennae), sSubsprites_ReelTimeMachineAntennae }; -static const struct Subsprite gUnknown_085A7FE8[] = +static const struct Subsprite sSubsprites_ReelTimeMachine[] = { { .x = -32, @@ -5600,12 +5964,12 @@ static const struct Subsprite gUnknown_085A7FE8[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED75C[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeMachine[] = { - ARRAY_COUNT(gUnknown_085A7FE8), gUnknown_085A7FE8 + ARRAY_COUNT(sSubsprites_ReelTimeMachine), sSubsprites_ReelTimeMachine }; -static const struct Subsprite gUnknown_085A7FFC[] = +static const struct Subsprite sSubsprites_BrokenReelTimeMachine[] = { { .x = -32, @@ -5649,12 +6013,12 @@ static const struct Subsprite gUnknown_085A7FFC[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED78C[] = +static const struct SubspriteTable sSubspriteTable_BrokenReelTimeMachine[] = { - ARRAY_COUNT(gUnknown_085A7FFC), gUnknown_085A7FFC + ARRAY_COUNT(sSubsprites_BrokenReelTimeMachine), sSubsprites_BrokenReelTimeMachine }; -static const struct Subsprite gUnknown_085A8018[] = +static const struct Subsprite sSubsprites_ReelTimeShadow[] = { { .x = -32, @@ -5690,12 +6054,12 @@ static const struct Subsprite gUnknown_085A8018[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED7B4[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[] = { - ARRAY_COUNT(gUnknown_085A8018), gUnknown_085A8018 + ARRAY_COUNT(sSubsprites_ReelTimeShadow), sSubsprites_ReelTimeShadow }; -static const struct Subsprite gUnknown_085A8030[] = +static const struct Subsprite sSubsprites_ReelTimeNumberGap[] = { { .x = -8, @@ -5723,12 +6087,12 @@ static const struct Subsprite gUnknown_085A8030[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED7D4[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeNumberGap[] = { - ARRAY_COUNT(gUnknown_085A8030), gUnknown_085A8030 + ARRAY_COUNT(sSubsprites_ReelTimeNumberGap), sSubsprites_ReelTimeNumberGap }; -static const struct Subsprite gUnknown_085A8044[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Reel[] = { { .x = -32, @@ -5772,12 +6136,12 @@ static const struct Subsprite gUnknown_085A8044[] = } }; -static const struct SubspriteTable gUnknown_085A8058[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Reel[] = { - ARRAY_COUNT(gUnknown_085A8044), gUnknown_085A8044 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Reel), sSubsprites_DigitalDisplay_Reel }; -static const struct Subsprite gUnknown_085A8060[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Time[] = { { .x = -32, @@ -5813,12 +6177,12 @@ static const struct Subsprite gUnknown_085A8060[] = } }; -static const struct SubspriteTable gUnknown_085A8070[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Time[] = { - ARRAY_COUNT(gUnknown_085A8060), gUnknown_085A8060 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Time), sSubsprites_DigitalDisplay_Time }; -static const struct Subsprite gUnknown_085A8078[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Insert[] = { { .x = -32, @@ -5854,12 +6218,12 @@ static const struct Subsprite gUnknown_085A8078[] = } }; -static const struct SubspriteTable gUnknown_085A8088[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Insert[] = { - ARRAY_COUNT(gUnknown_085A8078), gUnknown_085A8078 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Insert), sSubsprites_DigitalDisplay_Insert }; -static const struct Subsprite gUnknown_085A8090[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Unused1[] = { { .x = -32, @@ -5895,12 +6259,12 @@ static const struct Subsprite gUnknown_085A8090[] = } }; -static const struct SubspriteTable gUnknown_085A80A0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Unused1[] = { - ARRAY_COUNT(gUnknown_085A8090), gUnknown_085A8090 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Unused1), sSubsprites_DigitalDisplay_Unused1 }; -static const struct Subsprite gUnknown_085A80A8[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Win[] = { { .x = -32, @@ -5952,12 +6316,12 @@ static const struct Subsprite gUnknown_085A80A8[] = } }; -static const struct SubspriteTable gUnknown_085A80C0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Win[] = { - ARRAY_COUNT(gUnknown_085A80A8), gUnknown_085A80A8 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Win), sSubsprites_DigitalDisplay_Win }; -static const struct Subsprite gUnknown_085A80C8[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Smoke[] = { { .x = -16, @@ -5969,7 +6333,7 @@ static const struct Subsprite gUnknown_085A80C8[] = } }; -static const struct Subsprite gUnknown_085A80CC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Unused2[] = { { .x = -8, @@ -5981,17 +6345,17 @@ static const struct Subsprite gUnknown_085A80CC[] = } }; -static const struct SubspriteTable gUnknown_085A80D0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Smoke[] = { - ARRAY_COUNT(gUnknown_085A80C8), gUnknown_085A80C8 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Smoke), sSubsprites_DigitalDisplay_Smoke }; -static const struct SubspriteTable gUnknown_085A80D8[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Unused2[] = { - ARRAY_COUNT(gUnknown_085A80CC), gUnknown_085A80CC + ARRAY_COUNT(sSubsprites_DigitalDisplay_Unused2), sSubsprites_DigitalDisplay_Unused2 }; -static const struct Subsprite gUnknown_085A80E0[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Pokeball[] = { { .x = -24, @@ -6091,12 +6455,12 @@ static const struct Subsprite gUnknown_085A80E0[] = } }; -static const struct SubspriteTable gUnknown_085A8110[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Pokeball[] = { - ARRAY_COUNT(gUnknown_085A80E0), gUnknown_085A80E0 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Pokeball), sSubsprites_DigitalDisplay_Pokeball }; -static const struct Subsprite gUnknown_085A8118[] = +static const struct Subsprite sSubsprites_DigitalDisplay_DPad[] = { { .x = -16, @@ -6124,12 +6488,12 @@ static const struct Subsprite gUnknown_085A8118[] = } }; -static const struct SubspriteTable gUnknown_085A8124[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_DPad[] = { - ARRAY_COUNT(gUnknown_085A8118), gUnknown_085A8118 + ARRAY_COUNT(sSubsprites_DigitalDisplay_DPad), sSubsprites_DigitalDisplay_DPad }; -static const struct Subsprite gUnknown_085A812C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopS[] = { { .x = -8, @@ -6149,12 +6513,12 @@ static const struct Subsprite gUnknown_085A812C[] = } }; -static const struct SubspriteTable gUnknown_085A8134[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopS[] = { - ARRAY_COUNT(gUnknown_085A812C), gUnknown_085A812C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopS), sSubsprites_DigitalDisplay_StopS }; -static const struct Subsprite gUnknown_085A813C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopT[] = { { .x = -8, @@ -6174,12 +6538,12 @@ static const struct Subsprite gUnknown_085A813C[] = } }; -static const struct SubspriteTable gUnknown_085A8144[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopT[] = { - ARRAY_COUNT(gUnknown_085A813C), gUnknown_085A813C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopT), sSubsprites_DigitalDisplay_StopT }; -static const struct Subsprite gUnknown_085A814C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopO[] = { { .x = -8, @@ -6199,12 +6563,12 @@ static const struct Subsprite gUnknown_085A814C[] = } }; -static const struct SubspriteTable gUnknown_085A8154[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopO[] = { - ARRAY_COUNT(gUnknown_085A814C), gUnknown_085A814C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopO), sSubsprites_DigitalDisplay_StopO }; -static const struct Subsprite gUnknown_085A815C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopP[] = { { .x = -8, @@ -6224,12 +6588,12 @@ static const struct Subsprite gUnknown_085A815C[] = } }; -static const struct SubspriteTable gUnknown_085A8164[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopP[] = { - ARRAY_COUNT(gUnknown_085A815C), gUnknown_085A815C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopP), sSubsprites_DigitalDisplay_StopP }; -static const struct Subsprite gUnknown_085A816C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusB[] = { { .x = -8, @@ -6249,12 +6613,12 @@ static const struct Subsprite gUnknown_085A816C[] = } }; -static const struct SubspriteTable gUnknown_085A8174[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusB[] = { - ARRAY_COUNT(gUnknown_085A816C), gUnknown_085A816C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusB), sSubsprites_DigitalDisplay_BonusB }; -static const struct Subsprite gUnknown_085A817C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusO[] = { { .x = -4, @@ -6274,12 +6638,12 @@ static const struct Subsprite gUnknown_085A817C[] = } }; -static const struct SubspriteTable gUnknown_085A8184[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusO[] = { - ARRAY_COUNT(gUnknown_085A817C), gUnknown_085A817C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusO), sSubsprites_DigitalDisplay_BonusO }; -static const struct Subsprite gUnknown_085A818C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusN[] = { { .x = -8, @@ -6299,12 +6663,12 @@ static const struct Subsprite gUnknown_085A818C[] = } }; -static const struct SubspriteTable gUnknown_085A8194[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusN[] = { - ARRAY_COUNT(gUnknown_085A818C), gUnknown_085A818C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusN), sSubsprites_DigitalDisplay_BonusN }; -static const struct Subsprite gUnknown_085A819C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusU[] = { { .x = -4, @@ -6324,12 +6688,12 @@ static const struct Subsprite gUnknown_085A819C[] = } }; -static const struct SubspriteTable gUnknown_085A81A4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusU[] = { - ARRAY_COUNT(gUnknown_085A819C), gUnknown_085A819C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusU), sSubsprites_DigitalDisplay_BonusU }; -static const struct Subsprite gUnknown_085A81AC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusS[] = { { .x = -8, @@ -6349,12 +6713,12 @@ static const struct Subsprite gUnknown_085A81AC[] = } }; -static const struct SubspriteTable gUnknown_085A81B4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusS[] = { - ARRAY_COUNT(gUnknown_085A81AC), gUnknown_085A81AC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusS), sSubsprites_DigitalDisplay_BonusS }; -static const struct Subsprite gUnknown_085A81BC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigB[] = { { .x = -12, @@ -6406,12 +6770,12 @@ static const struct Subsprite gUnknown_085A81BC[] = } }; -static const struct SubspriteTable gUnknown_085A81D4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigB[] = { - ARRAY_COUNT(gUnknown_085A81BC), gUnknown_085A81BC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigB), sSubsprites_DigitalDisplay_BigB }; -static const struct Subsprite gUnknown_085A81DC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigI[] = { { .x = -8, @@ -6439,12 +6803,12 @@ static const struct Subsprite gUnknown_085A81DC[] = } }; -static const struct SubspriteTable gUnknown_085A81E8[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigI[] = { - ARRAY_COUNT(gUnknown_085A81DC), gUnknown_085A81DC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigI), sSubsprites_DigitalDisplay_BigI }; -static const struct Subsprite gUnknown_085A81F0[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigG[] = { { .x = -12, @@ -6496,12 +6860,12 @@ static const struct Subsprite gUnknown_085A81F0[] = } }; -static const struct SubspriteTable gUnknown_085A8208[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigG[] = { - ARRAY_COUNT(gUnknown_085A81F0), gUnknown_085A81F0 + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigG), sSubsprites_DigitalDisplay_BigG }; -static const struct Subsprite gUnknown_085A8210[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegR[] = { { .x = -12, @@ -6553,12 +6917,12 @@ static const struct Subsprite gUnknown_085A8210[] = } }; -static const struct SubspriteTable gUnknown_085A8228[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegR[] = { - ARRAY_COUNT(gUnknown_085A8210), gUnknown_085A8210 + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegR), sSubsprites_DigitalDisplay_RegR }; -static const struct Subsprite gUnknown_085A822C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegE[] = { { .x = -8, @@ -6586,12 +6950,12 @@ static const struct Subsprite gUnknown_085A822C[] = } }; -static const struct SubspriteTable gUnknown_085A823C[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegE[] = { - ARRAY_COUNT(gUnknown_085A822C), gUnknown_085A822C + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegE), sSubsprites_DigitalDisplay_RegE }; -static const struct Subsprite gUnknown_085A8244[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegG[] = { { .x = -12, @@ -6643,190 +7007,196 @@ static const struct Subsprite gUnknown_085A8244[] = } }; -static const struct SubspriteTable gUnknown_085A825C[] = -{ - ARRAY_COUNT(gUnknown_085A8244), gUnknown_085A8244 -}; - -static const struct SpriteTemplate *const gUnknown_083EDB5C[] = -{ - &gUnknown_085A7E48, - &gUnknown_085A7E60, - &gUnknown_085A7E78, - &gUnknown_085A7EA8, - &gUnknown_085A7EC0, - &gUnknown_085A7F20, - &gUnknown_085A7F38, - &gUnknown_085A7F50, - &gUnknown_085A7F68, - &gUnknown_085A7F80, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7EF0, - &gUnknown_085A7EF0, - &gUnknown_085A7EF0, - &gUnknown_085A7F08, - &gUnknown_085A7F08, - &gUnknown_085A7F08, - &gDummySpriteTemplate -}; - -static const struct SubspriteTable *const gUnknown_083EDBC4[] = -{ - gUnknown_085A8058, - gUnknown_085A8070, - gUnknown_085A8088, - gUnknown_085A80C0, - NULL, - NULL, - gUnknown_085A80D0, - NULL, - gUnknown_085A8110, - gUnknown_085A8124, - gUnknown_085A8134, - gUnknown_085A8144, - gUnknown_085A8154, - gUnknown_085A8164, - gUnknown_085A8174, - gUnknown_085A8184, - gUnknown_085A8194, - gUnknown_085A81A4, - gUnknown_085A81B4, - gUnknown_085A81D4, - gUnknown_085A81E8, - gUnknown_085A8208, - gUnknown_085A8228, - gUnknown_085A823C, - gUnknown_085A825C, - NULL -}; - -static const struct SpriteSheet gSlotMachineSpriteSheets[22] = -{ - { .data = gSlotMachineReelSymbol1Tiles, .size = 0x200, .tag = 0 }, - { .data = gSlotMachineReelSymbol2Tiles, .size = 0x200, .tag = 1 }, - { .data = gSlotMachineReelSymbol3Tiles, .size = 0x200, .tag = 2 }, - { .data = gSlotMachineReelSymbol4Tiles, .size = 0x200, .tag = 3 }, - { .data = gSlotMachineReelSymbol5Tiles, .size = 0x200, .tag = 4 }, - { .data = gSlotMachineReelSymbol6Tiles, .size = 0x200, .tag = 5 }, - { .data = gSlotMachineReelSymbol7Tiles, .size = 0x200, .tag = 6 }, - { .data = gSlotMachineNumber0Tiles, .size = 0x40, .tag = 7 }, - { .data = gSlotMachineNumber1Tiles, .size = 0x40, .tag = 8 }, - { .data = gSlotMachineNumber2Tiles, .size = 0x40, .tag = 9 }, - { .data = gSlotMachineNumber3Tiles, .size = 0x40, .tag = 10 }, - { .data = gSlotMachineNumber4Tiles, .size = 0x40, .tag = 11 }, - { .data = gSlotMachineNumber5Tiles, .size = 0x40, .tag = 12 }, - { .data = gSlotMachineNumber6Tiles, .size = 0x40, .tag = 13 }, - { .data = gSlotMachineNumber7Tiles, .size = 0x40, .tag = 14 }, - { .data = gSlotMachineNumber8Tiles, .size = 0x40, .tag = 15 }, - { .data = gSlotMachineNumber9Tiles, .size = 0x40, .tag = 16 }, +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegG[] = +{ + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegG), sSubsprites_DigitalDisplay_RegG +}; + +static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES] = +{ + [DIG_SPRITE_REEL] = &sSpriteTemplate_DigitalDisplay_Reel, + [DIG_SPRITE_TIME] = &sSpriteTemplate_DigitalDisplay_Time, + [DIG_SPRITE_INSERT] = &sSpriteTemplate_DigitalDisplay_Insert, + [DIG_SPRITE_WIN] = &sSpriteTemplate_DigitalDisplay_Win, + [DIG_SPRITE_LOSE] = &sSpriteTemplate_DigitalDisplay_Lose, + [DIG_SPRITE_A_BUTTON] = &sSpriteTemplate_DigitalDisplay_AButton, + [DIG_SPRITE_SMOKE] = &sSpriteTemplate_DigitalDisplay_Smoke, + [DIG_SPRITE_NUMBER] = &sSpriteTemplate_DigitalDisplay_Number, + [DIG_SPRITE_POKE_BALL] = &sSpriteTemplate_DigitalDisplay_Pokeball, + [DIG_SPRITE_D_PAD] = &sSpriteTemplate_DigitalDisplay_DPad, + [DIG_SPRITE_STOP_S] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_T] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_O] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_P] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_BONUS_B] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_O] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_N] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_U] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_S] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BIG_B] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_BIG_I] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_BIG_G] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_REG_R] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_REG_E] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_REG_G] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_EMPTY] = &gDummySpriteTemplate +}; + +static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES] = +{ + [DIG_SPRITE_REEL] = sSubspriteTable_DigitalDisplay_Reel, + [DIG_SPRITE_TIME] = sSubspriteTable_DigitalDisplay_Time, + [DIG_SPRITE_INSERT] = sSubspriteTable_DigitalDisplay_Insert, + [DIG_SPRITE_WIN] = sSubspriteTable_DigitalDisplay_Win, + [DIG_SPRITE_LOSE] = NULL, + [DIG_SPRITE_A_BUTTON] = NULL, + [DIG_SPRITE_SMOKE] = sSubspriteTable_DigitalDisplay_Smoke, + [DIG_SPRITE_NUMBER] = NULL, + [DIG_SPRITE_POKE_BALL] = sSubspriteTable_DigitalDisplay_Pokeball, + [DIG_SPRITE_D_PAD] = sSubspriteTable_DigitalDisplay_DPad, + [DIG_SPRITE_STOP_S] = sSubspriteTable_DigitalDisplay_StopS, + [DIG_SPRITE_STOP_T] = sSubspriteTable_DigitalDisplay_StopT, + [DIG_SPRITE_STOP_O] = sSubspriteTable_DigitalDisplay_StopO, + [DIG_SPRITE_STOP_P] = sSubspriteTable_DigitalDisplay_StopP, + [DIG_SPRITE_BONUS_B] = sSubspriteTable_DigitalDisplay_BonusB, + [DIG_SPRITE_BONUS_O] = sSubspriteTable_DigitalDisplay_BonusO, + [DIG_SPRITE_BONUS_N] = sSubspriteTable_DigitalDisplay_BonusN, + [DIG_SPRITE_BONUS_U] = sSubspriteTable_DigitalDisplay_BonusU, + [DIG_SPRITE_BONUS_S] = sSubspriteTable_DigitalDisplay_BonusS, + [DIG_SPRITE_BIG_B] = sSubspriteTable_DigitalDisplay_BigB, + [DIG_SPRITE_BIG_I] = sSubspriteTable_DigitalDisplay_BigI, + [DIG_SPRITE_BIG_G] = sSubspriteTable_DigitalDisplay_BigG, + [DIG_SPRITE_REG_R] = sSubspriteTable_DigitalDisplay_RegR, + [DIG_SPRITE_REG_E] = sSubspriteTable_DigitalDisplay_RegE, + [DIG_SPRITE_REG_G] = sSubspriteTable_DigitalDisplay_RegG, + [DIG_SPRITE_EMPTY] = NULL +}; + +static const struct SpriteSheet sSlotMachineSpriteSheets[22] = +{ + { .data = gSlotMachineReelSymbol1Tiles, .size = 0x200, .tag = GFXTAG_7_RED }, + { .data = gSlotMachineReelSymbol2Tiles, .size = 0x200, .tag = GFXTAG_7_BLUE }, + { .data = gSlotMachineReelSymbol3Tiles, .size = 0x200, .tag = GFXTAG_AZURILL }, + { .data = gSlotMachineReelSymbol4Tiles, .size = 0x200, .tag = GFXTAG_LOTAD }, + { .data = gSlotMachineReelSymbol5Tiles, .size = 0x200, .tag = GFXTAG_CHERRY }, + { .data = gSlotMachineReelSymbol6Tiles, .size = 0x200, .tag = GFXTAG_POWER }, + { .data = gSlotMachineReelSymbol7Tiles, .size = 0x200, .tag = GFXTAG_REPLAY }, + { .data = gSlotMachineNumber0Tiles, .size = 0x40, .tag = GFXTAG_NUM_0 }, + { .data = gSlotMachineNumber1Tiles, .size = 0x40, .tag = GFXTAG_NUM_1 }, + { .data = gSlotMachineNumber2Tiles, .size = 0x40, .tag = GFXTAG_NUM_2 }, + { .data = gSlotMachineNumber3Tiles, .size = 0x40, .tag = GFXTAG_NUM_3 }, + { .data = gSlotMachineNumber4Tiles, .size = 0x40, .tag = GFXTAG_NUM_4 }, + { .data = gSlotMachineNumber5Tiles, .size = 0x40, .tag = GFXTAG_NUM_5 }, + { .data = gSlotMachineNumber6Tiles, .size = 0x40, .tag = GFXTAG_NUM_6 }, + { .data = gSlotMachineNumber7Tiles, .size = 0x40, .tag = GFXTAG_NUM_7 }, + { .data = gSlotMachineNumber8Tiles, .size = 0x40, .tag = GFXTAG_NUM_8 }, + { .data = gSlotMachineNumber9Tiles, .size = 0x40, .tag = GFXTAG_NUM_9 }, + // skips GFXTAG_REEL_BG, which has its own spritesheet // the data for these sheets is determined at runtime - { .data = NULL, .size = 0x200, .tag = 18 }, - { .data = NULL, .size = 0x200, .tag = 19 }, - { .data = NULL, .size = 0x300, .tag = 20 }, - { .data = NULL, .size = 0x300, .tag = 21 }, + { .data = NULL, .size = 0x200, .tag = GFXTAG_STOP }, + { .data = NULL, .size = 0x200, .tag = GFXTAG_BONUS }, + { .data = NULL, .size = 0x300, .tag = GFXTAG_BIG }, + { .data = NULL, .size = 0x300, .tag = GFXTAG_REG }, {}, }; -static const u8 *const gUnknown_083EDCDC = gUnknown_08DD19F8; +static const u8 *const sReelBackground_Tilemap = gSlotMachineReelBackground_Tilemap; -static const u8 sUnused2[][2] = +static const u16 sUnused[] = { - {0x7B, 0x6F}, - {0x68, 0x69}, - {0xAB, 0x36}, - {0xFF, 0x7F}, - {0x50, 0x57}, - {0xC0, 0x7E}, - {0xBA, 2}, - {0xBA, 2}, - {0xFD, 1}, - {0xFD, 1} + 0x6F7B, + 0x6968, + 0x36AB, + 0x7FFF, + 0x5750, + 0x7EC0, + 0x02BA, + 0x02BA, + 0x01FD, + 0x01FD, }; -static const u8 gUnknown_085A83FC[] = {0x91, 0x7F}; -static const u8 gUnknown_085A83FE[] = {0xBF, 0x43}; -static const u8 gUnknown_085A8400[] = {0xBF, 0x43}; -static const u8 gUnknown_085A8402[] = {0xBF, 0x4A}; -static const u8 gUnknown_085A8404[] = {0xBF, 0x4A}; - -static const u8 *const gUnknown_083EDD08[] = +// The Bet 2 and 3 match line palettes are duplicated unnecessarily +static const u16 sMiddleRowLit_Pal[] = {RGB(17, 28, 31)}; +static const u16 sTopRowLit_Pal[] = {RGB(31, 29, 16)}; +static const u16 sBottomRowt_Pal[] = {RGB(31, 29, 16)}; +static const u16 sNWSEDiagLit_Pal[] = {RGB(31, 21, 18)}; +static const u16 sNESWDiagLit_Pal[] = {RGB(31, 21, 18)}; +static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES] = { - gUnknown_085A83FC, - gUnknown_085A83FE, - gUnknown_085A8400, - gUnknown_085A8402, - gUnknown_085A8404, + [MATCH_MIDDLE_ROW] = sMiddleRowLit_Pal, + [MATCH_TOP_ROW] = sTopRowLit_Pal, + [MATCH_BOTTOM_ROW] = sBottomRowt_Pal, + [MATCH_NWSE_DIAG] = sNWSEDiagLit_Pal, + [MATCH_NESW_DIAG] = sNESWDiagLit_Pal, }; -static const u16 *const gUnknown_083EDD1C[] = +static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES] = { - gSlotMachineMenu_Pal + 0x4A, - gSlotMachineMenu_Pal + 0x4B, - gSlotMachineMenu_Pal + 0x4C, - gSlotMachineMenu_Pal + 0x4D, - gSlotMachineMenu_Pal + 0x4E, + [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[74], + [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[75], + [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[76], + [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[77], + [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[78], }; -static const u8 gUnknown_083EDD30[] = {0x4A, 0x4B, 0x4C, 0x4E, 0x4D}; +static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { + [MATCH_MIDDLE_ROW] = 74, + [MATCH_TOP_ROW] = 75, + [MATCH_BOTTOM_ROW] = 76, + [MATCH_NWSE_DIAG] = 78, // Diag colors flipped for some reason + [MATCH_NESW_DIAG] = 77 // Doesn't matter as both are identical +}; -static const u8 gBettingTilesId[][2] = +static const u8 sBetToMatchLineIds[MAX_BET][2] = { - {0, 0}, - {1, 2}, - {3, 4}, + {MATCH_MIDDLE_ROW, MATCH_MIDDLE_ROW}, // Bet 1 + {MATCH_TOP_ROW, MATCH_BOTTOM_ROW}, // Bet 2 + {MATCH_NWSE_DIAG, MATCH_NESW_DIAG}, // Bet 3 }; -static const u8 gNumberBettingTiles[] = { 1, 2, 2 }; - -static const u16 gUnknown_085A843E[] = INCBIN_U16("graphics/slot_machine/85A843E.gbapal"); -static const u16 gUnknown_085A845E[] = INCBIN_U16("graphics/slot_machine/85A845E.gbapal"); -static const u16 gUnknown_085A847E[] = INCBIN_U16("graphics/slot_machine/85A847E.gbapal"); +static const u8 sMatchLinesPerBet[MAX_BET] = { 1, 2, 2 }; -static const u16 *const gUnknown_083EDDA0[] = +// Flashing lights at top of slot machine, brightest point inside light goes from toward center of machine, to middle, to toward edges +static const u16 sFlashingLightsInside_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_inside.gbapal"); +static const u16 sFlashingLightsMiddle_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_middle.gbapal"); +static const u16 sFlashingLightsOutside_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_outside.gbapal"); +static const u16 *const sFlashingLightsPalTable[] = { - gUnknown_085A843E, - gUnknown_085A845E, - gUnknown_085A847E, + sFlashingLightsInside_Pal, + sFlashingLightsMiddle_Pal, + sFlashingLightsOutside_Pal, }; -static const u16 *const gUnknown_083EDDAC = {gSlotMachineMenu_Pal + 0x10}; - -static const u16 gUnknown_085A84B0[] = INCBIN_U16("graphics/slot_machine/85A84B0.gbapal"); -static const u16 gUnknown_085A84D0[] = INCBIN_U16("graphics/slot_machine/85A84D0.gbapal"); -static const u16 gUnknown_085A84F0[] = INCBIN_U16("graphics/slot_machine/85A84F0.gbapal"); +static const u16 *const sSlotMachineMenu_Pal = {gSlotMachineMenu_Pal + 16}; -static const u16 *const gUnknown_083EDE10[] = +static const u16 sPokeballShining0_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_0.gbapal"); +static const u16 sPokeballShining1_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_1.gbapal"); +static const u16 sPokeballShining2_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_2.gbapal"); +static const u16 *const sPokeballShiningPalTable[] = { - gUnknown_085A84B0, - gUnknown_085A84D0, - gUnknown_085A84F0, - gUnknown_08DCF230, + sPokeballShining0_Pal, // Streak on left side of ball + sPokeballShining1_Pal, // Streak in middle of ball + sPokeballShining2_Pal, // Streak on right side of ball + gSlotMachineDigitalDisplay_Pal, // Back to normal }; -static const u16 *const gUnknown_083EDE20 = gUnknown_08DCF230; -static const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); +static const u16 *const sDigitalDisplay_Pal = gSlotMachineDigitalDisplay_Pal; +static const u16 sUnkPalette[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); -static const struct SpritePalette gSlotMachineSpritePalettes[] = +static const struct SpritePalette sSlotMachineSpritePalettes[] = { - { .data = gUnknown_08DCF170, .tag = 0}, - { .data = gUnknown_08DCF190, .tag = 1}, - { .data = gUnknown_08DCF1B0, .tag = 2}, - { .data = gSlotMachineReelTime_Pal, .tag = 3}, - { .data = gUnknown_08DCF1F0, .tag = 4}, - { .data = gUnknown_08DCF210, .tag = 5}, - { .data = gUnknown_08DCF230, .tag = 6}, - { .data = gUnknown_08DCF1F0, .tag = 7}, + { .data = gSlotMachineReelSymbols_Pal, .tag = PALTAG_REEL}, + { .data = gSlotMachineReelTimePikachu_Pal, .tag = PALTAG_REEL_TIME_PIKACHU}, + { .data = gSlotMachineReelTimeMisc_Pal, .tag = PALTAG_REEL_TIME_MISC}, + { .data = gSlotMachineReelTimeMachine_Pal, .tag = PALTAG_REEL_TIME_MACHINE}, + { .data = gSlotMachineMisc_Pal, .tag = PALTAG_MISC}, + { .data = gSlotMachineReelTimeExplosion_Pal, .tag = PALTAG_EXPLOSION}, + { .data = gSlotMachineDigitalDisplay_Pal, .tag = PALTAG_DIG_DISPLAY}, + { .data = gSlotMachineMisc_Pal, .tag = PALTAG_PIKA_AURA}, {} }; -static const u32 gReelTimeGfx[] = INCBIN_U32("graphics/slot_machine/reel_time_gfx.4bpp.lz"); -static const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/85A96E0.bin"); -static const u16 gUnknown_085A9898[] = {0}; +static const u32 sReelTimeGfx[] = INCBIN_U32("graphics/slot_machine/reel_time_gfx.4bpp.lz"); // reel_time_machine and reel_time_pikachu +static const u16 sReelTimeWindow_Tilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window.bin"); +static const u16 sEmptyTilemap[] = {0}; diff --git a/src/sound.c b/src/sound.c index dba4354df..361624b44 100644 --- a/src/sound.c +++ b/src/sound.c @@ -41,24 +41,24 @@ static void Task_DuckBGMForPokemonCry(u8 taskId); static void RestoreBGMVolumeAfterPokemonCry(void); static const struct Fanfare sFanfares[] = { - { MUS_FANFA1, 80 }, - { MUS_FANFA4, 160 }, - { MUS_FANFA5, 220 }, - { MUS_ME_WAZA, 220 }, - { MUS_ME_ASA, 160 }, - { MUS_ME_BACHI, 340 }, - { MUS_ME_WASURE, 180 }, - { MUS_ME_KINOMI, 120 }, - { MUS_ME_TAMA, 710 }, - { MUS_ME_B_BIG, 250 }, - { MUS_ME_B_SMALL, 150 }, - { MUS_ME_ZANNEN, 160 }, - { MUS_RG_POKEFUE, 450 }, - { MUS_RG_FAN5, 170 }, - { MUS_RG_FAN2, 196 }, - { MUS_ME_POINTGET, 313 }, - { MUS_ME_SYMBOLGET, 318 }, - { MUS_ME_TORE_EYE, 135 }, + { MUS_LEVEL_UP, 80 }, + { MUS_OBTAIN_ITEM, 160 }, + { MUS_EVOLVED, 220 }, + { MUS_OBTAIN_TMHM, 220 }, + { MUS_HEAL, 160 }, + { MUS_OBTAIN_BADGE, 340 }, + { MUS_MOVE_DELETED, 180 }, + { MUS_OBTAIN_BERRY, 120 }, + { MUS_AWAKEN_LEGEND, 710 }, + { MUS_SLOTS_JACKPOT, 250 }, + { MUS_SLOTS_WIN, 150 }, + { MUS_TOO_BAD, 160 }, + { MUS_RG_POKE_FLUTE, 450 }, + { MUS_RG_OBTAIN_KEY_ITEM, 170 }, + { MUS_RG_DEX_RATING, 196 }, + { MUS_OBTAIN_B_POINTS, 313 }, + { MUS_OBTAIN_SYMBOL, 318 }, + { MUS_REGISTER_MATCH_CALL, 135 }, }; #define CRY_VOLUME 120 // was 125 in R/S diff --git a/src/start_menu.c b/src/start_menu.c index 88ad364c7..68a316185 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -463,7 +463,7 @@ static bool32 InitStartMenuStep(void) sInitStartMenuData[0]++; break; case 4: - if (PrintStartMenuActions(&sInitStartMenuData[1], 2)) + if (PrintStartMenuActions((s8 *)&sInitStartMenuData[1], 2)) sInitStartMenuData[0]++; break; case 5: diff --git a/src/starter_choose.c b/src/starter_choose.c index 6295e33ca..2585f3408 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -414,7 +414,7 @@ void CB2_ChooseStarter(void) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x2A8, 0xD0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -474,7 +474,7 @@ static void CB2_StarterChoose(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/strings.c b/src/strings.c index 2ea06c1ad..fe5051d71 100644 --- a/src/strings.c +++ b/src/strings.c @@ -402,7 +402,7 @@ const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmov const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?"); const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}"); -const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); +const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}'s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}"); @@ -512,14 +512,14 @@ const u8 gText_EggWillTakeSomeTime[] = _("What will hatch from this?\nIt will ta const u8 gText_EggWillHatchSoon[] = _("It moves occasionally.\nIt should hatch soon."); const u8 gText_EggAboutToHatch[] = _("It's making sounds.\nIt's about to hatch!"); const u8 gText_HMMovesCantBeForgotten2[] = _("HM moves can't be\nforgotten now."); -const u8 gText_XNatureMetAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureHatchedAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureObtainedInTrade[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a trade."); -const u8 gText_XNatureFatefulEncounter[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a fateful\nencounter at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureProbablyMetAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nprobably met at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNature[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature"); -const u8 gText_XNatureMetSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureHatchedSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); +const u8 gText_XNatureMetAtYZ[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nmet at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNatureHatchedAtYZ[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nhatched at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNatureObtainedInTrade[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nobtained in a trade."); +const u8 gText_XNatureFatefulEncounter[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nobtained in a fateful\nencounter at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); +const u8 gText_XNatureProbablyMetAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nprobably met at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNature[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature"); +const u8 gText_XNatureMetSomewhereAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nmet somewhere at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); +const u8 gText_XNatureHatchedSomewhereAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nhatched somewhere at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); const u8 gText_OddEggFoundByCouple[] = _("An odd POKéMON EGG found\nby the DAY CARE couple."); const u8 gText_PeculiarEggNicePlace[] = _("A peculiar POKéMON EGG\nobtained at the nice place."); const u8 gText_PeculiarEggTrade[] = _("A peculiar POKéMON EGG\nobtained in a trade."); @@ -861,14 +861,14 @@ const u8 gText_ExitFromBox[] = _("Exit from the BOX?"); const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); const u8 gText_PleasePickATheme[] = _("Please pick a theme."); const u8 gText_PickTheWallpaper[] = _("Pick the wallpaper."); -const u8 gText_PkmnIsSelected[] = _("{SPECIAL_F7 0x00} is selected."); +const u8 gText_PkmnIsSelected[] = _("{DYNAMIC 0} is selected."); const u8 gText_JumpToWhichBox[] = _("Jump to which BOX?"); const u8 gText_DepositInWhichBox[] = _("Deposit in which BOX?"); -const u8 gText_PkmnWasDeposited[] = _("{SPECIAL_F7 0x00} was deposited."); +const u8 gText_PkmnWasDeposited[] = _("{DYNAMIC 0} was deposited."); const u8 gText_BoxIsFull2[] = _("The BOX is full."); const u8 gText_ReleaseThisPokemon[] = _("Release this POKéMON?"); -const u8 gText_PkmnWasReleased[] = _("{SPECIAL_F7 0x00} was released."); -const u8 gText_ByeByePkmn[] = _("Bye-bye, {SPECIAL_F7 0x00}!"); +const u8 gText_PkmnWasReleased[] = _("{DYNAMIC 0} was released."); +const u8 gText_ByeByePkmn[] = _("Bye-bye, {DYNAMIC 0}!"); const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON."); const u8 gText_ThatsYourLastPkmn[] = _("That's your last POKéMON!"); const u8 gText_YourPartysFull[] = _("Your party's full!"); @@ -876,7 +876,7 @@ const u8 gText_YoureHoldingAPkmn[] = _("You're holding a POKéMON!"); const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?"); const u8 gText_YouCantReleaseAnEgg[] = _("You can't release an EGG."); const u8 gText_ContinueBoxOperations[] = _("Continue BOX operations?"); -const u8 gText_PkmnCameBack[] = _("{SPECIAL_F7 0x00} came back!"); +const u8 gText_PkmnCameBack[] = _("{DYNAMIC 0} came back!"); const u8 gText_WasItWorriedAboutYou[] = _("Was it worried about you?"); const u8 gText_FourEllipsesExclamation[] = _("… … … … !"); const u8 gText_PleaseRemoveTheMail[] = _("Please remove the MAIL."); @@ -884,8 +884,8 @@ const u8 gText_GiveToAPkmn[] = _("GIVE to a POKéMON?"); const u8 gText_PlacedItemInBag[] = _("Placed item in the BAG."); const u8 gText_BagIsFull2[] = _("The BAG is full."); const u8 gText_PutItemInBag[] = _("Put this item in the BAG?"); -const u8 gText_ItemIsNowHeld[] = _("{SPECIAL_F7 0x00} is now held."); -const u8 gText_ChangedToNewItem[] = _("Changed to {SPECIAL_F7 0x00}."); +const u8 gText_ItemIsNowHeld[] = _("{DYNAMIC 0} is now held."); +const u8 gText_ChangedToNewItem[] = _("Changed to {DYNAMIC 0}."); const u8 gText_MailCantBeStored[] = _("MAIL can't be stored!"); const u8 gPCText_Cancel[] = _("CANCEL"); const u8 gPCText_Store[] = _("STORE"); @@ -981,18 +981,18 @@ const u8 gText_TrainerCloseBy[] = _("That TRAINER is close by.\nTalk to the TRAI const u8 gText_InParty[] = _("IN PARTY"); const u8 gText_Number2[] = _("No. "); const u8 gText_Ribbons[] = _("RIBBONS"); // Unused -const u8 gText_PokemonMaleLv[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}"); // Unused -const u8 gText_PokemonFemaleLv[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}"); // Unused -const u8 gText_PokemonNoGenderLv[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}"); // Unused +const u8 gText_PokemonMaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonFemaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonNoGenderLv[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}"); // Unused const u8 gText_Unknown[] = _("UNKNOWN"); const u8 gText_Call[] = _("CALL"); const u8 gText_Check[] = _("CHECK"); const u8 gText_Cancel6[] = _("CANCEL"); -const u8 gText_NumberF700[] = _("No. {SPECIAL_F7 0x00}"); -const u8 gText_RibbonsF700[] = _("RIBBONS {SPECIAL_F7 0x00}"); -const u8 gText_PokemonMaleLv2[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused -const u8 gText_PokemonFemaleLv2[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused -const u8 gText_PokemonNoGenderLv2[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused +const u8 gText_NumberF700[] = _("No. {DYNAMIC 0}"); +const u8 gText_RibbonsF700[] = _("RIBBONS {DYNAMIC 0}"); +const u8 gText_PokemonMaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonFemaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonNoGenderLv2[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases"); const u8 gText_AndMakeYourProfile[] = _("and make your profile."); const u8 gText_CombineSixWordsOrPhrases[] = _("Combine six words or phrases"); @@ -1063,7 +1063,7 @@ const u8 gText_ApprenticesPhrase[] = _("Apprentice's phrase"); const u8 gText_Questionnaire[] = _("QUESTIONNAIRE"); const u8 gText_YouCannotQuitHere[] = _("You cannot quit here."); const u8 gText_SectionMustBeCompleted[] = _("This section must be completed."); -const u8 gText_F700sQuiz[] = _("{SPECIAL_F7 0x00}'s quiz"); +const u8 gText_F700sQuiz[] = _("{DYNAMIC 0}'s quiz"); const u8 gText_Lady[] = _("Lady"); const u8 gText_AfterYouHaveReadTheQuiz[] = _("After you have read the quiz"); const u8 gText_QuestionPressTheAButton[] = _("question, press the A Button."); @@ -1255,16 +1255,16 @@ const u8 gText_QuitChatting[] = _("Quit chatting?"); const u8 gText_RegisterTextWhere[] = _("Register text where?"); const u8 gText_RegisterTextHere[] = _("Register text here?"); const u8 gText_InputText[] = _("Input text."); -const u8 gText_F700JoinedChat[] = _("{SPECIAL_F7 0x00} joined the chat!"); -const u8 gText_F700LeftChat[] = _("{SPECIAL_F7 0x00} left the chat."); -const u8 gJPText_PlayersXPokemon[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめ:"); // Unused -const u8 gJPText_PlayersXPokmonDoesNotExist[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめは いません"); // Unused +const u8 gText_F700JoinedChat[] = _("{DYNAMIC 0} joined the chat!"); +const u8 gText_F700LeftChat[] = _("{DYNAMIC 0} left the chat."); +const u8 gJPText_PlayersXPokemon[] = _("{DYNAMIC 0}の{DYNAMIC 1}ひきめ:"); // Unused +const u8 gJPText_PlayersXPokmonDoesNotExist[] = _("{DYNAMIC 0}の{DYNAMIC 1}ひきめは いません"); // Unused const u8 gText_ExitingChat[] = _("Exiting the chat…"); -const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {SPECIAL_F7 0x00}, has\nleft, ending the chat."); +const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {DYNAMIC 0}, has\nleft, ending the chat."); const u8 gText_RegisteredTextChangedOKToSave[] = _("The registered text has been changed.\nIs it okay to save the game?"); const u8 gText_AlreadySavedFile_Chat[] = _("There is already a saved file.\nIs it okay to overwrite it?"); const u8 gText_SavingDontTurnOff_Chat[] = _("SAVING…\nDON'T TURN OFF THE POWER."); -const u8 gText_PlayerSavedGame_Chat[] = _("{SPECIAL_F7 0x00} saved the game."); +const u8 gText_PlayerSavedGame_Chat[] = _("{DYNAMIC 0} saved the game."); const u8 gText_IfLeaderLeavesChatEnds[] = _("If the LEADER leaves, the chat\nwill end. Is that okay?"); const u8 gText_Hello[] = _("HELLO"); const u8 gText_Pokemon2[] = _("POKéMON"); @@ -1294,15 +1294,15 @@ const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!"); const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?"); ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p"); ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY."); -ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p"); +ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p"); ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait."); ALIGNED(4) const u8 gText_PlayBerryCrushAgain[] = _("Want to play BERRY CRUSH again?"); ALIGNED(4) const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game will be canceled."); ALIGNED(4) const u8 gText_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled."); ALIGNED(4) const u8 gText_TimesUpNoGoodPowder[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p"); ALIGNED(4) const u8 gText_CommunicationStandby2[] = _("Communication standby…"); -ALIGNED(4) const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{SPECIAL_F7 0x00}"); -ALIGNED(4) const u8 gText_1DotF700[] = _("1. {SPECIAL_F7 0x00}"); +ALIGNED(4) const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{DYNAMIC 0}"); +ALIGNED(4) const u8 gText_1DotF700[] = _("1. {DYNAMIC 0}"); ALIGNED(4) const u8 gText_SpaceTimes2[] = _(" time(s)"); ALIGNED(4) const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}"); ALIGNED(4) const u8 gText_Var1Berry[] = _("{STR_VAR_1} BERRY"); @@ -1375,7 +1375,7 @@ const u8 gText_2Colon[] = _("2:"); const u8 gText_3Colon[] = _("3:"); const u8 gText_4Colon[] = _("4:"); const u8 gText_5Colon[] = _("5:"); -const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {SPECIAL_F7 0x00}!"); +const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {DYNAMIC 0}!"); const u8 gText_CantHoldAnyMore[] = _("You can't hold any more!"); const u8 gText_FilledStorageSpace[] = _("It filled its storage space."); const u8 gText_WantToPlayAgain[] = _("Want to play again?"); @@ -1388,7 +1388,7 @@ const u8 gText_PkmnJumpRecords[] = _("POKéMON JUMP RECORDS"); const u8 gText_JumpsInARow[] = _("Jumps in a row:"); const u8 gText_BestScore2[] = _("Best score:"); const u8 gText_ExcellentsInARow[] = _("EXCELLENTS in a row:"); -const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You've\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!"); +const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You've\nwon {DYNAMIC 1} {DYNAMIC 0}!"); const u8 gText_FilledStorageSpace2[] = _("It filled its storage space."); const u8 gText_CantHoldMore[] = _("You can't hold any more!"); const u8 gText_WantToPlayAgain2[] = _("Want to play again?"); @@ -1645,10 +1645,10 @@ const u8 gText_PeopleTrading[] = _("People trading:"); const u8 gText_PeopleBattling[] = _("People battling:"); const u8 gText_PeopleInUnionRoom[] = _("People in the UNION ROOM:"); const u8 gText_PeopleCommunicating[] = _("People communicating:"); -const u8 gText_F700Players[] = _("{SPECIAL_F7 0} players"); -const u8 gText_F701Players[] = _("{SPECIAL_F7 1} players"); -const u8 gText_F702Players[] = _("{SPECIAL_F7 2} players"); -const u8 gText_F703Players[] = _("{SPECIAL_F7 3} players"); +const u8 gText_F700Players[] = _("{DYNAMIC 0} players"); +const u8 gText_F701Players[] = _("{DYNAMIC 1} players"); +const u8 gText_F702Players[] = _("{DYNAMIC 2} players"); +const u8 gText_F703Players[] = _("{DYNAMIC 3} players"); const u8 *const gTextTable_Players[] = { gText_F700Players, @@ -1745,7 +1745,7 @@ const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); +const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p"); const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gText_MoveRelearnedPkmnDidNotLearnMove[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); // Unused const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); diff --git a/src/text_window.c b/src/text_window.c index 98fc09e87..864bd0831 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -49,7 +49,7 @@ static const u16 sTextWindowFrame18_Pal[] = INCBIN_U16("graphics/text_window/18. static const u16 sTextWindowFrame19_Pal[] = INCBIN_U16("graphics/text_window/19.gbapal"); static const u16 sTextWindowFrame20_Pal[] = INCBIN_U16("graphics/text_window/20.gbapal"); -static const u16 sUnknown_0851017C[][16] = +static const u16 sTextWindowPalettes[][16] = { INCBIN_U16("graphics/text_window/message_box.gbapal"), INCBIN_U16("graphics/text_window/text_pal1.gbapal"), @@ -160,7 +160,7 @@ void rbox_fill_rectangle(u8 windowId) FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); } -const u16 *stdpal_get(u8 id) +const u16 *GetTextWindowPalette(u8 id) { switch (id) { @@ -182,7 +182,7 @@ const u16 *stdpal_get(u8 id) break; } - return (const u16 *)(sUnknown_0851017C) + id; + return (const u16 *)(sTextWindowPalettes) + id; } const u16 *GetOverworldTextboxPalettePtr(void) diff --git a/src/title_screen.c b/src/title_screen.c index aa91351df..108601685 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -609,7 +609,7 @@ void CB2_InitTitleScreen(void) | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_OBJWIN_ON); - m4aSongNumStart(MUS_TITLE3); + m4aSongNumStart(MUS_TITLE); gMain.state = 5; break; case 5: diff --git a/src/trade.c b/src/trade.c index 3a0f07ac6..6480f3594 100644 --- a/src/trade.c +++ b/src/trade.c @@ -246,9 +246,9 @@ static bool8 SendLinkData(const void *linkData, u32 size) } } -static void sub_80771AC(u8 a0) +static void RequestLinkData(u8 type) { - sub_800A4D8(a0); + SendBlockRequest(type); } static bool32 sub_80771BC(void) @@ -295,9 +295,9 @@ static bool32 IsWirelessTrade(void) return FALSE; } -static void sub_8077288(u8 unused) +static void SetTradeLinkStandbyCallback(u8 unused) { - sub_800ADF8(); + SetLinkStandbyCallback(); } static bool32 _IsLinkTaskFinished(void) @@ -445,7 +445,7 @@ static void CB2_CreateTradeMenu(void) if (gWirelessCommType) { sub_801048C(TRUE); - sub_800ADF8(); + SetLinkStandbyCallback(); } } break; @@ -570,7 +570,7 @@ static void CB2_CreateTradeMenu(void) sTradeMenuData->bg3hofs = 0; SetTradePartyMonsVisible(); gMain.state++; - PlayBGM(MUS_P_SCHOOL); + PlayBGM(MUS_SCHOOL); break; case 15: SetTradePartyLiveStatuses(TRADE_PARTNER); @@ -825,7 +825,7 @@ static void LinkTradeWaitForFade(void) } else { - sub_800ABF4(32); + SetCloseLinkCallbackAndType(32); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; } } @@ -983,7 +983,7 @@ static bool8 BufferTradeParties(void) case 3: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1002,7 +1002,7 @@ static bool8 BufferTradeParties(void) case 7: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1021,7 +1021,7 @@ static bool8 BufferTradeParties(void) case 11: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1040,7 +1040,7 @@ static bool8 BufferTradeParties(void) case 15: if (id == 0) { - sub_80771AC(3); + RequestLinkData(3); } sTradeMenuData->bufferPartyState++; break; @@ -1059,7 +1059,7 @@ static bool8 BufferTradeParties(void) case 19: if (id == 0) { - sub_80771AC(4); + RequestLinkData(4); } sTradeMenuData->bufferPartyState++; break; @@ -1652,11 +1652,11 @@ static void CancelTrade_1(void) { if (gWirelessCommType) { - sub_800ADF8(); + SetLinkStandbyCallback(); } else { - sub_800ABF4(12); + SetCloseLinkCallbackAndType(12); } sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_2; @@ -1692,7 +1692,7 @@ static void LinkTradeWaitForQueue(void) { if (!sub_801048C(FALSE) && GetNumQueuedActions() == 0) { - sub_800ADF8(); + SetLinkStandbyCallback(); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; } } @@ -2573,7 +2573,7 @@ static void sub_807AA28(struct Sprite *sprite) { if (++sprite->data[0] == 10) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); sprite->data[0] = 0; } } @@ -2582,7 +2582,7 @@ static void sub_807AA4C(struct Sprite *sprite) { if (!sprite->invisible && ++sprite->data[0] == 10) { - PlaySE(SE_W207B); + PlaySE(SE_M_SWAGGER2); sprite->data[0] = 0; } } @@ -2620,7 +2620,7 @@ static void sub_807AB04(struct Sprite *sprite) { if (++sprite->data[0] == 15) { - PlaySE(SE_W107); + PlaySE(SE_M_MINIMIZE); sprite->data[0] = 0; } } @@ -3289,7 +3289,7 @@ static bool8 AnimateTradeSequenceCable(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); break; case 1: if (sTradeData->bg2hofs > 0) @@ -3449,7 +3449,7 @@ static bool8 AnimateTradeSequenceCable(void) case 32: if (!gPaletteFade.active) { - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); sTradeData->state++; } gSprites[sTradeData->unk_90].pos2.y -= 3; @@ -3503,7 +3503,7 @@ static bool8 AnimateTradeSequenceCable(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) { - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) { @@ -3600,7 +3600,7 @@ static bool8 AnimateTradeSequenceCable(void) DestroySprite(&gSprites[sTradeData->unk_91]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; - PlaySE(SE_W028); + PlaySE(SE_M_SAND_ATTACK); } break; case 51: @@ -3704,7 +3704,7 @@ static bool8 AnimateTradeSequenceCable(void) case 68: if (++sTradeData->timer == 10) { - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); } if (sTradeData->timer == 250) { @@ -3781,7 +3781,7 @@ static bool8 AnimateTradeSequenceWireless(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); break; case 1: if (sTradeData->bg2hofs > 0) @@ -3946,7 +3946,7 @@ static bool8 AnimateTradeSequenceWireless(void) case 32: if (!gPaletteFade.active) { - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); sTradeData->state++; } gSprites[sTradeData->unk_90].pos2.y -= 3; @@ -4001,7 +4001,7 @@ static bool8 AnimateTradeSequenceWireless(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) { - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) { @@ -4116,7 +4116,7 @@ static bool8 AnimateTradeSequenceWireless(void) DestroySprite(&gSprites[sTradeData->unk_91]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; - PlaySE(SE_W028); + PlaySE(SE_M_SAND_ATTACK); } break; case 51: @@ -4219,7 +4219,7 @@ static bool8 AnimateTradeSequenceWireless(void) case 68: if (++sTradeData->timer == 10) { - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); } if (sTradeData->timer == 250) { @@ -4361,10 +4361,10 @@ static void sub_807E5D8(struct Sprite *sprite) { sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (sprite->data[0] == 22) - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); if (++ sprite->data[0] == 44) { - PlaySE(SE_W025); + PlaySE(SE_M_MEGA_KICK); sprite->callback = sub_807E64C; sprite->data[0] = 0; BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, RGB_WHITEALPHA); @@ -4394,17 +4394,17 @@ static void sub_807E6AC(struct Sprite *sprite) { sprite->data[2] ++; sprite->data[0] = 0x16; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); } } else { if (sprite->data[0] == 0x42) - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); if (sprite->data[0] == 0x5c) - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); if (sprite->data[0] == 0x6b) - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (++sprite->data[0] == 0x6c) sprite->callback = SpriteCallbackDummy; @@ -4566,7 +4566,7 @@ static void CB2_SaveAndEndTrade(void) DrawTextOnTradeWindow(0, gStringVar4, 0); break; case 1: - sub_8077288(0); + SetTradeLinkStandbyCallback(0); gMain.state = 100; sTradeData->timer = 0; break; @@ -4644,7 +4644,7 @@ static void CB2_SaveAndEndTrade(void) case 41: if (sTradeData->timer == 0) { - sub_8077288(1); + SetTradeLinkStandbyCallback(1); gMain.state = 42; } else @@ -4663,7 +4663,7 @@ static void CB2_SaveAndEndTrade(void) if (++sTradeData->timer > 60) { gMain.state++; - sub_8077288(2); + SetTradeLinkStandbyCallback(2); } break; case 6: @@ -4685,11 +4685,11 @@ static void CB2_SaveAndEndTrade(void) { if (gWirelessCommType && gMain.savedCallback == CB2_StartCreateTradeMenu) { - sub_8077288(3); + SetTradeLinkStandbyCallback(3); } else { - sub_800AC34(); + SetCloseLinkCallback(); } gMain.state++; } @@ -4809,7 +4809,7 @@ static void Task_AnimateWirelessSignal(u8 taskId) } if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); if (counter == sWirelessSignalTiming[idx][1]) { @@ -4902,7 +4902,7 @@ static void CB2_SaveAndEndWirelessTrade(void) DrawTextOnTradeWindow(0, gStringVar4, 0); break; case 1: - sub_8077288(0); + SetTradeLinkStandbyCallback(0); gMain.state = 2; sTradeData->timer = 0; break; @@ -4950,7 +4950,7 @@ static void CB2_SaveAndEndWirelessTrade(void) case 7: if (sTradeData->timer == 0) { - sub_8077288(1); + SetTradeLinkStandbyCallback(1); gMain.state = 8; } else @@ -4969,7 +4969,7 @@ static void CB2_SaveAndEndWirelessTrade(void) if (++sTradeData->timer > 60) { gMain.state++; - sub_8077288(2); + SetTradeLinkStandbyCallback(2); } break; case 10: @@ -4983,7 +4983,7 @@ static void CB2_SaveAndEndWirelessTrade(void) case 11: if (!gPaletteFade.active && IsBGMStopped() == TRUE) { - sub_8077288(3); + SetTradeLinkStandbyCallback(3); gMain.state = 12; } break; diff --git a/src/trainer_card.c b/src/trainer_card.c index d625bc13e..9d6838176 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -25,7 +25,7 @@ #include "graphics.h" #include "pokemon_icon.h" #include "trainer_pokemon_sprites.h" -#include "script_pokemon_util_80F87D8.h" +#include "contest_util.h" #include "constants/songs.h" #include "constants/game_stat.h" #include "constants/battle_frontier.h" @@ -422,7 +422,7 @@ static void Task_TrainerCard(u8 taskId) case 8: if (!UpdatePaletteFade() && !IsDma3ManagerBusyWithBgCopy()) { - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); sData->mainState = STATE_HANDLE_INPUT_FRONT; } break; @@ -441,7 +441,7 @@ static void Task_TrainerCard(u8 taskId) if (gMain.newKeys & A_BUTTON) { FlipTrainerCard(); - PlaySE(SE_RG_CARD1); + PlaySE(SE_RG_CARD_FLIP); sData->mainState = STATE_WAIT_FLIP_TO_BACK; } else if (gMain.newKeys & B_BUTTON) @@ -460,7 +460,7 @@ static void Task_TrainerCard(u8 taskId) case STATE_WAIT_FLIP_TO_BACK: if (IsCardFlipTaskActive() && sub_8087598() != TRUE) { - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); sData->mainState = STATE_HANDLE_INPUT_BACK; } break; @@ -480,7 +480,7 @@ static void Task_TrainerCard(u8 taskId) { FlipTrainerCard(); sData->mainState = STATE_WAIT_FLIP_TO_FRONT; - PlaySE(SE_RG_CARD1); + PlaySE(SE_RG_CARD_FLIP); } } else if (gMain.newKeys & A_BUTTON) @@ -497,7 +497,7 @@ static void Task_TrainerCard(u8 taskId) } break; case STATE_WAIT_LINK_PARTNER: - sub_800AC34(); + SetCloseLinkCallback(); DrawDialogueFrame(0, 1); AddTextPrinterParameterized(0, 1, gText_WaitingTrainerFinishReading, 0, 1, 255, 0); CopyWindowToVram(0, 3); @@ -518,7 +518,7 @@ static void Task_TrainerCard(u8 taskId) if (IsCardFlipTaskActive() && sub_8087598() != TRUE) { sData->mainState = STATE_HANDLE_INPUT_FRONT; - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); } break; } @@ -1730,7 +1730,7 @@ static bool8 Task_SetCardFlipped(struct Task* task) sData->onBack ^= 1; task->tFlipState++; sData->allowDMACopy = TRUE; - PlaySE(SE_RG_CARD2); + PlaySE(SE_RG_CARD_FLIPPING); return FALSE; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index d6cb49837..bed8df2e0 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -64,7 +64,7 @@ static void TrainerHillSetPlayerLost(void); static void TrainerHillGetChallengeStatus(void); static void BufferChallengeTime(void); static void GetAllFloorsUsed(void); -static void ClearVarResult(void); +static void GetInEReaderMode(void); static void IsTrainerHillChallengeActive(void); static void ShowTrainerHillPostBattleText(void); static void SetAllTrainerFlags(void); @@ -202,7 +202,7 @@ static const u16 *const *const sPrizeListSets[] = sPrizeLists2 }; -static const u16 sUnknown_0862A5D4[] = INCBIN_U16("graphics/pokenav/862A5D4.gbapal"); +static const u16 sEReader_Pal[] = INCBIN_U16("graphics/misc/trainer_hill_ereader.gbapal"); static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; static const struct TrHillTag *const sDataPerTag[] = @@ -233,7 +233,7 @@ static void (* const sHillFunctions[])(void) = [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, - [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, + [TRAINER_HILL_FUNC_GET_IN_EREADER_MODE] = GetInEReaderMode, [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, [TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS] = SetAllTrainerFlags, @@ -356,7 +356,7 @@ static void SetUpDataStruct(void) { if (sHillData == NULL) { - sHillData = AllocZeroed(sizeof(*sHillData)); + sHillData = AllocZeroed(sizeof(struct TrHillStruct2)); sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor)); nullsub_2(); @@ -546,10 +546,11 @@ static void GetAllFloorsUsed(void) } // May have been dummied. Every time this is called a conditional for var result occurs afterwards -static void ClearVarResult(void) +// Relation to E-Reader is an assumption, most dummied Trainer Hill code seems to be JP E-Reader mode related +static void GetInEReaderMode(void) { SetUpDataStruct(); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; FreeDataStruct(); } @@ -671,70 +672,23 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void) return TRUE; } -// Functionally equivalent. -#ifdef NONMATCHING static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) { - u32 var0, var1, var2, var3; + u16 var0, var1; + #ifndef NONMATCHING + register u16 var2 asm("r3"); //compiler keeps wanting to "mov r3, 0x80" instead of "mov r2 0x80" and then later "add r3, r2, 0" + #else + u16 var2; + #endif + u16 var3; - var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit)) & 1; - var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit]; - var3 = 0x200; - var2 = 0x3000; + var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1); + var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit]; + var2 = 0x200; + var3 = 0x3000; - return ((var0 << 10) | var2) | (var1 | var3); -} -#else -NAKED -static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) -{ - asm_unified("\n\ - push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, =sHillData\n\ - ldr r4, [r4]\n\ - mov r12, r4\n\ - lsls r4, r2, 1\n\ - lsls r5, r0, 4\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - adds r4, r5\n\ - movs r0, 0xE8\n\ - lsls r0, 2\n\ - add r0, r12\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r4, 0xF\n\ - subs r4, r1\n\ - asrs r0, r4\n\ - movs r4, 0x1\n\ - ands r0, r4\n\ - muls r2, r3\n\ - adds r2, r1\n\ - adds r2, r5\n\ - movs r1, 0xA8\n\ - lsls r1, 2\n\ - add r1, r12\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - movs r2, 0x80\n\ - lsls r2, 2\n\ - adds r3, r2, 0\n\ - movs r2, 0xC0\n\ - lsls r2, 6\n\ - lsls r0, 10\n\ - orrs r0, r2\n\ - orrs r1, r3\n\ - orrs r0, r1\n\ - pop {r4,r5}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); + return ((var0 << 10) | var3) | (var1 | var2); } -#endif // NONMATCHING void GenerateTrainerHillFloorLayout(u16 *mapArg) { @@ -997,11 +951,11 @@ static void SetAllTrainerFlags(void) gSaveBlock2Ptr->frontier.trainerFlags = 0xFF; } -// Palette never loaded, sub_81D6534 always FALSE -void sub_81D64C0(void) +// Palette never loaded, OnTrainerHillEReaderChallengeFloor always FALSE +void TryLoadTrainerHillEReaderPalette(void) { - if (sub_81D6534() == TRUE) - LoadPalette(sUnknown_0862A5D4, 0x70, 0x20); + if (OnTrainerHillEReaderChallengeFloor() == TRUE) + LoadPalette(sEReader_Pal, 0x70, 0x20); } static void GetGameSaved(void) @@ -1020,13 +974,13 @@ static void ClearGameSaved(void) } // Always FALSE -bool32 sub_81D6534(void) +bool32 OnTrainerHillEReaderChallengeFloor(void) { if (!InTrainerHillChallenge() || GetCurrentTrainerHillMapId() == TRAINER_HILL_ENTRANCE) return FALSE; - ClearVarResult(); - if (gSpecialVar_Result == 0) + GetInEReaderMode(); + if (gSpecialVar_Result == FALSE) return FALSE; else return TRUE; diff --git a/src/trainer_see.c b/src/trainer_see.c index 68a16e208..c37f37262 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -559,7 +559,7 @@ static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct Objec gFieldEffectArguments[1] = trainerObj->currentCoords.y; gFieldEffectArguments[2] = gSprites[trainerObj->spriteId].subpriority - 1; gFieldEffectArguments[3] = 2; - task->tOutOfAshSpriteId = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->tOutOfAshSpriteId = FieldEffectStart(FLDEFF_ASH_PUFF); task->tFuncId++; } return FALSE; @@ -586,7 +586,7 @@ static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct Objec static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { - if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) task->tFuncId = 3; return FALSE; @@ -603,14 +603,14 @@ static void sub_80B44C8(u8 taskId) struct ObjectEvent *objEvent; // another objEvent loaded into by loadword? - LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&objEvent); + LoadWordFromTwoHalfwords((u16*)&task->data[1], (u32 *)&objEvent); if (!task->data[7]) { ObjectEventClearHeldMovement(objEvent); task->data[7]++; } sTrainerSeeFuncList2[task->data[0]](taskId, task, objEvent); - if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) { SetTrainerMovementType(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); TryOverrideTemplateCoordsForObjectEvent(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); @@ -624,7 +624,7 @@ static void sub_80B44C8(u8 taskId) void sub_80B4578(struct ObjectEvent *var) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); + StoreWordInTwoHalfwords((u16 *)&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); } void EndTrainerApproach(void) @@ -387,39 +387,39 @@ static const u8 *const sTVBravoTrainerBattleTowerTextGroup[] = { }; static const u8 *const sTVContestLiveUpdatesTextGroup[] = { - gTVContestLiveUpdatesText00, - gTVContestLiveUpdatesText01, - gTVContestLiveUpdatesText02, - gTVContestLiveUpdatesText03, - gTVContestLiveUpdatesText04, - gTVContestLiveUpdatesText05, - gTVContestLiveUpdatesText06, - gTVContestLiveUpdatesText07, - gTVContestLiveUpdatesText08, - gTVContestLiveUpdatesText09, - gTVContestLiveUpdatesText10, - gTVContestLiveUpdatesText11, - gTVContestLiveUpdatesText12, - gTVContestLiveUpdatesText13, - gTVContestLiveUpdatesText14, - gTVContestLiveUpdatesText15, - gTVContestLiveUpdatesText16, - gTVContestLiveUpdatesText17, - gTVContestLiveUpdatesText18, - gTVContestLiveUpdatesText19, - gTVContestLiveUpdatesText20, - gTVContestLiveUpdatesText21, - gTVContestLiveUpdatesText22, - gTVContestLiveUpdatesText23, - gTVContestLiveUpdatesText24, - gTVContestLiveUpdatesText25, - gTVContestLiveUpdatesText26, - gTVContestLiveUpdatesText27, - gTVContestLiveUpdatesText28, - gTVContestLiveUpdatesText29, - gTVContestLiveUpdatesText30, - gTVContestLiveUpdatesText31, - gTVContestLiveUpdatesText32 + [CONTESTLIVE_STATE_INTRO] = ContestLiveUpdates_Text_Intro, + [CONTESTLIVE_STATE_WON_BOTH_ROUNDS] = ContestLiveUpdates_Text_WonBothRounds, + [CONTESTLIVE_STATE_BETTER_ROUND2] = ContestLiveUpdates_Text_BetterRound2, + [CONTESTLIVE_STATE_EQUAL_ROUNDS] = ContestLiveUpdates_Text_EqualRounds, + [CONTESTLIVE_STATE_BETTER_ROUND1] = ContestLiveUpdates_Text_BetterRound1, + [CONTESTLIVE_STATE_GOT_NERVOUS] = ContestLiveUpdates_Text_GotNervous, + [CONTESTLIVE_STATE_STARTLED_OTHER] = ContestLiveUpdates_Text_StartledFoes, + [CONTESTLIVE_STATE_USED_COMBO] = ContestLiveUpdates_Text_UsedCombo, + [CONTESTLIVE_STATE_EXCITING_APPEAL] = ContestLiveUpdates_Text_ExcitingAppeal, + [CONTESTLIVE_STATE_COOL] = ContestLiveUpdates_Text_WasCool, + [CONTESTLIVE_STATE_BEAUTIFUL] = ContestLiveUpdates_Text_WasBeautiful, + [CONTESTLIVE_STATE_CUTE] = ContestLiveUpdates_Text_WasCute, + [CONTESTLIVE_STATE_SMART] = ContestLiveUpdates_Text_WasSmart, + [CONTESTLIVE_STATE_TOUGH] = ContestLiveUpdates_Text_WasTough, + [CONTESTLIVE_STATE_VERY_EXCITING_APPEAL] = ContestLiveUpdates_Text_VeryExcitingAppeal, + [CONTESTLIVE_STATE_VERY_COOL] = ContestLiveUpdates_Text_VeryCool, + [CONTESTLIVE_STATE_VERY_BEAUTIFUL] = ContestLiveUpdates_Text_VeryBeautiful, + [CONTESTLIVE_STATE_VERY_CUTE] = ContestLiveUpdates_Text_VeryCute, + [CONTESTLIVE_STATE_VERY_SMART] = ContestLiveUpdates_Text_VerySmart, + [CONTESTLIVE_STATE_VERY_TOUGH] = ContestLiveUpdates_Text_VeryTough, + [CONTESTLIVE_STATE_TOOK_BREAK] = ContestLiveUpdates_Text_TookBreak, + [CONTESTLIVE_STATE_GOT_STARTLED] = ContestLiveUpdates_Text_GotStartled, + [CONTESTLIVE_STATE_USED_MOVE] = ContestLiveUpdates_Text_MoveWonderful, + [CONTESTLIVE_STATE_TALK_ABOUT_LOSER] = ContestLiveUpdates_Text_TalkAboutAnotherMon, + [CONTESTLIVE_STATE_NO_APPEALS] = ContestLiveUpdates_Text_FailedToAppeal, + [CONTESTLIVE_STATE_LAST_BOTH] = ContestLiveUpdates_Text_LastInBothRounds, + [CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH] = ContestLiveUpdates_Text_NotExcitingEnough, + [CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN] = ContestLiveUpdates_Text_LostAfterWinningRound1, + [CONTESTLIVE_STATE_NO_EXCITING_APPEALS] = ContestLiveUpdates_Text_NeverExciting, + [CONTESTLIVE_STATE_LOST_SMALL_MARGIN] = ContestLiveUpdates_Text_LostBySmallMargin, + [CONTESTLIVE_STATE_REPEATED_APPEALS] = ContestLiveUpdates_Text_RepeatedAppeals, + [CONTESTLIVE_STATE_LOST] = ContestLiveUpdates_Text_ValiantEffortButLost, + [CONTESTLIVE_STATE_OUTRO] = ContestLiveUpdates_Text_Outro }; static const u8 *const sTVPokemonBattleUpdateTextGroup[] = { @@ -1268,19 +1268,19 @@ static void InterviewAfter_ContestLiveUpdates(void) show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; show2->contestLiveUpdates.active = TRUE; - StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName); + StringCopy(show2->contestLiveUpdates.winningTrainerName, gSaveBlock2Ptr->playerName); // Show only begins running if player won, so always load players name show2->contestLiveUpdates.category = gSpecialVar_ContestCategory; - show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); - show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies; - show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2; - show2->contestLiveUpdates.round1Rank = show->contestLiveUpdates.round1Rank; - show2->contestLiveUpdates.round2Rank = show->contestLiveUpdates.round2Rank; + show2->contestLiveUpdates.winningSpecies = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); + show2->contestLiveUpdates.losingSpecies = show->contestLiveUpdates.losingSpecies; + show2->contestLiveUpdates.loserAppealFlag = show->contestLiveUpdates.loserAppealFlag; + show2->contestLiveUpdates.round1Placing = show->contestLiveUpdates.round1Placing; + show2->contestLiveUpdates.round2Placing = show->contestLiveUpdates.round2Placing; show2->contestLiveUpdates.move = show->contestLiveUpdates.move; - show2->contestLiveUpdates.appealFlags1 = show->contestLiveUpdates.appealFlags1; - StringCopy(show2->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerName); + show2->contestLiveUpdates.winnerAppealFlag = show->contestLiveUpdates.winnerAppealFlag; + StringCopy(show2->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerName); tv_store_id_2x(show2); - show2->contestLiveUpdates.language = gGameLanguage; - show2->contestLiveUpdates.winningTrainerLanguage = show->contestLiveUpdates.winningTrainerLanguage; + show2->contestLiveUpdates.winningTrainerLanguage = gGameLanguage; + show2->contestLiveUpdates.losingTrainerLanguage = show->contestLiveUpdates.losingTrainerLanguage; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } } @@ -1399,7 +1399,7 @@ void PutFanClubSpecialOnTheAir(void) } } -void ContestLiveUpdates_BeforeInterview_1(u8 a0) +void ContestLiveUpdates_Init(u8 round1Placing) { TVShow *show; @@ -1408,12 +1408,12 @@ void ContestLiveUpdates_BeforeInterview_1(u8 a0) if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - show->contestLiveUpdates.round1Rank = a0; + show->contestLiveUpdates.round1Placing = round1Placing; show->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; } } -void ContestLiveUpdates_BeforeInterview_2(u8 a0) +void ContestLiveUpdates_SetRound2Placing(u8 round2Placing) { TVShow *show; @@ -1421,11 +1421,11 @@ void ContestLiveUpdates_BeforeInterview_2(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.round2Rank = a0; + show->contestLiveUpdates.round2Placing = round2Placing; } } -void ContestLiveUpdates_BeforeInterview_3(u8 a0) +void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag) { TVShow *show; @@ -1433,11 +1433,11 @@ void ContestLiveUpdates_BeforeInterview_3(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.appealFlags1 = a0; + show->contestLiveUpdates.winnerAppealFlag = flag; } } -void ContestLiveUpdates_BeforeInterview_4(u16 a0) +void ContestLiveUpdates_SetWinnerMoveUsed(u16 move) { TVShow *show; @@ -1445,11 +1445,11 @@ void ContestLiveUpdates_BeforeInterview_4(u16 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.move = a0; + show->contestLiveUpdates.move = move; } } -void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) +void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser) { TVShow *show; @@ -1457,21 +1457,21 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.winningSpecies = gContestMons[a1].species; - StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName); - StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName); - show->contestLiveUpdates.appealFlags2 = a0; - if (a1 + 1 > gNumLinkContestPlayers) + show->contestLiveUpdates.losingSpecies = gContestMons[loser].species; + StringCopy(show->contestLiveUpdates.losingTrainerName, gContestMons[loser].trainerName); + StripExtCtrlCodes(show->contestLiveUpdates.losingTrainerName); + show->contestLiveUpdates.loserAppealFlag = flag; + if (loser + 1 > gNumLinkContestPlayers) { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[0].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[0].language; } - else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[a1].language == LANGUAGE_JAPANESE) + else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[loser].language == LANGUAGE_JAPANESE) { - show->contestLiveUpdates.winningTrainerLanguage = LANGUAGE_JAPANESE; + show->contestLiveUpdates.losingTrainerLanguage = LANGUAGE_JAPANESE; } else { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[a1].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[loser].language; } } } @@ -1836,31 +1836,25 @@ static void TryEndMassOutbreak(u16 days) gSaveBlock1Ptr->outbreakDaysLeft -= days; } -void sub_80ED950(bool8 flag) +void RecordFishingAttemptForTV(bool8 caughtFish) { - if (flag) + if (caughtFish) { if (sPokemonAnglerAttemptCounters >> 8 > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF; if (sPokemonAnglerAttemptCounters != 0xFF) - { sPokemonAnglerAttemptCounters += 0x01; - } } else { if ((u8)sPokemonAnglerAttemptCounters > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF00; if (sPokemonAnglerAttemptCounters >> 8 != 0xFF) - { sPokemonAnglerAttemptCounters += 0x0100; - } } } @@ -1930,7 +1924,7 @@ void sub_80EDA80(void) } } -void sub_80EDB44(void) +void TryPutTodaysRivalTrainerOnAir(void) { TVShow *show; u32 i; @@ -3448,7 +3442,7 @@ void ChangePokemonNickname(void) GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); } void ChangePokemonNickname_CB(void) @@ -3464,7 +3458,7 @@ void ChangeBoxPokemonNickname(void) boxMon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar3); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); } void ChangeBoxPokemonNickname_CB(void) @@ -3810,10 +3804,10 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans switch (gSaveBlock1Ptr->tvShows[i].common.kind) { case TVSHOW_CONTEST_LIVE_UPDATES: - j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species; - sub_80F0B24(j, i); j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.losingSpecies; + sub_80F0B24(j, i); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: break; @@ -4307,8 +4301,8 @@ static void sub_80F12A4(TVShow *shows) curShow->bravoTrainerTower.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainerTower.pokemonName); break; case TVSHOW_CONTEST_LIVE_UPDATES: - curShow->contestLiveUpdates.language = TV_GetStringLanguage(curShow->contestLiveUpdates.playerName); curShow->contestLiveUpdates.winningTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); + curShow->contestLiveUpdates.losingTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.losingTrainerName); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: curShow->threeCheers.language = TV_GetStringLanguage(curShow->threeCheers.playerName); @@ -5173,6 +5167,12 @@ static void DoTVShowPokemonNewsMassOutbreak(void) ShowFieldMessage(sTVMassOutbreakTextGroup[sTVShowState]); } +// TV Show that plays after a Link Contest. +// First talks about the winner and something they did, then about a losing player and something they did +// The show is only generated when the player wins, but can be record mixed to other games +// Each state buffers any needed data for a message to print from sTVContestLiveUpdatesTextGroup +// Many cases in this function are identical, and its size can be reduced a good deal by collapsing them +// Can't get this to match while collapsing them though static void DoTVShowPokemonContestLiveUpdates(void) { TVShow *show; @@ -5183,339 +5183,338 @@ static void DoTVShowPokemonContestLiveUpdates(void) state = sTVShowState; switch (state) { - case 0: - BufferContestName(gStringVar1, show->contestLiveUpdates.category); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank) - { - if (show->contestLiveUpdates.round1Rank == 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 3; - } - } - else if (show->contestLiveUpdates.round1Rank > show->contestLiveUpdates.round2Rank) + case CONTESTLIVE_STATE_INTRO: + BufferContestName(gStringVar1, show->contestLiveUpdates.category); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + if (show->contestLiveUpdates.round1Placing == show->contestLiveUpdates.round2Placing) + { + if (show->contestLiveUpdates.round1Placing == 0) { - sTVShowState = 2; + sTVShowState = CONTESTLIVE_STATE_WON_BOTH_ROUNDS; } else { - sTVShowState = 4; + sTVShowState = CONTESTLIVE_STATE_EQUAL_ROUNDS; } + } + else if (show->contestLiveUpdates.round1Placing > show->contestLiveUpdates.round2Placing) + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND2; + } + else + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND1; + } + break; + case CONTESTLIVE_STATE_WON_BOTH_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 1: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 2: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 3: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 4: - switch (show->contestLiveUpdates.category) - { - case 0: - StringCopy(gStringVar1, gText_Cool); - break; - case 1: - StringCopy(gStringVar1, gText_Beauty); - break; - case 2: - StringCopy(gStringVar1, gText_Cute); - break; - case 3: - StringCopy(gStringVar1, gText_Smart); - break; - case 4: - StringCopy(gStringVar1, gText_Tough); - break; - } - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 5: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 6: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 7: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 8: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 9; - break; - case 1: - sTVShowState = 10; - break; - case 2: - sTVShowState = 11; - break; - case 3: - sTVShowState = 12; - break; - case 4: - sTVShowState = 13; - break; - } + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND2: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 9: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 10: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 11: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 12: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 13: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 14: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 15; - break; - case 1: - sTVShowState = 16; - break; - case 2: - sTVShowState = 17; - break; - case 3: - sTVShowState = 18; - break; - case 4: - sTVShowState = 19; - break; - } + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 15: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 16: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + } + break; + case CONTESTLIVE_STATE_EQUAL_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 17: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 18: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 19: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 20: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 21: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; - break; - case 22: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); - sTVShowState = 23; - break; - case 23: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - switch (show->contestLiveUpdates.appealFlags2) - { - case 0x01: - sTVShowState = 31; - break; - case 0x02: - sTVShowState = 30; - break; - case 0x04: - sTVShowState = 29; - break; - case 0x08: - sTVShowState = 28; - break; - case 0x10: - sTVShowState = 27; - break; - case 0x20: - sTVShowState = 26; - break; - case 0x40: - sTVShowState = 25; - break; - case 0x80: - sTVShowState = 24; - break; - } + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 24: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 25: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 28: - sTVShowState = 32; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 29: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 26: - case 27: - case 30: - case 31: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 32: - - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowDone(); + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND1: + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + StringCopy(gStringVar1, gText_Cool); break; + case CONTEST_CATEGORY_BEAUTY: + StringCopy(gStringVar1, gText_Beauty); + break; + case CONTEST_CATEGORY_CUTE: + StringCopy(gStringVar1, gText_Cute); + break; + case CONTEST_CATEGORY_SMART: + StringCopy(gStringVar1, gText_Smart); + break; + case CONTEST_CATEGORY_TOUGH: + StringCopy(gStringVar1, gText_Tough); + break; + } + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; + break; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; + break; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; + break; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; + break; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; + break; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; + break; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; + break; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; + break; + } + break; + case CONTESTLIVE_STATE_GOT_NERVOUS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_STARTLED_OTHER: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_COMBO: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_VERY_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_VERY_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_VERY_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_VERY_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_VERY_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_VERY_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOOK_BREAK: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_GOT_STARTLED: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_MOVE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TALK_ABOUT_LOSER: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + switch (show->contestLiveUpdates.loserAppealFlag) + { + case CONTESTLIVE_FLAG_LOST: + sTVShowState = CONTESTLIVE_STATE_LOST; + break; + case CONTESTLIVE_FLAG_REPEATED_MOVE: + sTVShowState = CONTESTLIVE_STATE_REPEATED_APPEALS; + break; + case CONTESTLIVE_FLAG_LOST_SMALL_MARGIN: + sTVShowState = CONTESTLIVE_STATE_LOST_SMALL_MARGIN; + break; + case CONTESTLIVE_FLAG_NO_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NO_EXCITING_APPEALS; + break; + case CONTESTLIVE_FLAG_BLEW_LEAD: + sTVShowState = CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN; + break; + case CONTESTLIVE_FLAG_MISSED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH; + break; + case CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS: + sTVShowState = CONTESTLIVE_STATE_LAST_BOTH; + break; + case CONTESTLIVE_FLAG_NO_APPEALS: + sTVShowState = CONTESTLIVE_STATE_NO_APPEALS; + break; + } + break; + case CONTESTLIVE_STATE_NO_APPEALS: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LAST_BOTH: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NO_EXCITING_APPEALS: + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LOST_SMALL_MARGIN: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH: + case CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN: + case CONTESTLIVE_STATE_REPEATED_APPEALS: + case CONTESTLIVE_STATE_LOST: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_OUTRO: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowDone(); + break; } ShowFieldMessage(sTVContestLiveUpdatesTextGroup[state]); } diff --git a/src/union_room.c b/src/union_room.c index 1ef8cd4cb..f79dd9cc4 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -32,7 +32,7 @@ #include "random.h" #include "save_location.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "sound.h" #include "start_menu.h" #include "string_util.h" @@ -1018,13 +1018,13 @@ static void Task_TryJoinLinkGroup(u8 taskId) // Trading is allowed, or not trading at all AskToJoinRfuGroup(data, id); data->state = LG_STATE_ASK_JOIN_GROUP; - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); } else { StringCopy(gStringVar4, sCantTransmitToTrainerTexts[readyStatus - 1]); data->state = LG_STATE_TRADE_NOT_READY; - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); } } else @@ -1483,7 +1483,7 @@ static void Task_ExchangeCards(u8 taskId) { case 0: if (GetMultiplayerId() == 0) - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].data[0]++; break; case 1: @@ -1759,7 +1759,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) } else { - sub_800ADF8(); + SetLinkStandbyCallback(); data[0] = 3; } } @@ -1795,7 +1795,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) DestroyTask(taskId); break; case 7: - sub_800AC34(); + SetCloseLinkCallback(); data[0] = 8; break; case 8: @@ -2018,7 +2018,7 @@ static void Task_MEvent_Leader(u8 taskId) Free(data->field_8); Free(data->field_0); Free(data->field_4); - sub_800ADF8(); + SetLinkStandbyCallback(); data->state++; break; case 17: @@ -2118,7 +2118,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) RedrawListMenu(data->listTaskId); IntlConvPartnerUname7(gStringVar1, &data->field_0->arr[data->leaderId]); CreateTask_RfuReconnectWithParent(data->field_0->arr[data->leaderId].gname_uname.playerName, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); data->state = 4; } else @@ -2188,7 +2188,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 11: data->state++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 12: if (IsLinkTaskFinished()) @@ -2279,7 +2279,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); CreateTask_RfuReconnectWithParent(data->field_0->arr[0].gname_uname.playerName, ReadAsU16(data->field_0->arr[0].gname_uname.gname.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); data->state = 4; } else @@ -2367,7 +2367,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) break; case 13: data->state++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 14: if (IsLinkTaskFinished()) @@ -2714,7 +2714,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_REQUEST_DECLINED: - sub_800AC34(); + SetCloseLinkCallback(); uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; break; case UR_STATE_SEND_TRADE_REQUST: @@ -2763,7 +2763,7 @@ static void Task_RunUnionRoom(u8 taskId) if (PrintOnTextbox(&uroom->textState, gStringVar4)) { uroom->state = UR_STATE_WAIT_FINISH_READING_CARD; - sub_800ADF8(); + SetLinkStandbyCallback(); uroom->partnerYesNoResponse = 0; uroom->recvActivityRequest[0] = 0; } @@ -2846,7 +2846,7 @@ static void Task_RunUnionRoom(u8 taskId) uroom->state = UR_STATE_START_ACTIVITY_FREE_UROOM; break; case UR_STATE_PLAYER_CONTACTED_YOU: - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); sub_800EF7C(); uroom->state = UR_STATE_RECV_CONTACT_DATA; uroom->recvActivityRequest[0] = 0; @@ -2940,7 +2940,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_DECLINE_ACTIVITY_REQUEST: - sub_800AC34(); + SetCloseLinkCallback(); uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; break; case UR_STATE_CANCEL_REQUEST_PRINT_MSG: @@ -2962,7 +2962,7 @@ static void Task_RunUnionRoom(u8 taskId) ScheduleFieldMessageWithFollowupState(UR_STATE_START_ACTIVITY_LINK, gStringVar4); break; case UR_STATE_START_ACTIVITY_LINK: - sub_800ADF8(); + SetLinkStandbyCallback(); uroom->state = UR_STATE_START_ACTIVITY_WAIT_FOR_LINK; break; case UR_STATE_START_ACTIVITY_WAIT_FOR_LINK: @@ -3231,7 +3231,7 @@ static bool32 UnionRoom_HandleContactFromOtherPlayer(struct WirelessLink_URoom * else if (id == 2) // No activity { uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; - sub_800AC34(); + SetCloseLinkCallback(); return FALSE; } } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 4b2aa0bb1..b9ddd74a7 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -174,7 +174,7 @@ void CB2_UnionRoomBattle(void) } else { - sub_800AC34(); + SetCloseLinkCallback(); if (gBlockRecvBuffer[GetMultiplayerId()][0] == (ACTIVITY_DECLINE | IN_UNION_ROOM)) { gMain.state = 6; @@ -190,7 +190,7 @@ void CB2_UnionRoomBattle(void) case 50: if (!UpdatePaletteFade()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gMain.state++; } break; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index fefb285a8..fd2a95791 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -1267,7 +1267,7 @@ static void Chat_Exit(void) case 5: if (IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } @@ -1302,7 +1302,7 @@ static void Chat_Drop(void) case 1: if (!IsDisplaySubtaskActive(0) && IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } @@ -1348,7 +1348,7 @@ static void Chat_Disbanded(void) case 2: if (IsDisplaySubtaskActive(0) != TRUE && IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } @@ -1646,7 +1646,7 @@ static void AppendTextToMessage(void) charsStr = sUnionRoomKeyboardText[sChat->currentPage][sChat->currentRow]; for (i = 0; i < sChat->currentCol; i++) { - if (*charsStr == CHAR_SPECIAL_F9) + if (*charsStr == CHAR_EXTRA_SYMBOL) charsStr++; charsStr++; } @@ -1670,7 +1670,7 @@ static void AppendTextToMessage(void) str = GetEndOfMessagePtr(); while (--strLength != -1 && sChat->bufferCursorPos < MAX_MESSAGE_LENGTH) { - if (*charsStr == CHAR_SPECIAL_F9) + if (*charsStr == CHAR_EXTRA_SYMBOL) { *str = *charsStr; charsStr++; @@ -1705,7 +1705,7 @@ static void SwitchCaseOfLastMessageCharacter(void) sChat->lastBufferCursorPos = sChat->bufferCursorPos - 1; str = GetLastCharOfMessagePtr(); - if (*str != CHAR_SPECIAL_F9) + if (*str != CHAR_EXTRA_SYMBOL) { character = sCaseToggleTable[*str]; if (character) @@ -1763,7 +1763,7 @@ static u8 *GetLastCharOfMessagePtr(void) while (*currChar != EOS) { lastChar = currChar; - if (*currChar == CHAR_SPECIAL_F9) + if (*currChar == CHAR_EXTRA_SYMBOL) currChar++; currChar++; } @@ -1784,7 +1784,7 @@ static u16 GetNumOverflowCharsInMessage(void) strLength -= 10; for (i = 0; i < strLength; i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; @@ -1925,7 +1925,7 @@ static u8 *GetLimitedMessageStartPtr(void) u8 *str = sChat->messageEntryBuffer; for (i = 0; i < numChars; i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) *str++; str++; @@ -1942,7 +1942,7 @@ static u16 GetLimitedMessageStartPos(void) u8 *str = sChat->messageEntryBuffer; for (count = 0, i = 0; i < numChars; count++, i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index a0b1281a4..2ff8c6507 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -57,19 +57,19 @@ u16 Font6Func(struct TextPrinter *textPrinter) char_ = *textPrinter->printerTemplate.currentChar++; switch (char_) { - case 1: + case EXT_CTRL_CODE_COLOR: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 2: + case EXT_CTRL_CODE_HIGHLIGHT: textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 3: + case EXT_CTRL_CODE_SHADOW: textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.bgColor = *++textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.shadowColor = *++textPrinter->printerTemplate.currentChar; @@ -77,43 +77,43 @@ u16 Font6Func(struct TextPrinter *textPrinter) GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 5: + case EXT_CTRL_CODE_PALETTE: textPrinter->printerTemplate.currentChar++; return 2; - case 6: + case EXT_CTRL_CODE_SIZE: subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 7: + case EXT_CTRL_CODE_RESET_SIZE: return 2; - case 8: + case EXT_CTRL_CODE_PAUSE: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar++; textPrinter->state = 6; return 2; - case 9: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: textPrinter->state = 1; if (gTextFlags.autoScroll) { subStruct->autoScrollDelay = 0; } return 3; - case 10: + case EXT_CTRL_CODE_WAIT_SE: textPrinter->state = 5; return 3; - case 11: - case 16: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: textPrinter->printerTemplate.currentChar += 2; return 2; - case 12: + case EXT_CTRL_CODE_ESCAPE: char_ = *++textPrinter->printerTemplate.currentChar; break; - case 13: + case EXT_CTRL_CODE_SHIFT_TEXT: textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar++; return 2; - case 14: + case EXT_CTRL_CODE_SHIFT_DOWN: textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++; return 2; - case 15: + case EXT_CTRL_CODE_FILL_WINDOW: FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); return 2; } @@ -126,10 +126,10 @@ u16 Font6Func(struct TextPrinter *textPrinter) textPrinter->state = 3; TextPrinterInitDownArrowCounters(textPrinter); return 3; - case 0xF9: + case CHAR_EXTRA_SYMBOL: char_ = *textPrinter->printerTemplate.currentChar++| 0x100; break; - case 0xF8: + case CHAR_KEYPAD_ICON: textPrinter->printerTemplate.currentChar++; return 0; } diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 5079edb37..ebb237d54 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -24,143 +24,160 @@ #include "pokemon_summary_screen.h" #include "item_menu.h" -struct UsePokeblockSubStruct -{ - /*0x00*/ void (*field_0)(void); - /*0x04*/ void (*callback)(void); - /*0x08*/ struct Pokeblock *pokeblock; - /*0x0C*/ struct Pokemon *mon; - /*0x10*/ u8 stringBuffer[0x40]; - /*0x50*/ u8 field_50; - /*0x51*/ u8 field_51; - /*0x52*/ u8 field_52; - /*0x53*/ u8 field_53; - /*0x54*/ u8 field_54; - /*0x55*/ u8 field_55; - /*0x56*/ u8 field_56; - /*0x57*/ u8 field_57[5]; - /*0x5C*/ u8 field_5c[5]; - /*0x61*/ u8 field_61[5]; - /*0x66*/ s16 field_66[5]; - /*0x70*/ u8 field_70; - /*0x71*/ u8 field_71; - /*0x74*/ u8 (*unk74)(void); - /*0x78*/ u8 unk78; - /*0x79*/ u8 filler79[0x1]; - /*0x7A*/ u8 field_7A[0x22]; +/* + This file handles the screen where the player chooses + which pokemon to give a pokeblock to. The subsequent scene + of feeding the pokeblock to the pokemon is handled by + pokeblock_feed.c, and the rest of the pokeblock menu (and + other pokeblock-related functions) are in pokeblock.c +*/ + +enum { + WIN_NAME, + WIN_NATURE, + WIN_TEXT, + WIN_COUNT }; -struct Unk7FB8 +#define TAG_UP_DOWN 0 +#define TAG_CONDITION 1 + +// At any one time, the currently selected mon and its two adjacent neighbors can be loaded +// IDs to refer to one of these 3 are called "load id" in this file +#define NUM_SELECTIONS_LOADED 3 + +struct UsePokeblockSession +{ + void (*callback)(void); + void (*exitCallback)(void); + struct Pokeblock *pokeblock; + struct Pokemon *mon; + u8 stringBuffer[64]; + u8 mainState; + u8 unused1; + u8 timer; + u8 statId; + u8 numEnhancements; + u8 unused2; + bool8 monInTopHalf; + u8 conditionsBeforeBlock[FLAVOR_COUNT]; + u8 conditionsAfterBlock[FLAVOR_COUNT]; + u8 enhancements[FLAVOR_COUNT]; + s16 pokeblockStatBoosts[FLAVOR_COUNT]; + u8 numSelections; // num in party + 1 (for Cancel) + u8 curSelection; + bool8 (*loadNewSelection)(void); + u8 helperState; + u8 unused3; + u8 natureText[34]; +}; + +// This struct is identical to PokenavMonList, the struct used for managing lists of pokemon in the pokenav +// Given that this screen is essentially duplicated in the poknav, this struct was probably the same one with +// a more general name/purpose +// TODO: Once the pokenav conditions screens are documented, resolve the above +struct UsePokeblockMenuPokemon { - u8 unk0; - u8 unk1; - u16 unk2; + u8 boxId; // Because this screen is never used for the PC this is always set to TOTAL_BOXES_COUNT to refer to party + u8 monId; + u16 data; // never read }; -struct UsePokeblockStruct -{ - /*0x0000*/ u8 filler0[4]; - /*0x0000*/ u16 field_4[6][0x40]; - /*0x0304*/ u8 field_304[3][0x2000]; - /*0x6304*/ u8 filler_6304[0x1000]; - /*0x7304*/ u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; - /*0x7B06*/ u8 field_7B06[7]; - /*0x7B0E*/ s16 field_7B0E; - /*0x7B10*/ u8 field_7B10; - /*0x7B12*/ u16 field_7B12; - /*0x7B12*/ u16 field_7B14; - /*0x7B12*/ u8 *field_7B18; - /*0x7B1C*/ struct Sprite *field_7B1C[10]; - /*0x7B44*/ struct Sprite *field_7B44[2]; - /*0x7B4C*/ u8 field_7B4C; - /*0x7B4D*/ u8 field_7B4D[3][24]; - /*0x7B95*/ u8 field_7B95[3][64]; - /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; - /*0x7FB0*/ u8 unk7FB0[3]; - /*0x7FB3*/ s8 field_7FB3; - /*0x7FB4*/ s8 field_7FB4; - /*0x7FB5*/ s8 field_7FB5; - /*0x7FB6*/ s8 field_7FB6; - /*0x7FB8*/ struct Unk7FB8 field_7FB8[6]; - /*0x7FD0*/ struct UsePokeblockSubStruct info; +struct UsePokeblockMenu +{ + u32 unused; + u16 partyPalettes[PARTY_SIZE][0x40]; + u8 partySheets[NUM_SELECTIONS_LOADED][0x2000]; + u8 unusedBuffer[0x1000]; + u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; + u8 selectionIconSpriteIds[PARTY_SIZE + 1]; + s16 curMonXOffset; + u8 curMonSpriteId; + u16 curMonPalette; + u16 curMonSheet; + u8 *curMonTileStart; + struct Sprite *sparkles[MAX_CONDITION_SPARKLES]; + struct Sprite *condition[2]; + u8 toLoadSelection; + u8 locationStrings[NUM_SELECTIONS_LOADED][24]; // Gets an "in party" or "in box #" string that never gets printed + u8 monNameStrings[NUM_SELECTIONS_LOADED][64]; + struct ConditionGraph graph; + u8 numSparkles[NUM_SELECTIONS_LOADED]; + s8 curLoadId; + s8 nextLoadId; + s8 prevLoadId; + s8 toLoadId; + struct UsePokeblockMenuPokemon party[PARTY_SIZE]; + struct UsePokeblockSession info; }; -#define TAG_TILE_CONDITION_UP_DOWN 0 -#define TAG_PAL_CONDITION_UP_DOWN 0 -#define TAG_PAL_POKEBLOCK_CONDITION 1 - -extern void sub_81D21DC(u8); - -// this file's functions -void sub_816636C(void (*func)(void)); -void sub_8166380(void); -void sub_816631C(void); -void sub_81662C0(void); -void sub_8166564(void); -void sub_8166304(void); -void sub_81668F8(void); -void sub_8167420(void); -void sub_8167760(void); -u8 sub_81672E4(u8 arg0); -static bool8 sub_8168328(void); -bool8 sub_8167930(void); -void sub_8167608(u8 arg0); -void sub_8167BA0(u16 arg0, u8 copyToVramMode); -void sub_8166634(void); -static void sub_8167CA0(bool8); -void sub_8166BEC(void); -void sub_8166D44(void); -s8 sub_8166DE4(void); -bool8 IsSheenMaxed(void); -void sub_8166F50(void); -void sub_816681C(void); -void sub_8166F94(void); -u8 sub_81672A4(u8 a0); -void sub_8166A34(void); -void sub_8167104(void); -void sub_8167338(void); -void sub_81681F4(u8); -void sub_8166E24(void); -bool8 sub_8166EDC(void); -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2); -void Pokeblock_MenuWindowTextPrint(const u8 *message); -void sub_8167184(struct Pokeblock *, struct Pokemon *); -void sub_81673DC(struct Sprite *sprite); -void sub_81674BC(void); -void sub_816753C(s16, u8); -static u8 sub_8167EA4(void); -static u8 sub_8167FA4(void); -static u8 sub_8168048(void); -void sub_8168180(struct Sprite *sprite); -void sub_81681B4(struct Sprite *sprite); -void sub_8168168(struct Sprite *sprite); -void sub_8168374(struct Sprite *sprite); - -extern const u16 gUnknown_086231E8[]; -extern const u16 gUnknown_08623208[]; -extern const struct SpritePalette gSpritePalette_085DFDB8; -extern const struct SpriteTemplate gSpriteTemplate_085DFDA0; - -// ram variables -EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; -EWRAM_DATA void (*gUnknown_0203BC94)(void) = NULL; -EWRAM_DATA struct Pokeblock *gUnknown_0203BC98 = NULL; +static void SetUsePokeblockCallback(void (*func)(void)); +static void LoadUsePokeblockMenu(void); +static void CB2_UsePokeblockMenu(void); +static void CB2_ReturnToUsePokeblockMenu(void); +static void ShowUsePokeblockMenu(void); +static void CB2_ShowUsePokeblockMenuForResults(void); +static void ShowUsePokeblockMenuForResults(void); +static void LoadPartyInfo(void); +static void LoadAndCreateSelectionIcons(void); +static u8 GetSelectionIdFromPartyId(u8); +static bool8 LoadConditionTitle(void); +static bool8 LoadUsePokeblockMenuGfx(void); +static void UpdateMonPic(u8); +static void UpdateMonInfoText(u16, bool8); +static void UsePokeblockMenu(void); +static void UpdateSelection(bool8); +static void CloseUsePokeblockMenu(void); +static void AskUsePokeblock(void); +static s8 HandleAskUsePokeblockInput(void); +static bool8 IsSheenMaxed(void); +static void PrintWontEatAnymore(void); +static void FeedPokeblockToMon(void); +static void EraseMenuWindow(void); +static u8 GetPartyIdFromSelectionId(u8); +static void ShowPokeblockResults(void); +static void CalculateConditionEnhancements(void); +static void LoadAndCreateUpDownSprites(void); +static void CalculateNumAdditionalSparkles(u8); +static void PrintFirstEnhancement(void); +static bool8 TryPrintNextEnhancement(void); +static void BufferEnhancedStatText(u8 *, u8, s16); +static void PrintMenuWindowText(const u8 *); +static void CalculatePokeblockEffectiveness(struct Pokeblock *, struct Pokemon *); +static void SpriteCB_UpDown(struct Sprite *); +static void LoadInitialMonInfo(void); +static void LoadMonInfo(s16, u8); +static bool8 LoadNewSelection_CancelToMon(void); +static bool8 LoadNewSelection_MonToCancel(void); +static bool8 LoadNewSelection_MonToMon(void); +static void SpriteCB_SelectionIconPokeball(struct Sprite *); +static void SpriteCB_SelectionIconCancel(struct Sprite *); +static void SpriteCB_MonPic(struct Sprite *); +static void SpriteCB_Condition(struct Sprite *); + +extern const u16 gConditionGraphData_Pal[]; +extern const u16 gConditionText_Pal[]; + +// The below 3 are saved for returning to the screen after feeding a pokeblock to a mon +// so that the rest of the data can be freed +static EWRAM_DATA struct UsePokeblockSession *sInfo = NULL; +static EWRAM_DATA void (*sExitCallback)(void) = NULL; +static EWRAM_DATA struct Pokeblock *sPokeblock = NULL; EWRAM_DATA u8 gPokeblockMonId = 0; EWRAM_DATA s16 gPokeblockGain = 0; -EWRAM_DATA u8 *gUnknown_0203BCA0 = NULL; -EWRAM_DATA u8 *gUnknown_0203BCA4 = NULL; -EWRAM_DATA u8 *gUnknown_0203BCA8 = NULL; -EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; +static EWRAM_DATA u8 *sGraph_Tilemap = NULL; +static EWRAM_DATA u8 *sGraph_Gfx = NULL; +static EWRAM_DATA u8 *sMonFrame_TilemapPtr = NULL; +static EWRAM_DATA struct UsePokeblockMenu *sMenu = NULL; -// const rom data -// todo: make it static once the file is decompiled +static const u32 sMonFrame_Pal[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame_pal.bin"); +static const u32 sMonFrame_Gfx[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.4bpp"); +static const u32 sMonFrame_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.bin"); +static const u32 sGraphData_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/graph_data.bin"); -const u32 gUnknown_085DFA60[] = INCBIN_U32("graphics/interface/85DFA60.bin"); -const u32 gUnknown_085DFA80[] = INCBIN_U32("graphics/interface/85DFA80.4bpp"); -const u32 gUnknown_085DFB60[] = INCBIN_U32("graphics/interface/85DFB60.bin"); -const u32 gUnknown_085DFC0C[] = INCBIN_U32("graphics/interface/85DFC0C.bin"); - -const u32 gUnknown_085DFCB0[] = +// The condition/flavors aren't listed in their normal order in this file, they're listed as shown on the graph going counter-clockwise +// Normally they would go Cool/Spicy, Beauty/Dry, Cute/Sweet, Smart/Bitter, Tough/Sour (also graph order, but clockwise) +static const u32 sMonDataConditions[FLAVOR_COUNT] = { MON_DATA_COOL, MON_DATA_TOUGH, @@ -169,13 +186,13 @@ const u32 gUnknown_085DFCB0[] = MON_DATA_BEAUTY }; -const u8 gUnknown_085DFCC4[] = +static const u8 sFlavors[FLAVOR_COUNT] = { - 0, // Spicy/Cool - 4, // Dry/Beauty - 3, // Sweet/Cute - 2, // Bitter/Smart - 1 // Sour/Tough + FLAVOR_SPICY, + FLAVOR_SOUR, + FLAVOR_BITTER, + FLAVOR_SWEET, + FLAVOR_DRY }; static const u8 sNatureTextColors[] = @@ -185,7 +202,7 @@ static const u8 sNatureTextColors[] = TEXT_COLOR_WHITE }; -const struct BgTemplate gUnknown_085DFCCC[4] = +static const struct BgTemplate sBgTemplates[4] = { { .bg = 0, @@ -225,50 +242,50 @@ const struct BgTemplate gUnknown_085DFCCC[4] = } }; -const struct WindowTemplate gUnknown_085DFCDC[] = +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { - { + [WIN_NAME] = { .bg = 0, - .tilemapLeft = 0xD, + .tilemapLeft = 13, .tilemapTop = 1, - .width = 0xD, + .width = 13, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_NATURE] = { .bg = 0, .tilemapLeft = 0, - .tilemapTop = 0xE, - .width = 0xB, + .tilemapTop = 14, + .width = 11, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x35 }, - { + [WIN_TEXT] = { .bg = 0, .tilemapLeft = 1, - .tilemapTop = 0x11, - .width = 0x1C, + .tilemapTop = 17, + .width = 28, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x4B }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate sUsePokeblockYesNoWinTemplate = +static const struct WindowTemplate sUsePokeblockYesNoWinTemplate = { .bg = 0, - .tilemapLeft = 0x18, - .tilemapTop = 0xB, + .tilemapLeft = 24, + .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x83 }; -const u8 *const sContestStatNames[] = +static const u8 *const sContestStatNames[] = { gText_Coolness, gText_Toughness, @@ -277,26 +294,26 @@ const u8 *const sContestStatNames[] = gText_Beauty3 }; -const struct SpriteSheet gSpriteSheet_ConditionUpDown = +static const struct SpriteSheet sSpriteSheet_UpDown = { - gUsePokeblockUpDown_Gfx, 0x200, TAG_TILE_CONDITION_UP_DOWN + gUsePokeblockUpDown_Gfx, 0x200, TAG_UP_DOWN }; -const struct SpritePalette gSpritePalette_ConditionUpDown = +static const struct SpritePalette sSpritePalette_UpDown = { - gUsePokeblockUpDown_Pal, TAG_PAL_CONDITION_UP_DOWN + gUsePokeblockUpDown_Pal, TAG_UP_DOWN }; -const s16 gUnknown_085DFD28[][2] = +static const s16 sUpDownCoordsOnGraph[FLAVOR_COUNT][2] = { - {0x9C, 0x24}, - {0x75, 0x3B}, - {0x75, 0x76}, - {0xC5, 0x76}, - {0xC5, 0x3B} + {156, 36}, + {117, 59}, + {117, 118}, + {197, 118}, + {197, 59} }; -const struct OamData gOamData_085DFD3C = +static const struct OamData sOam_UpDown = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -310,36 +327,36 @@ const struct OamData gOamData_085DFD3C = .paletteNum = 0, }; -const union AnimCmd gSpriteAnim_085DFD44[] = +static const union AnimCmd sAnim_Up[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD4C[] = +static const union AnimCmd sAnim_Down[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_085DFD54[] = +static const union AnimCmd *const sAnims_UpDown[] = { - gSpriteAnim_085DFD44, - gSpriteAnim_085DFD4C + sAnim_Up, + sAnim_Down }; -const struct SpriteTemplate gSpriteTemplate_085DFD5C = +static const struct SpriteTemplate sSpriteTemplate_UpDown = { - .tileTag = 0, - .paletteTag = 0, - .oam = &gOamData_085DFD3C, - .anims = gSpriteAnimTable_085DFD54, + .tileTag = TAG_UP_DOWN, + .paletteTag = TAG_UP_DOWN, + .oam = &sOam_UpDown, + .anims = sAnims_UpDown, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -const struct OamData gOamData_085DFD74 = +static const struct OamData sOam_Condition = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -353,327 +370,341 @@ const struct OamData gOamData_085DFD74 = .paletteNum = 0, }; -const union AnimCmd gSpriteAnim_085DFD7C[] = +static const union AnimCmd sAnim_Condition_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD84[] = +static const union AnimCmd sAnim_Condition_1[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD8C[] = +static const union AnimCmd sAnim_Condition_2[] = { ANIMCMD_FRAME(64, 5), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_085DFD94[] = +static const union AnimCmd *const sAnims_Condition[] = { - gSpriteAnim_085DFD7C, - gSpriteAnim_085DFD84, - gSpriteAnim_085DFD8C + sAnim_Condition_0, + sAnim_Condition_1, + sAnim_Condition_2 }; -const struct SpriteTemplate gSpriteTemplate_085DFDA0 = +static const struct SpriteTemplate sSpriteTemplate_Condition = { - .tileTag = 1, - .paletteTag = 1, - .oam = &gOamData_085DFD74, - .anims = gSpriteAnimTable_085DFD94, + .tileTag = TAG_CONDITION, + .paletteTag = TAG_CONDITION, + .oam = &sOam_Condition, + .anims = sAnims_Condition, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8168374, + .callback = SpriteCB_Condition, }; -const struct SpritePalette gSpritePalette_085DFDB8 = +static const struct SpritePalette sSpritePalette_Condition = { - gUsePokeblockCondition_Pal, TAG_PAL_POKEBLOCK_CONDITION + gUsePokeblockCondition_Pal, TAG_CONDITION }; -// code +// When first opening the selection screen void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)) { - gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); - gUnknown_0203BC90 = &gUnknown_0203BCAC->info; - gUnknown_0203BC90->pokeblock = pokeblock; - gUnknown_0203BC90->callback = callback; - sub_816636C(sub_8166380); - SetMainCallback2(sub_816631C); + sMenu = AllocZeroed(sizeof(*sMenu)); + sInfo = &sMenu->info; + sInfo->pokeblock = pokeblock; + sInfo->exitCallback = callback; + SetUsePokeblockCallback(LoadUsePokeblockMenu); + SetMainCallback2(CB2_UsePokeblockMenu); } -void CB2_ReturnAndChooseMonToGivePokeblock(void) -{ - gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); - gUnknown_0203BC90 = &gUnknown_0203BCAC->info; - gUnknown_0203BC90->pokeblock = gUnknown_0203BC98; - gUnknown_0203BC90->callback = gUnknown_0203BC94; - gPokeblockMonId = sub_81672E4(gPokeblockMonId); - gUnknown_0203BC90->field_56 = gPokeblockMonId < 4 ? 0 : 1; - sub_816636C(sub_8166380); - SetMainCallback2(sub_81662C0); +// When returning to the selection screen after feeding a pokeblock to a mon +static void CB2_ReturnAndChooseMonToGivePokeblock(void) +{ + sMenu = AllocZeroed(sizeof(*sMenu)); + sInfo = &sMenu->info; + sInfo->pokeblock = sPokeblock; + sInfo->exitCallback = sExitCallback; + gPokeblockMonId = GetSelectionIdFromPartyId(gPokeblockMonId); + sInfo->monInTopHalf = (gPokeblockMonId <= PARTY_SIZE / 2) ? FALSE : TRUE; + SetUsePokeblockCallback(LoadUsePokeblockMenu); + SetMainCallback2(CB2_ReturnToUsePokeblockMenu); } -void sub_81662C0(void) +static void CB2_ReturnToUsePokeblockMenu(void) { - gUnknown_0203BC90->field_0(); + sInfo->callback(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - if (gUnknown_0203BC90->field_0 == sub_8166564) + if (sInfo->callback == ShowUsePokeblockMenu) { - gUnknown_0203BC90->field_50 = 0; - SetMainCallback2(sub_8166304); + sInfo->mainState = 0; + SetMainCallback2(CB2_ShowUsePokeblockMenuForResults); } } -void sub_8166304(void) +static void CB2_ShowUsePokeblockMenuForResults(void) { - sub_81668F8(); + ShowUsePokeblockMenuForResults(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); } -void sub_816631C(void) +static void CB2_UsePokeblockMenu(void) { - gUnknown_0203BC90->field_0(); + sInfo->callback(); AnimateSprites(); BuildOamBuffer(); RunTextPrinters(); UpdatePaletteFade(); } -void sub_8166340(void) +static void VBlankCB_UsePokeblockMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_81D2108(&gUnknown_0203BCAC->field_7C58); + sub_81D2108(&sMenu->graph); ScanlineEffect_InitHBlankDmaTransfer(); } -void sub_816636C(void (*func)(void)) +static void SetUsePokeblockCallback(void (*func)(void)) { - gUnknown_0203BC90->field_0 = func; - gUnknown_0203BC90->field_50 = 0; + sInfo->callback = func; + sInfo->mainState = 0; } -void sub_8166380(void) +static void LoadUsePokeblockMenu(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gUnknown_0203BCAC->field_7B10 = 0xFF; - sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sMenu->curMonSpriteId = 0xFF; + sub_81D1ED4(&sMenu->graph); + sInfo->mainState++; break; case 1: ResetSpriteData(); FreeAllSpritePalettes(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 2: SetVBlankCallback(NULL); CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 3: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); - InitWindows(gUnknown_085DFCDC); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x97, 0xE0); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 4: - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 5: - if (!sub_8168328()) - gUnknown_0203BC90->field_50++; + if (!LoadConditionTitle()) + sInfo->mainState++; break; case 6: gKeyRepeatStartDelay = 20; - sub_8167420(); - gUnknown_0203BC90->field_50++; + LoadPartyInfo(); + sInfo->mainState++; break; case 7: - if (!sub_8167930()) - gUnknown_0203BC90->field_50++; + if (!LoadUsePokeblockMenuGfx()) + sInfo->mainState++; break; case 8: - sub_8167608(0); - sub_8167760(); - gUnknown_0203BC90->field_50++; + UpdateMonPic(0); + LoadAndCreateSelectionIcons(); + sInfo->mainState++; break; case 9: - if (!sub_81D312C(&gUnknown_0203BCAC->field_7B0E)) - gUnknown_0203BC90->field_50++; + if (!MoveConditionMonOnscreen(&sMenu->curMonXOffset)) + sInfo->mainState++; break; case 10: - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - sub_81D20AC(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sub_81D2754(sMenu->graph.unk0[0], sMenu->graph.unk14[0]); + sub_81D20AC(&sMenu->graph); + sInfo->mainState++; break; case 12: - if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) + if (!sub_81D20BC(&sMenu->graph)) { - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - gUnknown_0203BC90->field_50++; + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[0], sMenu->graph.unk14[0]); + sInfo->mainState++; } break; case 13: - sub_81D2230(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sub_81D2230(&sMenu->graph); + sInfo->mainState++; break; case 14: - PutWindowTilemap(0); - PutWindowTilemap(1); - sub_8167BA0(0, 1); - gUnknown_0203BC90->field_50++; + PutWindowTilemap(WIN_NAME); + PutWindowTilemap(WIN_NATURE); + UpdateMonInfoText(0, TRUE); + sInfo->mainState++; break; case 15: - sub_816636C(sub_8166564); + SetUsePokeblockCallback(ShowUsePokeblockMenu); break; } } -void sub_8166564(void) +static void ShowUsePokeblockMenu(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - SetVBlankCallback(sub_8166340); + SetVBlankCallback(VBlankCB_UsePokeblockMenu); ShowBg(0); ShowBg(1); ShowBg(3); ShowBg(2); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) { - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } - sub_816636C(sub_8166634); + SetUsePokeblockCallback(UsePokeblockMenu); } break; } } -void sub_8166634(void) +enum { + STATE_HANDLE_INPUT, + STATE_UPDATE_SELECTION, + STATE_2, // unused state + STATE_CLOSE, + STATE_4, // unused state + STATE_CONFIRM_SELECTION, + STATE_HANDLE_CONFIRMATION, + STATE_WAIT_MSG, +}; + +static void UsePokeblockMenu(void) { - u8 var; + bool8 loading; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { - case 0: - if (gMain.heldKeys & DPAD_UP) + case STATE_HANDLE_INPUT: + if (JOY_HELD(DPAD_UP)) { PlaySE(SE_SELECT); - sub_8167CA0(TRUE); - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50 = 1; + UpdateSelection(TRUE); + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState = STATE_UPDATE_SELECTION; } - else if (gMain.heldKeys & DPAD_DOWN) + else if (JOY_HELD(DPAD_DOWN)) { PlaySE(SE_SELECT); - sub_8167CA0(FALSE); - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50 = 1; + UpdateSelection(FALSE); + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState = STATE_UPDATE_SELECTION; } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gUnknown_0203BC90->field_50 = 3; + sInfo->mainState = STATE_CLOSE; } - else if (gMain.newKeys & A_BUTTON) + else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - gUnknown_0203BC90->field_50 = 3; + + // If last item, selected Cancel. Otherwise selected mon + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + sInfo->mainState = STATE_CLOSE; else - gUnknown_0203BC90->field_50 = 5; + sInfo->mainState = STATE_CONFIRM_SELECTION; } break; - case 1: - var = gUnknown_0203BCAC->info.unk74(); - if (!var) - gUnknown_0203BC90->field_50 = var; + case STATE_UPDATE_SELECTION: + loading = sMenu->info.loadNewSelection(); + if (!loading) + sInfo->mainState = STATE_HANDLE_INPUT; break; - case 2: + case STATE_2: break; - case 3: - sub_816636C(sub_8166BEC); + case STATE_CLOSE: + SetUsePokeblockCallback(CloseUsePokeblockMenu); break; - case 4: + case STATE_4: break; - case 5: - sub_8166D44(); - gUnknown_0203BC90->field_50++; + case STATE_CONFIRM_SELECTION: + AskUsePokeblock(); + sInfo->mainState++; break; - case 6: - switch (sub_8166DE4()) + case STATE_HANDLE_CONFIRMATION: + switch (HandleAskUsePokeblockInput()) { - case 1: - case -1: - gUnknown_0203BC90->field_50 = 0; + case 1: // NO + case MENU_B_PRESSED: + sInfo->mainState = STATE_HANDLE_INPUT; break; - case 0: + case 0: // YES if (IsSheenMaxed()) { - sub_8166F50(); - gUnknown_0203BC90->field_50 = 7; + PrintWontEatAnymore(); + sInfo->mainState = STATE_WAIT_MSG; } else { - sub_816636C(sub_816681C); + SetUsePokeblockCallback(FeedPokeblockToMon); } break; } break; - case 7: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + case STATE_WAIT_MSG: + if (JOY_NEW(A_BUTTON | B_BUTTON)) { - sub_8166F94(); - gUnknown_0203BC90->field_50 = 0; + EraseMenuWindow(); + sInfo->mainState = STATE_HANDLE_INPUT; } break; } } -void sub_816681C(void) +static void FeedPokeblockToMon(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); - gUnknown_0203BC94 = gUnknown_0203BC90->callback; - gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; + gPokeblockMonId = GetPartyIdFromSelectionId(sMenu->info.curSelection); + sExitCallback = sInfo->exitCallback; + sPokeblock = sInfo->pokeblock; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) { SetVBlankCallback(NULL); - FREE_AND_SET_NULL(gUnknown_0203BCA0); - FREE_AND_SET_NULL(gUnknown_0203BCA4); - FREE_AND_SET_NULL(gUnknown_0203BCA8); - FREE_AND_SET_NULL(gUnknown_0203BCAC); + FREE_AND_SET_NULL(sGraph_Tilemap); + FREE_AND_SET_NULL(sGraph_Gfx); + FREE_AND_SET_NULL(sMonFrame_TilemapPtr); + FREE_AND_SET_NULL(sMenu); FreeAllWindowBuffers(); gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; CB2_PreparePokeblockFeedScene(); @@ -682,184 +713,184 @@ void sub_816681C(void) } } -void sub_81668F8(void) +static void ShowUsePokeblockMenuForResults(void) { - u16 var; + bool8 loading; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) + if (sMenu->info.curSelection != gPokeblockMonId) { - sub_8167CA0(gUnknown_0203BC90->field_56); - gUnknown_0203BC90->field_50++; + UpdateSelection(sInfo->monInTopHalf); + sInfo->mainState++; } else { - gUnknown_0203BC90->field_50 = 3; + sInfo->mainState = 3; } break; case 1: - var = gUnknown_0203BCAC->info.unk74(); - if (!var) - gUnknown_0203BC90->field_50 = var; + loading = sMenu->info.loadNewSelection(); + if (!loading) + sInfo->mainState = 0; break; case 2: break; case 3: BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 4: ShowBg(0); ShowBg(1); ShowBg(3); ShowBg(2); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 5: - SetVBlankCallback(sub_8166340); + SetVBlankCallback(VBlankCB_UsePokeblockMenu); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 6: if (!gPaletteFade.active) { - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - sub_816636C(sub_8166A34); - SetMainCallback2(sub_816631C); + ResetConditionSparkleSprites(sMenu->sparkles); + SetUsePokeblockCallback(ShowPokeblockResults); + SetMainCallback2(CB2_UsePokeblockMenu); } break; } } -void sub_8166A34(void) +static void ShowPokeblockResults(void) { u8 var; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gUnknown_0203BC90->mon = gPlayerParty; - gUnknown_0203BC90->mon += gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1; - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50++; + sInfo->mon = gPlayerParty; + sInfo->mon += sMenu->party[sMenu->info.curSelection].monId; + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState++; break; case 1: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - gUnknown_0203BC90->field_50++; + if (JOY_NEW(A_BUTTON | B_BUTTON)) + sInfo->mainState++; break; case 2: - sub_8167104(); - sub_81D2754(gUnknown_0203BC90->field_5c, gUnknown_0203BCAC->field_7C58.unk14[3]); - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], gUnknown_0203BCAC->field_7C58.unk14[3]); - sub_8167338(); - gUnknown_0203BC90->field_50++; + CalculateConditionEnhancements(); + sub_81D2754(sInfo->conditionsAfterBlock, sMenu->graph.unk14[3]); + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[sMenu->curLoadId], sMenu->graph.unk14[3]); + LoadAndCreateUpDownSprites(); + sInfo->mainState++; break; case 3: - var = sub_81D2074(&gUnknown_0203BCAC->field_7C58); + var = TransitionConditionGraph(&sMenu->graph); if (!var) { - sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + CalculateNumAdditionalSparkles(GetPartyIdFromSelectionId(sMenu->info.curSelection)); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } - gUnknown_0203BC90->field_52 = 0; - gUnknown_0203BC90->field_50++; + sInfo->timer = 0; + sInfo->mainState++; } break; case 4: - if (++gUnknown_0203BC90->field_52 > 16) + if (++sInfo->timer > 16) { - sub_8166E24(); - gUnknown_0203BC90->field_50++; + PrintFirstEnhancement(); + sInfo->mainState++; } break; case 5: - if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8166EDC()) + if (JOY_NEW(A_BUTTON | B_BUTTON) && !TryPrintNextEnhancement()) { TryClearPokeblock((u8)gSpecialVar_ItemId); - sub_816636C(sub_8166BEC); + SetUsePokeblockCallback(CloseUsePokeblockMenu); } break; } } -void sub_8166BEC(void) +static void CloseUsePokeblockMenu(void) { - u8 i, var; + u8 i; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) - gUnknown_0203BC90->field_50 = 2; + sInfo->mainState = 2; break; case 2: gScanlineEffect.state = 3; ScanlineEffect_InitHBlankDmaTransfer(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 3: - SetMainCallback2(gUnknown_0203BC90->callback); - sub_81D354C(gUnknown_0203BCAC->field_7B1C); - for (i = 0; i < 7; i++) - DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]); + SetMainCallback2(sInfo->exitCallback); + FreeConditionSparkles(sMenu->sparkles); + for (i = 0; i < ARRAY_COUNT(sMenu->selectionIconSpriteIds); i++) + DestroySprite(&gSprites[sMenu->selectionIconSpriteIds[i]]); - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - FreeSpritePaletteByTag(0); - FreeSpritePaletteByTag(1); + FreeSpriteTilesByTag(TAG_UP_DOWN); + FreeSpriteTilesByTag(TAG_CONDITION); + FreeSpritePaletteByTag(TAG_UP_DOWN); + FreeSpritePaletteByTag(TAG_CONDITION); - for (i = 0; i < 2; i++) - DestroySprite(gUnknown_0203BCAC->field_7B44[i]); + for (i = 0; i < ARRAY_COUNT(sMenu->condition); i++) + DestroySprite(sMenu->condition[i]); - if (gUnknown_0203BCAC->field_7B10 != 0xFF) - DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]); + if (sMenu->curMonSpriteId != 0xFF) + DestroySprite(&gSprites[sMenu->curMonSpriteId]); SetVBlankCallback(NULL); - FREE_AND_SET_NULL(gUnknown_0203BCA0); - FREE_AND_SET_NULL(gUnknown_0203BCA4); - FREE_AND_SET_NULL(gUnknown_0203BCA8); - FREE_AND_SET_NULL(gUnknown_0203BCAC); + FREE_AND_SET_NULL(sGraph_Tilemap); + FREE_AND_SET_NULL(sGraph_Gfx); + FREE_AND_SET_NULL(sMonFrame_TilemapPtr); + FREE_AND_SET_NULL(sMenu); FreeAllWindowBuffers(); break; } } -void sub_8166D44(void) +static void AskUsePokeblock(void) { u8 stringBuffer[0x40]; - GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_71)], MON_DATA_NICKNAME, stringBuffer); + GetMonData(&gPlayerParty[GetPartyIdFromSelectionId(sMenu->info.curSelection)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); StringCopy(gStringVar4, stringBuffer); - FillWindowPixelBuffer(2, 17); - DrawTextBorderOuter(2, 151, 14); - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(WIN_TEXT, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + AddTextPrinterParameterized(WIN_TEXT, 1, gStringVar4, 0, 1, 0, NULL); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); CreateYesNoMenu(&sUsePokeblockYesNoWinTemplate, 151, 14, 0); } -s8 sub_8166DE4(void) +static s8 HandleAskUsePokeblockInput(void) { s8 menuItem = Menu_ProcessInputNoWrapClearOnChoose(); switch (menuItem) { - case 0: + case 0: // YES break; case MENU_B_PRESSED: - case 1: + case 1: // NO PlaySE(SE_SELECT); rbox_fill_rectangle(2); ClearWindowTilemap(2); @@ -869,84 +900,84 @@ s8 sub_8166DE4(void) return menuItem; } -void sub_8166E24(void) +static void PrintFirstEnhancement(void) { - DrawTextBorderOuter(2, 151, 14); - FillWindowPixelBuffer(2, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + FillWindowPixelBuffer(WIN_TEXT, 17); - for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5; gUnknown_0203BC90->field_53++) + for (sInfo->statId = 0; sInfo->statId < FLAVOR_COUNT; sInfo->statId++) { - if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + if (sInfo->enhancements[sInfo->statId] != 0) break; } - if (gUnknown_0203BC90->field_53 < 5) - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + if (sInfo->statId < FLAVOR_COUNT) + BufferEnhancedStatText(gStringVar4, sInfo->statId, sInfo->enhancements[sInfo->statId]); else - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); + BufferEnhancedStatText(gStringVar4, sInfo->statId, 0); - Pokeblock_MenuWindowTextPrint(gStringVar4); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + PrintMenuWindowText(gStringVar4); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -bool8 sub_8166EDC(void) +static bool8 TryPrintNextEnhancement(void) { - FillWindowPixelBuffer(2, 17); + FillWindowPixelBuffer(WIN_TEXT, 17); while (1) { - gUnknown_0203BC90->field_53++; - if (gUnknown_0203BC90->field_53 < 5) + sInfo->statId++; + if (sInfo->statId < FLAVOR_COUNT) { - if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + if (sInfo->enhancements[sInfo->statId] != 0) break; } else { - gUnknown_0203BC90->field_53 = 5; + sInfo->statId = FLAVOR_COUNT; return FALSE; } } - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); - Pokeblock_MenuWindowTextPrint(gStringVar4); - CopyWindowToVram(2, 2); + BufferEnhancedStatText(gStringVar4, sInfo->statId, sInfo->enhancements[sInfo->statId]); + PrintMenuWindowText(gStringVar4); + CopyWindowToVram(WIN_TEXT, 2); return TRUE; } -void sub_8166F50(void) +static void PrintWontEatAnymore(void) { - FillWindowPixelBuffer(2, 17); - DrawTextBorderOuter(2, 151, 14); - AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(WIN_TEXT, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + AddTextPrinterParameterized(WIN_TEXT, 1, gText_WontEatAnymore, 0, 1, 0, NULL); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -void sub_8166F94(void) +static void EraseMenuWindow(void) { - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - CopyWindowToVram(2, 3); + rbox_fill_rectangle(WIN_TEXT); + ClearWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -void Pokeblock_MenuWindowTextPrint(const u8 *message) +static void PrintMenuWindowText(const u8 *message) { - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(WIN_TEXT, 1, gStringVar4, 0, 1, 0, NULL); } -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) +static void BufferEnhancedStatText(u8 *dest, u8 statId, s16 enhancement) { - switch (a2) + switch (enhancement) { - case 1 ... 32767: - a2 = 0; + case 1 ... 32767: // if > 0 + enhancement = 0; // fallthrough - case -32768 ... -1: - if (a2) - dest[(u16)a2] += 0; // something you can't imagine + case -32768 ... -1: // if < 0 + if (enhancement) + dest[(u16)enhancement] += 0; // something you can't imagine StringCopy(dest, sContestStatNames[statId]); StringAppend(dest, gText_WasEnhanced); break; @@ -956,15 +987,15 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) } } -void Pokeblock_GetMonContestStats(struct Pokemon *mon, u8 *data) +static void GetMonConditions(struct Pokemon *mon, u8 *data) { u16 i; - for (i = 0; i < 5; i++) - data[i] = GetMonData(mon, gUnknown_085DFCB0[i]); + for (i = 0; i < FLAVOR_COUNT; i++) + data[i] = GetMonData(mon, sMonDataConditions[i]); } -void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void AddPokeblockToConditions(struct Pokeblock *pokeblock, struct Pokemon *mon) { u16 i; s16 cstat; @@ -972,17 +1003,17 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) if (GetMonData(mon, MON_DATA_SHEEN) != 255) { - sub_8167184(pokeblock, mon); - for (i = 0; i < 5; i++) + CalculatePokeblockEffectiveness(pokeblock, mon); + for (i = 0; i < FLAVOR_COUNT; i++) { - data = GetMonData(mon, gUnknown_085DFCB0[i]); - cstat = data + gUnknown_0203BC90->field_66[i]; + data = GetMonData(mon, sMonDataConditions[i]); + cstat = data + sInfo->pokeblockStatBoosts[i]; if (cstat < 0) cstat = 0; if (cstat > 255) cstat = 255; data = cstat; - SetMonData(mon, gUnknown_085DFCB0[i], &data); + SetMonData(mon, sMonDataConditions[i], &data); } cstat = (u8)(GetMonData(mon, MON_DATA_SHEEN)) + pokeblock->feel; @@ -994,28 +1025,28 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) } } -void sub_8167104(void) +static void CalculateConditionEnhancements(void) { u16 i; struct Pokemon *mon = gPlayerParty; - mon += gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->info.field_71 * 4 + 9]; + mon += sMenu->party[sMenu->info.curSelection].monId; - Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_57); - sub_8167054(gUnknown_0203BC90->pokeblock, mon); - Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_5c); - for (i = 0; i < 5; i++) - gUnknown_0203BC90->field_61[i] = gUnknown_0203BC90->field_5c[i] - gUnknown_0203BC90->field_57[i]; + GetMonConditions(mon, sInfo->conditionsBeforeBlock); + AddPokeblockToConditions(sInfo->pokeblock, mon); + GetMonConditions(mon, sInfo->conditionsAfterBlock); + for (i = 0; i < FLAVOR_COUNT; i++) + sInfo->enhancements[i] = sInfo->conditionsAfterBlock[i] - sInfo->conditionsBeforeBlock[i]; } -void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void CalculatePokeblockEffectiveness(struct Pokeblock *pokeblock, struct Pokemon *mon) { s8 i, direction, taste; - gUnknown_0203BC90->field_66[0] = pokeblock->spicy; - gUnknown_0203BC90->field_66[1] = pokeblock->sour; - gUnknown_0203BC90->field_66[2] = pokeblock->bitter; - gUnknown_0203BC90->field_66[3] = pokeblock->sweet; - gUnknown_0203BC90->field_66[4] = pokeblock->dry; + sInfo->pokeblockStatBoosts[0] = pokeblock->spicy; + sInfo->pokeblockStatBoosts[1] = pokeblock->sour; + sInfo->pokeblockStatBoosts[2] = pokeblock->bitter; + sInfo->pokeblockStatBoosts[3] = pokeblock->sweet; + sInfo->pokeblockStatBoosts[4] = pokeblock->dry; if (gPokeblockGain > 0) direction = 1; @@ -1024,24 +1055,24 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) else return; - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { - s16 amount = gUnknown_0203BC90->field_66[i]; + s16 amount = sInfo->pokeblockStatBoosts[i]; s8 boost = amount / 10; if (amount % 10 >= 5) // round to the nearest boost++; - taste = GetMonFlavorRelation(mon, gUnknown_085DFCC4[i]); + taste = GetMonFlavorRelation(mon, sFlavors[i]); if (taste == direction) - gUnknown_0203BC90->field_66[i] += boost * taste; + sInfo->pokeblockStatBoosts[i] += boost * taste; } } -bool8 IsSheenMaxed(void) +static bool8 IsSheenMaxed(void) { - if (GetBoxOrPartyMonData(gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk0, - gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1, + if (GetBoxOrPartyMonData(sMenu->party[sMenu->info.curSelection].boxId, + sMenu->party[sMenu->info.curSelection].monId, MON_DATA_SHEEN, NULL) == 255) return TRUE; @@ -1049,7 +1080,7 @@ bool8 IsSheenMaxed(void) return FALSE; } -u8 sub_81672A4(u8 a0) +static u8 GetPartyIdFromSelectionId(u8 selectionId) { u8 i; @@ -1057,58 +1088,58 @@ u8 sub_81672A4(u8 a0) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - if (a0 == 0) + if (selectionId == 0) return i; - a0--; + selectionId--; } } return 0; } -u8 sub_81672E4(u8 partyCount) +// Eggs are not viewable on the condition screen, so count how many are skipped over to reach the party id +static u8 GetSelectionIdFromPartyId(u8 partyId) { u8 i, numEggs; - - for (i = 0, numEggs = 0; i < partyCount; i++) + for (i = 0, numEggs = 0; i < partyId; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) numEggs++; } - return partyCount - numEggs; + return partyId - numEggs; } -u8 sub_8167324(u8 a0) +// Unused +static u8 GetPartyIdFromSelectionId_(u8 selectionId) { - return sub_81672A4(a0); + return GetPartyIdFromSelectionId(selectionId); } -void sub_8167338(void) +static void LoadAndCreateUpDownSprites(void) { u16 i, spriteId; - LoadSpriteSheet(&gSpriteSheet_ConditionUpDown); - LoadSpritePalette(&gSpritePalette_ConditionUpDown); - gUnknown_0203BC90->field_54 = 0; + LoadSpriteSheet(&sSpriteSheet_UpDown); + LoadSpritePalette(&sSpritePalette_UpDown); + sInfo->numEnhancements = 0; - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { - if (gUnknown_0203BC90->field_61[i] != 0) + if (sInfo->enhancements[i] != 0) { - spriteId = CreateSprite(&gSpriteTemplate_085DFD5C, gUnknown_085DFD28[i][0], gUnknown_085DFD28[i][1], 0); + spriteId = CreateSprite(&sSpriteTemplate_UpDown, sUpDownCoordsOnGraph[i][0], sUpDownCoordsOnGraph[i][1], 0); if (spriteId != MAX_SPRITES) { - if (gUnknown_0203BC90->field_61[i] != 0) - gSprites[spriteId].callback = sub_81673DC; - - gUnknown_0203BC90->field_54++; + if (sInfo->enhancements[i] != 0) // Always true here + gSprites[spriteId].callback = SpriteCB_UpDown; + sInfo->numEnhancements++; } } } } -void sub_81673DC(struct Sprite *sprite) +static void SpriteCB_UpDown(struct Sprite *sprite) { if (sprite->data[0] < 6) sprite->pos2.y -= 2; @@ -1118,11 +1149,11 @@ void sub_81673DC(struct Sprite *sprite) if (++sprite->data[0] > 60) { DestroySprite(sprite); - gUnknown_0203BC90->field_54--; + sInfo->numEnhancements--; } } -void sub_8167420(void) +static void LoadPartyInfo(void) { u16 i; u16 numMons; @@ -1131,91 +1162,91 @@ void sub_8167420(void) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - gUnknown_0203BCAC->field_7FB8[numMons].unk0 = 14; - gUnknown_0203BCAC->field_7FB8[numMons].unk1 = i; - gUnknown_0203BCAC->field_7FB8[numMons].unk2 = 0; + sMenu->party[numMons].boxId = TOTAL_BOXES_COUNT; + sMenu->party[numMons].monId = i; + sMenu->party[numMons].data = 0; numMons++; } } - gUnknown_0203BCAC->info.field_71 = 0; - gUnknown_0203BCAC->info.field_70 = numMons + 1; - sub_81674BC(); + sMenu->info.curSelection = 0; + sMenu->info.numSelections = numMons + 1; + LoadInitialMonInfo(); } -void sub_81674BC(void) +static void LoadInitialMonInfo(void) { - s16 var, var2; + s16 nextSelection, prevSelection; - sub_816753C(gUnknown_0203BCAC->info.field_71, 0); - gUnknown_0203BCAC->field_7FB3 = 0; - gUnknown_0203BCAC->field_7FB4 = 1; - gUnknown_0203BCAC->field_7FB5 = 2; + LoadMonInfo(sMenu->info.curSelection, 0); + sMenu->curLoadId = 0; + sMenu->nextLoadId = 1; + sMenu->prevLoadId = 2; - var = gUnknown_0203BCAC->info.field_71 + 1; - if (var >= gUnknown_0203BCAC->info.field_70) - var = 0; + nextSelection = sMenu->info.curSelection + 1; + if (nextSelection >= sMenu->info.numSelections) + nextSelection = 0; - var2 = gUnknown_0203BCAC->info.field_71 - 1; - if (var2 < 0) - var2 = gUnknown_0203BCAC->info.field_70 - 1; + prevSelection = sMenu->info.curSelection - 1; + if (prevSelection < 0) + prevSelection = sMenu->info.numSelections - 1; - sub_816753C(var, 1); - sub_816753C(var2, 2); + LoadMonInfo(nextSelection, 1); + LoadMonInfo(prevSelection, 2); } -void sub_816753C(s16 id1, u8 id2) +static void LoadMonInfo(s16 partyId, u8 loadId) { - u8 boxId = gUnknown_0203BCAC->field_7FB8[id1].unk0; - u8 monId = gUnknown_0203BCAC->field_7FB8[id1].unk1; - u8 r6 = gUnknown_0203BCAC->info.field_70; - bool8 r8 = FALSE; + u8 boxId = sMenu->party[partyId].boxId; + u8 monId = sMenu->party[partyId].monId; + u8 numSelections = sMenu->info.numSelections; + bool8 excludesCancel = FALSE; // whether or not numSelections excludes Cancel from the count - sub_81D2ED4(gUnknown_0203BCAC->field_7B4D[id2], gUnknown_0203BCAC->field_7B95[id2], boxId, monId, id1, r6, r8); - sub_81D2F78(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->unk7FB0, boxId, monId, id1, id2, r6, r8); - sub_81D3094(gUnknown_0203BCAC->field_304[id2], gUnknown_0203BCAC->field_4[id2], boxId, monId, id1, r6, r8); + GetConditionMenuMonNameAndLocString(sMenu->locationStrings[loadId], sMenu->monNameStrings[loadId], boxId, monId, partyId, numSelections, excludesCancel); + GetConditionMenuMonConditions(&sMenu->graph, sMenu->numSparkles, boxId, monId, partyId, loadId, numSelections, excludesCancel); + GetConditionMenuMonGfx(sMenu->partySheets[loadId], sMenu->partyPalettes[loadId], boxId, monId, partyId, numSelections, excludesCancel); } -void sub_8167608(u8 arg0) +static void UpdateMonPic(u8 loadId) { u8 spriteId; struct SpriteTemplate spriteTemplate; struct SpriteSheet spriteSheet; struct SpritePalette spritePal; - if (gUnknown_0203BCAC->field_7B10 == 0xFF) + if (sMenu->curMonSpriteId == 0xFF) { - sub_81D31D0(&spriteSheet, &spriteTemplate, &spritePal); - spriteSheet.data = gUnknown_0203BCAC->field_304[arg0]; - spritePal.data = gUnknown_0203BCAC->field_4[arg0]; - gUnknown_0203BCAC->field_7B12 = LoadSpritePalette(&spritePal); - gUnknown_0203BCAC->field_7B14 = LoadSpriteSheet(&spriteSheet); + LoadConditionMonPicTemplate(&spriteSheet, &spriteTemplate, &spritePal); + spriteSheet.data = sMenu->partySheets[loadId]; + spritePal.data = sMenu->partyPalettes[loadId]; + sMenu->curMonPalette = LoadSpritePalette(&spritePal); + sMenu->curMonSheet = LoadSpriteSheet(&spriteSheet); spriteId = CreateSprite(&spriteTemplate, 38, 104, 0); - gUnknown_0203BCAC->field_7B10 = spriteId; + sMenu->curMonSpriteId = spriteId; if (spriteId == MAX_SPRITES) { - FreeSpriteTilesByTag(100); - FreeSpritePaletteByTag(100); - gUnknown_0203BCAC->field_7B10 = 0xFF; + FreeSpriteTilesByTag(TAG_CONDITION_MON); + FreeSpritePaletteByTag(TAG_CONDITION_MON); + sMenu->curMonSpriteId = 0xFF; } else { - gUnknown_0203BCAC->field_7B10 = spriteId; - gSprites[gUnknown_0203BCAC->field_7B10].callback = sub_8168168; - gSprites[gUnknown_0203BCAC->field_7B10].pos2.y -= 34; - gUnknown_0203BCAC->field_7B18 = (void*)(OBJ_VRAM0 + (gUnknown_0203BCAC->field_7B14 * 32)); - gUnknown_0203BCAC->field_7B12 = (gUnknown_0203BCAC->field_7B12 * 16) + 0x100; + sMenu->curMonSpriteId = spriteId; + gSprites[sMenu->curMonSpriteId].callback = SpriteCB_MonPic; + gSprites[sMenu->curMonSpriteId].pos2.y -= 34; + sMenu->curMonTileStart = (void*)(OBJ_VRAM0 + (sMenu->curMonSheet * 32)); + sMenu->curMonPalette = (sMenu->curMonPalette * 16) + 0x100; } } else { - do {} while(0); // Surprised to see something like this? It's a very neat trick for generating the same assembly. It has no practical purpose, feel free to remove it. - DmaCopy16Defvars(3, gUnknown_0203BCAC->field_304[arg0], gUnknown_0203BCAC->field_7B18, 0x800); - LoadPalette(gUnknown_0203BCAC->field_4[arg0], gUnknown_0203BCAC->field_7B12, 32); + do {} while(0); // Only needed to match, feel free to remove. + DmaCopy16Defvars(3, sMenu->partySheets[loadId], sMenu->curMonTileStart, 0x800); + LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, 32); } } -void sub_8167760(void) +static void LoadAndCreateSelectionIcons(void) { u16 i, spriteId; struct SpriteSheet spriteSheets[4]; @@ -1224,62 +1255,65 @@ void sub_8167760(void) struct SpriteSheet spriteSheet2; struct SpritePalette spritePal2; - sub_81D321C(spriteSheets, &spriteTemplate, spritePals); + LoadConditionSelectionIcons(spriteSheets, &spriteTemplate, spritePals); LoadSpriteSheets(spriteSheets); LoadSpritePalettes(spritePals); - for (i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) + // Fill pokeball selection icons up to number in party + for (i = 0; i < sMenu->info.numSelections - 1; i++) { spriteId = CreateSprite(&spriteTemplate, 226, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].data[0] = i; - gSprites[spriteId].callback = sub_8168180; + gSprites[spriteId].callback = SpriteCB_SelectionIconPokeball; } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } } - spriteTemplate.tileTag = 103; - for (; i < 6; i++) + // Fill placeholder icons for remaining (empty) party slots + spriteTemplate.tileTag = TAG_CONDITION_BALL_PLACEHOLDER; + for (; i < PARTY_SIZE; i++) { spriteId = CreateSprite(&spriteTemplate, 230, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].oam.size = 0; } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } } - spriteTemplate.tileTag = 102; - spriteTemplate.callback = sub_81681B4; + // Add cancel selection icon at bottom + spriteTemplate.tileTag = TAG_CONDITION_CANCEL; + spriteTemplate.callback = SpriteCB_SelectionIconCancel; spriteId = CreateSprite(&spriteTemplate, 222, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16); gSprites[spriteId].oam.size = SPRITE_SIZE(32x16); } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } - sub_81D32B0(&spriteSheet2, &spritePal2); + LoadConditionSparkle(&spriteSheet2, &spritePal2); LoadSpriteSheet(&spriteSheet2); LoadSpritePalette(&spritePal2); } -bool8 sub_8167930(void) +static bool8 LoadUsePokeblockMenuGfx(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: ChangeBgX(0, 0, 0); @@ -1290,296 +1324,308 @@ bool8 sub_8167930(void) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 136 << 6, 0); - SetGpuReg(REG_OFFSET_DISPCNT, 28736); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); break; case 1: - gUnknown_0203BCA4 = Alloc(6656); - gUnknown_0203BCA0 = Alloc(1280); - gUnknown_0203BCA8 = Alloc(1280); + sGraph_Gfx = Alloc(6656); + sGraph_Tilemap = Alloc(1280); + sMonFrame_TilemapPtr = Alloc(1280); break; case 2: - LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + LZ77UnCompVram(sMonFrame_Tilemap, sMonFrame_TilemapPtr); break; case 3: - LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + LoadBgTiles(3, sMonFrame_Gfx, 224, 0); break; case 4: - LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + LoadBgTilemap(3, sMonFrame_TilemapPtr, 1280, 0); break; case 5: - LoadPalette(gUnknown_085DFA60, 208, 32); - gUnknown_0203BCAC->field_7B0E = 0xFFB0; + LoadPalette(sMonFrame_Pal, 208, 32); + sMenu->curMonXOffset = -80; break; case 6: - LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + LZ77UnCompVram(gUsePokeblockGraph_Gfx, sGraph_Gfx); break; case 7: - LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, sGraph_Tilemap); LoadPalette(gUsePokeblockGraph_Pal, 32, 32); break; case 8: - LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + LoadBgTiles(1, sGraph_Gfx, 6656, 160 << 2); break; case 9: - SetBgTilemapBuffer(1, gUnknown_0203BCA0); + SetBgTilemapBuffer(1, sGraph_Tilemap); CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); CopyBgTilemapBufferToVram(1); break; case 10: - LZ77UnCompVram(gUnknown_085DFC0C, gUnknown_0203BCAC->tilemapBuffer); + LZ77UnCompVram(sGraphData_Tilemap, sMenu->tilemapBuffer); break; case 11: - LoadBgTilemap(2, gUnknown_0203BCAC->tilemapBuffer, 1280, 0); - LoadPalette(gUnknown_086231E8, 48, 32); - LoadPalette(gUnknown_08623208, 240, 32); + LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0); + LoadPalette(gConditionGraphData_Pal, 48, 32); + LoadPalette(gConditionText_Pal, 240, 32); sub_81D21DC(2); break; default: - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } - gUnknown_0203BCAC->info.unk78++; + sMenu->info.helperState++; return TRUE; } -void sub_8167BA0(u16 arg0, u8 copyToVramMode) +static void UpdateMonInfoText(u16 loadId, bool8 firstPrint) { u8 partyIndex; u8 nature; u8 *str; - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + FillWindowPixelBuffer(WIN_NAME, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_NATURE, PIXEL_FILL(0)); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - AddTextPrinterParameterized(0, 1, gUnknown_0203BCAC->field_7B95[arg0], 0, 1, 0, NULL); - partyIndex = sub_81672A4(gUnknown_0203BCAC->info.field_71); + AddTextPrinterParameterized(WIN_NAME, 1, sMenu->monNameStrings[loadId], 0, 1, 0, NULL); + partyIndex = GetPartyIdFromSelectionId(sMenu->info.curSelection); nature = GetNature(&gPlayerParty[partyIndex]); - str = StringCopy(gUnknown_0203BCAC->info.field_7A, gText_NatureSlash); + str = StringCopy(sMenu->info.natureText, gText_NatureSlash); str = StringCopy(str, gNatureNamePointers[nature]); - AddTextPrinterParameterized3(1, 1, 2, 1, sNatureTextColors, 0, gUnknown_0203BCAC->info.field_7A); + AddTextPrinterParameterized3(WIN_NATURE, 1, 2, 1, sNatureTextColors, 0, sMenu->info.natureText); } - if (copyToVramMode) + if (firstPrint) { - CopyWindowToVram(0, 3); - CopyWindowToVram(1, 3); + CopyWindowToVram(WIN_NAME, 3); + CopyWindowToVram(WIN_NATURE, 3); } else { - CopyWindowToVram(0, 2); - CopyWindowToVram(1, 2); + CopyWindowToVram(WIN_NAME, 2); + CopyWindowToVram(WIN_NATURE, 2); } } -static void sub_8167CA0(bool8 arg0) +static void UpdateSelection(bool8 up) { - u16 var0; - bool32 r8, r4; + u16 newLoadId; + bool32 startedOnMon, endedOnMon; - if (arg0) - var0 = gUnknown_0203BCAC->field_7FB5; + if (up) + newLoadId = sMenu->prevLoadId; else - var0 = gUnknown_0203BCAC->field_7FB4; + newLoadId = sMenu->nextLoadId; - sub_81D1F84( - &gUnknown_0203BCAC->field_7C58, - gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], - gUnknown_0203BCAC->field_7C58.unk14[var0]); + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[sMenu->curLoadId], sMenu->graph.unk14[newLoadId]); + + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + startedOnMon = FALSE; // moving off of Cancel + else + startedOnMon = TRUE; - r8 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; - if (arg0) + if (up) { - gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB4; - gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB3; - gUnknown_0203BCAC->field_7FB3 = var0; - gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB5; - - gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 == 0) - ? gUnknown_0203BCAC->info.field_70 - 1 - : gUnknown_0203BCAC->info.field_71 - 1; - - gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 == 0) - ? gUnknown_0203BCAC->info.field_70 - 1 - : gUnknown_0203BCAC->info.field_71 - 1; + sMenu->prevLoadId = sMenu->nextLoadId; // temporarily store nextLoadId, prevLoadId no longer needed + sMenu->nextLoadId = sMenu->curLoadId; + sMenu->curLoadId = newLoadId; + sMenu->toLoadId = sMenu->prevLoadId; // next load will be the mon that's one up from new selection + + // Check for wrap to bottom of list + sMenu->info.curSelection = (sMenu->info.curSelection == 0) + ? sMenu->info.numSelections - 1 + : sMenu->info.curSelection - 1; + + sMenu->toLoadSelection = (sMenu->info.curSelection == 0) + ? sMenu->info.numSelections - 1 + : sMenu->info.curSelection - 1; } else { - gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB5; - gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB3; - gUnknown_0203BCAC->field_7FB3 = var0; - gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB4; - - gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) - ? gUnknown_0203BCAC->info.field_71 + 1 + sMenu->nextLoadId = sMenu->prevLoadId; // temporarily store prevLoadId, nextLoadId no longer needed + sMenu->prevLoadId = sMenu->curLoadId; + sMenu->curLoadId = newLoadId; + sMenu->toLoadId = sMenu->nextLoadId; // next load will be the mon that's one down from new selection + + // Check for wrap to top of list + sMenu->info.curSelection = (sMenu->info.curSelection < sMenu->info.numSelections - 1) + ? sMenu->info.curSelection + 1 : 0; - gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) - ? gUnknown_0203BCAC->info.field_71 + 1 + sMenu->toLoadSelection = (sMenu->info.curSelection < sMenu->info.numSelections - 1) + ? sMenu->info.curSelection + 1 : 0; } - r4 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; - sub_81D3520(gUnknown_0203BCAC->field_7B1C); + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + endedOnMon = FALSE; // moving onto Cancel + else + endedOnMon = TRUE; + + DestroyConditionSparkleSprites(sMenu->sparkles); - if (!r8) - gUnknown_0203BCAC->info.unk74 = sub_8167EA4; - else if (!r4) - gUnknown_0203BCAC->info.unk74 = sub_8167FA4; + if (!startedOnMon) + sMenu->info.loadNewSelection = LoadNewSelection_CancelToMon; + else if (!endedOnMon) + sMenu->info.loadNewSelection = LoadNewSelection_MonToCancel; else - gUnknown_0203BCAC->info.unk74 = sub_8168048; + sMenu->info.loadNewSelection = LoadNewSelection_MonToMon; } -static u8 sub_8167EA4(void) +static bool8 LoadNewSelection_CancelToMon(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - sub_8167608(gUnknown_0203BCAC->field_7FB3); - gUnknown_0203BCAC->info.unk78++; + UpdateMonPic(sMenu->curLoadId); + sMenu->info.helperState++; break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->curLoadId, FALSE); + sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + if (!TryUpdateConditionMonTransitionOn(&sMenu->graph, &sMenu->curMonXOffset)) { - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + // Load the new adjacent pokemon (not the one being shown) + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); + sMenu->info.helperState++; } break; case 3: - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } return TRUE; } -static u8 sub_8167FA4(void) +static bool8 LoadNewSelection_MonToCancel(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - if (!sub_81D31A4(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) - gUnknown_0203BCAC->info.unk78++; + if (!TryUpdateConditionMonTransitionOff(&sMenu->graph, &sMenu->curMonXOffset)) + sMenu->info.helperState++; break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->curLoadId, FALSE); + sMenu->info.helperState++; break; case 2: - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); + sMenu->info.helperState++; break; case 3: - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } return TRUE; } -static u8 sub_8168048(void) +static bool8 LoadNewSelection_MonToMon(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - sub_81D2074(&gUnknown_0203BCAC->field_7C58); - if (!sub_81D3150(&gUnknown_0203BCAC->field_7B0E)) + TransitionConditionGraph(&sMenu->graph); + if (!MoveConditionMonOffscreen(&sMenu->curMonXOffset)) { - sub_8167608(gUnknown_0203BCAC->field_7FB3); - gUnknown_0203BCAC->info.unk78++; + UpdateMonPic(sMenu->curLoadId); + sMenu->info.helperState++; } break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->curLoadId, FALSE); + sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + if (!TryUpdateConditionMonTransitionOn(&sMenu->graph, &sMenu->curMonXOffset)) { - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + // Load the new adjacent pokemon (not the one being shown) + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); + sMenu->info.helperState++; } break; case 3: - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } return TRUE; } -void sub_8168168(struct Sprite *sprite) +static void SpriteCB_MonPic(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_0203BCAC->field_7B0E + 38; + sprite->pos1.x = sMenu->curMonXOffset + 38; } -void sub_8168180(struct Sprite *sprite) +static void SpriteCB_SelectionIconPokeball(struct Sprite *sprite) { - if (sprite->data[0] == gUnknown_0203BCAC->info.field_71) + if (sprite->data[0] == sMenu->info.curSelection) StartSpriteAnim(sprite, 0); else StartSpriteAnim(sprite, 1); } -void sub_81681B4(struct Sprite *sprite) +static void SpriteCB_SelectionIconCancel(struct Sprite *sprite) { - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - sprite->oam.paletteNum = IndexOfSpritePaletteTag(101); + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_CONDITION_BALL); else - sprite->oam.paletteNum = IndexOfSpritePaletteTag(102); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_CONDITION_CANCEL); } -void sub_81681F4(u8 monIndex) +// Calculate the max id for sparkles/stars that appear around the pokemon on the condition screen +// All pokemon start with 1 sparkle (added by CreateConditionSparkleSprites), so the number here +1 +// is the total number of sparkles that appear +static void CalculateNumAdditionalSparkles(u8 monIndex) { u8 sheen = GetMonData(&gPlayerParty[monIndex], MON_DATA_SHEEN); - gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3] = (sheen != 255) - ? sheen / 29 - : 9; + sMenu->numSparkles[sMenu->curLoadId] = (sheen != 255) + ? sheen / (255 / (MAX_CONDITION_SPARKLES - 1) + 1) + : MAX_CONDITION_SPARKLES - 1; } -static void sub_8168248(void) +static void LoadConditionGfx(void) { struct CompressedSpriteSheet spriteSheet; struct SpritePalette spritePalette; - spritePalette = gSpritePalette_085DFDB8; + spritePalette = sSpritePalette_Condition; spriteSheet.data = gUsePokeblockCondition_Gfx; spriteSheet.size = 0x800; - spriteSheet.tag = 1; + spriteSheet.tag = TAG_CONDITION; LoadCompressedSpriteSheet(&spriteSheet); LoadSpritePalette(&spritePalette); } -static void sub_8168294(void) +static void CreateConditionSprite(void) { u16 i; s16 xDiff, xStart; int yStart = 17; int var = 8; - struct Sprite **sprites = gUnknown_0203BCAC->field_7B44; - const struct SpriteTemplate *template = &gSpriteTemplate_085DFDA0; + struct Sprite **sprites = sMenu->condition; + const struct SpriteTemplate *template = &sSpriteTemplate_Condition; for (i = 0, xDiff = 64, xStart = -96; i < 2; i++) { @@ -1595,24 +1641,25 @@ static void sub_8168294(void) } } -static bool8 sub_8168328(void) +static bool8 LoadConditionTitle(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - sub_8168248(); - gUnknown_0203BCAC->info.unk78++; + LoadConditionGfx(); + sMenu->info.helperState++; return TRUE; case 1: - sub_8168294(); - gUnknown_0203BCAC->info.unk78 = 0; + CreateConditionSprite(); + sMenu->info.helperState = 0; return FALSE; } return FALSE; } -void sub_8168374(struct Sprite *sprite) +// Literally the word "Condition", the title block that appears over the mon icon +static void SpriteCB_Condition(struct Sprite *sprite) { s16 prevX = sprite->pos1.x; diff --git a/src/wallclock.c b/src/wallclock.c index 00ab65817..aa2bd8019 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -660,7 +660,7 @@ static void LoadWallClockGraphics(void) InitWindows(gUnknown_085B21DC); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x250, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -780,7 +780,7 @@ static void WallClockMainCallback(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 1c4fd24fd..492a10101 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -185,13 +185,6 @@ static u8 ChooseWildMonIndex_WaterRock(void) return 4; } -enum -{ - OLD_ROD, - GOOD_ROD, - SUPER_ROD -}; - static u8 ChooseWildMonIndex_Fishing(u8 rod) { u8 wildMonIndex = 0; diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c index 8d959465f..4e85953fd 100644 --- a/tools/gbagfx/gfx.c +++ b/tools/gbagfx/gfx.c @@ -282,7 +282,7 @@ static void HflipTile(unsigned char * tile, int bitDepth) for (i = 0; i < 8; i++) { SWAP_NYBBLES(&tile[4 * i + 0], &tile[4 * i + 3]); - SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]);; + SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]); } break; case 8: diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 55335e382..5e246ff24 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -77,6 +77,10 @@ string generate_map_header_text(Json map_data, Json layouts_data, string version ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + text << map_data["name"].string_value() << ":\n" << "\t.4byte " << layout["name"].string_value() << "\n"; @@ -124,6 +128,10 @@ string generate_map_connections_text(Json map_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + text << map_data["name"].string_value() << "_MapConnectionsList:\n"; for (auto &connection : map_data["connections"].array_items()) { @@ -146,6 +154,10 @@ string generate_map_events_text(Json map_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + string objects_label, warps_label, coords_label, bgs_label; if (map_data["object_events"].array_items().size() > 0) { @@ -286,6 +298,8 @@ void process_map(string map_filepath, string layouts_filepath, string version) { string generate_groups_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (auto &key : groups_data["group_order"].array_items()) { string group = key.string_value(); text << group << "::\n"; @@ -325,6 +339,8 @@ string generate_connections_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (Json map_name : map_names) text << "\t.include \"data/maps/" << map_name.string_value() << "/connections.inc\"\n"; @@ -340,6 +356,8 @@ string generate_headers_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (string map_name : map_names) text << "\t.include \"data/maps/" << map_name << "/header.inc\"\n"; @@ -355,6 +373,8 @@ string generate_events_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (string map_name : map_names) text << "\t.include \"data/maps/" << map_name << "/events.inc\"\n"; @@ -370,6 +390,8 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { text << "#ifndef GUARD_CONSTANTS_MAP_GROUPS_H\n" << "#define GUARD_CONSTANTS_MAP_GROUPS_H\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n//\n\n"; + int group_num = 0; for (auto &group : groups_data["group_order"].array_items()) { @@ -428,6 +450,8 @@ void process_groups(string groups_filepath) { string generate_layout_headers_text(Json layouts_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; + for (auto &layout : layouts_data["layouts"].array_items()) { string border_label = layout["name"].string_value() + "_Border"; string blockdata_label = layout["name"].string_value() + "_Blockdata"; @@ -451,6 +475,8 @@ string generate_layout_headers_text(Json layouts_data) { string generate_layouts_table_text(Json layouts_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; + text << "\t.align 2\n" << layouts_data["layouts_table_label"].string_value() << "::\n"; @@ -466,6 +492,8 @@ string generate_layouts_constants_text(Json layouts_data) { text << "#ifndef GUARD_CONSTANTS_LAYOUTS_H\n" << "#define GUARD_CONSTANTS_LAYOUTS_H\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n//\n\n"; + int i = 0; for (auto &layout : layouts_data["layouts"].array_items()) text << "#define " << layout["id"].string_value() << " " << ++i << "\n"; |