Merge remote-tracking branch 'RHH_origin/upcoming' into RHH/pr/feature/Lures
# Conflicts: # src/pokemon.c
3
.gitignore
vendored
@ -30,7 +30,8 @@ build/
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
*.ddump
|
*.ddump
|
||||||
.idea/
|
.idea/
|
||||||
porymap.project.cfg
|
porymap.*.cfg
|
||||||
|
prefabs.json
|
||||||
.vscode/
|
.vscode/
|
||||||
*.a
|
*.a
|
||||||
.fuse_hidden*
|
.fuse_hidden*
|
||||||
|
@ -106,7 +106,7 @@ cd /mnt/c/Users/<user>/Desktop/decomps
|
|||||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
|
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
|
||||||
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
If this works, then proceed to [Installation](#installation).
|
If this works, then proceed to [Installation](#installation).
|
||||||
|
|
||||||
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
|
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
|
||||||
@ -216,7 +216,7 @@ Note that the directory **must exist** in Windows. If you want to store pokeemer
|
|||||||
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
|
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
|
||||||
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
||||||
|
|
||||||
## macOS
|
## macOS
|
||||||
@ -539,7 +539,7 @@ devkitARM is now installed.
|
|||||||
devkitARM is now installed.
|
devkitARM is now installed.
|
||||||
|
|
||||||
### Installing devkitARM on Arch Linux
|
### Installing devkitARM on Arch Linux
|
||||||
|
|
||||||
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
|
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
|
||||||
2. Install `gba-dev`: run the following command as root.
|
2. Install `gba-dev`: run the following command as root.
|
||||||
|
|
||||||
|
4
Makefile
@ -254,7 +254,7 @@ tidynonmodern:
|
|||||||
tidymodern:
|
tidymodern:
|
||||||
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
|
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
|
||||||
rm -rf $(MODERN_OBJ_DIR_NAME)
|
rm -rf $(MODERN_OBJ_DIR_NAME)
|
||||||
|
|
||||||
ifneq ($(MODERN),0)
|
ifneq ($(MODERN),0)
|
||||||
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
|
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
|
||||||
endif
|
endif
|
||||||
@ -412,7 +412,7 @@ LD_SCRIPT := ld_script.txt
|
|||||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||||
else
|
else
|
||||||
LD_SCRIPT := ld_script_modern.txt
|
LD_SCRIPT := ld_script_modern.txt
|
||||||
LD_SCRIPT_DEPS :=
|
LD_SCRIPT_DEPS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||||
|
@ -558,151 +558,151 @@
|
|||||||
.2byte \param1
|
.2byte \param1
|
||||||
.4byte \param2
|
.4byte \param2
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_ally_chosen_move
|
.macro get_ally_chosen_move
|
||||||
.byte 0x63
|
.byte 0x63
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_no_attacking_moves battler:req, param1:req
|
.macro if_has_no_attacking_moves battler:req, param1:req
|
||||||
.byte 0x64
|
.byte 0x64
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \param1
|
.4byte \param1
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_hazards_count battler:req, effect:req
|
.macro get_hazards_count battler:req, effect:req
|
||||||
.byte 0x65
|
.byte 0x65
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.2byte \effect
|
.2byte \effect
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_doesnt_hold_berry battler:req, ptr:req
|
.macro if_doesnt_hold_berry battler:req, ptr:req
|
||||||
.byte 0x66
|
.byte 0x66
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_share_type battler1:req, battler2:req, ptr:req
|
.macro if_share_type battler1:req, battler2:req, ptr:req
|
||||||
.byte 0x67
|
.byte 0x67
|
||||||
.byte \battler1
|
.byte \battler1
|
||||||
.byte \battler2
|
.byte \battler2
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_cant_use_last_resort battler:req, ptr:req
|
.macro if_cant_use_last_resort battler:req, ptr:req
|
||||||
.byte 0x68
|
.byte 0x68
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_move_with_split battler:req, split:req, ptr:req
|
.macro if_has_move_with_split battler:req, split:req, ptr:req
|
||||||
.byte 0x69
|
.byte 0x69
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.byte \split
|
.byte \split
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
|
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
|
||||||
.byte 0x6A
|
.byte 0x6A
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.byte \split
|
.byte \split
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
|
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
|
||||||
.byte 0x6B
|
.byte 0x6B
|
||||||
.byte \attacker
|
.byte \attacker
|
||||||
.byte \target
|
.byte \target
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_ai_can_go_down ptr:req
|
.macro if_ai_can_go_down ptr:req
|
||||||
.byte 0x6C
|
.byte 0x6C
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_move_with_type battler:req, type:req, ptr:req
|
.macro if_has_move_with_type battler:req, type:req, ptr:req
|
||||||
.byte 0x6D
|
.byte 0x6D
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.byte \type
|
.byte \type
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_no_move_used battler:req, ptr:req
|
.macro if_no_move_used battler:req, ptr:req
|
||||||
.byte 0x6E
|
.byte 0x6E
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
|
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
|
||||||
.byte 0x6F
|
.byte 0x6F
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \flag
|
.4byte \flag
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_battler_absent battler:req, ptr:req
|
.macro if_battler_absent battler:req, ptr:req
|
||||||
.byte 0x70
|
.byte 0x70
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_grounded battler:req, ptr:req
|
.macro if_grounded battler:req, ptr:req
|
||||||
.byte 0x71
|
.byte 0x71
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_best_dmg_hp_percent
|
.macro get_best_dmg_hp_percent
|
||||||
.byte 0x72
|
.byte 0x72
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_curr_dmg_hp_percent
|
.macro get_curr_dmg_hp_percent
|
||||||
.byte 0x73
|
.byte 0x73
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_move_split_from_result
|
.macro get_move_split_from_result
|
||||||
.byte 0x74
|
.byte 0x74
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_considered_move_split
|
.macro get_considered_move_split
|
||||||
.byte 0x75
|
.byte 0x75
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_considered_move_target
|
.macro get_considered_move_target
|
||||||
.byte 0x76
|
.byte 0x76
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro compare_speeds battler1:req, battler2:req
|
.macro compare_speeds battler1:req, battler2:req
|
||||||
.byte 0x77
|
.byte 0x77
|
||||||
.byte \battler1
|
.byte \battler1
|
||||||
.byte \battler2
|
.byte \battler2
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro is_wakeup_turn battler:req
|
.macro is_wakeup_turn battler:req
|
||||||
.byte 0x78
|
.byte 0x78
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
|
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
|
||||||
.byte 0x79
|
.byte 0x79
|
||||||
.byte \battler
|
.byte \battler
|
||||||
.byte \value
|
.byte \value
|
||||||
.4byte \ptr
|
.4byte \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ useful script macros
|
@ useful script macros
|
||||||
.macro if_has_physical_move battler:req, ptr:req
|
.macro if_has_physical_move battler:req, ptr:req
|
||||||
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_no_physical_move battler:req, ptr:req
|
.macro if_has_no_physical_move battler:req, ptr:req
|
||||||
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_special_move battler:req, ptr:req
|
.macro if_has_special_move battler:req, ptr:req
|
||||||
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_has_no_special_move battler:req, ptr:req
|
.macro if_has_no_special_move battler:req, ptr:req
|
||||||
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||||
.endm
|
.endm
|
||||||
@ -714,33 +714,33 @@
|
|||||||
.macro get_curr_move_type
|
.macro get_curr_move_type
|
||||||
get_type AI_TYPE_MOVE
|
get_type AI_TYPE_MOVE
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_user_type1
|
.macro get_user_type1
|
||||||
get_type AI_TYPE1_USER
|
get_type AI_TYPE1_USER
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_user_type2
|
.macro get_user_type2
|
||||||
get_type AI_TYPE2_USER
|
get_type AI_TYPE2_USER
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_target_type1
|
.macro get_target_type1
|
||||||
get_type AI_TYPE1_TARGET
|
get_type AI_TYPE1_TARGET
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro get_target_type2
|
.macro get_target_type2
|
||||||
get_type AI_TYPE2_TARGET
|
get_type AI_TYPE2_TARGET
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_ability battler:req, ability:req, ptr:req
|
.macro if_ability battler:req, ability:req, ptr:req
|
||||||
check_ability \battler, \ability
|
check_ability \battler, \ability
|
||||||
if_equal 1, \ptr
|
if_equal 1, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_no_ability battler:req, ability:req, ptr:req
|
.macro if_no_ability battler:req, ability:req, ptr:req
|
||||||
check_ability \battler, \ability
|
check_ability \battler, \ability
|
||||||
if_equal 0, \ptr
|
if_equal 0, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_type battler:req, type:req, ptr:req
|
.macro if_type battler:req, type:req, ptr:req
|
||||||
is_of_type \battler, \type
|
is_of_type \battler, \type
|
||||||
if_equal 1, \ptr
|
if_equal 1, \ptr
|
||||||
@ -750,20 +750,20 @@
|
|||||||
is_of_type \battler, \type
|
is_of_type \battler, \type
|
||||||
if_equal 0, \ptr
|
if_equal 0, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_target_faster ptr:req
|
.macro if_target_faster ptr:req
|
||||||
if_user_goes 1, \ptr
|
if_user_goes 1, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_user_faster ptr:req
|
.macro if_user_faster ptr:req
|
||||||
if_user_goes 0, \ptr
|
if_user_goes 0, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_double_battle ptr:req
|
.macro if_double_battle ptr:req
|
||||||
is_double_battle
|
is_double_battle
|
||||||
if_equal 1, \ptr
|
if_equal 1, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_not_double_battle ptr:req
|
.macro if_not_double_battle ptr:req
|
||||||
is_double_battle
|
is_double_battle
|
||||||
if_equal 0, \ptr
|
if_equal 0, \ptr
|
||||||
@ -772,11 +772,11 @@
|
|||||||
.macro if_any_move_disabled battler:req, ptr:req
|
.macro if_any_move_disabled battler:req, ptr:req
|
||||||
if_any_move_disabled_or_encored \battler, 0, \ptr
|
if_any_move_disabled_or_encored \battler, 0, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_any_move_encored battler:req, ptr:req
|
.macro if_any_move_encored battler:req, ptr:req
|
||||||
if_any_move_disabled_or_encored \battler, 1, \ptr
|
if_any_move_disabled_or_encored \battler, 1, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro call_if_always_hit ptr:req
|
.macro call_if_always_hit ptr:req
|
||||||
get_move_accuracy
|
get_move_accuracy
|
||||||
call_if_eq 0, \ptr
|
call_if_eq 0, \ptr
|
||||||
|
@ -270,20 +270,20 @@
|
|||||||
.macro stopsound
|
.macro stopsound
|
||||||
.byte 0x2f
|
.byte 0x2f
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ useful macros
|
@ useful macros
|
||||||
.macro jumpreteq value:req, ptr:req
|
.macro jumpreteq value:req, ptr:req
|
||||||
jumpargeq ARG_RET_ID, \value, \ptr
|
jumpargeq ARG_RET_ID, \value, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro jumprettrue ptr:req
|
.macro jumprettrue ptr:req
|
||||||
jumpreteq TRUE, \ptr
|
jumpreteq TRUE, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro jumpretfalse ptr:req
|
.macro jumpretfalse ptr:req
|
||||||
jumpreteq FALSE, \ptr
|
jumpreteq FALSE, \ptr
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro jumpifdoublebattle ptr:req
|
.macro jumpifdoublebattle ptr:req
|
||||||
createvisualtask AnimTask_IsDoubleBattle, 0
|
createvisualtask AnimTask_IsDoubleBattle, 0
|
||||||
jumprettrue \ptr
|
jumprettrue \ptr
|
||||||
@ -305,7 +305,7 @@
|
|||||||
.hword \launchtemplatearg7
|
.hword \launchtemplatearg7
|
||||||
.hword \launchtemplatearg8
|
.hword \launchtemplatearg8
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
|
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
|
||||||
.byte 0x3
|
.byte 0x3
|
||||||
.word \launchtaskPtr
|
.word \launchtaskPtr
|
||||||
@ -321,7 +321,7 @@
|
|||||||
.hword \launchtaskarg7
|
.hword \launchtaskarg7
|
||||||
.hword \launchtaskarg8
|
.hword \launchtaskarg8
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro setblends setblends_value
|
.macro setblends setblends_value
|
||||||
.byte 0xC
|
.byte 0xC
|
||||||
.hword \setblends_value
|
.hword \setblends_value
|
||||||
|
@ -89,15 +89,15 @@
|
|||||||
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA
|
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA
|
||||||
special CallBattleTowerFunc
|
special CallBattleTowerFunc
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@Custom multi-battle commands
|
@Custom multi-battle commands
|
||||||
|
|
||||||
.macro choose_mons
|
.macro choose_mons
|
||||||
fadescreen 1
|
fadescreen 1
|
||||||
special ChooseHalfPartyForBattle @ choose 3 mons for battle
|
special ChooseHalfPartyForBattle @ choose 3 mons for battle
|
||||||
waitstate
|
waitstate
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_do type:req, partnerId:req, partnerPicId:req
|
.macro multi_do type:req, partnerId:req, partnerPicId:req
|
||||||
special ReducePlayerPartyToSelectedMons
|
special ReducePlayerPartyToSelectedMons
|
||||||
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
|
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
|
||||||
@ -113,26 +113,26 @@
|
|||||||
special CallFrontierUtilFunc
|
special CallFrontierUtilFunc
|
||||||
special LoadPlayerParty
|
special LoadPlayerParty
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
.macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
||||||
multi_do MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
multi_do MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
.macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||||
multi_do MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
multi_do MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
||||||
.macro multi_wild partnerId:req, partnerPicId:req
|
.macro multi_wild partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
multi_do MULTI_BATTLE_2_VS_WILD, \partnerId, \partnerPicId
|
multi_do MULTI_BATTLE_2_VS_WILD, \partnerId, \partnerPicId
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_do_fixed type:req, partnerId:req, partnerPicId:req
|
.macro multi_do_fixed type:req, partnerId:req, partnerPicId:req
|
||||||
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
|
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
|
||||||
setvar VAR_0x8005, \type
|
setvar VAR_0x8005, \type
|
||||||
@ -144,20 +144,20 @@
|
|||||||
special CallFrontierUtilFunc
|
special CallFrontierUtilFunc
|
||||||
special LoadPlayerParty
|
special LoadPlayerParty
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
.macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
|
||||||
multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
.macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
|
||||||
multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
|
||||||
.macro multi_fixed_wild partnerId:req, partnerPicId:req
|
.macro multi_fixed_wild partnerId:req, partnerPicId:req
|
||||||
special SavePlayerParty
|
special SavePlayerParty
|
||||||
|
@ -1788,7 +1788,7 @@
|
|||||||
.macro setzeffect
|
.macro setzeffect
|
||||||
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
|
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro consumeberry battler:req, restoreItem=FALSE
|
.macro consumeberry battler:req, restoreItem=FALSE
|
||||||
various \battler, VARIOUS_CONSUME_BERRY
|
various \battler, VARIOUS_CONSUME_BERRY
|
||||||
.byte \restoreItem
|
.byte \restoreItem
|
||||||
@ -1980,6 +1980,14 @@
|
|||||||
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
|
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro canteleport battler:req
|
||||||
|
various \battler, VARIOUS_CAN_TELEPORT
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro getbattlerside battler:req
|
||||||
|
various \battler, VARIOUS_GET_BATTLER_SIDE
|
||||||
|
.endm
|
||||||
|
|
||||||
@ helpful macros
|
@ helpful macros
|
||||||
.macro setstatchanger stat:req, stages:req, down:req
|
.macro setstatchanger stat:req, stages:req, down:req
|
||||||
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
||||||
@ -2132,3 +2140,8 @@
|
|||||||
.macro skydropyawn
|
.macro skydropyawn
|
||||||
various 0, VARIOUS_SKY_DROP_YAWN
|
various 0, VARIOUS_SKY_DROP_YAWN
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
@ Used by effects that may proc Symbiosis but do not call removeitem.
|
||||||
|
.macro trysymbiosis
|
||||||
|
various BS_ATTACKER, VARIOUS_TRY_SYMBIOSIS
|
||||||
|
.endm
|
||||||
|
@ -276,7 +276,7 @@
|
|||||||
.2byte SPECIAL_\function
|
.2byte SPECIAL_\function
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
|
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
|
||||||
@ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
|
@ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
|
||||||
.macro waitstate
|
.macro waitstate
|
||||||
.byte 0x27
|
.byte 0x27
|
||||||
@ -985,7 +985,7 @@
|
|||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
|
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
|
||||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||||
.macro givemon species:req, level:req, item=ITEM_NONE
|
.macro givemon species:req, level:req, item=ITEM_NONE
|
||||||
.byte 0x79
|
.byte 0x79
|
||||||
.2byte \species
|
.2byte \species
|
||||||
@ -997,7 +997,7 @@
|
|||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Gives the player an Egg of the specified species.
|
@ Gives the player an Egg of the specified species.
|
||||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||||
.macro giveegg species:req
|
.macro giveegg species:req
|
||||||
.byte 0x7a
|
.byte 0x7a
|
||||||
.2byte \species
|
.2byte \species
|
||||||
@ -1415,7 +1415,7 @@
|
|||||||
.2byte \out
|
.2byte \out
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
|
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
|
||||||
@ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE.
|
@ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE.
|
||||||
.macro addcoins count:req
|
.macro addcoins count:req
|
||||||
.byte 0xb4
|
.byte 0xb4
|
||||||
@ -1893,7 +1893,7 @@
|
|||||||
|
|
||||||
@ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare.
|
@ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare.
|
||||||
@ If the player doesn't have space for all the items then as many are added as possible, the
|
@ If the player doesn't have space for all the items then as many are added as possible, the
|
||||||
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
|
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
|
||||||
@ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s).
|
@ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s).
|
||||||
.macro giveitem item:req, amount=1
|
.macro giveitem item:req, amount=1
|
||||||
setorcopyvar VAR_0x8000, \item
|
setorcopyvar VAR_0x8000, \item
|
||||||
|
@ -150,13 +150,13 @@
|
|||||||
.4byte \sample
|
.4byte \sample
|
||||||
.byte 0xff, 0, 0xff, 0
|
.byte 0xff, 0, 0xff, 0
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro cry_uncomp sample @ not compressed
|
.macro cry_uncomp sample @ not compressed
|
||||||
.byte 0x0, 60, 0, 0
|
.byte 0x0, 60, 0, 0
|
||||||
.4byte \sample
|
.4byte \sample
|
||||||
.byte 0xff, 0, 0xff, 0
|
.byte 0xff, 0, 0xff, 0
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro cry_reverse_uncomp sample @ not compressed
|
.macro cry_reverse_uncomp sample @ not compressed
|
||||||
.byte 0x10, 60, 0, 0
|
.byte 0x10, 60, 0, 0
|
||||||
.4byte \sample
|
.4byte \sample
|
||||||
|
@ -79,6 +79,7 @@ SUPER_RE = A0
|
|||||||
'?' = AC
|
'?' = AC
|
||||||
'.' = AD
|
'.' = AD
|
||||||
'-' = AE
|
'-' = AE
|
||||||
|
'_' = AE @ For autogenerating strings based on label names. Not using {UNDERSCORE} on purpose due to how bad it looks.
|
||||||
'·' = AF
|
'·' = AF
|
||||||
'…' = B0
|
'…' = B0
|
||||||
'“' = B1
|
'“' = B1
|
||||||
|
@ -2987,21 +2987,26 @@ Move_MUD_BOMB:
|
|||||||
end
|
end
|
||||||
|
|
||||||
Move_PSYCHO_CUT:
|
Move_PSYCHO_CUT:
|
||||||
loadspritegfx ANIM_TAG_SPIRAL
|
loadspritegfx ANIM_TAG_SPIRAL
|
||||||
loadspritegfx ANIM_TAG_PSYCHO_CUT
|
loadspritegfx ANIM_TAG_PSYCHO_CUT
|
||||||
monbg ANIM_ATK_PARTNER
|
loadspritegfx ANIM_TAG_CROSS_IMPACT
|
||||||
|
monbg ANIM_ATK_PARTNER
|
||||||
|
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CROSS_IMPACT, 0, 9, 9, RGB_PURPLE
|
||||||
|
createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, ANIM_ATTACKER
|
||||||
createsprite gPsychoCutSpiralSpriteTemplate, 2, 4, 0, 0, 0, 0
|
createsprite gPsychoCutSpiralSpriteTemplate, 2, 4, 0, 0, 0, 0
|
||||||
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 0, 4, RGB_BLACK
|
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 0, 4, RGB_BLACK
|
||||||
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23)
|
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23)
|
||||||
delay 30
|
delay 30
|
||||||
clearmonbg ANIM_ATK_PARTNER
|
clearmonbg ANIM_ATK_PARTNER
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
monbg ANIM_TARGET
|
monbg ANIM_TARGET
|
||||||
splitbgprio ANIM_TARGET
|
splitbgprio ANIM_TARGET
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER,
|
playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER,
|
||||||
createsprite gPsychoCutSpriteTemplate, 130, 5, 20, 0, -8, 0, 20
|
createsprite gPsychoCutSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
|
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1
|
||||||
|
createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20
|
||||||
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 4, 0, RGB_BLACK
|
createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 4, 0, RGB_BLACK
|
||||||
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 10, 0, RGB(20, 12, 23)
|
createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 10, 0, RGB(20, 12, 23)
|
||||||
clearmonbg ANIM_TARGET
|
clearmonbg ANIM_TARGET
|
||||||
@ -14196,7 +14201,7 @@ TerrainPulseElectric:
|
|||||||
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
||||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(27, 27, 0)
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(27, 27, 0)
|
||||||
goto TerrainPulseEnd
|
goto TerrainPulseEnd
|
||||||
|
|
||||||
TerrainPulseGrass:
|
TerrainPulseGrass:
|
||||||
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(11, 26, 11)
|
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(11, 26, 11)
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@ -14218,7 +14223,7 @@ TerrainPulseFairy:
|
|||||||
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
|
||||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(31, 24, 31)
|
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(31, 24, 31)
|
||||||
goto TerrainPulseEnd
|
goto TerrainPulseEnd
|
||||||
|
|
||||||
TerrainPulsePsychic:
|
TerrainPulsePsychic:
|
||||||
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(27, 0, 13)
|
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(27, 0, 13)
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
@ -24740,7 +24745,7 @@ General_RestoreBg:
|
|||||||
restorebg
|
restorebg
|
||||||
waitbgfadein
|
waitbgfadein
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
General_ZMoveActivate:
|
General_ZMoveActivate:
|
||||||
@ -24839,15 +24844,15 @@ General_PrimalReversion::
|
|||||||
jumpargeq 0x1, ITEM_BLUE_ORB, General_PrimalReversion_Alpha
|
jumpargeq 0x1, ITEM_BLUE_ORB, General_PrimalReversion_Alpha
|
||||||
General_PrimalReversion_Alpha:
|
General_PrimalReversion_Alpha:
|
||||||
loadspritegfx ANIM_TAG_ALPHA_STONE
|
loadspritegfx ANIM_TAG_ALPHA_STONE
|
||||||
loadspritegfx ANIM_TAG_PRIMAL_PARTICLES
|
loadspritegfx ANIM_TAG_MEGA_PARTICLES
|
||||||
loadspritegfx ANIM_TAG_ALPHA_SYMBOL
|
loadspritegfx ANIM_TAG_ALPHA_SYMBOL
|
||||||
monbg ANIM_ATTACKER
|
monbg ANIM_ATTACKER
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
loopsewithpan SE_M_MEGA_KICK, 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)
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11)
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
||||||
createsprite gAlphaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
createsprite gAlphaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
||||||
@ -24865,15 +24870,15 @@ General_PrimalReversion_Alpha:
|
|||||||
end
|
end
|
||||||
General_PrimalReversion_Omega:
|
General_PrimalReversion_Omega:
|
||||||
loadspritegfx ANIM_TAG_OMEGA_STONE
|
loadspritegfx ANIM_TAG_OMEGA_STONE
|
||||||
loadspritegfx ANIM_TAG_PRIMAL_PARTICLES
|
loadspritegfx ANIM_TAG_MEGA_PARTICLES
|
||||||
loadspritegfx ANIM_TAG_OMEGA_SYMBOL
|
loadspritegfx ANIM_TAG_OMEGA_SYMBOL
|
||||||
monbg ANIM_ATTACKER
|
monbg ANIM_ATTACKER
|
||||||
setalpha 12, 8
|
setalpha 12, 8
|
||||||
loopsewithpan SE_M_MEGA_KICK, 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)
|
createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11)
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
call PrimalReversionParticles
|
call MegaEvolutionParticles
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER
|
||||||
createsprite gOmegaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
createsprite gOmegaStoneSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0
|
||||||
@ -24889,22 +24894,6 @@ General_PrimalReversion_Omega:
|
|||||||
clearmonbg ANIM_ATK_PARTNER
|
clearmonbg ANIM_ATK_PARTNER
|
||||||
blendoff
|
blendoff
|
||||||
end
|
end
|
||||||
PrimalReversionParticles:
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 40, -10, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -35, -10, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 15, -40, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -10, -32, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 25, -20, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, -40, -20, 13
|
|
||||||
delay 3
|
|
||||||
createsprite gPrimalParticlesSpriteTemplate, ANIM_ATTACKER, 2, 5, -40, 13
|
|
||||||
delay 3
|
|
||||||
return
|
|
||||||
|
|
||||||
General_AffectionHangedOn::
|
General_AffectionHangedOn::
|
||||||
loadspritegfx ANIM_TAG_RED_HEART
|
loadspritegfx ANIM_TAG_RED_HEART
|
||||||
@ -25263,8 +25252,8 @@ FinishSupersonicSkystrike:
|
|||||||
call UnsetPsychicBg
|
call UnsetPsychicBg
|
||||||
waitforvisualfinish
|
waitforvisualfinish
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
Move_ACID_DOWNPOUR:
|
Move_ACID_DOWNPOUR:
|
||||||
loadspritegfx ANIM_TAG_BLUE_ORB @ reversal
|
loadspritegfx ANIM_TAG_BLUE_ORB @ reversal
|
||||||
loadspritegfx ANIM_TAG_POISON_JAB @ poison jab
|
loadspritegfx ANIM_TAG_POISON_JAB @ poison jab
|
||||||
@ -25951,7 +25940,7 @@ NeverendingNightmareGeyser:
|
|||||||
createsprite gNeverEndingNightmareGeyserHexSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0xfff0, 0x10
|
createsprite gNeverEndingNightmareGeyserHexSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0xfff0, 0x10
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
Move_CORKSCREW_CRASH::
|
Move_CORKSCREW_CRASH::
|
||||||
loadspritegfx ANIM_TAG_SPIKES @metal bits
|
loadspritegfx ANIM_TAG_SPIKES @metal bits
|
||||||
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge
|
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge
|
||||||
@ -26669,7 +26658,7 @@ HavocSpearSparkTarget:
|
|||||||
@ launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
@ launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
||||||
launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
Move_SHATTERED_PSYCHE::
|
Move_SHATTERED_PSYCHE::
|
||||||
loadspritegfx ANIM_TAG_IMPACT @hit
|
loadspritegfx ANIM_TAG_IMPACT @hit
|
||||||
@ -29127,7 +29116,7 @@ OceanicOperettaExplosion:
|
|||||||
launchtemplate gOceanOperaExplosionSpriteTemplate 0x33 0x4 0x10 0x10 ANIM_TARGET 0x1
|
launchtemplate gOceanOperaExplosionSpriteTemplate 0x33 0x4 0x10 0x10 ANIM_TARGET 0x1
|
||||||
delay 0x6
|
delay 0x6
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
Move_SPLINTERED_STORMSHARDS::
|
Move_SPLINTERED_STORMSHARDS::
|
||||||
loadspritegfx ANIM_TAG_ROCKS @rock
|
loadspritegfx ANIM_TAG_ROCKS @rock
|
||||||
@ -29388,7 +29377,7 @@ SplinteredStormshardsFinishFadeReturn:
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
Move_LETS_SNUGGLE_FOREVER::
|
Move_LETS_SNUGGLE_FOREVER::
|
||||||
loadspritegfx ANIM_TAG_MAGENTA_HEART @sharm
|
loadspritegfx ANIM_TAG_MAGENTA_HEART @sharm
|
||||||
loadspritegfx ANIM_TAG_MUSIC_NOTES @music note
|
loadspritegfx ANIM_TAG_MUSIC_NOTES @music note
|
||||||
loadspritegfx ANIM_TAG_SMALL_BUBBLES @fake tears
|
loadspritegfx ANIM_TAG_SMALL_BUBBLES @fake tears
|
||||||
@ -30467,11 +30456,11 @@ LightThatBurnsTheSkyGreenSparks:
|
|||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x0 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x0 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x40 0x28 0x1 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x40 0x28 0x1 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x80 0x28 0x0 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x80 0x28 0x0 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c SOUND_PAN_ATTACKER 0x28 0x2 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x2 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x0 0x28 0x0 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x0 0x28 0x0 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x40 0x28 0x1 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x40 0x28 0x1 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x80 0x28 0x0 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x80 0x28 0x0 0x3
|
||||||
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c SOUND_PAN_ATTACKER 0x28 0x2 0x3
|
launchtemplate gLightThatBurnsTheSkyGreenSparkSpriteTemplate 0x83 0x8 0x0 0x0 0x15 0x2c 0x0 0x28 0x2 0x3
|
||||||
delay 0x10
|
delay 0x10
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -511,7 +511,7 @@ BattleScript_BeakBlastSetUp::
|
|||||||
setbeakblast BS_ATTACKER
|
setbeakblast BS_ATTACKER
|
||||||
printstring STRINGID_EMPTYSTRING3
|
printstring STRINGID_EMPTYSTRING3
|
||||||
waitmessage 1
|
waitmessage 1
|
||||||
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
||||||
printstring STRINGID_HEATUPBEAK
|
printstring STRINGID_HEATUPBEAK
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
end2
|
end2
|
||||||
@ -601,7 +601,7 @@ BattleScript_ScaleShotEnd::
|
|||||||
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
||||||
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
||||||
end
|
end
|
||||||
|
|
||||||
BattleScript_EffectSkyDrop:
|
BattleScript_EffectSkyDrop:
|
||||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
||||||
attackcanceler
|
attackcanceler
|
||||||
@ -706,6 +706,7 @@ BattleScript_EffectFlingConsumeBerry:
|
|||||||
restorebattleritem BS_TARGET
|
restorebattleritem BS_TARGET
|
||||||
BattleScript_FlingEnd:
|
BattleScript_FlingEnd:
|
||||||
tryfaintmon BS_TARGET
|
tryfaintmon BS_TARGET
|
||||||
|
trysymbiosis
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_FlingFlameOrb:
|
BattleScript_FlingFlameOrb:
|
||||||
@ -1392,6 +1393,7 @@ BattleScript_MoveEffectBugBite::
|
|||||||
consumeberry BS_ATTACKER, TRUE @ consume the berry, then restore the item from changedItems
|
consumeberry BS_ATTACKER, TRUE @ consume the berry, then restore the item from changedItems
|
||||||
bicword gHitMarker, HITMARKER_NO_ANIMATIONS
|
bicword gHitMarker, HITMARKER_NO_ANIMATIONS
|
||||||
setbyte sBERRY_OVERRIDE, FALSE
|
setbyte sBERRY_OVERRIDE, FALSE
|
||||||
|
trysymbiosis
|
||||||
return
|
return
|
||||||
|
|
||||||
BattleScript_EffectCoreEnforcer:
|
BattleScript_EffectCoreEnforcer:
|
||||||
@ -1763,6 +1765,7 @@ BattleScript_EffectBestow:
|
|||||||
waitanimation
|
waitanimation
|
||||||
printstring STRINGID_BESTOWITEMGIVING
|
printstring STRINGID_BESTOWITEMGIVING
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
|
trysymbiosis
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_EffectAfterYou:
|
BattleScript_EffectAfterYou:
|
||||||
@ -5173,7 +5176,14 @@ BattleScript_EffectTeleport:
|
|||||||
attackcanceler
|
attackcanceler
|
||||||
attackstring
|
attackstring
|
||||||
ppreduce
|
ppreduce
|
||||||
|
.if B_TELEPORT_BEHAVIOR >= GEN_7
|
||||||
|
canteleport BS_ATTACKER
|
||||||
|
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectTeleportNew
|
||||||
|
goto BattleScript_ButItFailed
|
||||||
|
.else
|
||||||
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
|
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
|
||||||
|
.endif
|
||||||
|
BattleScript_EffectTeleportTryToRunAway:
|
||||||
getifcantrunfrombattle BS_ATTACKER
|
getifcantrunfrombattle BS_ATTACKER
|
||||||
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FORBIDDEN, BattleScript_ButItFailed
|
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FORBIDDEN, BattleScript_ButItFailed
|
||||||
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FAILURE, BattleScript_PrintAbilityMadeIneffective
|
jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FAILURE, BattleScript_PrintAbilityMadeIneffective
|
||||||
@ -5184,6 +5194,29 @@ BattleScript_EffectTeleport:
|
|||||||
setoutcomeonteleport BS_ATTACKER
|
setoutcomeonteleport BS_ATTACKER
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
|
BattleScript_EffectTeleportNew:
|
||||||
|
getbattlerside BS_ATTACKER
|
||||||
|
jumpifbyte CMP_EQUAL, gBattleCommunication, B_SIDE_OPPONENT, BattleScript_EffectTeleportTryToRunAway
|
||||||
|
attackanimation
|
||||||
|
waitanimation
|
||||||
|
openpartyscreen BS_ATTACKER, BattleScript_EffectTeleportNewEnd
|
||||||
|
switchoutabilities BS_ATTACKER
|
||||||
|
waitstate
|
||||||
|
switchhandleorder BS_ATTACKER, 2
|
||||||
|
returntoball BS_ATTACKER
|
||||||
|
getswitchedmondata BS_ATTACKER
|
||||||
|
switchindataupdate BS_ATTACKER
|
||||||
|
hpthresholds BS_ATTACKER
|
||||||
|
trytoclearprimalweather
|
||||||
|
printstring STRINGID_EMPTYSTRING3
|
||||||
|
waitmessage 1
|
||||||
|
printstring STRINGID_SWITCHINMON
|
||||||
|
switchinanim BS_ATTACKER, TRUE
|
||||||
|
waitstate
|
||||||
|
switchineffects BS_ATTACKER
|
||||||
|
BattleScript_EffectTeleportNewEnd:
|
||||||
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_EffectBeatUp::
|
BattleScript_EffectBeatUp::
|
||||||
attackcanceler
|
attackcanceler
|
||||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||||
@ -5648,7 +5681,7 @@ BattleScript_EffectRolePlay::
|
|||||||
pause 20
|
pause 20
|
||||||
destroyabilitypopup
|
destroyabilitypopup
|
||||||
pause 40
|
pause 40
|
||||||
.endif
|
.endif
|
||||||
printstring STRINGID_PKMNCOPIEDFOE
|
printstring STRINGID_PKMNCOPIEDFOE
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
switchinabilities BS_ATTACKER
|
switchinabilities BS_ATTACKER
|
||||||
@ -9625,7 +9658,7 @@ BattleScript_StatUpZMove::
|
|||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
BattleScript_StatUpZMoveEnd:
|
BattleScript_StatUpZMoveEnd:
|
||||||
return
|
return
|
||||||
|
|
||||||
BattleScript_HealReplacementZMove::
|
BattleScript_HealReplacementZMove::
|
||||||
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
|
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
|
||||||
printfromtable gZEffectStringIds
|
printfromtable gZEffectStringIds
|
||||||
@ -9836,8 +9869,14 @@ BattleScript_NeutralizingGasExitsLoop:
|
|||||||
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
|
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
|
||||||
restoretarget
|
restoretarget
|
||||||
return
|
return
|
||||||
|
|
||||||
BattleScript_MagicianActivates::
|
BattleScript_MagicianActivates::
|
||||||
call BattleScript_AbilityPopUp
|
call BattleScript_AbilityPopUp
|
||||||
call BattleScript_ItemSteal
|
call BattleScript_ItemSteal
|
||||||
return
|
return
|
||||||
|
|
||||||
|
BattleScript_SymbiosisActivates::
|
||||||
|
call BattleScript_AbilityPopUp
|
||||||
|
printstring STRINGID_SYMBIOSISITEMPASS
|
||||||
|
waitmessage B_WAIT_TIME_LONG
|
||||||
|
return
|
||||||
|
@ -225,6 +225,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType::
|
|||||||
call_if_eq VAR_0x8005, TYPE_ICE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce
|
call_if_eq VAR_0x8005, TYPE_ICE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce
|
||||||
call_if_eq VAR_0x8005, TYPE_DRAGON, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon
|
call_if_eq VAR_0x8005, TYPE_DRAGON, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon
|
||||||
call_if_eq VAR_0x8005, TYPE_DARK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark
|
call_if_eq VAR_0x8005, TYPE_DARK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark
|
||||||
|
call_if_eq VAR_0x8005, TYPE_FAIRY, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFairy
|
||||||
call_if_eq VAR_0x8005, NUMBER_OF_MON_TYPES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType
|
call_if_eq VAR_0x8005, NUMBER_OF_MON_TYPES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -296,6 +297,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark::
|
|||||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType, MSGBOX_DEFAULT
|
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType, MSGBOX_DEFAULT
|
||||||
return
|
return
|
||||||
|
|
||||||
|
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFairy::
|
||||||
|
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFairyType, MSGBOX_DEFAULT
|
||||||
|
return
|
||||||
|
|
||||||
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType::
|
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType::
|
||||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite, MSGBOX_DEFAULT
|
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite, MSGBOX_DEFAULT
|
||||||
return
|
return
|
||||||
@ -559,6 +564,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType:
|
|||||||
.string "The TRAINER is apparently skilled\n"
|
.string "The TRAINER is apparently skilled\n"
|
||||||
.string "in the handling of the DARK type.$"
|
.string "in the handling of the DARK type.$"
|
||||||
|
|
||||||
|
BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFairyType:
|
||||||
|
.string "The TRAINER is apparently skilled\n"
|
||||||
|
.string "in the handling of the FAIRY type.$"
|
||||||
|
|
||||||
BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType:
|
BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType:
|
||||||
.string "The TRAINER is apparently skilled\n"
|
.string "The TRAINER is apparently skilled\n"
|
||||||
.string "in the handling of the STEEL type.$"
|
.string "in the handling of the STEEL type.$"
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
"x": 14,
|
"x": 14,
|
||||||
"y": 9,
|
"y": 9,
|
||||||
"elevation": 3,
|
"elevation": 3,
|
||||||
"var": "VAR_SKY_PILLAR_RAQUAZA_CRY_DONE",
|
"var": "VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE",
|
||||||
"var_value": "0",
|
"var_value": "0",
|
||||||
"script": "SkyPillar_Top_EventScript_AwakenRayquaza"
|
"script": "SkyPillar_Top_EventScript_AwakenRayquaza"
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
|
|||||||
special RemoveCameraObject
|
special RemoveCameraObject
|
||||||
setvar VAR_SOOTOPOLIS_CITY_STATE, 5
|
setvar VAR_SOOTOPOLIS_CITY_STATE, 5
|
||||||
setvar VAR_SKY_PILLAR_STATE, 1
|
setvar VAR_SKY_PILLAR_STATE, 1
|
||||||
setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1
|
setvar VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE, 1
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ EventScript_ResetAllBerries::
|
|||||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||||
|
|
||||||
@ Route 112
|
@ Route 112
|
||||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||||
|
@ -22,7 +22,7 @@ Roulette_EventScript_Play::
|
|||||||
special PlayRoulette
|
special PlayRoulette
|
||||||
waitstate
|
waitstate
|
||||||
end
|
end
|
||||||
|
|
||||||
Roulette_Text_PlayMinimumWagerIsX::
|
Roulette_Text_PlayMinimumWagerIsX::
|
||||||
.string "The minimum wager at this table\n"
|
.string "The minimum wager at this table\n"
|
||||||
.string "is {STR_VAR_1}. Do you want to play?$"
|
.string "is {STR_VAR_1}. Do you want to play?$"
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
cd /mnt/c/Users/<user>/Downloads
|
cd /mnt/c/Users/<user>/Downloads
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
||||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
|
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
|
||||||
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||||
|
|
||||||
4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM.
|
4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM.
|
||||||
|
@ -2,13 +2,10 @@
|
|||||||
#define GUARD_ALLOC_H
|
#define GUARD_ALLOC_H
|
||||||
|
|
||||||
#define HEAP_SIZE 0x1C000
|
#define HEAP_SIZE 0x1C000
|
||||||
#define malloc Alloc
|
|
||||||
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
|
|
||||||
#define free Free
|
|
||||||
|
|
||||||
#define FREE_AND_SET_NULL(ptr) \
|
#define FREE_AND_SET_NULL(ptr) \
|
||||||
{ \
|
{ \
|
||||||
free(ptr); \
|
Free(ptr); \
|
||||||
ptr = NULL; \
|
ptr = NULL; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ static const u8 sDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_alt
|
|||||||
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
|
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
|
||||||
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
|
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
|
||||||
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
|
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
|
||||||
static const u8 sWindowVerticalScrollSpeeds[] = {
|
static const u8 sWindowVerticalScrollSpeeds[] = {
|
||||||
[OPTIONS_TEXT_SPEED_SLOW] = 1,
|
[OPTIONS_TEXT_SPEED_SLOW] = 1,
|
||||||
[OPTIONS_TEXT_SPEED_MID] = 2,
|
[OPTIONS_TEXT_SPEED_MID] = 2,
|
||||||
[OPTIONS_TEXT_SPEED_FAST] = 4,
|
[OPTIONS_TEXT_SPEED_FAST] = 4,
|
||||||
@ -299,7 +299,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
sTempTextPrinter.textSpeed = 0;
|
sTempTextPrinter.textSpeed = 0;
|
||||||
|
|
||||||
// Render all text (up to limit) at once
|
// Render all text (up to limit) at once
|
||||||
for (j = 0; j < 0x400; ++j)
|
for (j = 0; j < 0x400; ++j)
|
||||||
{
|
{
|
||||||
|
@ -148,7 +148,6 @@ void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
|
|||||||
void DecompressGlyphTile(const void *src_, void *dest_);
|
void DecompressGlyphTile(const void *src_, void *dest_);
|
||||||
void CopyGlyphToWindow(struct TextPrinter *x);
|
void CopyGlyphToWindow(struct TextPrinter *x);
|
||||||
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
|
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
|
||||||
u8 GetMenuCursorDimensionByFont(u8, u8);
|
|
||||||
|
|
||||||
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
|
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
|
||||||
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
|
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
|
||||||
|
19
graphics/battle_anims/backgrounds/windstorm_brew.pal
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
230 148 98
|
||||||
|
255 255 222
|
||||||
|
230 230 197
|
||||||
|
213 205 172
|
||||||
|
189 180 148
|
||||||
|
172 156 123
|
||||||
|
156 131 106
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
142 204 143
|
||||||
|
123 180 122
|
||||||
|
112 165 99
|
||||||
|
89 130 87
|
||||||
|
67 114 65
|
||||||
|
55 91 56
|
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 510 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 838 B After Width: | Height: | Size: 838 B |
Before Width: | Height: | Size: 800 B After Width: | Height: | Size: 800 B |
Before Width: | Height: | Size: 722 B After Width: | Height: | Size: 722 B |
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 726 B |
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 684 B |
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 702 B |
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 702 B |
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 698 B |
Before Width: | Height: | Size: 735 B After Width: | Height: | Size: 735 B |
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 698 B |
Before Width: | Height: | Size: 688 B After Width: | Height: | Size: 688 B |
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 932 B After Width: | Height: | Size: 932 B |
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
Before Width: | Height: | Size: 978 B After Width: | Height: | Size: 978 B |
Before Width: | Height: | Size: 852 B After Width: | Height: | Size: 852 B |
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 890 B After Width: | Height: | Size: 890 B |
Before Width: | Height: | Size: 900 B After Width: | Height: | Size: 900 B |
Before Width: | Height: | Size: 906 B After Width: | Height: | Size: 906 B |
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 710 B |
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 828 B |
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 797 B |
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 696 B After Width: | Height: | Size: 696 B |
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 670 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 736 B |
Before Width: | Height: | Size: 889 B After Width: | Height: | Size: 889 B |
Before Width: | Height: | Size: 647 B After Width: | Height: | Size: 647 B |
Before Width: | Height: | Size: 765 B After Width: | Height: | Size: 765 B |
Before Width: | Height: | Size: 719 B After Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 952 B After Width: | Height: | Size: 952 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 745 B |
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 825 B |
Before Width: | Height: | Size: 617 B After Width: | Height: | Size: 617 B |
Before Width: | Height: | Size: 799 B After Width: | Height: | Size: 799 B |
Before Width: | Height: | Size: 770 B After Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 820 B |
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 692 B |
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 631 B |
Before Width: | Height: | Size: 936 B After Width: | Height: | Size: 936 B |
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 784 B |
Before Width: | Height: | Size: 722 B After Width: | Height: | Size: 722 B |
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 841 B |
Before Width: | Height: | Size: 789 B After Width: | Height: | Size: 789 B |
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 751 B |
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 649 B |
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 689 B |
Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 683 B |
Before Width: | Height: | Size: 632 B After Width: | Height: | Size: 632 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 802 B After Width: | Height: | Size: 802 B |
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 710 B |
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 633 B |
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 678 B |
Before Width: | Height: | Size: 849 B After Width: | Height: | Size: 849 B |
Before Width: | Height: | Size: 786 B After Width: | Height: | Size: 786 B |
Before Width: | Height: | Size: 793 B After Width: | Height: | Size: 793 B |
Before Width: | Height: | Size: 742 B After Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 710 B |
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 709 B |