Merge remote-tracking branch 'RHH/battle_engine' into RHH_masterMerge
# Conflicts: # include/battle_anim.h # include/global.h # include/pokemon.h # src/battle_message.c # src/battle_script_commands.c # src/data/pokemon/base_stats.h
38
INSTALL.md
@ -418,21 +418,16 @@ If you aren't in the pokeemerald directory already, then **change directory** to
|
||||
```bash
|
||||
cd pokeemerald
|
||||
```
|
||||
To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image (Note: to speed up builds, see [Parallel builds](#parallel-builds)):
|
||||
To build **pokeemerald.gba** (Note: to speed up builds, see [Parallel builds](#parallel-builds)):
|
||||
```bash
|
||||
make compare
|
||||
make
|
||||
```
|
||||
If an OK is returned, then the installation went smoothly.
|
||||
If it has built successfully you will have the output file **pokeemerald.gba** in your project folder.
|
||||
<details>
|
||||
<summary>Note for Windows...</summary>
|
||||
> If you switched terminals since the last build (e.g. from msys2 to WSL1), you must run `make clean-tools` once before any subsequent `make` commands.
|
||||
</details>
|
||||
|
||||
To build **pokeemerald.gba** with your changes:
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
# Building guidance
|
||||
|
||||
## Parallel builds
|
||||
@ -451,11 +446,20 @@ Replace `<output of nproc>` with the number that the `nproc` command returned.
|
||||
|
||||
`nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)).
|
||||
|
||||
## Debug info
|
||||
## Compare ROM to the original
|
||||
|
||||
To build **pokeemerald.elf** with enhanced debug info:
|
||||
For contributing, or if you'd simply like to verify that your ROM is identical to the original game, run:
|
||||
```bash
|
||||
make DINFO=1
|
||||
make compare
|
||||
```
|
||||
If it matches, you will see the following at the end of the output:
|
||||
```bash
|
||||
pokeemerald.gba: OK
|
||||
```
|
||||
If there are any changes from the original game, you will instead see:
|
||||
```bash
|
||||
pokeemerald.gba: FAILED
|
||||
shasum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
## devkitARM's C compiler
|
||||
@ -534,7 +538,7 @@ 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.
|
||||
2. Install `gba-dev`: run the following command as root.
|
||||
@ -552,7 +556,7 @@ devkitARM is now installed.
|
||||
|
||||
devkitARM is now installed.
|
||||
|
||||
## Other toolchains
|
||||
### Other toolchains
|
||||
|
||||
To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`.
|
||||
```bash
|
||||
@ -564,6 +568,14 @@ make TOOLCHAIN="/usr/local/arm-none-eabi"
|
||||
```
|
||||
To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
|
||||
|
||||
### Building with debug info under a modern toolchain
|
||||
|
||||
To build **pokeemerald.elf** with debug symbols under a modern toolchain:
|
||||
```bash
|
||||
make modern DINFO=1
|
||||
```
|
||||
Note that this is not necessary for a non-modern build since those are built with debug symbols by default.
|
||||
|
||||
# Useful additional tools
|
||||
|
||||
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps
|
||||
|
2
Makefile
@ -107,7 +107,7 @@ LIBPATH := -L ../../tools/agbcc/lib
|
||||
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
|
||||
else
|
||||
CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -g
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||
ROM := $(MODERN_ROM_NAME)
|
||||
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
|
||||
LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))"
|
||||
|
@ -288,43 +288,57 @@
|
||||
createvisualtask AnimTask_IsDoubleBattle, 0
|
||||
jumprettrue \ptr
|
||||
.endm
|
||||
|
||||
|
||||
@ keep CFRU macros cause I'm lazy. todo: update to createsprite and createvisualtask, respectively
|
||||
.macro launchtemplate launchtemplatePtr launchtemplatePriority launchtemplateArgsNo launchtemplatearg0 launchtemplatearg1 launchtemplatearg2 launchtemplatearg3 launchtemplatearg4 launchtemplatearg5 launchtemplatearg6 launchtemplatearg7 launchtemplatearg8
|
||||
.byte 0x2
|
||||
.word \launchtemplatePtr
|
||||
.byte \launchtemplatePriority
|
||||
.byte \launchtemplateArgsNo
|
||||
.hword \launchtemplatearg0
|
||||
.hword \launchtemplatearg1
|
||||
.hword \launchtemplatearg2
|
||||
.hword \launchtemplatearg3
|
||||
.hword \launchtemplatearg4
|
||||
.hword \launchtemplatearg5
|
||||
.hword \launchtemplatearg6
|
||||
.hword \launchtemplatearg7
|
||||
.hword \launchtemplatearg8
|
||||
.endm
|
||||
|
||||
.byte 0x2
|
||||
.word \launchtemplatePtr
|
||||
.byte \launchtemplatePriority
|
||||
.byte \launchtemplateArgsNo
|
||||
.hword \launchtemplatearg0
|
||||
.hword \launchtemplatearg1
|
||||
.hword \launchtemplatearg2
|
||||
.hword \launchtemplatearg3
|
||||
.hword \launchtemplatearg4
|
||||
.hword \launchtemplatearg5
|
||||
.hword \launchtemplatearg6
|
||||
.hword \launchtemplatearg7
|
||||
.hword \launchtemplatearg8
|
||||
.endm
|
||||
|
||||
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
|
||||
.byte 0x3
|
||||
.word \launchtaskPtr
|
||||
.byte \launchtaskPriority
|
||||
.byte \launchtaskArgsNo
|
||||
.hword \launchtaskarg0
|
||||
.hword \launchtaskarg1
|
||||
.hword \launchtaskarg2
|
||||
.hword \launchtaskarg3
|
||||
.hword \launchtaskarg4
|
||||
.hword \launchtaskarg5
|
||||
.hword \launchtaskarg6
|
||||
.hword \launchtaskarg7
|
||||
.hword \launchtaskarg8
|
||||
.endm
|
||||
|
||||
.byte 0x3
|
||||
.word \launchtaskPtr
|
||||
.byte \launchtaskPriority
|
||||
.byte \launchtaskArgsNo
|
||||
.hword \launchtaskarg0
|
||||
.hword \launchtaskarg1
|
||||
.hword \launchtaskarg2
|
||||
.hword \launchtaskarg3
|
||||
.hword \launchtaskarg4
|
||||
.hword \launchtaskarg5
|
||||
.hword \launchtaskarg6
|
||||
.hword \launchtaskarg7
|
||||
.hword \launchtaskarg8
|
||||
.endm
|
||||
|
||||
.macro setblends setblends_value
|
||||
.byte 0xC
|
||||
.hword \setblends_value
|
||||
.endm
|
||||
.byte 0xC
|
||||
.hword \setblends_value
|
||||
.endm
|
||||
|
||||
.macro launchsoundtask launchsoundtaskPtr launchsoundtaskArgsNo launchsoundtaskarg0 launchsoundtaskarg1 launchsoundtaskarg2 launchsoundtaskarg3 launchsoundtaskarg4 launchsoundtaskarg5 launchsoundtaskarg6 launchsoundtaskarg7 launchsoundtaskarg8
|
||||
.byte 0x1F
|
||||
.word \launchsoundtaskPtr
|
||||
.byte \launchsoundtaskArgsNo
|
||||
.hword \launchsoundtaskarg0
|
||||
.hword \launchsoundtaskarg1
|
||||
.hword \launchsoundtaskarg2
|
||||
.hword \launchsoundtaskarg3
|
||||
.hword \launchsoundtaskarg4
|
||||
.hword \launchsoundtaskarg5
|
||||
.hword \launchsoundtaskarg6
|
||||
.hword \launchsoundtaskarg7
|
||||
.hword \launchsoundtaskarg8
|
||||
.endm
|
||||
|
||||
|
@ -1785,6 +1785,10 @@
|
||||
various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH
|
||||
.endm
|
||||
|
||||
.macro setzeffect
|
||||
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
|
||||
.endm
|
||||
|
||||
.macro consumeberry battler:req, restoreItem=FALSE
|
||||
various \battler, VARIOUS_CONSUME_BERRY
|
||||
.byte \restoreItem
|
||||
@ -1924,8 +1928,8 @@
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro photongeysercheck
|
||||
various BS_ATTACKER, VARIOUS_PHOTON_GEYSER_CHECK
|
||||
.macro photongeysercheck battler:req
|
||||
various \battler, VARIOUS_PHOTON_GEYSER_CHECK
|
||||
.endm
|
||||
|
||||
.macro shellsidearmcheck
|
||||
@ -1968,6 +1972,14 @@
|
||||
various \battler, VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM
|
||||
.endm
|
||||
|
||||
.macro setbeakblast battler:req
|
||||
various \battler, VARIOUS_SET_BEAK_BLAST
|
||||
.endm
|
||||
|
||||
.macro swapsidestatuses
|
||||
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
|
||||
.endm
|
||||
|
||||
@ helpful macros
|
||||
.macro setstatchanger stat:req, stages:req, down:req
|
||||
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
||||
|
@ -100,9 +100,9 @@
|
||||
special CallTrainerHillFunction
|
||||
.endm
|
||||
|
||||
@ Set the challenge mode to HILL_TAG_* (Normal, Variety, Unique, or Expert)
|
||||
.macro trainerhill_settag tag:req
|
||||
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG
|
||||
copyvar VAR_0x8005, \tag
|
||||
@ Set the challenge mode to HILL_MODE_* (Normal, Variety, Unique, or Expert)
|
||||
.macro trainerhill_setmode mode:req
|
||||
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_MODE
|
||||
copyvar VAR_0x8005, \mode
|
||||
special CallTrainerHillFunction
|
||||
.endm
|
||||
|
@ -404,6 +404,166 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectClangorousSoul @ EFFECT_CLANGOROUS_SOUL
|
||||
.4byte BattleScript_EffectHit @ EFFECT_BOLT_BEAK
|
||||
.4byte BattleScript_EffectSkyDrop @ EFFECT_SKY_DROP
|
||||
.4byte BattleScript_EffectHit @ EFFECT_EXPANDING_FORCE
|
||||
.4byte BattleScript_EffectScaleShot @ EFFECT_SCALE_SHOT
|
||||
.4byte BattleScript_EffectMeteorBeam @ EFFECT_METEOR_BEAM
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RISING_VOLTAGE
|
||||
.4byte BattleScript_EffectHit @ EFFECT_BEAK_BLAST
|
||||
.4byte BattleScript_EffectCourtChange @ EFFECT_COURT_CHANGE
|
||||
.4byte BattleScript_EffectSteelBeam @ EFFECT_STEEL_BEAM
|
||||
.4byte BattleScript_EffectExtremeEvoboost @ EFFECT_EXTREME_EVOBOOST
|
||||
.4byte BattleScript_EffectTerrainHit @ EFFECT_DAMAGE_SET_TERRAIN
|
||||
|
||||
BattleScript_EffectSteelBeam::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
accuracycheck BattleScript_SteelBeamMiss, ACC_CURR_MOVE
|
||||
critcalc
|
||||
damagecalc
|
||||
adjustdamage
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
critmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
seteffectwithchance
|
||||
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_SteelBeamAfterSelfDamage
|
||||
call BattleScript_SteelBeamSelfDamage
|
||||
BattleScript_SteelBeamAfterSelfDamage::
|
||||
waitstate
|
||||
tryfaintmon BS_ATTACKER
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_SteelBeamMiss::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
effectivenesssound
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_MoveEnd
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
||||
call BattleScript_SteelBeamSelfDamage
|
||||
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
||||
goto BattleScript_SteelBeamAfterSelfDamage
|
||||
|
||||
BattleScript_SteelBeamSelfDamage::
|
||||
dmg_1_2_attackerhp
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
return
|
||||
|
||||
BattleScript_EffectCourtChange::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
swapsidestatuses
|
||||
attackanimation
|
||||
waitanimation
|
||||
printstring STRINGID_COURTCHANGE
|
||||
waitmessage 0x40
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_BeakBlastSetUp::
|
||||
setbeakblast BS_ATTACKER
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 0x1
|
||||
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
|
||||
printstring STRINGID_HEATUPBEAK
|
||||
waitmessage 0x40
|
||||
end2
|
||||
|
||||
BattleScript_BeakBlastBurn::
|
||||
setbyte cMULTISTRING_CHOOSER, 0
|
||||
copybyte gEffectBattler, gBattlerAttacker
|
||||
call BattleScript_MoveEffectBurn
|
||||
return
|
||||
|
||||
BattleScript_EffectMeteorBeam::
|
||||
@ DecideTurn
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
||||
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
||||
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_METEOR_BEAM
|
||||
call BattleScript_FirstChargingTurnMeteorBeam
|
||||
jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd
|
||||
call BattleScript_PowerHerbActivation
|
||||
goto BattleScript_TwoTurnMovesSecondTurn
|
||||
|
||||
BattleScript_FirstChargingTurnMeteorBeam::
|
||||
attackcanceler
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
ppreduce
|
||||
attackanimation
|
||||
waitanimation
|
||||
orword gHitMarker, HITMARKER_CHARGING
|
||||
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
|
||||
seteffectprimary
|
||||
copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
|
||||
printfromtable gFirstTurnOfTwoStringIds
|
||||
waitmessage 0x40
|
||||
setmoveeffect MOVE_EFFECT_SP_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
|
||||
seteffectsecondary
|
||||
return
|
||||
|
||||
BattleScript_EffectScaleShot::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
setmultihitcounter 0x0
|
||||
initmultihitstring
|
||||
sethword sMULTIHIT_EFFECT, 0x0
|
||||
BattleScript_ScaleShotLoop::
|
||||
jumpifhasnohp BS_ATTACKER, BattleScript_ScaleShotEnd
|
||||
jumpifhasnohp BS_TARGET, BattleScript_ScaleShotPrintStrings
|
||||
jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_ScaleShotDoMultiHit
|
||||
jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_ScaleShotPrintStrings
|
||||
BattleScript_ScaleShotDoMultiHit::
|
||||
movevaluescleanup
|
||||
copyhword sMOVE_EFFECT, sMULTIHIT_EFFECT
|
||||
critcalc
|
||||
damagecalc
|
||||
jumpifmovehadnoeffect BattleScript_ScaleShotMultiHitNoMoreHits
|
||||
adjustdamage
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
critmessage
|
||||
waitmessage 0x40
|
||||
multihitresultmessage
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 0x1
|
||||
addbyte sMULTIHIT_STRING + 4, 0x1
|
||||
moveendto MOVEEND_NEXT_TARGET
|
||||
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_ScaleShotPrintStrings
|
||||
decrementmultihit BattleScript_ScaleShotLoop
|
||||
goto BattleScript_ScaleShotPrintStrings
|
||||
BattleScript_ScaleShotMultiHitNoMoreHits::
|
||||
pause 0x20
|
||||
BattleScript_ScaleShotPrintStrings::
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
jumpifmovehadnoeffect BattleScript_ScaleShotEnd
|
||||
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
|
||||
printstring STRINGID_HITXTIMES
|
||||
waitmessage 0x40
|
||||
BattleScript_ScaleShotEnd::
|
||||
setmoveeffect MOVE_EFFECT_SCALE_SHOT | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
|
||||
seteffectwithchance
|
||||
tryfaintmon BS_TARGET
|
||||
moveendcase MOVEEND_SYNCHRONIZE_TARGET
|
||||
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
|
||||
end
|
||||
|
||||
BattleScript_EffectSkyDrop:
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
|
||||
@ -562,7 +722,7 @@ BattleScript_EffectPhotonGeyser:
|
||||
critcalc
|
||||
damagecalc
|
||||
adjustdamage
|
||||
photongeysercheck
|
||||
photongeysercheck BS_ATTACKER
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
@ -1159,6 +1319,7 @@ BattleScript_StrengthSapTryHp:
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_StrengthSapHp:
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveEnd
|
||||
jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
healthbarupdate BS_ATTACKER
|
||||
@ -2227,7 +2388,7 @@ BattleScript_EffectPsychicTerrain:
|
||||
waitanimation
|
||||
printfromtable gTerrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
call BattleScript_TerrainSeedLoop
|
||||
jumpifabilitypresent ABILITY_MIMICRY, BattleScript_ApplyMimicry
|
||||
goto BattleScript_MoveEnd
|
||||
@ -2296,6 +2457,8 @@ BattleScript_EffectHealPulse:
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
|
||||
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
|
||||
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
tryhealpulse BS_TARGET, BattleScript_AlreadyAtFullHp
|
||||
@ -2990,6 +3153,7 @@ BattleScript_EffectAbsorb::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_AbsorbHealBlock
|
||||
setdrainedhp
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
||||
@ -3009,6 +3173,7 @@ BattleScript_AbsorbUpdateHp::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_AbsorbTryFainting::
|
||||
tryfaintmon BS_ATTACKER
|
||||
BattleScript_AbsorbHealBlock::
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
@ -3115,6 +3280,7 @@ BattleScript_DreamEaterWorked:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_DreamEaterTryFaintEnd
|
||||
setdrainedhp
|
||||
manipulatedamage DMG_BIG_ROOT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
@ -4420,7 +4586,11 @@ BattleScript_NightmareWorked::
|
||||
BattleScript_EffectMinimize::
|
||||
attackcanceler
|
||||
setminimize
|
||||
.if B_MINIMIZE_EVASION >= GEN_5
|
||||
setstatchanger STAT_EVASION, 2, FALSE
|
||||
.else
|
||||
setstatchanger STAT_EVASION, 1, FALSE
|
||||
.endif
|
||||
goto BattleScript_EffectStatUpAfterAtkCanceler
|
||||
|
||||
BattleScript_EffectCurse::
|
||||
@ -5370,6 +5540,7 @@ BattleScript_EffectCharge::
|
||||
setcharge
|
||||
attackanimation
|
||||
waitanimation
|
||||
.if B_CHARGE_SPDEF_RAISE >= GEN_5
|
||||
setstatchanger STAT_SPDEF, 1, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectChargeString
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectChargeString
|
||||
@ -5378,6 +5549,7 @@ BattleScript_EffectCharge::
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_EffectChargeString:
|
||||
.endif
|
||||
printstring STRINGID_PKMNCHARGINGPOWER
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
@ -6092,12 +6264,30 @@ BattleScript_LocalBattleLost::
|
||||
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
|
||||
jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd
|
||||
BattleScript_LocalBattleLostPrintWhiteOut::
|
||||
.if B_WHITEOUT_MONEY >= GEN_4
|
||||
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostEnd
|
||||
printstring STRINGID_PLAYERWHITEOUT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
getmoneyreward
|
||||
printstring STRINGID_PLAYERWHITEOUT2
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
BattleScript_LocalBattleLostEnd::
|
||||
printstring STRINGID_PLAYERLOSTTOENEMYTRAINER
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
getmoneyreward
|
||||
printstring STRINGID_PLAYERPAIDPRIZEMONEY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
.else
|
||||
printstring STRINGID_PLAYERWHITEOUT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
printstring STRINGID_PLAYERWHITEOUT2
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_LocalBattleLostEnd::
|
||||
end2
|
||||
.endif
|
||||
|
||||
BattleScript_CheckDomeDrew::
|
||||
jumpifbyte CMP_EQUAL, gBattleOutcome, B_OUTCOME_DREW, BattleScript_LocalBattleLostEnd_
|
||||
BattleScript_LocalBattleLostPrintTrainersWinText::
|
||||
@ -6339,9 +6529,11 @@ BattleScript_LearnMoveReturn::
|
||||
BattleScript_RainContinuesOrEnds::
|
||||
printfromtable gRainContinuesStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainEnds
|
||||
playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES
|
||||
BattleScript_RainContinuesOrEndsEnd::
|
||||
end2
|
||||
BattleScript_RainEnds::
|
||||
call BattleScript_WeatherFormChanges
|
||||
end2
|
||||
|
||||
BattleScript_DamagingWeatherContinues::
|
||||
@ -6380,6 +6572,7 @@ BattleScript_DamagingWeatherContinuesEnd::
|
||||
BattleScript_SandStormHailEnds::
|
||||
printfromtable gSandStormHailEndStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_WeatherFormChanges
|
||||
end2
|
||||
|
||||
BattleScript_SunlightContinues::
|
||||
@ -6391,6 +6584,7 @@ BattleScript_SunlightContinues::
|
||||
BattleScript_SunlightFaded::
|
||||
printstring STRINGID_SUNLIGHTFADED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_WeatherFormChanges
|
||||
end2
|
||||
|
||||
BattleScript_OverworldWeatherStarts::
|
||||
@ -6760,6 +6954,7 @@ BattleScript_ToxicSpikesPoisoned::
|
||||
BattleScript_StickyWebOnSwitchIn::
|
||||
savetarget
|
||||
copybyte gBattlerTarget, sBATTLER
|
||||
setbyte sSTICKY_WEB_STAT_DROP, 1
|
||||
printstring STRINGID_STICKYWEBSWITCHIN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifability BS_TARGET, ABILITY_MIRROR_ARMOR, BattleScript_MirrorArmorReflectStickyWeb
|
||||
@ -7168,6 +7363,26 @@ BattleScript_DefSpDefDownTrySpDef::
|
||||
BattleScript_DefSpDefDownRet::
|
||||
return
|
||||
|
||||
BattleScript_DefDownSpeedUp::
|
||||
jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_DefDownSpeedUpTryDef
|
||||
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_DefDownSpeedUpRet
|
||||
BattleScript_DefDownSpeedUpTryDef::
|
||||
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
|
||||
setstatchanger STAT_DEF, 1, TRUE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_DefDownSpeedUpTrySpeed
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpTrySpeed
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DefDownSpeedUpTrySpeed:
|
||||
playstatchangeanimation BS_ATTACKER, BIT_SPEED, 0
|
||||
setstatchanger STAT_SPEED, 1, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_DefDownSpeedUpRet
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DefDownSpeedUpRet
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DefDownSpeedUpRet::
|
||||
return
|
||||
|
||||
BattleScript_KnockedOff::
|
||||
playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF
|
||||
printstring STRINGID_PKMNKNOCKEDOFF
|
||||
@ -7791,7 +8006,7 @@ BattleScript_DrizzleActivates::
|
||||
call BattleScript_WeatherFormChanges
|
||||
end3
|
||||
|
||||
BattleScript_DefiantActivates::
|
||||
BattleScript_AbilityRaisesDefenderStat::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
statbuffchange 0, NULL
|
||||
@ -8071,8 +8286,10 @@ BattleScript_DesolateLandEvaporatesWaterTypeMoves::
|
||||
attackstring
|
||||
pause B_WAIT_TIME_SHORT
|
||||
ppreduce
|
||||
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_STRING_PRINTED, BattleScript_MoveEnd
|
||||
printstring STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_STRING_PRINTED
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_PrimordialSeaActivates::
|
||||
@ -8089,8 +8306,10 @@ BattleScript_PrimordialSeaFizzlesOutFireTypeMoves::
|
||||
attackstring
|
||||
pause B_WAIT_TIME_SHORT
|
||||
ppreduce
|
||||
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_STRING_PRINTED, BattleScript_MoveEnd
|
||||
printstring STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_STRING_PRINTED
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_DeltaStreamActivates::
|
||||
@ -8301,6 +8520,13 @@ BattleScript_ObliviousPreventsAttraction::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_FlinchPrevention::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_PKMNSXPREVENTSFLINCHING
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_OwnTempoPrevents::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
@ -9288,6 +9514,124 @@ BattleScript_JabocaRowapBerryActivate_Dmg:
|
||||
removeitem BS_TARGET
|
||||
return
|
||||
|
||||
@ z moves / effects
|
||||
BattleScript_ZMoveActivateDamaging::
|
||||
printstring STRINGID_ZPOWERSURROUNDS
|
||||
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
|
||||
printstring STRINGID_ZMOVEUNLEASHED
|
||||
waitmessage 0x40
|
||||
return
|
||||
|
||||
BattleScript_ZMoveActivateStatus::
|
||||
savetarget
|
||||
printstring STRINGID_ZPOWERSURROUNDS
|
||||
playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL
|
||||
setzeffect
|
||||
restoretarget
|
||||
copybyte sSTATCHANGER, sSAVED_STAT_CHANGER
|
||||
return
|
||||
|
||||
BattleScript_ZEffectPrintString::
|
||||
printfromtable gZEffectStringIds
|
||||
waitmessage 0x40
|
||||
return
|
||||
|
||||
BattleScript_RecoverHPZMove::
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printfromtable gZEffectStringIds
|
||||
waitmessage 0x40
|
||||
return
|
||||
|
||||
BattleScript_StatUpZMove::
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StatUpZMoveEnd
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpZMoveEnd
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
printstring STRINGID_ZMOVESTATUP
|
||||
waitmessage 0x40
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_StatUpZMoveEnd:
|
||||
return
|
||||
|
||||
BattleScript_HealReplacementZMove::
|
||||
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
|
||||
printfromtable gZEffectStringIds
|
||||
waitmessage 0x40
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
return
|
||||
|
||||
BattleScript_EffectExtremeEvoboost::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
||||
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
||||
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
||||
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
||||
jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_ExtremeEvoboostAnim
|
||||
goto BattleScript_ButItFailed
|
||||
BattleScript_ExtremeEvoboostAnim:
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_ExtremeEvoboostAtk::
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
|
||||
setstatchanger STAT_ATK, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostDef
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_ExtremeEvoboostDef::
|
||||
setstatchanger STAT_DEF, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpeed
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_ExtremeEvoboostSpeed::
|
||||
setstatchanger STAT_SPEED, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpAtk
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_ExtremeEvoboostSpAtk::
|
||||
setstatchanger STAT_SPATK, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostSpDef
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_ExtremeEvoboostSpDef::
|
||||
setstatchanger STAT_SPDEF, 2, FALSE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ExtremeEvoboostEnd
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_ExtremeEvoboostEnd::
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectTerrainHit:
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
critcalc
|
||||
damagecalc
|
||||
adjustdamage
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
critmessage
|
||||
waitmessage 0x40
|
||||
resultmessage
|
||||
waitmessage 0x40
|
||||
setterrain BattleScript_TryFaint
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
printfromtable gTerrainStringIds
|
||||
BattleScript_TryFaint:
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_Pickpocket::
|
||||
call BattleScript_AbilityPopUp
|
||||
jumpifability BS_ATTACKER, ABILITY_STICKY_HOLD, BattleScript_PickpocketPrevented
|
||||
|
@ -5,6 +5,10 @@
|
||||
.set LOCALID_PLAYER, 13
|
||||
.set LOCALID_OPPONENT, 15
|
||||
|
||||
.set NO_DRAW, 0
|
||||
.set DRAW_TRAINER, 1
|
||||
.set DRAW_TUCKER, 2
|
||||
|
||||
BattleFrontier_BattleDomeBattleRoom_MapScripts::
|
||||
map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition
|
||||
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame
|
||||
@ -12,10 +16,6 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts::
|
||||
map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_OnResume
|
||||
.byte 0
|
||||
|
||||
.set NO_DRAW, 0
|
||||
.set DRAW_TRAINER, 1
|
||||
.set DRAW_TUCKER, 2
|
||||
|
||||
BattleFrontier_BattleDomeBattleRoom_OnTransition:
|
||||
dome_setopponentgfx
|
||||
frontier_get FRONTIER_DATA_BATTLE_NUM
|
||||
|
@ -364,7 +364,8 @@ BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints2:
|
||||
@ Unused
|
||||
BattleFrontier_BattlePikeLobby_Text_ReachedBattlePointLimit:
|
||||
.string "You appear to have reached the limit\n"
|
||||
.string "for Battle Points…\pPlease exchange some Battle Points\n"
|
||||
.string "for Battle Points…\p"
|
||||
.string "Please exchange some Battle Points\n"
|
||||
.string "for prizes, then return…$"
|
||||
|
||||
BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting:
|
||||
|
@ -22,18 +22,20 @@ BattleFrontier_Lounge2_EventScript_AlreadyMetManiac::
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge2_EventScript_GiveAdvice::
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 0, BattleFrontier_Lounge2_EventScript_BufferSingle
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 1, BattleFrontier_Lounge2_EventScript_BufferDouble
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 2, BattleFrontier_Lounge2_EventScript_BufferMulti
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BufferMultiLink
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_BufferBattleDome
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 5, BattleFrontier_Lounge2_EventScript_BufferBattleFactory
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 6, BattleFrontier_Lounge2_EventScript_BufferBattlePalace
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 7, BattleFrontier_Lounge2_EventScript_BufferBattleArena
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 8, BattleFrontier_Lounge2_EventScript_BufferBattlePike
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 9, BattleFrontier_Lounge2_EventScript_BufferBattlePyramid
|
||||
call_if_le VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BattleTowerNews
|
||||
call_if_ge VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_FacilityNews
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_SINGLES, BattleFrontier_Lounge2_EventScript_BufferSingle
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_DOUBLES, BattleFrontier_Lounge2_EventScript_BufferDouble
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_MULTIS, BattleFrontier_Lounge2_EventScript_BufferMulti
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_LINK, BattleFrontier_Lounge2_EventScript_BufferMultiLink
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_DOME, BattleFrontier_Lounge2_EventScript_BufferBattleDome
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_FACTORY, BattleFrontier_Lounge2_EventScript_BufferBattleFactory
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PALACE, BattleFrontier_Lounge2_EventScript_BufferBattlePalace
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_ARENA, BattleFrontier_Lounge2_EventScript_BufferBattleArena
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PIKE, BattleFrontier_Lounge2_EventScript_BufferBattlePike
|
||||
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PYRAMID, BattleFrontier_Lounge2_EventScript_BufferBattlePyramid
|
||||
@ <= FRONTIER_MANIAC_TOWER_LINK is any Battle Tower mode
|
||||
call_if_le VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_LINK, BattleFrontier_Lounge2_EventScript_BattleTowerNews
|
||||
@ >= FRONTIER_MANIAC_DOME is any facility other than Battle Tower
|
||||
call_if_ge VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_DOME, BattleFrontier_Lounge2_EventScript_FacilityNews
|
||||
special ShowFrontierManiacMessage
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
|
@ -157,7 +157,7 @@ TrainerHill_Entrance_EventScript_ChooseChallenge::
|
||||
switch VAR_RESULT
|
||||
case 4, TrainerHill_Entrance_EventScript_CancelEntry
|
||||
case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry
|
||||
trainerhill_settag VAR_RESULT
|
||||
trainerhill_setmode VAR_RESULT
|
||||
setvar VAR_TRAINER_HILL_IS_ACTIVE, 1
|
||||
setvar VAR_TEMP_5, 0
|
||||
special HealPlayerParty
|
||||
|
@ -12,7 +12,7 @@ MysteryGiftScript_AlteringCave_:
|
||||
release
|
||||
end
|
||||
|
||||
sText_MysteryGiftAlteringCave::
|
||||
sText_MysteryGiftAlteringCave:
|
||||
.string "Thank you for using the MYSTERY\n"
|
||||
.string "GIFT System.\p"
|
||||
.string "There appears to be a rumor about\n"
|
||||
|
@ -4,145 +4,192 @@ gText_HighlyAppealingMove::
|
||||
.string "A highly appealing move.$"
|
||||
|
||||
gText_UserMoreEasilyStartled::
|
||||
.string "After this move, the user is\nmore easily startled.$"
|
||||
.string "After this move, the user is\n"
|
||||
.string "more easily startled.$"
|
||||
|
||||
gText_GreatAppealButNoMoreToEnd::
|
||||
.string "Makes a great appeal, but\nallows no more to the end.$"
|
||||
.string "Makes a great appeal, but\n"
|
||||
.string "allows no more to the end.$"
|
||||
|
||||
gText_UsedRepeatedlyWithoutBoringJudge::
|
||||
.string "Can be repeatedly used\nwithout boring the JUDGE.$"
|
||||
.string "Can be repeatedly used\n"
|
||||
.string "without boring the JUDGE.$"
|
||||
|
||||
gText_AvoidStartledByOthersOnce::
|
||||
.string "Can avoid being startled\nby others once.$"
|
||||
.string "Can avoid being startled\n"
|
||||
.string "by others once.$"
|
||||
|
||||
gText_AvoidStartledByOthers::
|
||||
.string "Can avoid being startled\nby others.$"
|
||||
.string "Can avoid being startled\n"
|
||||
.string "by others.$"
|
||||
|
||||
gText_AvoidStartledByOthersLittle::
|
||||
.string "Can avoid being startled\nby others a little.$"
|
||||
.string "Can avoid being startled\n"
|
||||
.string "by others a little.$"
|
||||
|
||||
gText_UserLessLikelyStartled::
|
||||
.string "After this move, the user is\nless likely to be startled.$"
|
||||
.string "After this move, the user is\n"
|
||||
.string "less likely to be startled.$"
|
||||
|
||||
gText_SlightlyStartleFrontMon::
|
||||
.string "Slightly startles the\nPOKéMON in front.$"
|
||||
.string "Slightly startles the\n"
|
||||
.string "POKéMON in front.$"
|
||||
|
||||
gText_SlightlyStartleAppealed::
|
||||
.string "Slightly startles those\nthat have made appeals.$"
|
||||
.string "Slightly startles those\n"
|
||||
.string "that have made appeals.$"
|
||||
|
||||
gText_StartleAppealedBeforeUser::
|
||||
.string "Startles the POKéMON that\nappealed before the user.$"
|
||||
.string "Startles the POKéMON that\n"
|
||||
.string "appealed before the user.$"
|
||||
|
||||
gText_StartleAllAppealed::
|
||||
.string "Startles all POKéMON that\nhave done their appeals.$"
|
||||
.string "Startles all POKéMON that\n"
|
||||
.string "have done their appeals.$"
|
||||
|
||||
gText_BadlyStartleFrontMon::
|
||||
.string "Badly startles the\nPOKéMON in front.$"
|
||||
.string "Badly startles the\n"
|
||||
.string "POKéMON in front.$"
|
||||
|
||||
gText_BadlyStartleAppealed::
|
||||
.string "Badly startles those that\nhave made appeals.$"
|
||||
.string "Badly startles those that\n"
|
||||
.string "have made appeals.$"
|
||||
|
||||
gText_StartleAppealedBeforeUser2::
|
||||
.string "Startles the POKéMON that\nappealed before the user.$"
|
||||
.string "Startles the POKéMON that\n"
|
||||
.string "appealed before the user.$"
|
||||
|
||||
gText_StartleAllAppealed2::
|
||||
.string "Startles all POKéMON that\nhave done their appeals.$"
|
||||
.string "Startles all POKéMON that\n"
|
||||
.string "have done their appeals.$"
|
||||
|
||||
gText_ShiftJudgesAttentionFromOthers::
|
||||
.string "Shifts the JUDGE's\nattention from others.$"
|
||||
.string "Shifts the JUDGE's\n"
|
||||
.string "attention from others.$"
|
||||
|
||||
gText_StartleMonHasJudgesAttention::
|
||||
.string "Startles the POKéMON that\nhas the JUDGE's attention.$"
|
||||
.string "Startles the POKéMON that\n"
|
||||
.string "has the JUDGE's attention.$"
|
||||
|
||||
gText_JamOthersMissesTurn::
|
||||
.string "Jams the others, and misses\none turn of appeals.$"
|
||||
.string "Jams the others, and misses\n"
|
||||
.string "one turn of appeals.$"
|
||||
|
||||
gText_StartleMonsMadeSameTypeAppeal::
|
||||
.string "Startles POKéMON that\nmade a same-type appeal.$"
|
||||
.string "Startles POKéMON that\n"
|
||||
.string "made a same-type appeal.$"
|
||||
|
||||
gText_BadlyStartleCoolAppeals::
|
||||
.string "Badly startles POKéMON\nthat made COOL appeals.$"
|
||||
.string "Badly startles POKéMON\n"
|
||||
.string "that made COOL appeals.$"
|
||||
|
||||
gText_BadlyStartleBeautyAppeals::
|
||||
.string "Badly startles POKéMON\nthat made BEAUTY appeals.$"
|
||||
.string "Badly startles POKéMON\n"
|
||||
.string "that made BEAUTY appeals.$"
|
||||
|
||||
gText_BadlyStartleCuteAppeals::
|
||||
.string "Badly startles POKéMON\nthat made CUTE appeals.$"
|
||||
.string "Badly startles POKéMON\n"
|
||||
.string "that made CUTE appeals.$"
|
||||
|
||||
gText_BadlyStartleSmartAppeals::
|
||||
.string "Badly startles POKéMON\nthat made SMART appeals.$"
|
||||
.string "Badly startles POKéMON\n"
|
||||
.string "that made SMART appeals.$"
|
||||
|
||||
gText_BadlyStartleToughAppeals::
|
||||
.string "Badly startles POKéMON\nthat made TOUGH appeals.$"
|
||||
.string "Badly startles POKéMON\n"
|
||||
.string "that made TOUGH appeals.$"
|
||||
|
||||
gText_MakeMonAfterUserNervous::
|
||||
.string "Makes one POKéMON after\nthe user nervous.$"
|
||||
.string "Makes one POKéMON after\n"
|
||||
.string "the user nervous.$"
|
||||
|
||||
gText_MakeAllMonsAfterUserNervous::
|
||||
.string "Makes all POKéMON after\nthe user nervous.$"
|
||||
.string "Makes all POKéMON after\n"
|
||||
.string "the user nervous.$"
|
||||
|
||||
gText_WorsenConditionOfThoseMadeAppeals::
|
||||
.string "Worsens the condition of\nthose that made appeals.$"
|
||||
.string "Worsens the condition of\n"
|
||||
.string "those that made appeals.$"
|
||||
|
||||
gText_BadlyStartleMonsGoodCondition::
|
||||
.string "Badly startles POKéMON in\ngood condition.$"
|
||||
.string "Badly startles POKéMON in\n"
|
||||
.string "good condition.$"
|
||||
|
||||
gText_AppealGreatIfPerformedFirst::
|
||||
.string "The appeal works great if\nperformed first.$"
|
||||
.string "The appeal works great if\n"
|
||||
.string "performed first.$"
|
||||
|
||||
gText_AppealGreatIfPerformedLast::
|
||||
.string "The appeal works great if\nperformed last.$"
|
||||
.string "The appeal works great if\n"
|
||||
.string "performed last.$"
|
||||
|
||||
gText_AppealAsGoodAsThoseBeforeIt::
|
||||
.string "Makes the appeal as good\nas those before it.$"
|
||||
.string "Makes the appeal as good\n"
|
||||
.string "as those before it.$"
|
||||
|
||||
gText_AppealAsGoodAsOneBeforeIt::
|
||||
.string "Makes the appeal as good\nas the one before it.$"
|
||||
.string "Makes the appeal as good\n"
|
||||
.string "as the one before it.$"
|
||||
|
||||
gText_AppealBetterLaterItsPerformed::
|
||||
.string "The appeal works better\nthe later it is performed.$"
|
||||
.string "The appeal works better\n"
|
||||
.string "the later it is performed.$"
|
||||
|
||||
gText_AppealVariesDependingOnTiming::
|
||||
.string "The appeal's quality varies\ndepending on its timing.$"
|
||||
.string "The appeal's quality varies\n"
|
||||
.string "depending on its timing.$"
|
||||
|
||||
gText_WorksWellIfSameTypeAsBefore::
|
||||
.string "Works well if it's the same\ntype as the one before.$"
|
||||
.string "Works well if it's the same\n"
|
||||
.string "type as the one before.$"
|
||||
|
||||
gText_WorksWellIfDifferentTypeAsBefore::
|
||||
.string "Works well if different in\ntype than the one before.$"
|
||||
.string "Works well if different in\n"
|
||||
.string "type than the one before.$"
|
||||
|
||||
gText_AffectedByAppealInFront::
|
||||
.string "Affected by how well the\nappeal in front goes.$"
|
||||
.string "Affected by how well the\n"
|
||||
.string "appeal in front goes.$"
|
||||
|
||||
gText_UpsConditionHelpsPreventNervousness::
|
||||
.string "Ups the user's condition.\nHelps prevent nervousness.$"
|
||||
.string "Ups the user's condition.\n"
|
||||
.string "Helps prevent nervousness.$"
|
||||
|
||||
gText_AppealWorksWellIfConditionGood::
|
||||
.string "The appeal works well if the\nuser's condition is good.$"
|
||||
.string "The appeal works well if the\n"
|
||||
.string "user's condition is good.$"
|
||||
|
||||
gText_NextAppealMadeEarlier::
|
||||
.string "The next appeal can be\nmade earlier next turn.$"
|
||||
.string "The next appeal can be\n"
|
||||
.string "made earlier next turn.$"
|
||||
|
||||
gText_NextAppealMadeLater::
|
||||
.string "The next appeal can be\nmade later next turn.$"
|
||||
.string "The next appeal can be\n"
|
||||
.string "made later next turn.$"
|
||||
|
||||
gText_TurnOrderMoreEasilyScrambled::
|
||||
.string "Makes the next turn's order\nmore easily scrambled.$"
|
||||
.string "Makes the next turn's order\n"
|
||||
.string "more easily scrambled.$"
|
||||
|
||||
gText_ScrambleOrderOfNextAppeals::
|
||||
.string "Scrambles the order of\nappeals on the next turn.$"
|
||||
.string "Scrambles the order of\n"
|
||||
.string "appeals on the next turn.$"
|
||||
|
||||
gText_AppealExcitesAudienceInAnyContest::
|
||||
.string "An appeal that excites the\naudience in any CONTEST.$"
|
||||
.string "An appeal that excites the\n"
|
||||
.string "audience in any CONTEST.$"
|
||||
|
||||
gText_BadlyStartlesMonsGoodAppeals::
|
||||
.string "Badly startles all POKéMON\nthat made good appeals.$"
|
||||
.string "Badly startles all POKéMON\n"
|
||||
.string "that made good appeals.$"
|
||||
|
||||
gText_AppealBestMoreCrowdExcited::
|
||||
.string "The appeal works best the\nmore the crowd is excited.$"
|
||||
.string "The appeal works best the\n"
|
||||
.string "more the crowd is excited.$"
|
||||
|
||||
gText_TemporarilyStopCrowdExcited::
|
||||
.string "Temporarily stops the\ncrowd from growing excited.$"
|
||||
.string "Temporarily stops the\n"
|
||||
.string "crowd from growing excited.$"
|
||||
|
||||
@ Unused move names
|
||||
|
||||
|
@ -5,7 +5,8 @@ gText_PkmnTransferredSomeonesPC::
|
||||
.string "BOX “{STR_VAR_1}.”$"
|
||||
|
||||
gText_PkmnTransferredLanettesPC::
|
||||
.string "{STR_VAR_2} was transferred to\nLANETTE'S PC.\p"
|
||||
.string "{STR_VAR_2} was transferred to\n"
|
||||
.string "LANETTE'S PC.\p"
|
||||
.string "It was placed in \n"
|
||||
.string "BOX “{STR_VAR_1}.”$"
|
||||
|
||||
|
@ -3,7 +3,7 @@ gBirchDexRatingText_AreYouCurious::
|
||||
.string "Are you curious about how your\n"
|
||||
.string "POKéDEX is coming along?$"
|
||||
|
||||
gBirchDexRatingText_Cancel:
|
||||
gBirchDexRatingText_Cancel::
|
||||
.string "Hm? Oh, you haven't caught enough\n"
|
||||
.string "POKéMON to make it worthwhile.$"
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
gText_WantToUseSurf::
|
||||
.string "The water is dyed a deep blue…\nWould you like to SURF?$"
|
||||
.string "The water is dyed a deep blue…\n"
|
||||
.string "Would you like to SURF?$"
|
||||
|
||||
gText_PlayerUsedSurf::
|
||||
.string "{STR_VAR_1} used SURF!$"
|
||||
|
@ -166,7 +166,7 @@ BattleFrontier_BattleTowerLobby_Text_LookingForwardToNextBattle::
|
||||
.string "I'll be looking forward to your\n"
|
||||
.string "next battle!$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText00::
|
||||
BravoTrainerBattleTower_Text_Intro::
|
||||
.string "Yeah!\n"
|
||||
.string "It's BRAVO TRAINER time!\p"
|
||||
.string "Today, we're going to profile {STR_VAR_1},\n"
|
||||
@ -174,12 +174,12 @@ gTVBravoTrainerBattleTowerText00::
|
||||
.string "For the challenge, {STR_VAR_1} entered\n"
|
||||
.string "one wicked {STR_VAR_2}.$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText01::
|
||||
BravoTrainerBattleTower_Text_NewRecord::
|
||||
.string "The pair set a new record of {STR_VAR_2} wins\n"
|
||||
.string "in a row in {STR_VAR_1} competition!\l"
|
||||
.string "Bravo, TRAINER!$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText02::
|
||||
BravoTrainerBattleTower_Text_Lost::
|
||||
.string "The twosome finally succumbed to\n"
|
||||
.string "{STR_VAR_1} in match number {STR_VAR_2}.\l"
|
||||
.string "Nice try, TRAINER!\p"
|
||||
@ -188,7 +188,7 @@ gTVBravoTrainerBattleTowerText02::
|
||||
.string "We asked the TRAINER for impressions\n"
|
||||
.string "on the match with {STR_VAR_1}.$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText03::
|
||||
BravoTrainerBattleTower_Text_Won::
|
||||
.string "The twosome won it all by defeating\n"
|
||||
.string "{STR_VAR_1}'s {STR_VAR_2} thoroughly.\l"
|
||||
.string "Bravo, TRAINER!\p"
|
||||
@ -197,7 +197,7 @@ gTVBravoTrainerBattleTowerText03::
|
||||
.string "We asked the TRAINER for impressions\n"
|
||||
.string "on the moment of glory.$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText04::
|
||||
BravoTrainerBattleTower_Text_LostFinal::
|
||||
.string "After a string of wins, the pair finally\n"
|
||||
.string "succumbed to {STR_VAR_1}'s {STR_VAR_2},\l"
|
||||
.string "their final hurdle.\p"
|
||||
@ -208,7 +208,7 @@ gTVBravoTrainerBattleTowerText04::
|
||||
.string "We asked the TRAINER for impressions\n"
|
||||
.string "on battling the celebrity pair.$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText05::
|
||||
BravoTrainerBattleTower_Text_Satisfied::
|
||||
.string "This is what the TRAINER had to say:\n"
|
||||
.string "“I'm satisfied!”\p"
|
||||
.string "Now isn't that a refreshing reply?\n"
|
||||
@ -218,7 +218,7 @@ gTVBravoTrainerBattleTowerText05::
|
||||
.string "I found out exactly how satisfied\n"
|
||||
.string "when I heard the TRAINER say this:$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText06::
|
||||
BravoTrainerBattleTower_Text_Unsatisfied::
|
||||
.string "This is what the TRAINER had to say:\n"
|
||||
.string "“I'm not satisfied…”\p"
|
||||
.string "Our TRAINER was obviously a little down\n"
|
||||
@ -228,22 +228,22 @@ gTVBravoTrainerBattleTowerText06::
|
||||
.string "Anyway, I found out how dissatisfied\n"
|
||||
.string "our TRAINER was when I heard this:$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText07::
|
||||
BravoTrainerBattleTower_Text_None1::
|
||||
.string "None$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText08::
|
||||
BravoTrainerBattleTower_Text_None2::
|
||||
.string "None$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText09::
|
||||
BravoTrainerBattleTower_Text_None3::
|
||||
.string "None$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText10::
|
||||
BravoTrainerBattleTower_Text_None4::
|
||||
.string "None$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText11::
|
||||
BravoTrainerBattleTower_Text_Response::
|
||||
.string "“{STR_VAR_1}.”$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText12::
|
||||
BravoTrainerBattleTower_Text_ResponseSatisfied::
|
||||
.string "“{STR_VAR_1}.”\n"
|
||||
.string "Now isn't that great?\p"
|
||||
.string "It really expresses {STR_VAR_2}'s joy,\n"
|
||||
@ -252,7 +252,7 @@ gTVBravoTrainerBattleTowerText12::
|
||||
.string "end… It really was what you'd call\l"
|
||||
.string "“{STR_VAR_1}”!$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText13::
|
||||
BravoTrainerBattleTower_Text_ResponseUnsatisfied::
|
||||
.string "“{STR_VAR_1}.”\n"
|
||||
.string "Now isn't that fitting?\p"
|
||||
.string "That battle with {STR_VAR_3} at the\n"
|
||||
@ -261,7 +261,7 @@ gTVBravoTrainerBattleTowerText13::
|
||||
.string "{STR_VAR_2}'s disappointment comes across\n"
|
||||
.string "loud and clear, I'd say!$"
|
||||
|
||||
gTVBravoTrainerBattleTowerText14::
|
||||
BravoTrainerBattleTower_Text_Outro::
|
||||
.string "Bravo, {STR_VAR_1}!\n"
|
||||
.string "Bravo, {STR_VAR_2}!\p"
|
||||
.string "I hope we can count on seeing\n"
|
||||
|
@ -1,51 +0,0 @@
|
||||
|
||||
# Bugs and Glitches
|
||||
|
||||
These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` and `UBFIX` preprocessor variables will fix some of these automatically. `UBFIX` will already be defined for MODERN builds.
|
||||
|
||||
Fixes are written in the `diff` format. If you've used Git before, this should look familiar:
|
||||
|
||||
```diff
|
||||
this is some code
|
||||
-delete red - lines
|
||||
+add green + lines
|
||||
```
|
||||
|
||||
## Contents
|
||||
|
||||
- [Scrolling through items in the bag causes the image to flicker](#scrolling-through-items-in-the-bag-causes-the-image-to-flicker)
|
||||
|
||||
|
||||
## Scrolling through items in the bag causes the image to flicker
|
||||
|
||||
**Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c):
|
||||
```diff
|
||||
+void HideBagItemIconSprite(u8 id)
|
||||
+{
|
||||
+ u8 *spriteId = &gBagMenu->spriteId[10];
|
||||
+ if (spriteId[id] != 0xFF)
|
||||
+ {
|
||||
+ gSprites[spriteId[id]].invisible = TRUE;
|
||||
+ }
|
||||
+}
|
||||
|
||||
```
|
||||
|
||||
and its corresponding declaration in [include/item_menu_icons.h](https://github.com/pret/pokeemerald/blob/master/include/item_menu_icons.h):
|
||||
|
||||
```diff
|
||||
+void HideBagItemIconSprite(u8 id);
|
||||
|
||||
```
|
||||
|
||||
Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu.c):
|
||||
|
||||
```diff
|
||||
...
|
||||
{
|
||||
- RemoveBagItemIconSprite(1 ^ gBagMenu->itemIconSlot);
|
||||
+ HideBagItemIconSprite(gBagMenu->itemIconSlot ^ 1);
|
||||
+ RemoveBagItemIconSprite(gBagMenu->itemIconSlot);
|
||||
if (itemIndex != LIST_CANCEL)
|
||||
...
|
||||
```
|
@ -76,7 +76,7 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op);
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op);
|
||||
s32 GetBgY(u8 bg);
|
||||
void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
|
||||
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
|
||||
u8 Unused_AdjustBgMosaic(u8 val, u8 mode);
|
||||
void SetBgTilemapBuffer(u8 bg, void *tilemap);
|
||||
void UnsetBgTilemapBuffer(u8 bg);
|
||||
void* GetBgTilemapBuffer(u8 bg);
|
||||
|
@ -94,7 +94,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC
|
||||
static u8 IndexOfSpriteTileTag(u16 tag);
|
||||
static void AllocSpriteTileRange(u16 tag, u16 start, u16 count);
|
||||
static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset);
|
||||
static void UpdateSpriteMatrixAnchorPos(struct Sprite* sprite, s32 a1, s32 a2);
|
||||
static void UpdateSpriteMatrixAnchorPos(struct Sprite*, s32, s32);
|
||||
|
||||
typedef void (*AnimFunc)(struct Sprite *);
|
||||
typedef void (*AnimCmdFunc)(struct Sprite *);
|
||||
@ -632,14 +632,11 @@ void DestroySprite(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void ResetOamRange(u8 a, u8 b)
|
||||
void ResetOamRange(u8 start, u8 end)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = a; i < b; i++)
|
||||
{
|
||||
for (i = start; i < end; i++)
|
||||
gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData;
|
||||
}
|
||||
}
|
||||
|
||||
void LoadOam(void)
|
||||
|
@ -270,7 +270,7 @@ u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 sub
|
||||
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
|
||||
u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
|
||||
void DestroySprite(struct Sprite *sprite);
|
||||
void ResetOamRange(u8 a, u8 b);
|
||||
void ResetOamRange(u8 start, u8 end);
|
||||
void LoadOam(void);
|
||||
void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
|
||||
void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
|
||||
|
@ -326,14 +326,14 @@ void RunTextPrinters(void)
|
||||
{
|
||||
if (sTextPrinters[i].active)
|
||||
{
|
||||
u16 temp = RenderFont(&sTextPrinters[i]);
|
||||
switch (temp)
|
||||
u16 renderCmd = RenderFont(&sTextPrinters[i]);
|
||||
switch (renderCmd)
|
||||
{
|
||||
case RENDER_PRINT:
|
||||
CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
|
||||
case RENDER_UPDATE:
|
||||
if (sTextPrinters[i].callback != 0)
|
||||
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, temp);
|
||||
if (sTextPrinters[i].callback != NULL)
|
||||
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, renderCmd);
|
||||
break;
|
||||
case RENDER_FINISH:
|
||||
sTextPrinters[i].active = FALSE;
|
||||
|
19
graphics/battle_anims/sprites/new/poltergeist.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
246 246 246
|
||||
246 246 246
|
||||
213 197 230
|
||||
213 197 230
|
||||
180 148 213
|
||||
180 148 213
|
||||
180 148 213
|
||||
148 98 197
|
||||
115 65 164
|
||||
82 32 131
|
||||
82 32 131
|
||||
82 32 131
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
BIN
graphics/battle_interface/z_move_trigger.png
Normal file
After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 394 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 347 B |
Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 277 B |
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 319 B |
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 389 B |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 283 B |
Before Width: | Height: | Size: 554 B After Width: | Height: | Size: 413 B |
Before Width: | Height: | Size: 458 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 287 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 337 B |
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 394 B |
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 337 B |
BIN
graphics/door_anims/petalburg_gym.png
Normal file
After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 304 B |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 332 B |
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 458 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 322 B |
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 322 B |
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 394 B |
BIN
graphics/trainer_hill/maps_expert/floor_0/collision.bin
Executable file
1
graphics/trainer_hill/maps_expert/floor_0/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;1;;;;;,99:;;;;;1;;;;isMMMMŃMMMMis@;UUUUŃUUUU1AiAĹŮŮŮšŮŮŮĆAsi;ÔŰ›sss›ŰĚ1si;Í›ssDss›Ő1si;ÔŰ›sss›ŰĚ1siAŃŰŰŰ›ŰŰŰŰAs@;ÇÇŰŰŰÇÇ1Ai;MMggŰŰŰggMM1si;UU××ŃŰŰ××UU1si;9999:;;9999:sissssssssssssss
|
BIN
graphics/trainer_hill/maps_expert/floor_1/collision.bin
Executable file
1
graphics/trainer_hill/maps_expert/floor_1/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;‘FFFFFFFFFFFFFx‘F›|›››}›|›{›z›‘F}FFFFFFFFFFFF‘F›~›››}›~›ł›››‘FFFFFFFFFFFFF›‘F›}›|›{›z›|›››‘F›FFFFFFFFFFFF‘F›|›}›~›››}›~›‘FFFFFFFFFFFFFł‘Ö–››–ÖŰÖ–››–Ö›Ö–››–ÖŰŰŰÖ–››–Ö–››–ÖŰŰŰŰŰÖ–››–Ö–››–ÖŰŰŰÖ–››–Ö‘Ö–››–ÖŰÖ–››–Ö›
|
1
graphics/trainer_hill/maps_expert/floor_2/collision.bin
Executable file
@ -0,0 +1 @@
|
||||
<EFBFBD>áñù>ù>}~=x½=x}~y>ù>ñá
|
1
graphics/trainer_hill/maps_expert/floor_2/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
ムロロロルル<15>圀屁ムロロロユユテ<EFBE95>歯屁屁ムロロユヒヒヒ絜給副屁ムロユヒヒヒヒ絜給虚屁ムロヒヒヒヒヒ絜給給屁ムユヒヒヒヒヒ綷給給副ムヒヒヒヒフフ驎結給魚ムフフフフ顥顥絜給魚ムユユユユ隯隯絜給魚ムヒヒヒヒ<EFBE8B>驎<EFBFBD>給魚ムフヒヒヒヒヒ驎給給憲ムロヒヒヒヒヒ顥給給屁ムロフヒヒヒヒ絜給旧屁ムロロフヒヒヒ絜給憲屁ムロロロフフヒ綷血屁屁ムロロロロロフ蕙屁屁屁
|
BIN
graphics/trainer_hill/maps_expert/floor_3/collision.bin
Executable file
1
graphics/trainer_hill/maps_expert/floor_3/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9999:;;;<08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD>FF<46>FF<46><46><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD>F66<36>66F<36><46><EFBFBD><EFBFBD><08><><EFBFBD>F<EFBFBD>FF<46>FF<46>F<EFBFBD><46><EFBFBD><08><>F6F<36><46><EFBFBD>ۛF6F<36><46><08><>F6<46><36><EFBFBD><EFBFBD><EFBFBD>ۛ6F<36><46><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֖<EFBFBD><D696>ۛ<EFBFBD><DB9B><EFBFBD><08><>F6<46><36><EFBFBD><EFBFBD><EFBFBD>ۛ6F<36><46><08><>F6F<36><46><EFBFBD>ۛF6F<36><46><08><><EFBFBD>F<EFBFBD>FF<46>FF<46>F<EFBFBD><46><EFBFBD><08><><EFBFBD><EFBFBD>F66<36>66F<36><46><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD>FF<46>FF<46><46><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
1
graphics/trainer_hill/maps_jp/floor_0/collision.bin
Executable file
@ -0,0 +1 @@
|
||||
<EFBFBD>ÁoAcA`ADAUAUÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
|
1
graphics/trainer_hill/maps_jp/floor_0/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
155;&&%9:;;;1++;44++43????;1++;;;44;3???;;1++55555;3???;?1+444+44;,???;;1+;5;+;5;5;???;1+;+;+;+;+;???;14;+;4;+5+;;?;;1;;4;;;444?;;;?
|
BIN
graphics/trainer_hill/maps_jp/floor_1/collision.bin
Executable file
1
graphics/trainer_hill/maps_jp/floor_1/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;5;9&%9:;5;1;+;;+++++;;;+;1;+;;+++++>>;+;1;+;;+++++;;;+;?;+;;+++++;>>+;1;+;;++,++;;;+;1?+;;,,;,,>>;+;1;+5555;55555+;?;,,,,,;,,,,,,;1;??;55;55555551???;++5+++++++1??;;++++++++++1;;;?,,,,,,,,,,
|
1
graphics/trainer_hill/maps_normal/floor_0/collision.bin
Executable file
@ -0,0 +1 @@
|
||||
<EFBFBD>ĺ?í˝%„˝ß!~A } ÷Aůy˙˙
|
1
graphics/trainer_hill/maps_normal/floor_0/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;55&&%&:;5;1;,,,+$$$$,;;,;-;;;;+;;;;5;55;3;2!0+;2!0+;,+;35;;;,5;;;+;;+;4,;2!0+20;+20,;15;;5;,;;5,;;551,20+205;+2!0,,15;;+;;+;,;5;;;1,20+20+;20+20;1555+;;+;;5+;551+,,,20+20,,;,,1+;;5;;+;;5;;;;1,20+;;,20,20;51;;;,;;;;;;;;;,
|
1
graphics/trainer_hill/maps_normal/floor_1/collision.bin
Executable file
@ -0,0 +1 @@
|
||||
<EFBFBD><03>s@@<40>Q<EFBFBD>S<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>QPP<10><>
|
1
graphics/trainer_hill/maps_normal/floor_1/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
ムユユユルルナニホユロユムヒトトロロトトトフフフヒロヒムヒロロロロロロロヒロヒムヒロユユユユユ゚ヒロヒムヒロヒヒヒトトロヒロヒムヒロヒロロトヒピユユヒロヒムヒロヒロロロヒヒロトトヒロヒムヒロヒロロロヒヒユユ゚ヒロヒムヒロヒロロロヒヒトトロヒロヒムヒロヒロロロヒピユユヒロヒムヒロヒロロロトトロトトトロヒムヒロヒ屁屁屁ロユユユヒムトロヒロロロロロ巒ヒヒヒヒムロロヒロロロロロ巒ヒヒヒヒムロロトロロロロロ巒トトトト
|
BIN
graphics/trainer_hill/maps_normal/floor_2/collision.bin
Executable file
1
graphics/trainer_hill/maps_normal/floor_2/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1555&&8&.55;icddddqqqrdddcsicssssssssssscsicssssssssssscsicCA@ABAAJBAAcsicsssssssdssscsicACKCCABB@A@csicssdsssssssscsicA@BBAABJBABcsicsssssssdssscsicABACKAAA@CAcsicssssdsssssscsicA@CABBAJBABcsidsssssssdsssdsiCCABBACAA@BABsiBsssssssssssBs
|
BIN
graphics/trainer_hill/maps_normal/floor_3/collision.bin
Executable file
1
graphics/trainer_hill/maps_normal/floor_3/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9&%9:;;;+$$$+;;;;;3+;;;+55;553+;;;+,,;,,3+;;;+4,+;;;,,;;;;;;;3+;;;54+;;;+,;;++;;;+,,+;;;+;;3+;;;+;+;3+555+;,;4,,,,,
|
BIN
graphics/trainer_hill/maps_unique/floor_0/collision.bin
Executable file
1
graphics/trainer_hill/maps_unique/floor_0/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><15><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۛ<EFBFBD><DB9B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
BIN
graphics/trainer_hill/maps_unique/floor_1/collision.bin
Executable file
1
graphics/trainer_hill/maps_unique/floor_1/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9&%9:;;;-;;;5,#$#,5;;;;<08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
BIN
graphics/trainer_hill/maps_unique/floor_2/collision.bin
Executable file
1
graphics/trainer_hill/maps_unique/floor_2/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;iFFFFFFFFFFFF|FiFzsssysss}sssFiFsFFFFFFFFFFFFiFss{s|s{szsssFiFFFFFFFFFFFFzFiFsssss}|s|s{sFiFFFFFF|FFFFFFF詮屁妲;;;F屁屁F詮屁妲;;;F屁屁F詮屁妲;;;F屁屁F<08>FFFFFxFFFFFFF<08>驎驎驎z驎驎礰<08>FFFFFFFFFFFF<46>|硺硤硎﨤礼神礼
|
BIN
graphics/trainer_hill/maps_unique/floor_3/collision.bin
Executable file
1
graphics/trainer_hill/maps_unique/floor_3/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
ّ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>منَ<D986><D98E><EFBFBD>ٍ<><D98D><EFBFBD><EFBFBD><EFBFBD>ًٌٌٌٌٌٌ<D98C><D98C><08>ٌٌٌ<D98C><D98C><EFBFBD><EFBFBD><EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ّ<><D991><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ًًٌٌٌٌٌّ<D98C>ٌ<EFBFBD>ًٌٌٌٌّ<D991><D98B><EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ًّ<D991><D98B><EFBFBD>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ًّ<D991>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ًٌٌٌ<D98C><D98C>ًّ<D991>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ًّ<D991>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ًٌٌٌٌّ<D991>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ًّ<D991>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD>ٌّ<D991>ً<EFBFBD>ٌ<EFBFBD>ً<EFBFBD>ٌٌٌٌٌ<D98C>ّ<><D991>ً<EFBFBD><D98B><EFBFBD>ً<EFBFBD><D98B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ّ<><D991>ٌ<EFBFBD><D98C><EFBFBD>ٌ<EFBFBD><D98C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
BIN
graphics/trainer_hill/maps_variety/floor_0/collision.bin
Executable file
1
graphics/trainer_hill/maps_variety/floor_0/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;@AAAAABCCCCC@AA@ûCAAAB@CABBBûA@AûAAAB@CACCû@A@AAûCAB@CCCûA@A@AAABBB@CCCAA@A@AAAþþþûþþþAA@A@AAAþþþûþþþAA@A@ABAþûûûûûþAA@A@AAAþþþûþþþAA@A@AAAþþþûþþþAA@A@BACCCA@BBBBA@A@@AûAAAAAAAûA@A@@ûCCAAABBBBû@A@ûCCAACCCCCCCûA@BBBBBBBBBBBBBB
|
BIN
graphics/trainer_hill/maps_variety/floor_1/collision.bin
Executable file
1
graphics/trainer_hill/maps_variety/floor_1/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;<08><><EFBFBD><EFBFBD>@@<40><><EFBFBD>@@<40><><EFBFBD><EFBFBD><08><><EFBFBD>@<40><>@<40>@<40><>B<EFBFBD><42><EFBFBD><08><>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><08>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><08>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><08>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><08>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><08>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><08><>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><08><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><08><><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><08><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>֖<><D696><EFBFBD><EFBFBD>A<EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><08>֖<EFBFBD><D696><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>֜
|
BIN
graphics/trainer_hill/maps_variety/floor_2/collision.bin
Executable file
1
graphics/trainer_hill/maps_variety/floor_2/metatiles.bin
Executable file
@ -0,0 +1 @@
|
||||
1;;;9989:;;;<08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><><17><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><>
|