Merge pull request #2229 from AsparagusEduardo/RHH_MergedBranchUltimate

Merged branch
This commit is contained in:
Eduardo Quezada D'Ottone 2022-08-23 13:12:22 -04:00 committed by GitHub
commit 4f333766fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
356 changed files with 6152 additions and 8190 deletions

View File

@ -676,7 +676,7 @@
.byte 0x77 .byte 0x77
.endm .endm
.macro faintifabilitynotdamp .macro tryexplosion
.byte 0x78 .byte 0x78
.endm .endm
@ -1044,7 +1044,7 @@
.byte 0xc8 .byte 0xc8
.endm .endm
.macro jumpifattackandspecialattackcannotfall ptr:req .macro trymemento ptr:req
.byte 0xc9 .byte 0xc9
.4byte \ptr .4byte \ptr
.endm .endm

View File

@ -277,7 +277,7 @@
.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 EnableBothScriptContexts 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
.endm .endm

View File

@ -152,8 +152,8 @@
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM create_movement_action lock_anim, MOVEMENT_ACTION_LOCK_ANIM
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM create_movement_action unlock_anim, MOVEMENT_ACTION_UNLOCK_ANIM
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE create_movement_action levitate, MOVEMENT_ACTION_LEVITATE

File diff suppressed because it is too large Load Diff

View File

@ -144,7 +144,7 @@ Route111_EventScript_RootFossilDisappeared::
@ Unused @ Unused
Route111_Movement_PlayerFall:: Route111_Movement_PlayerFall::
store_lock_anim lock_anim
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down

View File

@ -2,7 +2,7 @@
.include "asm/macros/m4a.inc" .include "asm/macros/m4a.inc"
.include "asm/macros/music_voice.inc" .include "asm/macros/music_voice.inc"
.include "include/constants/pokemon_config.h"
.include "sound/voice_groups.inc" .include "sound/voice_groups.inc"
.include "sound/keysplit_tables.inc" .include "sound/keysplit_tables.inc"
.include "sound/programmable_wave_data.inc" .include "sound/programmable_wave_data.inc"

View File

@ -105,7 +105,7 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *);
.y = DISPLAY_HEIGHT, \ .y = DISPLAY_HEIGHT, \
.affineMode = 0, \ .affineMode = 0, \
.objMode = 0, \ .objMode = 0, \
.mosaic = 0, \ .mosaic = FALSE, \
.bpp = 0, \ .bpp = 0, \
.shape = SPRITE_SHAPE(8x8), \ .shape = SPRITE_SHAPE(8x8), \
.x = DISPLAY_WIDTH + 64, \ .x = DISPLAY_WIDTH + 64, \

View File

@ -387,7 +387,7 @@ u8 *StringBraille(u8 *dest, const u8 *src)
const u8 setBrailleFont[] = { const u8 setBrailleFont[] = {
EXT_CTRL_CODE_BEGIN, EXT_CTRL_CODE_BEGIN,
EXT_CTRL_CODE_FONT, EXT_CTRL_CODE_FONT,
6, FONT_BRAILLE,
EOS EOS
}; };
const u8 gotoLine2[] = { const u8 gotoLine2[] = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 156 213
255 255 255
57 57 57
139 139 131
197 189 180
230 222 213
74 115 139
123 172 197
172 115 74
213 156 115
98 156 57
148 189 106
189 164 32
230 222 90
57 57 57
57 57 57

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 156 213
255 8 8
222 57 74
180 65 82
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
230 222 213
0 0 0
230 222 213
0 0 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

After

Width:  |  Height:  |  Size: 153 B

View File

@ -1,6 +1,6 @@
JASC-PAL JASC-PAL
0100 0100
96 16
106 156 213 106 156 213
255 255 255 255 255 255
115 115 115 115 115 115
@ -17,83 +17,3 @@ JASC-PAL
230 222 90 230 222 90
238 230 139 238 230 139
246 238 197 246 238 197
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
74 115 139
98 139 164
123 172 197
156 205 230
180 222 246
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
172 115 74
189 131 90
213 156 115
246 205 164
255 230 197
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
98 156 57
123 172 82
148 189 106
197 230 156
213 238 189
106 156 213
255 255 255
57 57 57
139 139 131
197 189 180
230 222 213
74 115 139
123 172 197
172 115 74
213 156 115
98 156 57
148 189 106
189 164 32
230 222 90
57 57 57
57 57 57
106 156 213
255 8 8
222 57 74
180 65 82
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
230 222 213
0 0 0
230 222 213
0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
172 115 74
189 131 90
213 156 115
246 205 164
255 230 197

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
98 156 57
123 172 82
148 189 106
197 230 156
213 238 189

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
106 156 213
255 255 255
57 57 57
115 115 115
0 0 0
0 0 0
0 0 0
0 0 255
0 0 255
0 0 255
0 0 255
74 115 139
98 139 164
123 172 197
156 205 230
180 222 246

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 192 B

View File

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 B

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 719 B

View File

@ -21,6 +21,7 @@ MISCGFXDIR := graphics/misc
JPCONTESTGFXDIR := graphics/contest/japanese JPCONTESTGFXDIR := graphics/contest/japanese
POKEDEXGFXDIR := graphics/pokedex POKEDEXGFXDIR := graphics/pokedex
STARTERGFXDIR := graphics/starter_choose STARTERGFXDIR := graphics/starter_choose
NAMINGGFXDIR := graphics/naming_screen
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy
contest_types := cool beauty cute smart tough contest_types := cool beauty cute smart tough
@ -82,31 +83,31 @@ $(CASTFORMGFXDIR)/shiny.gbapal: $(CASTFORMGFXDIR)/normal/shiny.gbapal \
### Tilesets ### ### Tilesets ###
$(TILESETGFXDIR)/secondary/petalburg/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/petalburg/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 159 $(GFX) $< $@ -num_tiles 159 -Wnum_tiles
$(TILESETGFXDIR)/secondary/rustboro/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/rustboro/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 498 $(GFX) $< $@ -num_tiles 498 -Wnum_tiles
$(TILESETGFXDIR)/secondary/dewford/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/dewford/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 503 $(GFX) $< $@ -num_tiles 503 -Wnum_tiles
$(TILESETGFXDIR)/secondary/slateport/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/slateport/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 504 $(GFX) $< $@ -num_tiles 504 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mauville/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mauville/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 503 $(GFX) $< $@ -num_tiles 503 -Wnum_tiles
$(TILESETGFXDIR)/secondary/lavaridge/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/lavaridge/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 450 $(GFX) $< $@ -num_tiles 450 -Wnum_tiles
$(TILESETGFXDIR)/secondary/fortree/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/fortree/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 493 $(GFX) $< $@ -num_tiles 493 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pacifidlog/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pacifidlog/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 504 $(GFX) $< $@ -num_tiles 504 -Wnum_tiles
$(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 328 $(GFX) $< $@ -num_tiles 328 -Wnum_tiles
SOOTOPOLISANIMDIR := $(TILESETGFXDIR)/secondary/sootopolis/anim SOOTOPOLISANIMDIR := $(TILESETGFXDIR)/secondary/sootopolis/anim
@ -143,169 +144,169 @@ $(SOOTOPOLISANIMDIR)/stormy_water/7.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/7_ky
@cat $^ >$@ @cat $^ >$@
$(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 508 $(GFX) $< $@ -num_tiles 508 -Wnum_tiles
$(TILESETGFXDIR)/secondary/battle_frontier_outside_east/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_frontier_outside_east/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 508 $(GFX) $< $@ -num_tiles 508 -Wnum_tiles
$(TILESETGFXDIR)/primary/building/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/primary/building/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 502 $(GFX) $< $@ -num_tiles 502 -Wnum_tiles
$(TILESETGFXDIR)/secondary/shop/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/shop/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 502 $(GFX) $< $@ -num_tiles 502 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pokemon_center/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pokemon_center/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 478 $(GFX) $< $@ -num_tiles 478 -Wnum_tiles
$(TILESETGFXDIR)/secondary/cave/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 425 $(GFX) $< $@ -num_tiles 425 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pokemon_school/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pokemon_school/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 278 $(GFX) $< $@ -num_tiles 278 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pokemon_fan_club/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pokemon_fan_club/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 319 $(GFX) $< $@ -num_tiles 319 -Wnum_tiles
$(TILESETGFXDIR)/secondary/unused_1/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/unused_1/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17 $(GFX) $< $@ -num_tiles 17 -Wnum_tiles
$(TILESETGFXDIR)/secondary/meteor_falls/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/meteor_falls/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 460 $(GFX) $< $@ -num_tiles 460 -Wnum_tiles
$(TILESETGFXDIR)/secondary/oceanic_museum/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/oceanic_museum/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 319 $(GFX) $< $@ -num_tiles 319 -Wnum_tiles
$(TILESETGFXDIR)/secondary/cable_club/unknown_tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/cable_club/unknown_tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 120 $(GFX) $< $@ -num_tiles 120 -Wnum_tiles
$(TILESETGFXDIR)/secondary/seashore_house/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/seashore_house/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 312 $(GFX) $< $@ -num_tiles 312 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 345 $(GFX) $< $@ -num_tiles 345 -Wnum_tiles
$(TILESETGFXDIR)/secondary/pokemon_day_care/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/pokemon_day_care/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 355 $(GFX) $< $@ -num_tiles 355 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.png $(TILESETGFXDIR)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/tree/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/tree/tiles.png $(TILESETGFXDIR)/secondary/secret_base/tree/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/tree/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/shrub/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.png $(TILESETGFXDIR)/secondary/secret_base/shrub/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.png $(TILESETGFXDIR)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.png $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.png $(TILESETGFXDIR)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/tree/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/tree/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83 $(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(TILESETGFXDIR)/secondary/inside_of_truck/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/inside_of_truck/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 62 $(GFX) $< $@ -num_tiles 62 -Wnum_tiles
$(TILESETGFXDIR)/secondary/contest/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/contest/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 430 $(GFX) $< $@ -num_tiles 430 -Wnum_tiles
$(TILESETGFXDIR)/secondary/lilycove_museum/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/lilycove_museum/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 431 $(GFX) $< $@ -num_tiles 431 -Wnum_tiles
$(TILESETGFXDIR)/secondary/lab/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/lab/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 500 $(GFX) $< $@ -num_tiles 500 -Wnum_tiles
$(TILESETGFXDIR)/secondary/underwater/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/underwater/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 500 $(GFX) $< $@ -num_tiles 500 -Wnum_tiles
$(TILESETGFXDIR)/secondary/generic_building/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/generic_building/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 509 $(GFX) $< $@ -num_tiles 509 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mauville_game_corner/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mauville_game_corner/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 469 $(GFX) $< $@ -num_tiles 469 -Wnum_tiles
$(TILESETGFXDIR)/secondary/unused_2/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/unused_2/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 150 $(GFX) $< $@ -num_tiles 150 -Wnum_tiles
$(TILESETGFXDIR)/secondary/rustboro_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/rustboro_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 60 $(GFX) $< $@ -num_tiles 60 -Wnum_tiles
$(TILESETGFXDIR)/secondary/dewford_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/dewford_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 61 $(GFX) $< $@ -num_tiles 61 -Wnum_tiles
$(TILESETGFXDIR)/secondary/lavaridge_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/lavaridge_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54 $(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(TILESETGFXDIR)/secondary/petalburg_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/petalburg_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 148 $(GFX) $< $@ -num_tiles 148 -Wnum_tiles
$(TILESETGFXDIR)/secondary/fortree_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/fortree_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 61 $(GFX) $< $@ -num_tiles 61 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mossdeep_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mossdeep_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 82 $(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TILESETGFXDIR)/secondary/sootopolis_gym/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/sootopolis_gym/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 484 $(GFX) $< $@ -num_tiles 484 -Wnum_tiles
$(TILESETGFXDIR)/secondary/trick_house_puzzle/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/trick_house_puzzle/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 294 $(GFX) $< $@ -num_tiles 294 -Wnum_tiles
$(TILESETGFXDIR)/secondary/inside_ship/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/inside_ship/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 342 $(GFX) $< $@ -num_tiles 342 -Wnum_tiles
$(TILESETGFXDIR)/secondary/elite_four/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/elite_four/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 505 $(GFX) $< $@ -num_tiles 505 -Wnum_tiles
$(TILESETGFXDIR)/secondary/battle_frontier/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_frontier/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 310 $(GFX) $< $@ -num_tiles 310 -Wnum_tiles
$(TILESETGFXDIR)/secondary/battle_factory/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_factory/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 424 $(GFX) $< $@ -num_tiles 424 -Wnum_tiles
$(TILESETGFXDIR)/secondary/battle_pike/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_pike/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 382 $(GFX) $< $@ -num_tiles 382 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mirage_tower/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mirage_tower/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 420 $(GFX) $< $@ -num_tiles 420 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mossdeep_game_corner/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mossdeep_game_corner/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 95 $(GFX) $< $@ -num_tiles 95 -Wnum_tiles
$(TILESETGFXDIR)/secondary/island_harbor/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/island_harbor/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 503 $(GFX) $< $@ -num_tiles 503 -Wnum_tiles
$(TILESETGFXDIR)/secondary/trainer_hill/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/trainer_hill/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 374 $(GFX) $< $@ -num_tiles 374 -Wnum_tiles
$(TILESETGFXDIR)/secondary/navel_rock/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/navel_rock/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 420 $(GFX) $< $@ -num_tiles 420 -Wnum_tiles
$(TILESETGFXDIR)/secondary/battle_frontier_ranking_hall/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/battle_frontier_ranking_hall/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 136 $(GFX) $< $@ -num_tiles 136 -Wnum_tiles
$(TILESETGFXDIR)/secondary/mystery_events_house/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/mystery_events_house/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 509 $(GFX) $< $@ -num_tiles 509 -Wnum_tiles
@ -353,13 +354,13 @@ graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal
$(GFX) $< $@ -num_colors 224 $(GFX) $< $@ -num_colors 224
graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 63 $(GFX) $< $@ -num_tiles 63 -Wnum_tiles
graphics/pokenav/region_map.8bpp: %.8bpp: %.png graphics/pokenav/region_map.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 233 $(GFX) $< $@ -num_tiles 233 -Wnum_tiles
$(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png $(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 29 $(GFX) $< $@ -num_tiles 29 -Wnum_tiles
$(BATINTGFXDIR)/textbox.gbapal: $(BATINTGFXDIR)/textbox_0.gbapal \ $(BATINTGFXDIR)/textbox.gbapal: $(BATINTGFXDIR)/textbox_0.gbapal \
$(BATINTGFXDIR)/textbox_1.gbapal $(BATINTGFXDIR)/textbox_1.gbapal
@ -403,10 +404,10 @@ $(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \
@cat $^ >$@ @cat $^ >$@
$(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png $(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 353 $(GFX) $< $@ -num_tiles 353 -Wnum_tiles
$(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png $(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5 $(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(JPCONTESTGFXDIR)/composite_1.4bpp: $(JPCONTESTGFXDIR)/frame_1.4bpp \ $(JPCONTESTGFXDIR)/composite_1.4bpp: $(JPCONTESTGFXDIR)/frame_1.4bpp \
$(JPCONTESTGFXDIR)/floor.4bpp \ $(JPCONTESTGFXDIR)/floor.4bpp \
@ -422,7 +423,7 @@ $(JPCONTESTGFXDIR)/composite_2.4bpp: $(JPCONTESTGFXDIR)/interface.4bpp \
@cat $^ >$@ @cat $^ >$@
$(JPCONTESTGFXDIR)/voltage.4bpp: %.4bpp: %.png $(JPCONTESTGFXDIR)/voltage.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 36 $(GFX) $< $@ -num_tiles 36 -Wnum_tiles
$(BTLANMSPRGFXDIR)/ice_crystals.4bpp: $(BTLANMSPRGFXDIR)/ice_crystals_0.4bpp \ $(BTLANMSPRGFXDIR)/ice_crystals.4bpp: $(BTLANMSPRGFXDIR)/ice_crystals_0.4bpp \
$(BTLANMSPRGFXDIR)/ice_crystals_1.4bpp \ $(BTLANMSPRGFXDIR)/ice_crystals_1.4bpp \
@ -444,13 +445,13 @@ $(BTLANMSPRGFXDIR)/spark.4bpp: $(BTLANMSPRGFXDIR)/spark_0.4bpp \
@cat $^ >$@ @cat $^ >$@
$(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png $(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 14 $(GFX) $< $@ -num_tiles 14 -Wnum_tiles
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 16 $(GFX) $< $@ -num_tiles 16 -Wnum_tiles
graphics/party_menu/bg.4bpp: %.4bpp: %.png graphics/party_menu/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 62 $(GFX) $< $@ -num_tiles 62 -Wnum_tiles
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp) $(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@ @cat $^ >$@
@ -461,29 +462,29 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
@cat $^ >$@ @cat $^ >$@
graphics/bag/menu.4bpp: %.4bpp: %.png graphics/bag/menu.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 $(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png $(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 227 $(GFX) $< $@ -num_tiles 227 -Wnum_tiles
$(RAYQUAZAGFXDIR)/scene_2/bg.4bpp: %.4bpp: %.png $(RAYQUAZAGFXDIR)/scene_2/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 313 $(GFX) $< $@ -num_tiles 313 -Wnum_tiles
$(RAYQUAZAGFXDIR)/scene_3/rayquaza.4bpp: %.4bpp: %.png $(RAYQUAZAGFXDIR)/scene_3/rayquaza.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 124 $(GFX) $< $@ -num_tiles 124 -Wnum_tiles
$(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail.4bpp $(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail.4bpp
cp $< $@ cp $< $@
head -c 12 /dev/zero >> $@ head -c 12 /dev/zero >> $@
$(RAYQUAZAGFXDIR)/scene_4/streaks.4bpp: %.4bpp: %.png $(RAYQUAZAGFXDIR)/scene_4/streaks.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 19 $(GFX) $< $@ -num_tiles 19 -Wnum_tiles
$(RAYQUAZAGFXDIR)/scene_4/rayquaza.4bpp: %.4bpp: %.png $(RAYQUAZAGFXDIR)/scene_4/rayquaza.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 155 $(GFX) $< $@ -num_tiles 155 -Wnum_tiles
graphics/picture_frame/lobby.4bpp: %.4bpp: %.png graphics/picture_frame/lobby.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 86 $(GFX) $< $@ -num_tiles 86 -Wnum_tiles
$(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ $(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \
$(ROULETTEGFXDIR)/tailow.4bpp $(ROULETTEGFXDIR)/tailow.4bpp
@ -496,10 +497,10 @@ $(ROULETTEGFXDIR)/wheel_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
@cat $^ >$@ @cat $^ >$@
$(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 $(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 938 $(GFX) $< $@ -num_tiles 938 -Wnum_tiles
$(BATTRANSGFXDIR)/frontier_square_1.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \ $(BATTRANSGFXDIR)/frontier_square_1.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \
$(BATTRANSGFXDIR)/frontier_squares_1.4bpp $(BATTRANSGFXDIR)/frontier_squares_1.4bpp
@ -522,20 +523,20 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu.
@cat $^ >$@ @cat $^ >$@
graphics/birch_speech/unused_beauty.4bpp: %.4bpp: %.png graphics/birch_speech/unused_beauty.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 822 $(GFX) $< $@ -num_tiles 822 -Wnum_tiles
### Pokémon Storage System ### ### Pokémon Storage System ###
$(WALLPAPERGFXDIR)/forest/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/forest/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55 $(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(WALLPAPERGFXDIR)/forest/tiles.4bpp: $(WALLPAPERGFXDIR)/forest/frame.4bpp $(WALLPAPERGFXDIR)/forest/bg.4bpp $(WALLPAPERGFXDIR)/forest/tiles.4bpp: $(WALLPAPERGFXDIR)/forest/frame.4bpp $(WALLPAPERGFXDIR)/forest/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/city/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/city/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52 $(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(WALLPAPERGFXDIR)/city/tiles.4bpp: $(WALLPAPERGFXDIR)/city/frame.4bpp $(WALLPAPERGFXDIR)/city/bg.4bpp $(WALLPAPERGFXDIR)/city/tiles.4bpp: $(WALLPAPERGFXDIR)/city/frame.4bpp $(WALLPAPERGFXDIR)/city/bg.4bpp
@cat $^ >$@ @cat $^ >$@
@ -544,97 +545,97 @@ $(WALLPAPERGFXDIR)/desert/tiles.4bpp: $(WALLPAPERGFXDIR)/desert/frame.4bpp $(WAL
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/savanna/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/savanna/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45 $(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(WALLPAPERGFXDIR)/savanna/bg.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/savanna/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23 $(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(WALLPAPERGFXDIR)/savanna/tiles.4bpp: $(WALLPAPERGFXDIR)/savanna/frame.4bpp $(WALLPAPERGFXDIR)/savanna/bg.4bpp $(WALLPAPERGFXDIR)/savanna/tiles.4bpp: $(WALLPAPERGFXDIR)/savanna/frame.4bpp $(WALLPAPERGFXDIR)/savanna/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/crag/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/crag/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 49 $(GFX) $< $@ -num_tiles 49 -Wnum_tiles
$(WALLPAPERGFXDIR)/crag/tiles.4bpp: $(WALLPAPERGFXDIR)/crag/frame.4bpp $(WALLPAPERGFXDIR)/crag/bg.4bpp $(WALLPAPERGFXDIR)/crag/tiles.4bpp: $(WALLPAPERGFXDIR)/crag/frame.4bpp $(WALLPAPERGFXDIR)/crag/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/volcano/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/volcano/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 56 $(GFX) $< $@ -num_tiles 56 -Wnum_tiles
$(WALLPAPERGFXDIR)/volcano/tiles.4bpp: $(WALLPAPERGFXDIR)/volcano/frame.4bpp $(WALLPAPERGFXDIR)/volcano/bg.4bpp $(WALLPAPERGFXDIR)/volcano/tiles.4bpp: $(WALLPAPERGFXDIR)/volcano/frame.4bpp $(WALLPAPERGFXDIR)/volcano/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/snow/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/snow/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 $(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(WALLPAPERGFXDIR)/snow/tiles.4bpp: $(WALLPAPERGFXDIR)/snow/frame.4bpp $(WALLPAPERGFXDIR)/snow/bg.4bpp $(WALLPAPERGFXDIR)/snow/tiles.4bpp: $(WALLPAPERGFXDIR)/snow/frame.4bpp $(WALLPAPERGFXDIR)/snow/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/cave/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/cave/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55 $(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(WALLPAPERGFXDIR)/cave/tiles.4bpp: $(WALLPAPERGFXDIR)/cave/frame.4bpp $(WALLPAPERGFXDIR)/cave/bg.4bpp $(WALLPAPERGFXDIR)/cave/tiles.4bpp: $(WALLPAPERGFXDIR)/cave/frame.4bpp $(WALLPAPERGFXDIR)/cave/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/beach/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/beach/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 46 $(GFX) $< $@ -num_tiles 46 -Wnum_tiles
$(WALLPAPERGFXDIR)/beach/bg.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/beach/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23 $(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(WALLPAPERGFXDIR)/beach/tiles.4bpp: $(WALLPAPERGFXDIR)/beach/frame.4bpp $(WALLPAPERGFXDIR)/beach/bg.4bpp $(WALLPAPERGFXDIR)/beach/tiles.4bpp: $(WALLPAPERGFXDIR)/beach/frame.4bpp $(WALLPAPERGFXDIR)/beach/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/seafloor/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/seafloor/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54 $(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: $(WALLPAPERGFXDIR)/seafloor/frame.4bpp $(WALLPAPERGFXDIR)/seafloor/bg.4bpp $(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: $(WALLPAPERGFXDIR)/seafloor/frame.4bpp $(WALLPAPERGFXDIR)/seafloor/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/river/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/river/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 51 $(GFX) $< $@ -num_tiles 51 -Wnum_tiles
$(WALLPAPERGFXDIR)/river/bg.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/river/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 11 $(GFX) $< $@ -num_tiles 11 -Wnum_tiles
$(WALLPAPERGFXDIR)/river/tiles.4bpp: $(WALLPAPERGFXDIR)/river/frame.4bpp $(WALLPAPERGFXDIR)/river/bg.4bpp $(WALLPAPERGFXDIR)/river/tiles.4bpp: $(WALLPAPERGFXDIR)/river/frame.4bpp $(WALLPAPERGFXDIR)/river/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/sky/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/sky/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45 $(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(WALLPAPERGFXDIR)/sky/tiles.4bpp: $(WALLPAPERGFXDIR)/sky/frame.4bpp $(WALLPAPERGFXDIR)/sky/bg.4bpp $(WALLPAPERGFXDIR)/sky/tiles.4bpp: $(WALLPAPERGFXDIR)/sky/frame.4bpp $(WALLPAPERGFXDIR)/sky/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/polkadot/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/polkadot/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54 $(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(WALLPAPERGFXDIR)/polkadot/tiles.4bpp: $(WALLPAPERGFXDIR)/polkadot/frame.4bpp $(WALLPAPERGFXDIR)/polkadot/bg.4bpp $(WALLPAPERGFXDIR)/polkadot/tiles.4bpp: $(WALLPAPERGFXDIR)/polkadot/frame.4bpp $(WALLPAPERGFXDIR)/polkadot/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/pokecenter/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/pokecenter/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 35 $(GFX) $< $@ -num_tiles 35 -Wnum_tiles
$(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: $(WALLPAPERGFXDIR)/pokecenter/frame.4bpp $(WALLPAPERGFXDIR)/pokecenter/bg.4bpp $(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: $(WALLPAPERGFXDIR)/pokecenter/frame.4bpp $(WALLPAPERGFXDIR)/pokecenter/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/machine/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/machine/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 33 $(GFX) $< $@ -num_tiles 33 -Wnum_tiles
$(WALLPAPERGFXDIR)/machine/tiles.4bpp: $(WALLPAPERGFXDIR)/machine/frame.4bpp $(WALLPAPERGFXDIR)/machine/bg.4bpp $(WALLPAPERGFXDIR)/machine/tiles.4bpp: $(WALLPAPERGFXDIR)/machine/frame.4bpp $(WALLPAPERGFXDIR)/machine/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/plain/frame.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/plain/frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 18 $(GFX) $< $@ -num_tiles 18 -Wnum_tiles
$(WALLPAPERGFXDIR)/plain/tiles.4bpp: $(WALLPAPERGFXDIR)/plain/frame.4bpp $(WALLPAPERGFXDIR)/plain/bg.4bpp $(WALLPAPERGFXDIR)/plain/tiles.4bpp: $(WALLPAPERGFXDIR)/plain/frame.4bpp $(WALLPAPERGFXDIR)/plain/bg.4bpp
@cat $^ >$@ @cat $^ >$@
$(WALLPAPERGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 $(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(WALLPAPERGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png $(WALLPAPERGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57 $(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(WALLPAPERGFXDIR)/zigzagoon/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/zigzagoon/bg.4bpp $(WALLPAPERGFXDIR)/zigzagoon/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/zigzagoon/bg.4bpp
@cat $^ >$@ @cat $^ >$@
@ -685,13 +686,13 @@ $(WALLPAPERGFXDIR)/whiscash/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $
@cat $^ >$@ @cat $^ >$@
$(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 11 $(GFX) $< $@ -num_tiles 11 -Wnum_tiles
$(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 8 $(GFX) $< $@ -num_tiles 8 -Wnum_tiles
$(BATTRANSGFXDIR)/frontier_logo_center.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/frontier_logo_center.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 43 $(GFX) $< $@ -num_tiles 43 -Wnum_tiles
@ -713,19 +714,28 @@ $(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \
@cat $^ >$@ @cat $^ >$@
$(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png $(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 $(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png $(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 $(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png $(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 13 $(GFX) $< $@ -num_tiles 13 -Wnum_tiles
$(POKEDEXGFXDIR)/region_map.8bpp: %.8bpp: %.png $(POKEDEXGFXDIR)/region_map.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 232 $(GFX) $< $@ -num_tiles 232 -Wnum_tiles
$(POKEDEXGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png $(POKEDEXGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 233 $(GFX) $< $@ -num_tiles 233 -Wnum_tiles
$(STARTERGFXDIR)/birch_help.4bpp: $(STARTERGFXDIR)/birch_bag.4bpp $(STARTERGFXDIR)/birch_grass.4bpp $(STARTERGFXDIR)/birch_help.4bpp: $(STARTERGFXDIR)/birch_bag.4bpp $(STARTERGFXDIR)/birch_grass.4bpp
@cat $^ >$@ @cat $^ >$@
$(NAMINGGFXDIR)/cursor.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(NAMINGGFXDIR)/cursor_squished.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(NAMINGGFXDIR)/cursor_filled.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles

View File

@ -16,7 +16,7 @@ struct ApprenticeTrainer
extern const struct ApprenticeTrainer gApprentices[]; extern const struct ApprenticeTrainer gApprentices[];
void BufferApprenticeChallengeText(u8 saveApprenticeId); void BufferApprenticeChallengeText(u8 saveApprenticeId);
void Apprentice_EnableBothScriptContexts(void); void Apprentice_ScriptContext_Enable(void);
void ResetApprenticeStruct(struct Apprentice *apprentice); void ResetApprenticeStruct(struct Apprentice *apprentice);
void ResetAllApprenticeData(void); void ResetAllApprenticeData(void);
void CallApprenticeFunction(void); void CallApprenticeFunction(void);

View File

@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_ARENA_H #ifndef GUARD_BATTLE_ARENA_H
#define GUARD_BATTLE_ARENA_H #define GUARD_BATTLE_ARENA_H
#include "constants/battle_arena.h"
void CallBattleArenaFunction(void); void CallBattleArenaFunction(void);
u8 BattleArena_ShowJudgmentWindow(u8 *state); u8 BattleArena_ShowJudgmentWindow(u8 *state);
void BattleArena_InitPoints(void); void BattleArena_InitPoints(void);

View File

@ -92,7 +92,7 @@ enum {
LINK_STANDBY_MSG_ONLY, LINK_STANDBY_MSG_ONLY,
}; };
#define INSTANT_HP_BAR_DROP 32767 #define INSTANT_HP_BAR_DROP 0x7FFF
#define PARTY_SUMM_SKIP_DRAW_DELAY (1 << 7) #define PARTY_SUMM_SKIP_DRAW_DELAY (1 << 7)

View File

@ -22,12 +22,6 @@ struct MultiPartnerMenuPokemon
/*0x1D*/ u8 language; /*0x1D*/ u8 language;
}; };
#if B_EXPANDED_ABILITY_NAMES
#define ABILITY_NAME_LENGTH 16
#else
#define ABILITY_NAME_LENGTH 12
#endif
// defines for the 'DoBounceEffect' function // defines for the 'DoBounceEffect' function
#define BOUNCE_MON 0x0 #define BOUNCE_MON 0x0
#define BOUNCE_HEALTHBOX 0x1 #define BOUNCE_HEALTHBOX 0x1
@ -41,16 +35,16 @@ void SpriteCB_VsLetterInit(struct Sprite *sprite);
void CB2_InitEndLinkBattle(void); void CB2_InitEndLinkBattle(void);
u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId); u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId);
u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId); u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId);
void SpriteCb_WildMon(struct Sprite *sprite); void SpriteCB_WildMon(struct Sprite *sprite);
void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite);
void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); void SpriteCB_ShowAsMoveTarget(struct Sprite *sprite);
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); void SpriteCB_HideAsMoveTarget(struct Sprite *sprite);
void SpriteCB_OpponentMonFromBall(struct Sprite *sprite); void SpriteCB_OpponentMonFromBall(struct Sprite *sprite);
void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite); void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite);
void SpriteCB_FaintSlideAnim(struct Sprite *sprite); void SpriteCB_FaintSlideAnim(struct Sprite *sprite);
void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
void EndBounceEffect(u8 battlerId, bool8 b); void EndBounceEffect(u8 battler, u8 which);
void SpriteCB_PlayerMonFromBall(struct Sprite *sprite); void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
void SpriteCB_TrainerThrowObject(struct Sprite *sprite); void SpriteCB_TrainerThrowObject(struct Sprite *sprite);
void AnimSetCenterToCornerVecX(struct Sprite *sprite); void AnimSetCenterToCornerVecX(struct Sprite *sprite);

View File

@ -7,6 +7,9 @@
#define WINDOW_CLEAR (1 << 0) #define WINDOW_CLEAR (1 << 0)
#define WINDOW_BG1 (1 << 7) #define WINDOW_BG1 (1 << 7)
// Arguments for 'xStart, yStart, xEnd, yEnd' in HandleBattleWindow
#define YESNOBOX_X_Y 24, 8, 29, 13
struct StatFractions struct StatFractions
{ {
u8 dividend; u8 dividend;

View File

@ -76,7 +76,6 @@ u8 GetBattlerForBattleScript(u8 caseId);
void PressurePPLose(u8 target, u8 attacker, u16 move); void PressurePPLose(u8 target, u8 attacker, u16 move);
void PressurePPLoseOnUsingPerishSong(u8 attacker); void PressurePPLoseOnUsingPerishSong(u8 attacker);
void PressurePPLoseOnUsingImprison(u8 attacker); void PressurePPLoseOnUsingImprison(u8 attacker);
void MarkAllBattlersForControllerExec(void); // unused
bool32 IsBattlerMarkedForControllerExec(u8 battlerId); bool32 IsBattlerMarkedForControllerExec(u8 battlerId);
void MarkBattlerForControllerExec(u8 battlerId); void MarkBattlerForControllerExec(u8 battlerId);
void MarkBattlerReceivedLinkData(u8 battlerId); void MarkBattlerReceivedLinkData(u8 battlerId);

View File

@ -19,8 +19,10 @@
#ifdef ENGLISH #ifdef ENGLISH
#define UNITS_IMPERIAL #define UNITS_IMPERIAL
#define CHAR_DEC_SEPARATOR CHAR_PERIOD // Period is used as a decimal separator only in the UK and the US.
#else #else
#define UNITS_METRIC #define UNITS_METRIC
#define CHAR_DEC_SEPARATOR CHAR_COMMA
#endif #endif
// Uncomment to fix some identified minor bugs // Uncomment to fix some identified minor bugs

View File

@ -53,17 +53,17 @@
#define BATTLE_TYPE_MULTI (1 << 6) #define BATTLE_TYPE_MULTI (1 << 6)
#define BATTLE_TYPE_SAFARI (1 << 7) #define BATTLE_TYPE_SAFARI (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8) #define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) #define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) // Used in pokefirered as BATTLE_TYPE_OLD_MAN_TUTORIAL.
#define BATTLE_TYPE_ROAMER (1 << 10) #define BATTLE_TYPE_ROAMER (1 << 10)
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11) #define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12) #define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
#define BATTLE_TYPE_LEGENDARY (1 << 13) #define BATTLE_TYPE_LEGENDARY (1 << 13)
#define BATTLE_TYPE_REGI (1 << 14) #define BATTLE_TYPE_REGI (1 << 14)
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) #define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) // Used in pokefirered as BATTLE_TYPE_GHOST.
#define BATTLE_TYPE_DOME (1 << 16) #define BATTLE_TYPE_DOME (1 << 16) // Used in pokefirered as BATTLE_TYPE_POKEDUDE.
#define BATTLE_TYPE_PALACE (1 << 17) #define BATTLE_TYPE_PALACE (1 << 17) // Used in pokefirered as BATTLE_TYPE_WILD_SCRIPTED.
#define BATTLE_TYPE_ARENA (1 << 18) #define BATTLE_TYPE_ARENA (1 << 18) // Used in pokefirered as BATTLE_TYPE_LEGENDARY_FRLG.
#define BATTLE_TYPE_FACTORY (1 << 19) #define BATTLE_TYPE_FACTORY (1 << 19) // Used in pokefirered as BATTLE_TYPE_TRAINER_TOWER.
#define BATTLE_TYPE_PIKE (1 << 20) #define BATTLE_TYPE_PIKE (1 << 20)
#define BATTLE_TYPE_PYRAMID (1 << 21) #define BATTLE_TYPE_PYRAMID (1 << 21)
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22) #define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
@ -418,6 +418,11 @@
#define FLEE_ITEM 1 #define FLEE_ITEM 1
#define FLEE_ABILITY 2 #define FLEE_ABILITY 2
// Return value for IsRunningFromBattleImpossible.
#define BATTLE_RUN_SUCCESS 0
#define BATTLE_RUN_FORBIDDEN 1
#define BATTLE_RUN_FAILURE 2
#define B_WIN_TYPE_NORMAL 0 #define B_WIN_TYPE_NORMAL 0
#define B_WIN_TYPE_ARENA 1 #define B_WIN_TYPE_ARENA 1

View File

@ -17,4 +17,10 @@
#define ARENA_CATEGORY_SKILL 1 #define ARENA_CATEGORY_SKILL 1
#define ARENA_CATEGORY_BODY 2 #define ARENA_CATEGORY_BODY 2
#define ARENA_RESULT_RUNNING 0 // For intermediate steps, when BattleArena_ShowJudgmentWindow should be called again immediately
#define ARENA_RESULT_STEP_DONE 1 // A step has been completed, the script may advance to the next instruction
#define ARENA_RESULT_PLAYER_WON 2
#define ARENA_RESULT_PLAYER_LOST 3
#define ARENA_RESULT_TIE 4
#endif //GUARD_CONSTANTS_BATTLE_ARENA_H #endif //GUARD_CONSTANTS_BATTLE_ARENA_H

View File

@ -3,127 +3,6 @@
#include "constants/expansion_branches.h" #include "constants/expansion_branches.h"
// Species with peculiar battle effects.
#ifndef POKEMON_EXPANSION
#define SPECIES_DIALGA 0
#define SPECIES_PALKIA 0
#define SPECIES_GIRATINA 0
#define SPECIES_CHERRIM 0
#define SPECIES_ARCEUS 0
#define SPECIES_SILVALLY 0
#define SPECIES_GENESECT 0
#define SPECIES_AEGISLASH 0
#define SPECIES_AEGISLASH_BLADE 10000
#define SPECIES_MIMIKYU 0
#define SPECIES_MIMIKYU_BUSTED 10001
#define SPECIES_DARMANITAN 0
#define SPECIES_DARMANITAN_ZEN_MODE 10002
#define SPECIES_MINIOR_CORE_RED 0
#define SPECIES_MINIOR 10003
#define SPECIES_MINIOR_CORE_BLUE 0
#define SPECIES_MINIOR_METEOR_BLUE 10004
#define SPECIES_MINIOR_CORE_GREEN 0
#define SPECIES_MINIOR_METEOR_GREEN 10005
#define SPECIES_MINIOR_CORE_INDIGO 0
#define SPECIES_MINIOR_METEOR_INDIGO 10006
#define SPECIES_MINIOR_CORE_ORANGE 0
#define SPECIES_MINIOR_METEOR_ORANGE 10007
#define SPECIES_MINIOR_CORE_VIOLET 0
#define SPECIES_MINIOR_METEOR_VIOLET 10008
#define SPECIES_MINIOR_CORE_YELLOW 0
#define SPECIES_MINIOR_METEOR_YELLOW 10009
#define SPECIES_WISHIWASHI 0
#define SPECIES_WISHIWASHI_SCHOOL 10010
#define SPECIES_ZYGARDE 0 // 50%
#define SPECIES_ZYGARDE_10 10011 // 10 %
#define SPECIES_ZYGARDE_COMPLETE 10012 // 100 %
#define SPECIES_BURMY 0
#define SPECIES_BURMY_SANDY_CLOAK 10013
#define SPECIES_BURMY_TRASH_CLOAK 10014
#define SPECIES_CRAMORANT 0
#define SPECIES_CRAMORANT_GORGING 10015
#define SPECIES_CRAMORANT_GULPING 10016
#define SPECIES_GRENINJA_BATTLE_BOND 0
#define SPECIES_GRENINJA_ASH 10017
#define SPECIES_HOOPA 0
#define SPECIES_HOOPA_UNBOUND 10018
#define SPECIES_MELOETTA 0
#define SPECIES_MELOETTA_PIROUETTE 10019
#define SPECIES_MORPEKO 0
#define SPECIES_MORPEKO_HANGRY 10020
#define SPECIES_SIRFETCHD 10021
#define SPECIES_DARMANITAN_GALARIAN 0
#define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN 10022
#define SPECIES_HEATMOR 0
#define SPECIES_DURANT 0
#define SPECIES_CARBINK 0
#define SPECIES_MAREANIE 0
#endif
// Items with peculiar battle effects.
#ifndef ITEM_EXPANSION
#define ITEM_CHOPLE_BERRY 177
#define ITEM_KEBIA_BERRY 178
#define ITEM_SHUCA_BERRY 179
#define ITEM_COBA_BERRY 180
#define ITEM_PAYAPA_BERRY 181
#define ITEM_TANGA_BERRY 182
#define ITEM_CHARTI_BERRY 183
#define ITEM_KASIB_BERRY 184
#define ITEM_HABAN_BERRY 185
#define ITEM_COLBUR_BERRY 186
#define ITEM_BABIRI_BERRY 187
#define ITEM_CHILAN_BERRY 188
#define ITEM_ROSELI_BERRY 189
#define ITEM_MICLE_BERRY 197
#define ITEM_CUSTAP_BERRY 199
#define ITEM_JABOCA_BERRY 200
#define ITEM_ROWAP_BERRY 201
#define ITEM_KEE_BERRY 202
#define ITEM_MARANGA_BERRY 203
#define ITEM_OCCA_BERRY 204
#define ITEM_PASSHO_BERRY 205
#define ITEM_WACAN_BERRY 206
#define ITEM_RINDO_BERRY 207
#define ITEM_YACHE_BERRY 208
#define ITEM_GRISEOUS_ORB 369
// z crystals
#define ITEM_NORMALIUM_Z 568
#define ITEM_FIGHTINIUM_Z 569
#define ITEM_FLYINIUM_Z 570
#define ITEM_POISONIUM_Z 571
#define ITEM_GROUNDIUM_Z 572
#define ITEM_ROCKIUM_Z 573
#define ITEM_BUGINIUM_Z 574
#define ITEM_GHOSTIUM_Z 575
#define ITEM_STEELIUM_Z 576
#define ITEM_FIRIUM_Z 577
#define ITEM_WATERIUM_Z 578
#define ITEM_GRASSIUM_Z 579
#define ITEM_ELECTRIUM_Z 580
#define ITEM_PSYCHIUM_Z 581
#define ITEM_ICIUM_Z 582
#define ITEM_DRAGONIUM_Z 583
#define ITEM_DARKINIUM_Z 584
#define ITEM_FAIRIUM_Z 585
#define ITEM_ALORAICHIUM_Z 586
#define ITEM_DECIDIUM_Z 587
#define ITEM_EEVIUM_Z 588
#define ITEM_INCINIUM_Z 589
#define ITEM_KOMMONIUM_Z 590
#define ITEM_LUNALIUM_Z 591
#define ITEM_LYCANIUM_Z 592
#define ITEM_MARSHADIUM_Z 593
#define ITEM_MEWNIUM_Z 594
#define ITEM_MIMIKIUM_Z 595
#define ITEM_PIKANIUM_Z 596
#define ITEM_PIKASHUNIUM_Z 597
#define ITEM_PRIMARIUM_Z 598
#define ITEM_SNORLIUM_Z 599
#define ITEM_SOLGANIUM_Z 600
#define ITEM_TAPUNIUM_Z 601
#endif
#ifndef GEN_3 #ifndef GEN_3
#define GEN_3 0 #define GEN_3 0
#define GEN_4 1 #define GEN_4 1

View File

@ -63,15 +63,15 @@
#define BS_EFFECT_BATTLER 2 #define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3 #define BS_FAINTED 3
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon #define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
#define BS_FAINTED_LINK_MULTIPLE_1 5 #define BS_FAINTED_LINK_MULTIPLE_1 5 // for openpartyscreen
#define BS_FAINTED_LINK_MULTIPLE_2 6 #define BS_FAINTED_LINK_MULTIPLE_2 6 // for openpartyscreen
#define BS_BATTLER_0 7 #define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability #define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_TARGET_SIDE 9 // for Cmd_jumpifability #define BS_TARGET_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10 #define BS_SCRIPTING 10
#define BS_PLAYER1 11 #define BS_PLAYER1 11
#define BS_OPPONENT1 12 #define BS_OPPONENT1 12
#define BS_PLAYER2 13 #define BS_PLAYER2 13 // for Cmd_updatestatusicon
#define BS_OPPONENT2 14 #define BS_OPPONENT2 14
#define BS_ABILITY_BATTLER 15 #define BS_ABILITY_BATTLER 15
@ -258,9 +258,9 @@
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7) #define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// Cmd_statbuffchange // Cmd_statbuffchange
#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange #define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5) #define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5)
#define STAT_BUFF_UPDATE_MOVE_EFFECT (1 << 6) #define STAT_CHANGE_UPDATE_MOVE_EFFECT (1 << 6)
// stat change flags for Cmd_playstatchangeanimation // stat change flags for Cmd_playstatchangeanimation
#define STAT_CHANGE_NEGATIVE (1 << 0) #define STAT_CHANGE_NEGATIVE (1 << 0)

View File

@ -232,8 +232,8 @@
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94 #define MOVEMENT_ACTION_LOCK_ANIM 0x94
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95 #define MOVEMENT_ACTION_UNLOCK_ANIM 0x95
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96 #define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97 #define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98 #define MOVEMENT_ACTION_LEVITATE 0x98

View File

@ -109,6 +109,12 @@
#define WONDER_CARD_BODY_TEXT_LINES 4 #define WONDER_CARD_BODY_TEXT_LINES 4
#define WONDER_NEWS_BODY_TEXT_LINES 10 #define WONDER_NEWS_BODY_TEXT_LINES 10
#define TYPE_NAME_LENGTH 6 #define TYPE_NAME_LENGTH 6
#if B_EXPANDED_ABILITY_NAMES == TRUE
#define ABILITY_NAME_LENGTH 16
#else
#define ABILITY_NAME_LENGTH 12
#endif
#define TRAINER_NAME_LENGTH 10
#define MAX_STAMP_CARD_STAMPS 7 #define MAX_STAMP_CARD_STAMPS 7

View File

@ -2,22 +2,10 @@
#define GUARD_CONSTANTS_ITEM_EFFECTS_H #define GUARD_CONSTANTS_ITEM_EFFECTS_H
// field 0 masks // field 0 masks
#ifndef ITEM_EXPANSION
#define ITEM0_X_ATTACK 0x0F
#endif
#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy. #define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
#define ITEM0_SACRED_ASH 0x40 #define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80 #define ITEM0_INFATUATION 0x80
#ifndef ITEM_EXPANSION
// field 1 masks
#define ITEM1_X_SPEED 0x0F
#define ITEM1_X_DEFEND 0xF0
// field 2 masks
#define ITEM2_X_SPATK 0x0F
#define ITEM2_X_ACCURACY 0xF0
#else
// new field 1 masks // new field 1 masks
#define ITEM1_X_ATTACK 0x1 #define ITEM1_X_ATTACK 0x1
#define ITEM1_X_DEFENSE 0x2 #define ITEM1_X_DEFENSE 0x2
@ -25,7 +13,6 @@
#define ITEM1_X_SPATK 0x8 #define ITEM1_X_SPATK 0x8
#define ITEM1_X_SPDEF 0x10 #define ITEM1_X_SPDEF 0x10
#define ITEM1_X_ACCURACY 0x20 #define ITEM1_X_ACCURACY 0x20
#endif
// field 3 masks // field 3 masks
#define ITEM3_CONFUSION 0x1 #define ITEM3_CONFUSION 0x1

View File

@ -1,7 +1,8 @@
#ifndef GUARD_CONSTANTS_POKEDEX_H #ifndef GUARD_CONSTANTS_POKEDEX_H
#define GUARD_CONSTANTS_POKEDEX_H #define GUARD_CONSTANTS_POKEDEX_H
// National Pokedex order #include "constants/pokemon_config.h"
// National Pokedex order. Gen 4+ mons and forms are not disabled by P_NEW_POKEMON to keep pokedex_orders.h clean.
enum { enum {
NATIONAL_DEX_NONE, NATIONAL_DEX_NONE,
// Kanto // Kanto
@ -915,7 +916,11 @@ enum {
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define KANTO_DEX_COUNT NATIONAL_DEX_MEW
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
#if P_NEW_POKEMON == TRUE
#define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX #define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX
#else
#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
#endif
#define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1) #define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1)
// Hoenn Pokedex order // Hoenn Pokedex order
@ -952,7 +957,9 @@ enum {
HOENN_DEX_RALTS, HOENN_DEX_RALTS,
HOENN_DEX_KIRLIA, HOENN_DEX_KIRLIA,
HOENN_DEX_GARDEVOIR, HOENN_DEX_GARDEVOIR,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_GALLADE, HOENN_DEX_GALLADE,
#endif
HOENN_DEX_SURSKIT, HOENN_DEX_SURSKIT,
HOENN_DEX_MASQUERAIN, HOENN_DEX_MASQUERAIN,
HOENN_DEX_SHROOMISH, HOENN_DEX_SHROOMISH,
@ -982,7 +989,9 @@ enum {
HOENN_DEX_GRAVELER, HOENN_DEX_GRAVELER,
HOENN_DEX_GOLEM, HOENN_DEX_GOLEM,
HOENN_DEX_NOSEPASS, HOENN_DEX_NOSEPASS,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_PROBOPASS, HOENN_DEX_PROBOPASS,
#endif
HOENN_DEX_SKITTY, HOENN_DEX_SKITTY,
HOENN_DEX_DELCATTY, HOENN_DEX_DELCATTY,
HOENN_DEX_ZUBAT, HOENN_DEX_ZUBAT,
@ -1006,7 +1015,9 @@ enum {
HOENN_DEX_MINUN, HOENN_DEX_MINUN,
HOENN_DEX_MAGNEMITE, HOENN_DEX_MAGNEMITE,
HOENN_DEX_MAGNETON, HOENN_DEX_MAGNETON,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_MAGNEZONE, HOENN_DEX_MAGNEZONE,
#endif
HOENN_DEX_VOLTORB, HOENN_DEX_VOLTORB,
HOENN_DEX_ELECTRODE, HOENN_DEX_ELECTRODE,
HOENN_DEX_VOLBEAT, HOENN_DEX_VOLBEAT,
@ -1017,9 +1028,13 @@ enum {
HOENN_DEX_BELLOSSOM, HOENN_DEX_BELLOSSOM,
HOENN_DEX_DODUO, HOENN_DEX_DODUO,
HOENN_DEX_DODRIO, HOENN_DEX_DODRIO,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_BUDEW, HOENN_DEX_BUDEW,
HOENN_DEX_ROSELIA, HOENN_DEX_ROSELIA,
HOENN_DEX_ROSERADE, HOENN_DEX_ROSERADE,
#else
HOENN_DEX_ROSELIA,
#endif
HOENN_DEX_GULPIN, HOENN_DEX_GULPIN,
HOENN_DEX_SWALOT, HOENN_DEX_SWALOT,
HOENN_DEX_CARVANHA, HOENN_DEX_CARVANHA,
@ -1075,9 +1090,13 @@ enum {
HOENN_DEX_BANETTE, HOENN_DEX_BANETTE,
HOENN_DEX_DUSKULL, HOENN_DEX_DUSKULL,
HOENN_DEX_DUSCLOPS, HOENN_DEX_DUSCLOPS,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_DUSKNOIR, HOENN_DEX_DUSKNOIR,
HOENN_DEX_TROPIUS, HOENN_DEX_TROPIUS,
HOENN_DEX_CHINGLING, HOENN_DEX_CHINGLING,
#else
HOENN_DEX_TROPIUS,
#endif
HOENN_DEX_CHIMECHO, HOENN_DEX_CHIMECHO,
HOENN_DEX_ABSOL, HOENN_DEX_ABSOL,
HOENN_DEX_VULPIX, HOENN_DEX_VULPIX,
@ -1098,10 +1117,14 @@ enum {
HOENN_DEX_HERACROSS, HOENN_DEX_HERACROSS,
HOENN_DEX_RHYHORN, HOENN_DEX_RHYHORN,
HOENN_DEX_RHYDON, HOENN_DEX_RHYDON,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_RHYPERIOR, HOENN_DEX_RHYPERIOR,
#endif
HOENN_DEX_SNORUNT, HOENN_DEX_SNORUNT,
HOENN_DEX_GLALIE, HOENN_DEX_GLALIE,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_FROSLASS, HOENN_DEX_FROSLASS,
#endif
HOENN_DEX_SPHEAL, HOENN_DEX_SPHEAL,
HOENN_DEX_SEALEO, HOENN_DEX_SEALEO,
HOENN_DEX_WALREIN, HOENN_DEX_WALREIN,

View File

@ -94,97 +94,6 @@
// Shiny odds // Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
// Flags for Get(Box)MonData / Set(Box)MonData
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_MARINE_RIBBON 72
#define MON_DATA_LAND_RIBBON 73
#define MON_DATA_SKY_RIBBON 74
#define MON_DATA_COUNTRY_RIBBON 75
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
// Ribbon IDs used by TV and Pokénav // Ribbon IDs used by TV and Pokénav
#define CHAMPION_RIBBON 0 #define CHAMPION_RIBBON 0
#define COOL_RIBBON_NORMAL 1 #define COOL_RIBBON_NORMAL 1

View File

@ -21,355 +21,8 @@
#define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone. #define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone.
#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. #define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat.
#define P_NEW_POKEMON TRUE // Turning this to FALSE will remove all newly added Pokémon and Forms. Only Unown, Castform and Deoxys forms will remain.
#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. #define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen.
#ifndef ITEM_EXPANSION
//Item Definitions for gEvolutionTable
//EVO_MEGA_EVOLUTION
#define ITEM_VENUSAURITE 10001
#define ITEM_CHARIZARDITE_X 10002
#define ITEM_CHARIZARDITE_Y 10003
#define ITEM_BLASTOISINITE 10004
#define ITEM_BEEDRILLITE 10005
#define ITEM_PIDGEOTITE 10006
#define ITEM_ALAKAZITE 10007
#define ITEM_SLOWBRONITE 10008
#define ITEM_GENGARITE 10009
#define ITEM_KANGASKHANITE 10010
#define ITEM_PINSIRITE 10011
#define ITEM_GYARADOSITE 10012
#define ITEM_AERODACTYLITE 10013
#define ITEM_MEWTWONITE_X 10014
#define ITEM_MEWTWONITE_Y 10015
#define ITEM_AMPHAROSITE 10016
#define ITEM_STEELIXITE 10017
#define ITEM_SCIZORITE 10018
#define ITEM_HERACRONITE 10019
#define ITEM_HOUNDOOMINITE 10020
#define ITEM_TYRANITARITE 10021
#define ITEM_SCEPTILITE 10022
#define ITEM_BLAZIKENITE 10023
#define ITEM_SWAMPERTITE 10024
#define ITEM_SABLENITE 10025
#define ITEM_SHARPEDONITE 10026
#define ITEM_MANECTITE 10027
#define ITEM_CAMERUPTITE 10028
#define ITEM_GLALITITE 10029
#define ITEM_MAWILITE 10030
#define ITEM_MEDICHAMITE 10031
#define ITEM_ALTARIANITE 10032
#define ITEM_ABSOLITE 10033
#define ITEM_BANETTITE 10034
#define ITEM_AGGRONITE 10035
#define ITEM_GARDEVOIRITE 10036
#define ITEM_SALAMENCITE 10037
#define ITEM_METAGROSSITE 10038
#define ITEM_LATIASITE 10039
#define ITEM_LATIOSITE 10040
#define ITEM_LOPUNNITE 10041
#define ITEM_GARCHOMPITE 10042
#define ITEM_LUCARIONITE 10043
#define ITEM_ABOMASITE 10044
#define ITEM_GALLADITE 10045
#define ITEM_AUDINITE 10046
#define ITEM_DIANCITE 10047
//EVO_TRADE_ITEM
#define ITEM_PROTECTOR 10048
#define ITEM_ELECTIRIZER 10049
#define ITEM_MAGMARIZER 10050
#define ITEM_DUBIOUS_DISC 10051
#define ITEM_PRISM_SCALE 10052
#define ITEM_REAPER_CLOTH 10053
#define ITEM_SACHET 10054
#define ITEM_WHIPPED_DREAM 10055
//EVO_ITEM
#define ITEM_ICE_STONE 10056
#define ITEM_SHINY_STONE 10057
#define ITEM_DUSK_STONE 10058
#define ITEM_DAWN_STONE 10059
#define ITEM_TART_APPLE 10060
#define ITEM_SWEET_APPLE 10061
#define ITEM_CRACKED_POT 10062
#define ITEM_GALARICA_CUFF 10063
#define ITEM_GALARICA_WREATH 10064
#define ITEM_CHIPPED_POT 10065
//EVO_ITEM_HOLD
#define ITEM_RAZOR_FANG 10066
#define ITEM_RAZOR_CLAW 10067
#define ITEM_OVAL_STONE 10068
//FORM_ITEM_HOLD
#define ITEM_GRISEOUS_ORB 10069
#define ITEM_DRACO_PLATE 10070
#define ITEM_DREAD_PLATE 10071
#define ITEM_EARTH_PLATE 10072
#define ITEM_FIST_PLATE 10073
#define ITEM_FLAME_PLATE 10074
#define ITEM_ICICLE_PLATE 10075
#define ITEM_INSECT_PLATE 10076
#define ITEM_IRON_PLATE 10077
#define ITEM_MEADOW_PLATE 10078
#define ITEM_MIND_PLATE 10079
#define ITEM_PIXIE_PLATE 10080
#define ITEM_SKY_PLATE 10081
#define ITEM_SPLASH_PLATE 10082
#define ITEM_SPOOKY_PLATE 10083
#define ITEM_STONE_PLATE 10084
#define ITEM_TOXIC_PLATE 10085
#define ITEM_ZAP_PLATE 10086
#define ITEM_FIGHTINIUM_Z 10087
#define ITEM_FLYINIUM_Z 10088
#define ITEM_POISONIUM_Z 10089
#define ITEM_GROUNDIUM_Z 10090
#define ITEM_ROCKIUM_Z 10091
#define ITEM_BUGINIUM_Z 10092
#define ITEM_GHOSTIUM_Z 10093
#define ITEM_STEELIUM_Z 10094
#define ITEM_FIRIUM_Z 10095
#define ITEM_WATERIUM_Z 10096
#define ITEM_GRASSIUM_Z 10097
#define ITEM_ELECTRIUM_Z 10098
#define ITEM_PSYCHIUM_Z 10099
#define ITEM_ICIUM_Z 10100
#define ITEM_DRAGONIUM_Z 10101
#define ITEM_DARKINIUM_Z 10102
#define ITEM_FAIRIUM_Z 10103
#define ITEM_DOUSE_DRIVE 10104
#define ITEM_SHOCK_DRIVE 10105
#define ITEM_BURN_DRIVE 10106
#define ITEM_CHILL_DRIVE 10107
#define ITEM_BUG_MEMORY 10108
#define ITEM_DARK_MEMORY 10109
#define ITEM_DRAGON_MEMORY 10110
#define ITEM_ELECTRIC_MEMORY 10111
#define ITEM_FAIRY_MEMORY 10112
#define ITEM_FIGHTING_MEMORY 10113
#define ITEM_FIRE_MEMORY 10114
#define ITEM_FLYING_MEMORY 10115
#define ITEM_GHOST_MEMORY 10116
#define ITEM_GRASS_MEMORY 10117
#define ITEM_GROUND_MEMORY 10118
#define ITEM_ICE_MEMORY 10119
#define ITEM_POISON_MEMORY 10120
#define ITEM_PSYCHIC_MEMORY 10121
#define ITEM_ROCK_MEMORY 10122
#define ITEM_STEEL_MEMORY 10123
#define ITEM_WATER_MEMORY 10124
//FORM_ITEM_USE
#define ITEM_GRACIDEA 10125
#define ITEM_REVEAL_GLASS 10126
#define ITEM_PRISON_BOTTLE 10127
#define ITEM_RED_NECTAR 10128
#define ITEM_YELLOW_NECTAR 10129
#define ITEM_PINK_NECTAR 10130
#define ITEM_PURPLE_NECTAR 10131
// Held Items
#define ITEM_HONEY ITEM_NONE
#endif // ITEM_EXPANSION
#ifndef BATTLE_ENGINE
// Gen 4
#define ABILITY_TANGLED_FEET ABILITY_NONE
#define ABILITY_MOTOR_DRIVE ABILITY_NONE
#define ABILITY_RIVALRY ABILITY_NONE
#define ABILITY_STEADFAST ABILITY_NONE
#define ABILITY_SNOW_CLOAK ABILITY_NONE
#define ABILITY_GLUTTONY ABILITY_NONE
#define ABILITY_ANGER_POINT ABILITY_NONE
#define ABILITY_UNBURDEN ABILITY_NONE
#define ABILITY_HEATPROOF ABILITY_NONE
#define ABILITY_SIMPLE ABILITY_NONE
#define ABILITY_DRY_SKIN ABILITY_NONE
#define ABILITY_DOWNLOAD ABILITY_NONE
#define ABILITY_IRON_FIST ABILITY_NONE
#define ABILITY_POISON_HEAL ABILITY_NONE
#define ABILITY_ADAPTABILITY ABILITY_NONE
#define ABILITY_SKILL_LINK ABILITY_NONE
#define ABILITY_HYDRATION ABILITY_NONE
#define ABILITY_SOLAR_POWER ABILITY_NONE
#define ABILITY_QUICK_FEET ABILITY_NONE
#define ABILITY_NORMALIZE ABILITY_NONE
#define ABILITY_SNIPER ABILITY_NONE
#define ABILITY_MAGIC_GUARD ABILITY_NONE
#define ABILITY_NO_GUARD ABILITY_NONE
#define ABILITY_STALL ABILITY_NONE
#define ABILITY_TECHNICIAN ABILITY_NONE
#define ABILITY_LEAF_GUARD ABILITY_NONE
#define ABILITY_KLUTZ ABILITY_NONE
#define ABILITY_MOLD_BREAKER ABILITY_NONE
#define ABILITY_SUPER_LUCK ABILITY_NONE
#define ABILITY_AFTERMATH ABILITY_NONE
#define ABILITY_ANTICIPATION ABILITY_NONE
#define ABILITY_FOREWARN ABILITY_NONE
#define ABILITY_UNAWARE ABILITY_NONE
#define ABILITY_TINTED_LENS ABILITY_NONE
#define ABILITY_FILTER ABILITY_NONE
#define ABILITY_SLOW_START ABILITY_NONE
#define ABILITY_SCRAPPY ABILITY_NONE
#define ABILITY_STORM_DRAIN ABILITY_NONE
#define ABILITY_ICE_BODY ABILITY_NONE
#define ABILITY_SOLID_ROCK ABILITY_NONE
#define ABILITY_SNOW_WARNING ABILITY_NONE
#define ABILITY_HONEY_GATHER ABILITY_NONE
#define ABILITY_FRISK ABILITY_NONE
#define ABILITY_RECKLESS ABILITY_NONE
#define ABILITY_MULTITYPE ABILITY_NONE
#define ABILITY_FLOWER_GIFT ABILITY_NONE
#define ABILITY_BAD_DREAMS ABILITY_NONE
// Gen 5
#define ABILITY_PICKPOCKET ABILITY_NONE
#define ABILITY_SHEER_FORCE ABILITY_NONE
#define ABILITY_CONTRARY ABILITY_NONE
#define ABILITY_UNNERVE ABILITY_NONE
#define ABILITY_DEFIANT ABILITY_NONE
#define ABILITY_DEFEATIST ABILITY_NONE
#define ABILITY_CURSED_BODY ABILITY_NONE
#define ABILITY_HEALER ABILITY_NONE
#define ABILITY_FRIEND_GUARD ABILITY_NONE
#define ABILITY_WEAK_ARMOR ABILITY_NONE
#define ABILITY_HEAVY_METAL ABILITY_NONE
#define ABILITY_LIGHT_METAL ABILITY_NONE
#define ABILITY_MULTISCALE ABILITY_NONE
#define ABILITY_TOXIC_BOOST ABILITY_NONE
#define ABILITY_FLARE_BOOST ABILITY_NONE
#define ABILITY_HARVEST ABILITY_NONE
#define ABILITY_TELEPATHY ABILITY_NONE
#define ABILITY_MOODY ABILITY_NONE
#define ABILITY_OVERCOAT ABILITY_NONE
#define ABILITY_POISON_TOUCH ABILITY_NONE
#define ABILITY_REGENERATOR ABILITY_NONE
#define ABILITY_BIG_PECKS ABILITY_NONE
#define ABILITY_SAND_RUSH ABILITY_NONE
#define ABILITY_WONDER_SKIN ABILITY_NONE
#define ABILITY_ANALYTIC ABILITY_NONE
#define ABILITY_ILLUSION ABILITY_NONE
#define ABILITY_IMPOSTER ABILITY_NONE
#define ABILITY_INFILTRATOR ABILITY_NONE
#define ABILITY_MUMMY ABILITY_NONE
#define ABILITY_MOXIE ABILITY_NONE
#define ABILITY_JUSTIFIED ABILITY_NONE
#define ABILITY_RATTLED ABILITY_NONE
#define ABILITY_MAGIC_BOUNCE ABILITY_NONE
#define ABILITY_SAP_SIPPER ABILITY_NONE
#define ABILITY_PRANKSTER ABILITY_NONE
#define ABILITY_SAND_FORCE ABILITY_NONE
#define ABILITY_IRON_BARBS ABILITY_NONE
#define ABILITY_ZEN_MODE ABILITY_NONE
#define ABILITY_VICTORY_STAR ABILITY_NONE
#define ABILITY_TURBOBLAZE ABILITY_NONE
#define ABILITY_TERAVOLT ABILITY_NONE
// Gen 6
#define ABILITY_AROMA_VEIL ABILITY_NONE
#define ABILITY_FLOWER_VEIL ABILITY_NONE
#define ABILITY_CHEEK_POUCH ABILITY_NONE
#define ABILITY_PROTEAN ABILITY_NONE
#define ABILITY_FUR_COAT ABILITY_NONE
#define ABILITY_MAGICIAN ABILITY_NONE
#define ABILITY_BULLETPROOF ABILITY_NONE
#define ABILITY_COMPETITIVE ABILITY_NONE
#define ABILITY_STRONG_JAW ABILITY_NONE
#define ABILITY_REFRIGERATE ABILITY_NONE
#define ABILITY_SWEET_VEIL ABILITY_NONE
#define ABILITY_STANCE_CHANGE ABILITY_NONE
#define ABILITY_GALE_WINGS ABILITY_NONE
#define ABILITY_MEGA_LAUNCHER ABILITY_NONE
#define ABILITY_GRASS_PELT ABILITY_NONE
#define ABILITY_SYMBIOSIS ABILITY_NONE
#define ABILITY_TOUGH_CLAWS ABILITY_NONE
#define ABILITY_PIXILATE ABILITY_NONE
#define ABILITY_GOOEY ABILITY_NONE
#define ABILITY_AERILATE ABILITY_NONE
#define ABILITY_PARENTAL_BOND ABILITY_NONE
#define ABILITY_DARK_AURA ABILITY_NONE
#define ABILITY_FAIRY_AURA ABILITY_NONE
#define ABILITY_AURA_BREAK ABILITY_NONE
#define ABILITY_PRIMORDIAL_SEA ABILITY_NONE
#define ABILITY_DESOLATE_LAND ABILITY_NONE
#define ABILITY_DELTA_STREAM ABILITY_NONE
// Gen 7
#define ABILITY_STAMINA ABILITY_NONE
#define ABILITY_WIMP_OUT ABILITY_NONE
#define ABILITY_EMERGENCY_EXIT ABILITY_NONE
#define ABILITY_WATER_COMPACTION ABILITY_NONE
#define ABILITY_MERCILESS ABILITY_NONE
#define ABILITY_SHIELDS_DOWN ABILITY_NONE
#define ABILITY_STAKEOUT ABILITY_NONE
#define ABILITY_WATER_BUBBLE ABILITY_NONE
#define ABILITY_STEELWORKER ABILITY_NONE
#define ABILITY_BERSERK ABILITY_NONE
#define ABILITY_SLUSH_RUSH ABILITY_NONE
#define ABILITY_LONG_REACH ABILITY_NONE
#define ABILITY_LIQUID_VOICE ABILITY_NONE
#define ABILITY_TRIAGE ABILITY_NONE
#define ABILITY_GALVANIZE ABILITY_NONE
#define ABILITY_SURGE_SURFER ABILITY_NONE
#define ABILITY_SCHOOLING ABILITY_NONE
#define ABILITY_DISGUISE ABILITY_NONE
#define ABILITY_BATTLE_BOND ABILITY_NONE
#define ABILITY_POWER_CONSTRUCT ABILITY_NONE
#define ABILITY_CORROSION ABILITY_NONE
#define ABILITY_COMATOSE ABILITY_NONE
#define ABILITY_QUEENLY_MAJESTY ABILITY_NONE
#define ABILITY_INNARDS_OUT ABILITY_NONE
#define ABILITY_DANCER ABILITY_NONE
#define ABILITY_BATTERY ABILITY_NONE
#define ABILITY_FLUFFY ABILITY_NONE
#define ABILITY_DAZZLING ABILITY_NONE
#define ABILITY_SOUL_HEART ABILITY_NONE
#define ABILITY_TANGLING_HAIR ABILITY_NONE
#define ABILITY_RECEIVER ABILITY_NONE
#define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE
#define ABILITY_BEAST_BOOST ABILITY_NONE
#define ABILITY_RKS_SYSTEM ABILITY_NONE
#define ABILITY_ELECTRIC_SURGE ABILITY_NONE
#define ABILITY_PSYCHIC_SURGE ABILITY_NONE
#define ABILITY_MISTY_SURGE ABILITY_NONE
#define ABILITY_GRASSY_SURGE ABILITY_NONE
#define ABILITY_FULL_METAL_BODY ABILITY_NONE
#define ABILITY_SHADOW_SHIELD ABILITY_NONE
#define ABILITY_PRISM_ARMOR ABILITY_NONE
#define ABILITY_NEUROFORCE ABILITY_NONE
// Gen 8
#define ABILITY_INTREPID_SWORD ABILITY_NONE
#define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE
#define ABILITY_LIBERO ABILITY_NONE
#define ABILITY_BALL_FETCH ABILITY_NONE
#define ABILITY_COTTON_DOWN ABILITY_NONE
#define ABILITY_PROPELLER_TAIL ABILITY_NONE
#define ABILITY_MIRROR_ARMOR ABILITY_NONE
#define ABILITY_GULP_MISSILE ABILITY_NONE
#define ABILITY_STALWART ABILITY_NONE
#define ABILITY_STEAM_ENGINE ABILITY_NONE
#define ABILITY_PUNK_ROCK ABILITY_NONE
#define ABILITY_SAND_SPIT ABILITY_NONE
#define ABILITY_ICE_SCALES ABILITY_NONE
#define ABILITY_RIPEN ABILITY_NONE
#define ABILITY_ICE_FACE ABILITY_NONE
#define ABILITY_POWER_SPOT ABILITY_NONE
#define ABILITY_MIMICRY ABILITY_NONE
#define ABILITY_SCREEN_CLEANER ABILITY_NONE
#define ABILITY_STEELY_SPIRIT ABILITY_NONE
#define ABILITY_PERISH_BODY ABILITY_NONE
#define ABILITY_WANDERING_SPIRIT ABILITY_NONE
#define ABILITY_GORILLA_TACTICS ABILITY_NONE
#define ABILITY_NEUTRALIZING_GAS ABILITY_NONE
#define ABILITY_PASTEL_VEIL ABILITY_NONE
#define ABILITY_HUNGER_SWITCH ABILITY_NONE
#define ABILITY_QUICK_DRAW ABILITY_NONE
#define ABILITY_UNSEEN_FIST ABILITY_NONE
#define ABILITY_CURIOUS_MEDICINE ABILITY_NONE
#define ABILITY_TRANSISTOR ABILITY_NONE
#define ABILITY_DRAGONS_MAW ABILITY_NONE
#define ABILITY_CHILLING_NEIGH ABILITY_NONE
#define ABILITY_GRIM_NEIGH ABILITY_NONE
#define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE
#define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE
#endif // BATTLE_ENGINE
#endif // GUARD_CONSTANTS_POKEMON_CONFIG_H #endif // GUARD_CONSTANTS_POKEMON_CONFIG_H

View File

@ -100,8 +100,8 @@
#define MAPSEC_CINNABAR_ISLAND 0x60 #define MAPSEC_CINNABAR_ISLAND 0x60
#define MAPSEC_INDIGO_PLATEAU 0x61 #define MAPSEC_INDIGO_PLATEAU 0x61
#define MAPSEC_SAFFRON_CITY 0x62 #define MAPSEC_SAFFRON_CITY 0x62
#define MAPSEC_ROUTE_4_FLYDUP 0x63 #define MAPSEC_ROUTE_4_POKECENTER 0x63
#define MAPSEC_ROUTE_10_FLYDUP 0x64 #define MAPSEC_ROUTE_10_POKECENTER 0x64
#define MAPSEC_ROUTE_1 0x65 #define MAPSEC_ROUTE_1 0x65
#define MAPSEC_ROUTE_2 0x66 #define MAPSEC_ROUTE_2 0x66
#define MAPSEC_ROUTE_3 0x67 #define MAPSEC_ROUTE_3 0x67

View File

@ -1,6 +1,8 @@
#ifndef GUARD_CONSTANTS_SPECIES_H #ifndef GUARD_CONSTANTS_SPECIES_H
#define GUARD_CONSTANTS_SPECIES_H #define GUARD_CONSTANTS_SPECIES_H
#include "constants/pokemon_config.h"
#define SPECIES_NONE 0 #define SPECIES_NONE 0
#define SPECIES_BULBASAUR 1 #define SPECIES_BULBASAUR 1
#define SPECIES_IVYSAUR 2 #define SPECIES_IVYSAUR 2
@ -901,8 +903,6 @@
#define SPECIES_SPECTRIER 897 #define SPECIES_SPECTRIER 897
#define SPECIES_CALYREX 898 #define SPECIES_CALYREX 898
#define FORMS_START SPECIES_CALYREX
// Megas // Megas
#define SPECIES_VENUSAUR_MEGA FORMS_START + 1 #define SPECIES_VENUSAUR_MEGA FORMS_START + 1
#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2 #define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2
@ -1021,6 +1021,7 @@
// Pichu // Pichu
#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 102 #define SPECIES_PICHU_SPIKY_EARED FORMS_START + 102
#if P_NEW_POKEMON == TRUE
// Unown // Unown
#define SPECIES_UNOWN_B FORMS_START + 103 #define SPECIES_UNOWN_B FORMS_START + 103
#define SPECIES_UNOWN_C FORMS_START + 104 #define SPECIES_UNOWN_C FORMS_START + 104
@ -1060,6 +1061,47 @@
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 134 #define SPECIES_DEOXYS_DEFENSE FORMS_START + 134
#define SPECIES_DEOXYS_SPEED FORMS_START + 135 #define SPECIES_DEOXYS_SPEED FORMS_START + 135
#else
// Unown
#define SPECIES_UNOWN_B FORMS_START + 1
#define SPECIES_UNOWN_C FORMS_START + 2
#define SPECIES_UNOWN_D FORMS_START + 3
#define SPECIES_UNOWN_E FORMS_START + 4
#define SPECIES_UNOWN_F FORMS_START + 5
#define SPECIES_UNOWN_G FORMS_START + 6
#define SPECIES_UNOWN_H FORMS_START + 7
#define SPECIES_UNOWN_I FORMS_START + 8
#define SPECIES_UNOWN_J FORMS_START + 9
#define SPECIES_UNOWN_K FORMS_START + 10
#define SPECIES_UNOWN_L FORMS_START + 11
#define SPECIES_UNOWN_M FORMS_START + 12
#define SPECIES_UNOWN_N FORMS_START + 13
#define SPECIES_UNOWN_O FORMS_START + 14
#define SPECIES_UNOWN_P FORMS_START + 15
#define SPECIES_UNOWN_Q FORMS_START + 16
#define SPECIES_UNOWN_R FORMS_START + 17
#define SPECIES_UNOWN_S FORMS_START + 18
#define SPECIES_UNOWN_T FORMS_START + 19
#define SPECIES_UNOWN_U FORMS_START + 20
#define SPECIES_UNOWN_V FORMS_START + 21
#define SPECIES_UNOWN_W FORMS_START + 22
#define SPECIES_UNOWN_X FORMS_START + 23
#define SPECIES_UNOWN_Y FORMS_START + 24
#define SPECIES_UNOWN_Z FORMS_START + 25
#define SPECIES_UNOWN_EMARK FORMS_START + 26
#define SPECIES_UNOWN_QMARK FORMS_START + 27
// Castform
#define SPECIES_CASTFORM_SUNNY FORMS_START + 28
#define SPECIES_CASTFORM_RAINY FORMS_START + 29
#define SPECIES_CASTFORM_SNOWY FORMS_START + 30
// Deoxys
#define SPECIES_DEOXYS_ATTACK FORMS_START + 31
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 32
#define SPECIES_DEOXYS_SPEED FORMS_START + 33
#endif
// Burmy // Burmy
#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 136 #define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 136
#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 137 #define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 137
@ -1341,7 +1383,14 @@
#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 307 #define SPECIES_CALYREX_ICE_RIDER FORMS_START + 307
#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 308 #define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 308
#if P_NEW_POKEMON == TRUE
#define FORMS_START SPECIES_CALYREX
#define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1 #define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1
#else
#define FORMS_START SPECIES_DEOXYS
#define SPECIES_EGG SPECIES_DEOXYS_SPEED + 1
#endif
#define NUM_SPECIES SPECIES_EGG #define NUM_SPECIES SPECIES_EGG
#endif // GUARD_CONSTANTS_SPECIES_H #endif // GUARD_CONSTANTS_SPECIES_H

View File

@ -52,8 +52,6 @@
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1 #define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2 #define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
#define HILL_TRAINER_NAME_LENGTH 11
#define TRAINER_HILL_OTID 0x10000000 #define TRAINER_HILL_OTID 0x10000000
// The full map of each Trainer Hill floor is 16x21. // The full map of each Trainer Hill floor is 16x21.

View File

@ -57,6 +57,11 @@ struct TrainerMonItemCustomMoves
u16 moves[MAX_MON_MOVES]; u16 moves[MAX_MON_MOVES];
}; };
#define NO_ITEM_DEFAULT_MOVES(party) { .NoItemDefaultMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = 0
#define NO_ITEM_CUSTOM_MOVES(party) { .NoItemCustomMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET
#define ITEM_DEFAULT_MOVES(party) { .ItemDefaultMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_HELD_ITEM
#define ITEM_CUSTOM_MOVES(party) { .ItemCustomMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM
union TrainerMonPtr union TrainerMonPtr
{ {
const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
@ -71,7 +76,7 @@ struct Trainer
/*0x01*/ u8 trainerClass; /*0x01*/ u8 trainerClass;
/*0x02*/ u8 encounterMusic_gender; // last bit is gender /*0x02*/ u8 encounterMusic_gender; // last bit is gender
/*0x03*/ u8 trainerPic; /*0x03*/ u8 trainerPic;
/*0x04*/ u8 trainerName[12]; /*0x04*/ u8 trainerName[TRAINER_NAME_LENGTH + 1];
/*0x10*/ u16 items[MAX_TRAINER_ITEMS]; /*0x10*/ u16 items[MAX_TRAINER_ITEMS];
/*0x18*/ bool8 doubleBattle; /*0x18*/ bool8 doubleBattle;
/*0x1C*/ u32 aiFlags; /*0x1C*/ u32 aiFlags;

View File

@ -17,7 +17,6 @@ void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePale
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src); bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species); void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality); void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality);
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);

View File

@ -63,7 +63,7 @@ struct PairedPalettes
struct LockedAnimObjectEvents struct LockedAnimObjectEvents
{ {
u8 objectEventIds[OBJECT_EVENTS_COUNT]; u8 localIds[OBJECT_EVENTS_COUNT];
u8 count; u8 count;
}; };

View File

@ -26,7 +26,7 @@ u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16); void MapGridSetMetatileIdAt(int, int, u16);
void MapGridSetMetatileEntryAt(int, int, u16); void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16 *, u16 *); void GetCameraCoords(u16 *, u16 *);
bool8 MapGridIsImpassableAt(int, int); u8 MapGridGetCollisionAt(int, int);
int GetMapBorderIdAt(int x, int y); int GetMapBorderIdAt(int x, int y);
bool32 CanCameraMoveInDirection(int direction); bool32 CanCameraMoveInDirection(int direction);
u16 GetMetatileAttributesById(u16 metatileId); u16 GetMetatileAttributesById(u16 metatileId);

View File

@ -81,7 +81,8 @@ typedef union // size = 0x24
/*0x01*/ bool8 active; /*0x01*/ bool8 active;
/*0x02*/ u16 species; /*0x02*/ u16 species;
/*0x04*/ u8 pokemonName[POKEMON_NAME_LENGTH + 1]; /*0x04*/ u8 pokemonName[POKEMON_NAME_LENGTH + 1];
/*0x0F*/ u8 trainerName[11]; /*0x0F*/ u8 trainerName[PLAYER_NAME_LENGTH + 1];
/*0x17*/ u8 unused[3];
/*0x1A*/ u8 random; /*0x1A*/ u8 random;
/*0x1B*/ u8 random2; /*0x1B*/ u8 random2;
/*0x1C*/ u16 randomSpecies; /*0x1C*/ u16 randomSpecies;

View File

@ -454,6 +454,7 @@ extern const u32 gMonFrontPic_Groudon[];
extern const u32 gMonFrontPic_Rayquaza[]; extern const u32 gMonFrontPic_Rayquaza[];
extern const u32 gMonFrontPic_Jirachi[]; extern const u32 gMonFrontPic_Jirachi[];
extern const u32 gMonFrontPic_Deoxys[]; extern const u32 gMonFrontPic_Deoxys[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonFrontPic_Turtwig[]; extern const u32 gMonFrontPic_Turtwig[];
extern const u32 gMonFrontPic_Grotle[]; extern const u32 gMonFrontPic_Grotle[];
extern const u32 gMonFrontPic_Torterra[]; extern const u32 gMonFrontPic_Torterra[];
@ -1081,6 +1082,7 @@ extern const u32 gMonFrontPic_PikachuAlolaCap[];
extern const u32 gMonFrontPic_PikachuPartnerCap[]; extern const u32 gMonFrontPic_PikachuPartnerCap[];
extern const u32 gMonFrontPic_PikachuWorldCap[]; extern const u32 gMonFrontPic_PikachuWorldCap[];
extern const u32 gMonFrontPic_PichuSpikyEared[]; extern const u32 gMonFrontPic_PichuSpikyEared[];
#endif
extern const u32 gMonFrontPic_UnownB[]; extern const u32 gMonFrontPic_UnownB[];
extern const u32 gMonFrontPic_UnownC[]; extern const u32 gMonFrontPic_UnownC[];
extern const u32 gMonFrontPic_UnownD[]; extern const u32 gMonFrontPic_UnownD[];
@ -1114,6 +1116,7 @@ extern const u32 gMonFrontPic_CastformSnowy[];
extern const u32 gMonFrontPic_DeoxysAttack[]; extern const u32 gMonFrontPic_DeoxysAttack[];
extern const u32 gMonFrontPic_DeoxysDefense[]; extern const u32 gMonFrontPic_DeoxysDefense[];
extern const u32 gMonFrontPic_DeoxysSpeed[]; extern const u32 gMonFrontPic_DeoxysSpeed[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonFrontPic_BurmySandyCloak[]; extern const u32 gMonFrontPic_BurmySandyCloak[];
extern const u32 gMonFrontPic_BurmyTrashCloak[]; extern const u32 gMonFrontPic_BurmyTrashCloak[];
extern const u32 gMonFrontPic_WormadamSandyCloak[]; extern const u32 gMonFrontPic_WormadamSandyCloak[];
@ -1216,6 +1219,7 @@ extern const u32 gMonFrontPic_UrshifuRapidStrikeStyle[];
extern const u32 gMonFrontPic_ZarudeDada[]; extern const u32 gMonFrontPic_ZarudeDada[];
extern const u32 gMonFrontPic_CalyrexIceRider[]; extern const u32 gMonFrontPic_CalyrexIceRider[];
extern const u32 gMonFrontPic_CalyrexShadowRider[]; extern const u32 gMonFrontPic_CalyrexShadowRider[];
#endif
extern const u32 gMonFrontPic_Egg[]; extern const u32 gMonFrontPic_Egg[];
extern const u32 gMonBackPic_CircledQuestionMark[]; extern const u32 gMonBackPic_CircledQuestionMark[];
@ -1607,6 +1611,7 @@ extern const u32 gMonBackPic_Groudon[];
extern const u32 gMonBackPic_Rayquaza[]; extern const u32 gMonBackPic_Rayquaza[];
extern const u32 gMonBackPic_Jirachi[]; extern const u32 gMonBackPic_Jirachi[];
extern const u32 gMonBackPic_Deoxys[]; extern const u32 gMonBackPic_Deoxys[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonBackPic_Turtwig[]; extern const u32 gMonBackPic_Turtwig[];
extern const u32 gMonBackPic_Grotle[]; extern const u32 gMonBackPic_Grotle[];
extern const u32 gMonBackPic_Torterra[]; extern const u32 gMonBackPic_Torterra[];
@ -2233,6 +2238,7 @@ extern const u32 gMonBackPic_PikachuAlolaCap[];
extern const u32 gMonBackPic_PikachuPartnerCap[]; extern const u32 gMonBackPic_PikachuPartnerCap[];
extern const u32 gMonBackPic_PikachuWorldCap[]; extern const u32 gMonBackPic_PikachuWorldCap[];
extern const u32 gMonBackPic_PichuSpikyEared[]; extern const u32 gMonBackPic_PichuSpikyEared[];
#endif
extern const u32 gMonBackPic_UnownB[]; extern const u32 gMonBackPic_UnownB[];
extern const u32 gMonBackPic_UnownC[]; extern const u32 gMonBackPic_UnownC[];
extern const u32 gMonBackPic_UnownD[]; extern const u32 gMonBackPic_UnownD[];
@ -2266,6 +2272,7 @@ extern const u32 gMonBackPic_CastformSnowy[];
extern const u32 gMonBackPic_DeoxysAttack[]; extern const u32 gMonBackPic_DeoxysAttack[];
extern const u32 gMonBackPic_DeoxysDefense[]; extern const u32 gMonBackPic_DeoxysDefense[];
extern const u32 gMonBackPic_DeoxysSpeed[]; extern const u32 gMonBackPic_DeoxysSpeed[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonBackPic_BurmySandyCloak[]; extern const u32 gMonBackPic_BurmySandyCloak[];
extern const u32 gMonBackPic_BurmyTrashCloak[]; extern const u32 gMonBackPic_BurmyTrashCloak[];
extern const u32 gMonBackPic_WormadamSandyCloak[]; extern const u32 gMonBackPic_WormadamSandyCloak[];
@ -2368,6 +2375,7 @@ extern const u32 gMonBackPic_UrshifuRapidStrikeStyle[];
extern const u32 gMonBackPic_ZarudeDada[]; extern const u32 gMonBackPic_ZarudeDada[];
extern const u32 gMonBackPic_CalyrexIceRider[]; extern const u32 gMonBackPic_CalyrexIceRider[];
extern const u32 gMonBackPic_CalyrexShadowRider[]; extern const u32 gMonBackPic_CalyrexShadowRider[];
#endif
extern const u32 gMonPalette_CircledQuestionMark[]; extern const u32 gMonPalette_CircledQuestionMark[];
extern const u32 gMonPalette_DoubleQuestionMark[]; extern const u32 gMonPalette_DoubleQuestionMark[];
@ -2757,6 +2765,7 @@ extern const u32 gMonPalette_Groudon[];
extern const u32 gMonPalette_Rayquaza[]; extern const u32 gMonPalette_Rayquaza[];
extern const u32 gMonPalette_Jirachi[]; extern const u32 gMonPalette_Jirachi[];
extern const u32 gMonPalette_Deoxys[]; extern const u32 gMonPalette_Deoxys[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonPalette_Turtwig[]; extern const u32 gMonPalette_Turtwig[];
extern const u32 gMonPalette_Grotle[]; extern const u32 gMonPalette_Grotle[];
extern const u32 gMonPalette_Torterra[]; extern const u32 gMonPalette_Torterra[];
@ -3377,12 +3386,14 @@ extern const u32 gMonPalette_PikachuAlolaCap[];
extern const u32 gMonPalette_PikachuPartnerCap[]; extern const u32 gMonPalette_PikachuPartnerCap[];
extern const u32 gMonPalette_PikachuWorldCap[]; extern const u32 gMonPalette_PikachuWorldCap[];
extern const u32 gMonPalette_PichuSpikyEared[]; extern const u32 gMonPalette_PichuSpikyEared[];
#endif
extern const u32 gMonPalette_CastformSunny[]; extern const u32 gMonPalette_CastformSunny[];
extern const u32 gMonPalette_CastformRainy[]; extern const u32 gMonPalette_CastformRainy[];
extern const u32 gMonPalette_CastformSnowy[]; extern const u32 gMonPalette_CastformSnowy[];
extern const u32 gMonPalette_DeoxysAttack[]; extern const u32 gMonPalette_DeoxysAttack[];
extern const u32 gMonPalette_DeoxysDefense[]; extern const u32 gMonPalette_DeoxysDefense[];
extern const u32 gMonPalette_DeoxysSpeed[]; extern const u32 gMonPalette_DeoxysSpeed[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonPalette_BurmySandyCloak[]; extern const u32 gMonPalette_BurmySandyCloak[];
extern const u32 gMonPalette_BurmyTrashCloak[]; extern const u32 gMonPalette_BurmyTrashCloak[];
extern const u32 gMonPalette_WormadamSandyCloak[]; extern const u32 gMonPalette_WormadamSandyCloak[];
@ -3538,6 +3549,7 @@ extern const u32 gMonPalette_UrshifuRapidStrikeStyle[];
extern const u32 gMonPalette_ZarudeDada[]; extern const u32 gMonPalette_ZarudeDada[];
extern const u32 gMonPalette_CalyrexIceRider[]; extern const u32 gMonPalette_CalyrexIceRider[];
extern const u32 gMonPalette_CalyrexShadowRider[]; extern const u32 gMonPalette_CalyrexShadowRider[];
#endif
extern const u32 gMonPalette_Egg[]; extern const u32 gMonPalette_Egg[];
extern const u32 gMonShinyPalette_CircledQuestionMark[]; extern const u32 gMonShinyPalette_CircledQuestionMark[];
@ -3928,6 +3940,7 @@ extern const u32 gMonShinyPalette_Groudon[];
extern const u32 gMonShinyPalette_Rayquaza[]; extern const u32 gMonShinyPalette_Rayquaza[];
extern const u32 gMonShinyPalette_Jirachi[]; extern const u32 gMonShinyPalette_Jirachi[];
extern const u32 gMonShinyPalette_Deoxys[]; extern const u32 gMonShinyPalette_Deoxys[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonShinyPalette_Turtwig[]; extern const u32 gMonShinyPalette_Turtwig[];
extern const u32 gMonShinyPalette_Grotle[]; extern const u32 gMonShinyPalette_Grotle[];
extern const u32 gMonShinyPalette_Torterra[]; extern const u32 gMonShinyPalette_Torterra[];
@ -4549,12 +4562,14 @@ extern const u32 gMonShinyPalette_PikachuAlolaCap[];
extern const u32 gMonShinyPalette_PikachuPartnerCap[]; extern const u32 gMonShinyPalette_PikachuPartnerCap[];
extern const u32 gMonShinyPalette_PikachuWorldCap[]; extern const u32 gMonShinyPalette_PikachuWorldCap[];
extern const u32 gMonShinyPalette_PichuSpikyEared[]; extern const u32 gMonShinyPalette_PichuSpikyEared[];
#endif
extern const u32 gMonShinyPalette_CastformSunny[]; extern const u32 gMonShinyPalette_CastformSunny[];
extern const u32 gMonShinyPalette_CastformRainy[]; extern const u32 gMonShinyPalette_CastformRainy[];
extern const u32 gMonShinyPalette_CastformSnowy[]; extern const u32 gMonShinyPalette_CastformSnowy[];
extern const u32 gMonShinyPalette_DeoxysAttack[]; extern const u32 gMonShinyPalette_DeoxysAttack[];
extern const u32 gMonShinyPalette_DeoxysDefense[]; extern const u32 gMonShinyPalette_DeoxysDefense[];
extern const u32 gMonShinyPalette_DeoxysSpeed[]; extern const u32 gMonShinyPalette_DeoxysSpeed[];
#if P_NEW_POKEMON == TRUE
extern const u32 gMonShinyPalette_BurmySandyCloak[]; extern const u32 gMonShinyPalette_BurmySandyCloak[];
extern const u32 gMonShinyPalette_BurmyTrashCloak[]; extern const u32 gMonShinyPalette_BurmyTrashCloak[];
extern const u32 gMonShinyPalette_WormadamSandyCloak[]; extern const u32 gMonShinyPalette_WormadamSandyCloak[];
@ -4704,6 +4719,7 @@ extern const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[];
extern const u32 gMonShinyPalette_ZarudeDada[]; extern const u32 gMonShinyPalette_ZarudeDada[];
extern const u32 gMonShinyPalette_CalyrexIceRider[]; extern const u32 gMonShinyPalette_CalyrexIceRider[];
extern const u32 gMonShinyPalette_CalyrexShadowRider[]; extern const u32 gMonShinyPalette_CalyrexShadowRider[];
#endif
extern const u8 gMonIcon_QuestionMark[]; extern const u8 gMonIcon_QuestionMark[];
extern const u8 gMonIcon_Bulbasaur[]; extern const u8 gMonIcon_Bulbasaur[];
@ -5092,6 +5108,7 @@ extern const u8 gMonIcon_Groudon[];
extern const u8 gMonIcon_Rayquaza[]; extern const u8 gMonIcon_Rayquaza[];
extern const u8 gMonIcon_Jirachi[]; extern const u8 gMonIcon_Jirachi[];
extern const u8 gMonIcon_Deoxys[]; extern const u8 gMonIcon_Deoxys[];
#if P_NEW_POKEMON == TRUE
extern const u8 gMonIcon_Turtwig[]; extern const u8 gMonIcon_Turtwig[];
extern const u8 gMonIcon_Grotle[]; extern const u8 gMonIcon_Grotle[];
extern const u8 gMonIcon_Torterra[]; extern const u8 gMonIcon_Torterra[];
@ -5709,6 +5726,7 @@ extern const u8 gMonIcon_PikachuKalosCap[];
extern const u8 gMonIcon_PikachuAlolaCap[]; extern const u8 gMonIcon_PikachuAlolaCap[];
extern const u8 gMonIcon_PikachuPartnerCap[]; extern const u8 gMonIcon_PikachuPartnerCap[];
extern const u8 gMonIcon_PichuSpikyEared[]; extern const u8 gMonIcon_PichuSpikyEared[];
#endif
extern const u8 gMonIcon_UnownB[]; extern const u8 gMonIcon_UnownB[];
extern const u8 gMonIcon_UnownC[]; extern const u8 gMonIcon_UnownC[];
extern const u8 gMonIcon_UnownD[]; extern const u8 gMonIcon_UnownD[];
@ -5742,6 +5760,7 @@ extern const u8 gMonIcon_CastformSnowy[];
extern const u8 gMonIcon_DeoxysAttack[]; extern const u8 gMonIcon_DeoxysAttack[];
extern const u8 gMonIcon_DeoxysDefense[]; extern const u8 gMonIcon_DeoxysDefense[];
extern const u8 gMonIcon_DeoxysSpeed[]; extern const u8 gMonIcon_DeoxysSpeed[];
#if P_NEW_POKEMON == TRUE
extern const u8 gMonIcon_BurmySandyCloak[]; extern const u8 gMonIcon_BurmySandyCloak[];
extern const u8 gMonIcon_BurmyTrashCloak[]; extern const u8 gMonIcon_BurmyTrashCloak[];
extern const u8 gMonIcon_WormadamSandyCloak[]; extern const u8 gMonIcon_WormadamSandyCloak[];
@ -5858,6 +5877,7 @@ extern const u8 gMonIcon_EternatusEternamax[];
extern const u8 gMonIcon_ZarudeDada[]; extern const u8 gMonIcon_ZarudeDada[];
extern const u8 gMonIcon_CalyrexIceRider[]; extern const u8 gMonIcon_CalyrexIceRider[];
extern const u8 gMonIcon_CalyrexShadowRider[]; extern const u8 gMonIcon_CalyrexShadowRider[];
#endif
extern const u8 gMonIcon_Egg[]; extern const u8 gMonIcon_Egg[];
extern const u8 gMonFootprint_QuestionMark[]; extern const u8 gMonFootprint_QuestionMark[];
@ -6247,6 +6267,7 @@ extern const u8 gMonFootprint_Latios[];
extern const u8 gMonFootprint_Jirachi[]; extern const u8 gMonFootprint_Jirachi[];
extern const u8 gMonFootprint_Deoxys[]; extern const u8 gMonFootprint_Deoxys[];
extern const u8 gMonFootprint_Chimecho[]; extern const u8 gMonFootprint_Chimecho[];
#if P_NEW_POKEMON == TRUE
extern const u8 gMonFootprint_Turtwig[]; extern const u8 gMonFootprint_Turtwig[];
extern const u8 gMonFootprint_Grotle[]; extern const u8 gMonFootprint_Grotle[];
extern const u8 gMonFootprint_Torterra[]; extern const u8 gMonFootprint_Torterra[];
@ -6759,6 +6780,7 @@ extern const u8 gMonFootprint_Regidrago[];
extern const u8 gMonFootprint_Glastrier[]; extern const u8 gMonFootprint_Glastrier[];
extern const u8 gMonFootprint_Spectrier[]; extern const u8 gMonFootprint_Spectrier[];
extern const u8 gMonFootprint_Calyrex[]; extern const u8 gMonFootprint_Calyrex[];
#endif
// trainer sprites // trainer sprites
extern const u32 gTrainerFrontPic_Hiker[]; extern const u32 gTrainerFrontPic_Hiker[];
@ -8766,18 +8788,24 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[]; extern const u16 gBattleInterface_BallDisplayPal[];
extern const u8 gHealthboxElementsGfxTable[][32]; extern const u8 gHealthboxElementsGfxTable[][32];
extern const u16 gNamingScreenMenu_Pal[]; extern const u16 gNamingScreenMenu_Pal[6][16];
extern const u32 gNamingScreenMenu_Gfx[]; extern const u32 gNamingScreenMenu_Gfx[];
extern const u32 gNamingScreenBackground_Tilemap[]; extern const u32 gNamingScreenBackground_Tilemap[];
extern const u8 gNamingScreenKeyboardUpper_Tilemap[]; extern const u8 gNamingScreenKeyboardUpper_Tilemap[];
extern const u8 gNamingScreenKeyboardLower_Tilemap[]; extern const u8 gNamingScreenKeyboardLower_Tilemap[];
extern const u8 gNamingScreenKeyboardSymbols_Tilemap[]; extern const u8 gNamingScreenKeyboardSymbols_Tilemap[];
extern const u8 gNamingScreenRWindow_Gfx[]; extern const u32 gNamingScreenPageSwapFrame_Gfx[];
extern const u8 gNamingScreenPageButton_Gfx[]; extern const u32 gNamingScreenBackButton_Gfx[];
extern const u8 gNamingScreenROptions_Gfx[]; extern const u32 gNamingScreenOKButton_Gfx[];
extern const u8 gNamingScreenCursor_Gfx[]; extern const u32 gNamingScreenPageSwapButton_Gfx[];
extern const u8 gNamingScreenInputArrow_Gfx[]; extern const u32 gNamingScreenPageSwapUpper_Gfx[];
extern const u8 gNamingScreenUnderscore_Gfx[]; extern const u32 gNamingScreenPageSwapLower_Gfx[];
extern const u32 gNamingScreenPageSwapOthers_Gfx[];
extern const u32 gNamingScreenCursor_Gfx[];
extern const u32 gNamingScreenCursorSquished_Gfx[];
extern const u32 gNamingScreenCursorFilled_Gfx[];
extern const u32 gNamingScreenInputArrow_Gfx[];
extern const u32 gNamingScreenUnderscore_Gfx[];
extern const u32 gPokeblockFeedBg_Tilemap[]; extern const u32 gPokeblockFeedBg_Tilemap[];

View File

@ -7,7 +7,6 @@
// Exported ROM declarations // Exported ROM declarations
void CB2_InitCopyrightScreenAfterBootup(void); void CB2_InitCopyrightScreenAfterBootup(void);
void CB2_InitCopyrightScreenAfterBootup(void);
void CB2_InitCopyrightScreenAfterTitleScreen(void); void CB2_InitCopyrightScreenAfterTitleScreen(void);
void PanFadeAndZoomScreen(u16, u16, u16, u16); void PanFadeAndZoomScreen(u16, u16, u16, u16);

View File

@ -15,7 +15,7 @@
|| itemId == ITEM_RETRO_MAIL)) || itemId == ITEM_RETRO_MAIL))
// mail.h // mail.h
void ReadMail(struct Mail *mail, void (*callback)(void), bool8 flag); void ReadMail(struct Mail *mail, void (*exitCallback)(void), bool8 hasText);
// mail_data.h // mail_data.h
void ClearAllMail(void); void ClearAllMail(void);

View File

@ -9,6 +9,99 @@
#define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0)) #define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0))
#define FORM_SPECIES_END (0xffff) #define FORM_SPECIES_END (0xffff)
// Property labels for Get(Box)MonData / Set(Box)MonData
enum {
MON_DATA_PERSONALITY,
MON_DATA_OT_ID,
MON_DATA_NICKNAME,
MON_DATA_LANGUAGE,
MON_DATA_SANITY_IS_BAD_EGG,
MON_DATA_SANITY_HAS_SPECIES,
MON_DATA_SANITY_IS_EGG,
MON_DATA_OT_NAME,
MON_DATA_MARKINGS,
MON_DATA_CHECKSUM,
MON_DATA_ENCRYPT_SEPARATOR,
MON_DATA_SPECIES,
MON_DATA_HELD_ITEM,
MON_DATA_MOVE1,
MON_DATA_MOVE2,
MON_DATA_MOVE3,
MON_DATA_MOVE4,
MON_DATA_PP1,
MON_DATA_PP2,
MON_DATA_PP3,
MON_DATA_PP4,
MON_DATA_PP_BONUSES,
MON_DATA_COOL,
MON_DATA_BEAUTY,
MON_DATA_CUTE,
MON_DATA_EXP,
MON_DATA_HP_EV,
MON_DATA_ATK_EV,
MON_DATA_DEF_EV,
MON_DATA_SPEED_EV,
MON_DATA_SPATK_EV,
MON_DATA_SPDEF_EV,
MON_DATA_FRIENDSHIP,
MON_DATA_SMART,
MON_DATA_POKERUS,
MON_DATA_MET_LOCATION,
MON_DATA_MET_LEVEL,
MON_DATA_MET_GAME,
MON_DATA_POKEBALL,
MON_DATA_HP_IV,
MON_DATA_ATK_IV,
MON_DATA_DEF_IV,
MON_DATA_SPEED_IV,
MON_DATA_SPATK_IV,
MON_DATA_SPDEF_IV,
MON_DATA_IS_EGG,
MON_DATA_ABILITY_NUM,
MON_DATA_TOUGH,
MON_DATA_SHEEN,
MON_DATA_OT_GENDER,
MON_DATA_COOL_RIBBON,
MON_DATA_BEAUTY_RIBBON,
MON_DATA_CUTE_RIBBON,
MON_DATA_SMART_RIBBON,
MON_DATA_TOUGH_RIBBON,
MON_DATA_STATUS,
MON_DATA_LEVEL,
MON_DATA_HP,
MON_DATA_MAX_HP,
MON_DATA_ATK,
MON_DATA_DEF,
MON_DATA_SPEED,
MON_DATA_SPATK,
MON_DATA_SPDEF,
MON_DATA_MAIL,
MON_DATA_SPECIES2,
MON_DATA_IVS,
MON_DATA_CHAMPION_RIBBON,
MON_DATA_WINNING_RIBBON,
MON_DATA_VICTORY_RIBBON,
MON_DATA_ARTIST_RIBBON,
MON_DATA_EFFORT_RIBBON,
MON_DATA_MARINE_RIBBON,
MON_DATA_LAND_RIBBON,
MON_DATA_SKY_RIBBON,
MON_DATA_COUNTRY_RIBBON,
MON_DATA_NATIONAL_RIBBON,
MON_DATA_EARTH_RIBBON,
MON_DATA_WORLD_RIBBON,
MON_DATA_UNUSED_RIBBONS,
MON_DATA_EVENT_LEGAL,
MON_DATA_KNOWN_MOVES,
MON_DATA_RIBBON_COUNT,
MON_DATA_RIBBONS,
MON_DATA_ATK2,
MON_DATA_DEF2,
MON_DATA_SPEED2,
MON_DATA_SPATK2,
MON_DATA_SPDEF2,
};
struct PokemonSubstruct0 struct PokemonSubstruct0
{ {
/*0x00*/ u16 species; /*0x00*/ u16 species;

View File

@ -9,8 +9,8 @@
#define NUM_SAVE_SLOTS 2 #define NUM_SAVE_SLOTS 2
// If the sector's security field is not this value then the sector is either invalid or empty. // If the sector's signature field is not this value then the sector is either invalid or empty.
#define SECTOR_SECURITY_NUM 0x8012025 #define SECTOR_SIGNATURE 0x8012025
#define SPECIAL_SECTOR_SENTINEL 0xB39D #define SPECIAL_SECTOR_SENTINEL 0xB39D
@ -72,11 +72,11 @@ struct SaveSector
u8 unused[SECTOR_FOOTER_SIZE - 12]; // Unused portion of the footer u8 unused[SECTOR_FOOTER_SIZE - 12]; // Unused portion of the footer
u16 id; u16 id;
u16 checksum; u16 checksum;
u32 security; u32 signature;
u32 counter; u32 counter;
}; // size is SECTOR_SIZE (0x1000) }; // size is SECTOR_SIZE (0x1000)
#define SECTOR_SECURITY_OFFSET offsetof(struct SaveSector, security) #define SECTOR_SIGNATURE_OFFSET offsetof(struct SaveSector, signature)
#define SECTOR_COUNTER_OFFSET offsetof(struct SaveSector, counter) #define SECTOR_COUNTER_OFFSET offsetof(struct SaveSector, counter)
extern u16 gLastWrittenSector; extern u16 gLastWrittenSector;
@ -99,7 +99,7 @@ u8 TrySavingData(u8 saveType);
bool8 LinkFullSave_Init(void); bool8 LinkFullSave_Init(void);
bool8 LinkFullSave_WriteSector(void); bool8 LinkFullSave_WriteSector(void);
bool8 LinkFullSave_ReplaceLastSector(void); bool8 LinkFullSave_ReplaceLastSector(void);
bool8 LinkFullSave_SetLastSectorSecurity(void); bool8 LinkFullSave_SetLastSectorSignature(void);
bool8 WriteSaveBlock2(void); bool8 WriteSaveBlock2(void);
bool8 WriteSaveBlock1Sector(void); bool8 WriteSaveBlock1Sector(void);
u8 LoadGameSave(u8 saveType); u8 LoadGameSave(u8 saveType);

View File

@ -31,16 +31,16 @@ void ScriptCall(struct ScriptContext *ctx, const u8 *ptr);
void ScriptReturn(struct ScriptContext *ctx); void ScriptReturn(struct ScriptContext *ctx);
u16 ScriptReadHalfword(struct ScriptContext *ctx); u16 ScriptReadHalfword(struct ScriptContext *ctx);
u32 ScriptReadWord(struct ScriptContext *ctx); u32 ScriptReadWord(struct ScriptContext *ctx);
void ScriptContext2_Enable(void); void LockPlayerFieldControls(void);
void ScriptContext2_Disable(void); void UnlockPlayerFieldControls(void);
bool8 ScriptContext2_IsEnabled(void); bool8 ArePlayerFieldControlsLocked(void);
void ScriptContext1_Init(void); void ScriptContext_Init(void);
bool8 ScriptContext1_IsScriptSetUp(void); bool8 ScriptContext_IsEnabled(void);
bool8 ScriptContext2_RunScript(void); bool8 ScriptContext_RunScript(void);
void ScriptContext1_SetupScript(const u8 *ptr); void ScriptContext_SetupScript(const u8 *ptr);
void ScriptContext1_Stop(void); void ScriptContext_Stop(void);
void EnableBothScriptContexts(void); void ScriptContext_Enable(void);
void ScriptContext2_RunNewScript(const u8 *ptr); void RunScriptImmediately(const u8 *ptr);
u8 *MapHeaderGetScriptTable(u8 tag); u8 *MapHeaderGetScriptTable(u8 tag);
void MapHeaderRunScriptType(u8 tag); void MapHeaderRunScriptType(u8 tag);
u8 *MapHeaderCheckScriptTable(u8 tag); u8 *MapHeaderCheckScriptTable(u8 tag);

View File

@ -24,7 +24,7 @@ void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const st
void TrySetCurSecretBaseIndex(void); void TrySetCurSecretBaseIndex(void);
void CheckPlayerHasSecretBase(void); void CheckPlayerHasSecretBase(void);
void ToggleSecretBaseEntranceMetatile(void); void ToggleSecretBaseEntranceMetatile(void);
void EnableBothScriptContexts(void); void ScriptContext_Enable(void);
void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx); void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx);
#endif //GUARD_SECRET_BASE_H #endif //GUARD_SECRET_BASE_H

View File

@ -12,7 +12,6 @@ void StopMapMusic(void);
void FadeOutMapMusic(u8 speed); void FadeOutMapMusic(u8 speed);
void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed); void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed);
void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed); void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed);
void FadeInNewMapMusic(u16 songNum, u8 speed);
bool8 IsNotWaitingForBGMStop(void); bool8 IsNotWaitingForBGMStop(void);
void PlayFanfareByFanfareNum(u8 fanfareNum); void PlayFanfareByFanfareNum(u8 fanfareNum);
bool8 WaitFanfare(bool8 stop); bool8 WaitFanfare(bool8 stop);

View File

@ -179,7 +179,7 @@ extern const u8 gText_EmptyString2[];
extern const u8 gText_Confirm3[]; extern const u8 gText_Confirm3[];
extern const u8 gText_Cancel4[]; extern const u8 gText_Cancel4[];
extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_IsThisTheCorrectTime[];
extern const u8 gText_PkmnFainted3[]; extern const u8 gText_PkmnFainted_FldPsn[];
extern const u8 gText_Coins[]; extern const u8 gText_Coins[];
extern const u8 gText_Silver[]; extern const u8 gText_Silver[];
extern const u8 gText_Gold[]; extern const u8 gText_Gold[];
@ -3022,4 +3022,11 @@ extern const u8 gText_PkmnForSwap[];
extern const u8 gText_SamePkmnInPartyAlready[]; extern const u8 gText_SamePkmnInPartyAlready[];
extern const u8 gText_Cancel3[]; extern const u8 gText_Cancel3[];
// Naming Screen
extern const u8 gText_MoveOkBack[];
extern const u8 gText_YourName[];
extern const u8 gText_BoxName[];
extern const u8 gText_PkmnsNickname[];
extern const u8 gText_TellHimTheWords[];
#endif // GUARD_STRINGS_H #endif // GUARD_STRINGS_H

View File

@ -17,7 +17,7 @@ int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct Rf
int CanSpinTradeMon(struct Pokemon *, u16); int CanSpinTradeMon(struct Pokemon *, u16);
void InitTradeSequenceBgGpuRegs(void); void InitTradeSequenceBgGpuRegs(void);
void LinkTradeDrawWindow(void); void LinkTradeDrawWindow(void);
void InitTradeBg(void); void LoadTradeAnimGfx(void);
void DrawTextOnTradeWindow(u8, const u8 *, u8); void DrawTextOnTradeWindow(u8, const u8 *, u8);
#endif //GUARD_TRADE_H #endif //GUARD_TRADE_H

View File

@ -5,7 +5,7 @@
struct TrainerHillTrainer struct TrainerHillTrainer
{ {
u8 name[HILL_TRAINER_NAME_LENGTH]; u8 name[TRAINER_NAME_LENGTH + 1];
u8 facilityClass; u8 facilityClass;
bool32 unused; // Set to TRUE on JP trainers bool32 unused; // Set to TRUE on JP trainers
u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT]; u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT];

View File

@ -14,6 +14,9 @@ SECTIONS {
. = 0x1C000; . = 0x1C000;
INCLUDE "sym_ewram.ld" INCLUDE "sym_ewram.ld"
src/*.o(.ewram_data);
gflib/*.o(.ewram_data);
*libc.a:impure.o(.data); *libc.a:impure.o(.data);
*libc.a:locale.o(.data); *libc.a:locale.o(.data);
*libc.a:mallocr.o(.data); *libc.a:mallocr.o(.data);
@ -27,6 +30,9 @@ SECTIONS {
{ {
/* .bss starts at 0x3000000 */ /* .bss starts at 0x3000000 */
INCLUDE "sym_bss.ld" INCLUDE "sym_bss.ld"
src/*.o(.bss);
gflib/*.o(.bss);
data/*.o(.bss);
/* .bss.code starts at 0x3001AA8 */ /* .bss.code starts at 0x3001AA8 */
src/m4a.o(.bss.code); src/m4a.o(.bss.code);
@ -696,6 +702,7 @@ SECTIONS {
src/battle_transition_frontier.o(.rodata); src/battle_transition_frontier.o(.rodata);
src/text_input_strings.o(.rodata); src/text_input_strings.o(.rodata);
src/fonts.o(.rodata); src/fonts.o(.rodata);
src/international_string_util.o(.rodata);
src/mystery_event_msg.o(.rodata); src/mystery_event_msg.o(.rodata);
data/mystery_gift.o(.rodata); data/mystery_gift.o(.rodata);
src/m4a_tables.o(.rodata); src/m4a_tables.o(.rodata);
@ -1305,6 +1312,16 @@ SECTIONS {
src/graphics.o(.rodata); src/graphics.o(.rodata);
} =0 } =0
extra :
ALIGN(4)
{
src/*.o(.text);
gflib/*.o(.text);
src/*.o(.rodata);
gflib/*.o(.rodata);
data/*.o(.rodata);
} = 0
/* DWARF debug sections. /* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */ of the section so we begin them at 0. */

View File

@ -386,6 +386,7 @@ gCryTable::
cry Cry_Rayquaza cry Cry_Rayquaza
cry Cry_Jirachi cry Cry_Jirachi
cry Cry_Deoxys cry Cry_Deoxys
.if P_NEW_POKEMON == TRUE
cry Cry_Turtwig cry Cry_Turtwig
cry Cry_Grotle cry Cry_Grotle
cry Cry_Torterra cry Cry_Torterra
@ -1271,6 +1272,44 @@ gCryTable::
@ Calyrex @ Calyrex
cry Cry_CalyrexIceRider cry Cry_CalyrexIceRider
cry Cry_CalyrexShadowRider cry Cry_CalyrexShadowRider
.else
@ Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
cry Cry_Unown
@ Castform
cry Cry_Castform
cry Cry_Castform
cry Cry_Castform
@ Deoxys
cry Cry_Deoxys
cry Cry_Deoxys
cry Cry_Deoxys
.endif
.align 2 .align 2
gCryTable_Reverse:: gCryTable_Reverse::
@ -1660,6 +1699,7 @@ gCryTable_Reverse::
cry_reverse Cry_Rayquaza cry_reverse Cry_Rayquaza
cry_reverse Cry_Jirachi cry_reverse Cry_Jirachi
cry_reverse Cry_Deoxys cry_reverse Cry_Deoxys
.if P_NEW_POKEMON == TRUE
cry_reverse Cry_Turtwig cry_reverse Cry_Turtwig
cry_reverse Cry_Grotle cry_reverse Cry_Grotle
cry_reverse Cry_Torterra cry_reverse Cry_Torterra
@ -2545,3 +2585,41 @@ gCryTable_Reverse::
@ Calyrex @ Calyrex
cry_reverse Cry_CalyrexIceRider cry_reverse Cry_CalyrexIceRider
cry_reverse Cry_CalyrexShadowRider cry_reverse Cry_CalyrexShadowRider
.else
@ Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
cry_reverse Cry_Unown
@ Castform
cry_reverse Cry_Castform
cry_reverse Cry_Castform
cry_reverse Cry_Castform
@ Deoxys
cry_reverse Cry_Deoxys
cry_reverse Cry_Deoxys
cry_reverse Cry_Deoxys
.endif

View File

@ -1930,6 +1930,7 @@ Cry_Jirachi::
Cry_Deoxys:: Cry_Deoxys::
.incbin "sound/direct_sound_samples/cries/deoxys.bin" .incbin "sound/direct_sound_samples/cries/deoxys.bin"
.if P_NEW_POKEMON == TRUE
.align 2 .align 2
Cry_Turtwig:: Cry_Turtwig::
.incbin "sound/direct_sound_samples/cries/turtwig.bin" .incbin "sound/direct_sound_samples/cries/turtwig.bin"
@ -4305,6 +4306,7 @@ Cry_CalyrexIceRider::
.align 2 .align 2
Cry_CalyrexShadowRider:: Cry_CalyrexShadowRider::
.incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin"
.endif
.align 2 .align 2
DirectSoundWaveData_register_noise:: DirectSoundWaveData_register_noise::

View File

@ -49,7 +49,7 @@ u32 rfu_LMAN_REQBN_softReset_and_checkID(void)
return id; return id;
} }
void rfu_LMAN_REQ_sendData(u8 clockChangeFlag) void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag)
{ {
if (gRfuLinkStatus->parentChild == MODE_CHILD) if (gRfuLinkStatus->parentChild == MODE_CHILD)
{ {

View File

@ -132,9 +132,9 @@ void BufferApprenticeChallengeText(u8 saveApprenticeId)
StringExpandPlaceholders(gStringVar4, challengeText); StringExpandPlaceholders(gStringVar4, challengeText);
} }
void Apprentice_EnableBothScriptContexts(void) void Apprentice_ScriptContext_Enable(void)
{ {
EnableBothScriptContexts(); ScriptContext_Enable();
} }
void ResetApprenticeStruct(struct Apprentice *apprentice) void ResetApprenticeStruct(struct Apprentice *apprentice)
@ -638,7 +638,7 @@ static void CreateApprenticeMenu(u8 menu)
width = ConvertPixelWidthToTileWidth(pixelWidth); width = ConvertPixelWidthToTileWidth(pixelWidth);
left = ScriptMenu_AdjustLeftCoordFromWidth(left, width); left = ScriptMenu_AdjustLeftCoordFromWidth(left, width);
windowId = CreateAndShowWindow(left, top, width, count * 2); windowId = CreateAndShowWindow(left, top, width, count * 2);
SetStandardWindowBorderStyle(windowId, 0); SetStandardWindowBorderStyle(windowId, FALSE);
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
AddTextPrinterParameterized(windowId, FONT_NORMAL, strings[i], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL); AddTextPrinterParameterized(windowId, FONT_NORMAL, strings[i], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
@ -679,7 +679,7 @@ static void Task_ChooseAnswer(u8 taskId)
RemoveAndHideWindow(tWindowId); RemoveAndHideWindow(tWindowId);
DestroyTask(taskId); DestroyTask(taskId);
EnableBothScriptContexts(); ScriptContext_Enable();
} }
static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height) static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height)
@ -815,9 +815,9 @@ static void Task_WaitForPrintingMessage(u8 taskId)
{ {
DestroyTask(taskId); DestroyTask(taskId);
if (gSpecialVar_0x8005) if (gSpecialVar_0x8005)
ExecuteFuncAfterButtonPress(EnableBothScriptContexts); ExecuteFuncAfterButtonPress(ScriptContext_Enable);
else else
EnableBothScriptContexts(); ScriptContext_Enable();
} }
} }
@ -895,7 +895,7 @@ static void PrintApprenticeMessage(void)
} }
else else
{ {
EnableBothScriptContexts(); ScriptContext_Enable();
return; return;
} }
@ -906,11 +906,11 @@ static void PrintApprenticeMessage(void)
static void Script_PrintApprenticeMessage(void) static void Script_PrintApprenticeMessage(void)
{ {
ScriptContext2_Enable(); LockPlayerFieldControls();
FreezeObjectEvents(); FreezeObjectEvents();
PlayerFreeze(); PlayerFreeze();
StopPlayerAvatar(); StopPlayerAvatar();
DrawDialogueFrame(0, 1); DrawDialogueFrame(0, TRUE);
PrintApprenticeMessage(); PrintApprenticeMessage();
} }

View File

@ -781,11 +781,7 @@ static u8 GetAI_ItemType(u16 itemId, const u8 *itemEffect)
return AI_ITEM_HEAL_HP; return AI_ITEM_HEAL_HP;
else if (itemEffect[3] & ITEM3_STATUS_ALL) else if (itemEffect[3] & ITEM3_STATUS_ALL)
return AI_ITEM_CURE_CONDITION; return AI_ITEM_CURE_CONDITION;
#ifdef ITEM_EXPANSION
else if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1]) else if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1])
#else
else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
#endif
return AI_ITEM_X_STAT; return AI_ITEM_X_STAT;
else if (itemEffect[3] & ITEM3_GUARD_SPEC) else if (itemEffect[3] & ITEM3_GUARD_SPEC)
return AI_ITEM_GUARD_SPEC; return AI_ITEM_GUARD_SPEC;
@ -913,20 +909,6 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
if (gDisableStructs[gActiveBattler].isFirstTurn == 0) if (gDisableStructs[gActiveBattler].isFirstTurn == 0)
break; break;
#ifndef ITEM_EXPANSION
if (itemEffects[0] & ITEM0_X_ATTACK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFEND)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND);
if (itemEffects[1] & ITEM1_X_SPEED)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED);
if (itemEffects[2] & ITEM2_X_SPATK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK);
if (itemEffects[2] & ITEM2_X_ACCURACY)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
#else
if (itemEffects[1] & ITEM1_X_ATTACK) if (itemEffects[1] & ITEM1_X_ATTACK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFENSE) if (itemEffects[1] & ITEM1_X_DEFENSE)
@ -941,7 +923,6 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT) if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
#endif
shouldUse = TRUE; shouldUse = TRUE;
break; break;
case AI_ITEM_GUARD_SPEC: case AI_ITEM_GUARD_SPEC:

View File

@ -3357,9 +3357,7 @@ static const u16 sRecycleEncouragedItems[] =
ITEM_MICLE_BERRY, ITEM_MICLE_BERRY,
ITEM_CUSTAP_BERRY, ITEM_CUSTAP_BERRY,
ITEM_MENTAL_HERB, ITEM_MENTAL_HERB,
#ifdef ITEM_EXPANSION
ITEM_FOCUS_SASH, ITEM_FOCUS_SASH,
#endif
// TODO expand this // TODO expand this
}; };
@ -3375,9 +3373,7 @@ bool32 IsStatBoostingBerry(u16 item)
case ITEM_APICOT_BERRY: case ITEM_APICOT_BERRY:
//case ITEM_LANSAT_BERRY: //case ITEM_LANSAT_BERRY:
case ITEM_STARF_BERRY: case ITEM_STARF_BERRY:
#ifdef ITEM_EXPANSION
case ITEM_MICLE_BERRY: case ITEM_MICLE_BERRY:
#endif
return TRUE; return TRUE;
default: default:
return FALSE; return FALSE;
@ -3619,12 +3615,10 @@ bool32 ShouldUseZMove(u8 battlerAtk, u8 battlerDef, u16 chosenMove)
{ {
u8 effectiveness; u8 effectiveness;
#ifdef POKEMON_EXPANSION
if (gBattleMons[battlerDef].ability == ABILITY_DISGUISE && gBattleMons[battlerDef].species == SPECIES_MIMIKYU) if (gBattleMons[battlerDef].ability == ABILITY_DISGUISE && gBattleMons[battlerDef].species == SPECIES_MIMIKYU)
return FALSE; // Don't waste a Z-Move busting disguise return FALSE; // Don't waste a Z-Move busting disguise
if (gBattleMons[battlerDef].ability == ABILITY_ICE_FACE && gBattleMons[battlerDef].species == SPECIES_EISCUE && IS_MOVE_PHYSICAL(chosenMove)) if (gBattleMons[battlerDef].ability == ABILITY_ICE_FACE && gBattleMons[battlerDef].species == SPECIES_EISCUE && IS_MOVE_PHYSICAL(chosenMove))
return FALSE; // Don't waste a Z-Move busting Ice Face return FALSE; // Don't waste a Z-Move busting Ice Face
#endif
if (IS_MOVE_STATUS(chosenMove) && !IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove)) if (IS_MOVE_STATUS(chosenMove) && !IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove))
return FALSE; return FALSE;

View File

@ -267,7 +267,7 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
} }
InitAnimLinearTranslationWithSpeed(sprite); InitAnimLinearTranslationWithSpeed(sprite);
@ -290,7 +290,7 @@ static void AnimTranslateWebThread_Step(struct Sprite *sprite)
// Second stage of String Shot // Second stage of String Shot
static void AnimStringWrap(struct Sprite *sprite) static void AnimStringWrap(struct Sprite *sprite)
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
if (GetBattlerSide(gBattleAnimAttacker)) if (GetBattlerSide(gBattleAnimAttacker))
sprite->x -= gBattleAnimArgs[0]; sprite->x -= gBattleAnimArgs[0];
else else
@ -400,7 +400,7 @@ static void AnimTranslateStinger(struct Sprite *sprite)
} }
} }
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
@ -425,7 +425,7 @@ static void AnimTranslateStinger(struct Sprite *sprite)
// arg 5: wave amplitude // arg 5: wave amplitude
void AnimMissileArc(struct Sprite *sprite) void AnimMissileArc(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
if (GetBattlerSide(gBattleAnimAttacker)) if (GetBattlerSide(gBattleAnimAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];

View File

@ -508,7 +508,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y; task->data[10] = gBattle_BG1_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
FillPalette(0, animBg.paletteId * 16, 32); FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
scanlineParams.dmaDest = &REG_BG1VOFS; scanlineParams.dmaDest = &REG_BG1VOFS;
var0 = WINOUT_WIN01_BG1; var0 = WINOUT_WIN01_BG1;
if (!IsContest()) if (!IsContest())
@ -518,7 +518,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
{ {
task->data[10] = gBattle_BG2_Y; task->data[10] = gBattle_BG2_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
FillPalette(0, 144, 32); FillPalette(RGB_BLACK, 144, 32);
scanlineParams.dmaDest = &REG_BG2VOFS; scanlineParams.dmaDest = &REG_BG2VOFS;
var0 = WINOUT_WIN01_BG2; var0 = WINOUT_WIN01_BG2;
if (!IsContest()) if (!IsContest())
@ -648,12 +648,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
{ {
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y; task->data[10] = gBattle_BG1_Y;
FillPalette(0, animBg.paletteId * 16, 32); FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
} }
else else
{ {
task->data[10] = gBattle_BG2_Y; task->data[10] = gBattle_BG2_Y;
FillPalette(0, 9 * 16, 32); FillPalette(RGB_BLACK, 9 * 16, 32);
} }
SetAllBattlersSpritePriority(3); SetAllBattlersSpritePriority(3);
@ -868,7 +868,7 @@ void AnimTask_InitMementoShadow(u8 taskId)
void AnimTask_MementoHandleBg(u8 taskId) void AnimTask_MementoHandleBg(u8 taskId)
{ {
u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0; bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE;
ResetBattleAnimBg(toBG2); ResetBattleAnimBg(toBG2);
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))

View File

@ -139,23 +139,23 @@ static void AnimTask_SkullBashPositionReset(u8);
static void AnimMoveFeintSwipe(struct Sprite *); static void AnimMoveFeintSwipe(struct Sprite *);
static void AnimMoveFeintZoom(struct Sprite *); static void AnimMoveFeintZoom(struct Sprite *);
static void AnimMoveTrumpCard(struct Sprite *); static void AnimMoveTrumpCard(struct Sprite *);
static void AnimMoveTrumpCardParticle(struct Sprite* sprite); static void AnimMoveTrumpCardParticle(struct Sprite *);
static void AnimMoveAccupressure(struct Sprite* sprite); static void AnimMoveAccupressure(struct Sprite *);
static void AnimMoveWringOut(struct Sprite* sprite); static void AnimMoveWringOut(struct Sprite *);
static void AnimMoveWorrySeed(struct Sprite* sprite); static void AnimMoveWorrySeed(struct Sprite *);
static void AnimMoveSmallCloud(struct Sprite* sprite); static void AnimMoveSmallCloud(struct Sprite *);
static void AnimGrassKnotStep(struct Sprite *sprite); static void AnimGrassKnotStep(struct Sprite *);
static void AnimGrassKnot(struct Sprite *sprite); static void AnimGrassKnot(struct Sprite *);
static void AnimWoodHammerSmall(struct Sprite *sprite); static void AnimWoodHammerSmall(struct Sprite *);
static void AnimWoodHammerBig(struct Sprite *sprite); static void AnimWoodHammerBig(struct Sprite *);
static void AnimTask_DoubleTeam_Step(u8); static void AnimTask_DoubleTeam_Step(u8);
static void AnimDoubleTeam(struct Sprite *); static void AnimDoubleTeam(struct Sprite *);
static void AnimNightSlash(struct Sprite *sprite); static void AnimNightSlash(struct Sprite *);
static void AnimRockPolishStreak(struct Sprite *sprite); static void AnimRockPolishStreak(struct Sprite *);
static void AnimRockPolishSparkle(struct Sprite *sprite); static void AnimRockPolishSparkle(struct Sprite *);
static void AnimPoisonJabProjectile(struct Sprite *sprite); static void AnimPoisonJabProjectile(struct Sprite *);
static void AnimNightSlash(struct Sprite *sprite); static void AnimNightSlash(struct Sprite *);
static void AnimPluck(struct Sprite* sprite); static void AnimPluck(struct Sprite *);
const union AnimCmd gPowderParticlesAnimCmds[] = const union AnimCmd gPowderParticlesAnimCmds[] =
{ {
@ -3815,7 +3815,7 @@ static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite)
void AnimMoveTwisterParticle(struct Sprite *sprite) void AnimMoveTwisterParticle(struct Sprite *sprite)
{ {
if (IsDoubleBattle() == TRUE) if (IsDoubleBattle() == TRUE)
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->x, &sprite->y);
sprite->y += 32; sprite->y += 32;
sprite->data[0] = gBattleAnimArgs[0]; sprite->data[0] = gBattleAnimArgs[0];
@ -4822,7 +4822,7 @@ void AnimNeedleArmSpike(struct Sprite* sprite)
if (IsContest()) if (IsContest())
c -= 0x8000; c -= 0x8000;
TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c); TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, c);
sprite->callback = AnimNeedleArmSpike_Step; sprite->callback = AnimNeedleArmSpike_Step;
} }
} }

View File

@ -1720,7 +1720,7 @@ void AnimTask_AirCutterProjectile(u8 taskId)
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 0, &targetX, &targetY); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &targetX, &targetY);
} }
else else
{ {
@ -3756,7 +3756,7 @@ static void AnimPerishSongMusicNote2(struct Sprite *sprite)
} }
if (++sprite->data[0] == sprite->data[1]) if (++sprite->data[0] == sprite->data[1])
SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, FALSE);
if (sprite->data[0] == sprite->data[1] + 80) if (sprite->data[0] == sprite->data[1] + 80)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
@ -3843,7 +3843,7 @@ static void AnimGuardRing(struct Sprite *sprite)
{ {
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
{ {
SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y);
sprite->y += 40; sprite->y += 40;
StartSpriteAffineAnim(sprite, 1); StartSpriteAffineAnim(sprite, 1);

View File

@ -2770,7 +2770,7 @@ static void AnimWeakFrustrationAngerMark(struct Sprite *sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
sprite->data[0]++; sprite->data[0]++;
} }
else if (sprite->data[0]++ > 20) else if (sprite->data[0]++ > 20)
@ -4911,7 +4911,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
} }
else else
{ {
LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId); LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, FALSE, spriteId);
if (IsContest()) if (IsContest())
{ {
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteContest; gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteContest;

View File

@ -664,7 +664,7 @@ void AnimSparkElectricity(struct Sprite *sprite)
void AnimZapCannonSpark(struct Sprite *sprite) void AnimZapCannonSpark(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
sprite->data[1] = sprite->x; sprite->data[1] = sprite->x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);

View File

@ -526,7 +526,7 @@ void AnimBasicFistOrFoot(struct Sprite *sprite)
StartSpriteAnim(sprite, gBattleAnimArgs[4]); StartSpriteAnim(sprite, gBattleAnimArgs[4]);
if (gBattleAnimArgs[3] == 0) if (gBattleAnimArgs[3] == 0)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
else else
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
@ -1036,7 +1036,7 @@ static void AnimArmThrustHit(struct Sprite *sprite)
void AnimRevengeScratch(struct Sprite *sprite) void AnimRevengeScratch(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
else else
InitSpritePosToAnimTarget(sprite, FALSE); InitSpritePosToAnimTarget(sprite, FALSE);

View File

@ -731,7 +731,7 @@ static void AnimBurnFlame(struct Sprite *sprite)
//void AnimFireRing(struct Sprite *sprite) //void AnimFireRing(struct Sprite *sprite)
void AnimFireRing(struct Sprite *sprite) void AnimFireRing(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[7] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[2];
sprite->data[0] = 0; sprite->data[0] = 0;
@ -818,7 +818,7 @@ void AnimFireCross(struct Sprite *sprite)
void AnimFireSpiralOutward(struct Sprite *sprite) void AnimFireSpiralOutward(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[1] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
@ -1184,7 +1184,7 @@ void AnimWillOWispOrb(struct Sprite *sprite)
switch (sprite->data[0]) switch (sprite->data[0])
{ {
case 0: case 0:
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
StartSpriteAnim(sprite, gBattleAnimArgs[2]); StartSpriteAnim(sprite, gBattleAnimArgs[2]);
sprite->data[7] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[2];

View File

@ -451,7 +451,7 @@ void AnimAirWaveCrescent(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
} }
sprite->data[2] = sprite->data[2] + gBattleAnimArgs[2]; sprite->data[2] = sprite->data[2] + gBattleAnimArgs[2];
@ -902,7 +902,7 @@ static void AnimWhirlwindLine(struct Sprite * sprite)
u8 mult; u8 mult;
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
else else
InitSpritePosToAnimTarget(sprite, FALSE); InitSpritePosToAnimTarget(sprite, FALSE);
@ -967,7 +967,7 @@ static void AnimBounceBallShrink(struct Sprite *sprite)
switch (sprite->data[0]) switch (sprite->data[0])
{ {
case 0: case 0:
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE;
++sprite->data[0]; ++sprite->data[0];
break; break;
@ -1005,7 +1005,7 @@ void AnimBounceBallLand(struct Sprite *sprite)
static void AnimDiveBall(struct Sprite *sprite) static void AnimDiveBall(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[3];
sprite->callback = AnimDiveBall_Step1; sprite->callback = AnimDiveBall_Step1;
@ -1063,7 +1063,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->data[1] = 0x200; sprite->data[1] = 0x200;
TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0); TrySetSpriteRotScale(sprite, FALSE, 0x100, sprite->data[1], 0);
sprite->data[0]++; sprite->data[0]++;
break; break;
case 1: case 1:
@ -1074,7 +1074,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->data[2]++; sprite->data[2]++;
TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0); TrySetSpriteRotScale(sprite, FALSE, 0x100, sprite->data[1], 0);
matrixNum = sprite->oam.matrixNum; matrixNum = sprite->oam.matrixNum;
@ -1198,7 +1198,7 @@ static void AnimSkyAttackBird(struct Sprite *sprite)
rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y); rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y);
rotation -= 16384; rotation -= 16384;
TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, rotation);
sprite->callback = AnimSkyAttackBird_Step; sprite->callback = AnimSkyAttackBird_Step;
} }

View File

@ -1109,7 +1109,7 @@ static void AnimCurseNail(struct Sprite *sprite)
s16 xDelta; s16 xDelta;
s16 xDelta2; s16 xDelta2;
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{ {
xDelta = 24; xDelta = 24;

View File

@ -223,7 +223,7 @@ void AnimDirtScatter(struct Sprite *sprite)
u8 targetXPos, targetYPos; u8 targetXPos, targetYPos;
s16 xOffset, yOffset; s16 xOffset, yOffset;
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2); targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2);
targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);

View File

@ -714,7 +714,7 @@ void AnimIceEffectParticle(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->x, &sprite->y);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[0] = -gBattleAnimArgs[0];
@ -759,7 +759,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
} }
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@ -879,7 +879,7 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
} }
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@ -950,7 +950,7 @@ static void AnimWaveFromCenterOfTarget(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[0] = -gBattleAnimArgs[0];
@ -988,7 +988,7 @@ static void InitSwirlingFogAnim(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->x -= gBattleAnimArgs[0]; sprite->x -= gBattleAnimArgs[0];
else else
@ -1007,7 +1007,7 @@ static void InitSwirlingFogAnim(struct Sprite *sprite)
} }
else else
{ {
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER)
sprite->x -= gBattleAnimArgs[0]; sprite->x -= gBattleAnimArgs[0];
else else
@ -1580,7 +1580,7 @@ static void InitIceBallAnim(struct Sprite *sprite)
animNum = 4; animNum = 4;
StartSpriteAffineAnim(sprite, animNum); StartSpriteAffineAnim(sprite, animNum);
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];

View File

@ -1622,7 +1622,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
void AnimThrowProjectile(struct Sprite *sprite) void AnimThrowProjectile(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
if (GetBattlerSide(gBattleAnimAttacker)) if (GetBattlerSide(gBattleAnimAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];

View File

@ -7712,12 +7712,9 @@ void AnimTask_GetTimeOfDay(u8 taskId)
void AnimTask_GetLycanrocForm(u8 taskId) void AnimTask_GetLycanrocForm(u8 taskId)
{ {
#ifdef POKEMON_EXPANSION
if (GetMonData(GetIllusionMonPtr(gBattleAnimAttacker), MON_DATA_SPECIES) == SPECIES_LYCANROC_MIDNIGHT) if (GetMonData(GetIllusionMonPtr(gBattleAnimAttacker), MON_DATA_SPECIES) == SPECIES_LYCANROC_MIDNIGHT)
gBattleAnimArgs[0] = 1; gBattleAnimArgs[0] = 1;
else else
#endif
gBattleAnimArgs[0] = 0; gBattleAnimArgs[0] = 0;
gBattleAnimArgs[0] = 0; gBattleAnimArgs[0] = 0;

View File

@ -1030,7 +1030,7 @@ void AnimHitSplatBasic(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
else else
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
@ -1043,7 +1043,7 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
else else
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
@ -1093,7 +1093,7 @@ void AnimHitSplatOnMonEdge(struct Sprite *sprite)
void AnimCrossImpact(struct Sprite *sprite) void AnimCrossImpact(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
else else
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);
@ -1106,7 +1106,7 @@ void AnimFlashingHitSplat(struct Sprite *sprite)
{ {
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == ANIM_ATTACKER) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
else else
InitSpritePosToAnimTarget(sprite, TRUE); InitSpritePosToAnimTarget(sprite, TRUE);

View File

@ -403,7 +403,7 @@ static void AnimSludgeProjectile(struct Sprite *sprite)
if (!gBattleAnimArgs[3]) if (!gBattleAnimArgs[3])
StartSpriteAnim(sprite, 2); StartSpriteAnim(sprite, 2);
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
@ -427,9 +427,9 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite)
if (!gBattleAnimArgs[3]) if (!gBattleAnimArgs[3])
StartSpriteAnim(sprite, 2); StartSpriteAnim(sprite, 2);
InitSpritePosToAnimAttacker(sprite, 1); InitSpritePosToAnimAttacker(sprite, TRUE);
if (gBattleAnimArgs[6]) if (gBattleAnimArgs[6])
SetAverageBattlerPositions(gBattleAnimTarget, 1, &l1, &l2); SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &l1, &l2);
else else
l1 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2), l2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); l1 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2), l2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);

View File

@ -393,7 +393,7 @@ static void AnimStealthRockStep2(struct Sprite *sprite)
void AnimFallingRock(struct Sprite *sprite) void AnimFallingRock(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[3] != 0) if (gBattleAnimArgs[3] != 0)
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
sprite->x += gBattleAnimArgs[0]; sprite->x += gBattleAnimArgs[0];
sprite->y += 14; sprite->y += 14;
@ -459,7 +459,7 @@ void AnimRockFragment(struct Sprite *sprite)
void AnimParticleInVortex(struct Sprite *sprite) void AnimParticleInVortex(struct Sprite *sprite)
{ {
if (gBattleAnimArgs[6] == ANIM_ATTACKER) if (gBattleAnimArgs[6] == ANIM_ATTACKER)
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
else else
InitSpritePosToAnimTarget(sprite, FALSE); InitSpritePosToAnimTarget(sprite, FALSE);
@ -640,7 +640,7 @@ void AnimFlyingSandCrescent(struct Sprite *sprite)
void AnimRaiseSprite(struct Sprite *sprite) void AnimRaiseSprite(struct Sprite *sprite)
{ {
StartSpriteAnim(sprite, gBattleAnimArgs[4]); StartSpriteAnim(sprite, gBattleAnimArgs[4]);
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
sprite->data[0] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[3];
sprite->data[2] = sprite->x; sprite->data[2] = sprite->x;

View File

@ -61,7 +61,7 @@ static const struct OamData sOamData_SmokescreenImpact =
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0, .mosaic = FALSE,
.bpp = ST_OAM_4BPP, .bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16), .shape = SPRITE_SHAPE(16x16),
.x = 0, .x = 0,
@ -134,7 +134,7 @@ static const struct OamData sOamData_EnemyShadow =
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0, .mosaic = FALSE,
.bpp = ST_OAM_4BPP, .bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8), .shape = SPRITE_SHAPE(32x8),
.x = 0, .x = 0,

View File

@ -733,7 +733,7 @@ static void AnimTask_UnusedLevelUpHealthBox_Step(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0) if (gTasks[taskId].data[12] == 0)
{ {
ResetBattleAnimBg(0); ResetBattleAnimBg(FALSE);
gBattle_WIN0H = 0; gBattle_WIN0H = 0;
gBattle_WIN0V = 0; gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
@ -2673,7 +2673,7 @@ void AnimTask_FreePokeblockGfx(u8 taskId)
static void SpriteCB_PokeBlock_Throw(struct Sprite *sprite) static void SpriteCB_PokeBlock_Throw(struct Sprite *sprite)
{ {
InitSpritePosToAnimAttacker(sprite, 0); InitSpritePosToAnimAttacker(sprite, FALSE);
sprite->sDuration = 30; sprite->sDuration = 30;
sprite->sTargetX = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2]; sprite->sTargetX = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
sprite->sTargetY = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->sTargetY = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];

View File

@ -357,7 +357,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
gBattle_BG1_Y += 64; gBattle_BG1_Y += 64;
if (++gTasks[taskId].data[11] == 4) if (++gTasks[taskId].data[11] == 4)
{ {
ResetBattleAnimBg(0); ResetBattleAnimBg(FALSE);
gBattle_WIN0H = 0; gBattle_WIN0H = 0;
gBattle_WIN0V = 0; gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
@ -569,7 +569,7 @@ static void StatsChangeAnimation_Step3(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0) if (gTasks[taskId].data[12] == 0)
{ {
ResetBattleAnimBg(0); ResetBattleAnimBg(FALSE);
gTasks[taskId].data[15]++; gTasks[taskId].data[15]++;
} }
} }
@ -870,7 +870,7 @@ static void UpdateMonScrollingBgMask(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0) if (gTasks[taskId].data[12] == 0)
{ {
ResetBattleAnimBg(0); ResetBattleAnimBg(FALSE);
gBattle_WIN0H = 0; gBattle_WIN0H = 0;
gBattle_WIN0V = 0; gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR

View File

@ -35,12 +35,28 @@ static void SaveArenaChallenge(void);
static void SetArenaPrize(void); static void SetArenaPrize(void);
static void GiveArenaPrize(void); static void GiveArenaPrize(void);
static void BufferArenaOpponentName(void); static void BufferArenaOpponentName(void);
static void SpriteCb_JudgmentIcon(struct Sprite *sprite); static void SpriteCB_JudgmentIcon(struct Sprite *sprite);
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler); static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler);
static const s8 sMindRatings[] = #define JUDGEMENT_STATE_FINISHED 8
#define TAG_JUDGEMENT_ICON 1000
enum {
ANIM_ICON_X, // Player lost
ANIM_ICON_TRIANGLE, // Tie
ANIM_ICON_CIRCLE, // Player won
ANIM_ICON_LINE, // Line segment for separating the score total at the bottom
};
// This table holds the number of points to add to the 'mind' score for each move.
// All moves with power != 0 give 1 point, with the following exceptions:
// - Counter, Mirror Coat, and Bide give 0 points
// - Fake Out subtracts 1 point
// All moves with power == 0 give 0 points, with the following exceptions:
// - Protect, Detect, and Endure subtract 1 point
static const s8 sMindRatings[MOVES_COUNT] =
{ {
[MOVE_NONE] = 0,
[MOVE_POUND] = 1, [MOVE_POUND] = 1,
[MOVE_KARATE_CHOP] = 1, [MOVE_KARATE_CHOP] = 1,
[MOVE_DOUBLE_SLAP] = 1, [MOVE_DOUBLE_SLAP] = 1,
@ -54,11 +70,9 @@ static const s8 sMindRatings[] =
[MOVE_VISE_GRIP] = 1, [MOVE_VISE_GRIP] = 1,
[MOVE_GUILLOTINE] = 1, [MOVE_GUILLOTINE] = 1,
[MOVE_RAZOR_WIND] = 1, [MOVE_RAZOR_WIND] = 1,
[MOVE_SWORDS_DANCE] = 0,
[MOVE_CUT] = 1, [MOVE_CUT] = 1,
[MOVE_GUST] = 1, [MOVE_GUST] = 1,
[MOVE_WING_ATTACK] = 1, [MOVE_WING_ATTACK] = 1,
[MOVE_WHIRLWIND] = 0,
[MOVE_FLY] = 1, [MOVE_FLY] = 1,
[MOVE_BIND] = 1, [MOVE_BIND] = 1,
[MOVE_SLAM] = 1, [MOVE_SLAM] = 1,
@ -68,7 +82,6 @@ static const s8 sMindRatings[] =
[MOVE_MEGA_KICK] = 1, [MOVE_MEGA_KICK] = 1,
[MOVE_JUMP_KICK] = 1, [MOVE_JUMP_KICK] = 1,
[MOVE_ROLLING_KICK] = 1, [MOVE_ROLLING_KICK] = 1,
[MOVE_SAND_ATTACK] = 0,
[MOVE_HEADBUTT] = 1, [MOVE_HEADBUTT] = 1,
[MOVE_HORN_ATTACK] = 1, [MOVE_HORN_ATTACK] = 1,
[MOVE_FURY_ATTACK] = 1, [MOVE_FURY_ATTACK] = 1,
@ -79,22 +92,14 @@ static const s8 sMindRatings[] =
[MOVE_TAKE_DOWN] = 1, [MOVE_TAKE_DOWN] = 1,
[MOVE_THRASH] = 1, [MOVE_THRASH] = 1,
[MOVE_DOUBLE_EDGE] = 1, [MOVE_DOUBLE_EDGE] = 1,
[MOVE_TAIL_WHIP] = 0,
[MOVE_POISON_STING] = 1, [MOVE_POISON_STING] = 1,
[MOVE_TWINEEDLE] = 1, [MOVE_TWINEEDLE] = 1,
[MOVE_PIN_MISSILE] = 1, [MOVE_PIN_MISSILE] = 1,
[MOVE_LEER] = 0,
[MOVE_BITE] = 1, [MOVE_BITE] = 1,
[MOVE_GROWL] = 0,
[MOVE_ROAR] = 0,
[MOVE_SING] = 0,
[MOVE_SUPERSONIC] = 0,
[MOVE_SONIC_BOOM] = 1, [MOVE_SONIC_BOOM] = 1,
[MOVE_DISABLE] = 0,
[MOVE_ACID] = 1, [MOVE_ACID] = 1,
[MOVE_EMBER] = 1, [MOVE_EMBER] = 1,
[MOVE_FLAMETHROWER] = 1, [MOVE_FLAMETHROWER] = 1,
[MOVE_MIST] = 0,
[MOVE_WATER_GUN] = 1, [MOVE_WATER_GUN] = 1,
[MOVE_HYDRO_PUMP] = 1, [MOVE_HYDRO_PUMP] = 1,
[MOVE_SURF] = 1, [MOVE_SURF] = 1,
@ -108,58 +113,27 @@ static const s8 sMindRatings[] =
[MOVE_DRILL_PECK] = 1, [MOVE_DRILL_PECK] = 1,
[MOVE_SUBMISSION] = 1, [MOVE_SUBMISSION] = 1,
[MOVE_LOW_KICK] = 1, [MOVE_LOW_KICK] = 1,
[MOVE_COUNTER] = 0,
[MOVE_SEISMIC_TOSS] = 1, [MOVE_SEISMIC_TOSS] = 1,
[MOVE_STRENGTH] = 1, [MOVE_STRENGTH] = 1,
[MOVE_ABSORB] = 1, [MOVE_ABSORB] = 1,
[MOVE_MEGA_DRAIN] = 1, [MOVE_MEGA_DRAIN] = 1,
[MOVE_LEECH_SEED] = 0,
[MOVE_GROWTH] = 0,
[MOVE_RAZOR_LEAF] = 1, [MOVE_RAZOR_LEAF] = 1,
[MOVE_SOLAR_BEAM] = 1, [MOVE_SOLAR_BEAM] = 1,
[MOVE_POISON_POWDER] = 0,
[MOVE_STUN_SPORE] = 0,
[MOVE_SLEEP_POWDER] = 0,
[MOVE_PETAL_DANCE] = 1, [MOVE_PETAL_DANCE] = 1,
[MOVE_STRING_SHOT] = 0,
[MOVE_DRAGON_RAGE] = 1, [MOVE_DRAGON_RAGE] = 1,
[MOVE_FIRE_SPIN] = 1, [MOVE_FIRE_SPIN] = 1,
[MOVE_THUNDER_SHOCK] = 1, [MOVE_THUNDER_SHOCK] = 1,
[MOVE_THUNDERBOLT] = 1, [MOVE_THUNDERBOLT] = 1,
[MOVE_THUNDER_WAVE] = 0,
[MOVE_THUNDER] = 1, [MOVE_THUNDER] = 1,
[MOVE_ROCK_THROW] = 1, [MOVE_ROCK_THROW] = 1,
[MOVE_EARTHQUAKE] = 1, [MOVE_EARTHQUAKE] = 1,
[MOVE_FISSURE] = 1, [MOVE_FISSURE] = 1,
[MOVE_DIG] = 1, [MOVE_DIG] = 1,
[MOVE_TOXIC] = 0,
[MOVE_CONFUSION] = 1, [MOVE_CONFUSION] = 1,
[MOVE_PSYCHIC] = 1, [MOVE_PSYCHIC] = 1,
[MOVE_HYPNOSIS] = 0,
[MOVE_MEDITATE] = 0,
[MOVE_AGILITY] = 0,
[MOVE_QUICK_ATTACK] = 1, [MOVE_QUICK_ATTACK] = 1,
[MOVE_RAGE] = 1, [MOVE_RAGE] = 1,
[MOVE_TELEPORT] = 0,
[MOVE_NIGHT_SHADE] = 1, [MOVE_NIGHT_SHADE] = 1,
[MOVE_MIMIC] = 0,
[MOVE_SCREECH] = 0,
[MOVE_DOUBLE_TEAM] = 0,
[MOVE_RECOVER] = 0,
[MOVE_HARDEN] = 0,
[MOVE_MINIMIZE] = 0,
[MOVE_SMOKESCREEN] = 0,
[MOVE_CONFUSE_RAY] = 0,
[MOVE_WITHDRAW] = 0,
[MOVE_DEFENSE_CURL] = 0,
[MOVE_BARRIER] = 0,
[MOVE_LIGHT_SCREEN] = 0,
[MOVE_HAZE] = 0,
[MOVE_REFLECT] = 0,
[MOVE_FOCUS_ENERGY] = 0,
[MOVE_BIDE] = 0,
[MOVE_METRONOME] = 0,
[MOVE_MIRROR_MOVE] = 0,
[MOVE_SELF_DESTRUCT] = 1, [MOVE_SELF_DESTRUCT] = 1,
[MOVE_EGG_BOMB] = 1, [MOVE_EGG_BOMB] = 1,
[MOVE_LICK] = 1, [MOVE_LICK] = 1,
@ -173,118 +147,67 @@ static const s8 sMindRatings[] =
[MOVE_SKULL_BASH] = 1, [MOVE_SKULL_BASH] = 1,
[MOVE_SPIKE_CANNON] = 1, [MOVE_SPIKE_CANNON] = 1,
[MOVE_CONSTRICT] = 1, [MOVE_CONSTRICT] = 1,
[MOVE_AMNESIA] = 0,
[MOVE_KINESIS] = 0,
[MOVE_SOFT_BOILED] = 0,
[MOVE_HIGH_JUMP_KICK] = 1, [MOVE_HIGH_JUMP_KICK] = 1,
[MOVE_GLARE] = 0,
[MOVE_DREAM_EATER] = 1, [MOVE_DREAM_EATER] = 1,
[MOVE_POISON_GAS] = 0,
[MOVE_BARRAGE] = 1, [MOVE_BARRAGE] = 1,
[MOVE_LEECH_LIFE] = 1, [MOVE_LEECH_LIFE] = 1,
[MOVE_LOVELY_KISS] = 0,
[MOVE_SKY_ATTACK] = 1, [MOVE_SKY_ATTACK] = 1,
[MOVE_TRANSFORM] = 0,
[MOVE_BUBBLE] = 1, [MOVE_BUBBLE] = 1,
[MOVE_DIZZY_PUNCH] = 1, [MOVE_DIZZY_PUNCH] = 1,
[MOVE_SPORE] = 0,
[MOVE_FLASH] = 0,
[MOVE_PSYWAVE] = 1, [MOVE_PSYWAVE] = 1,
[MOVE_SPLASH] = 0,
[MOVE_ACID_ARMOR] = 0,
[MOVE_CRABHAMMER] = 1, [MOVE_CRABHAMMER] = 1,
[MOVE_EXPLOSION] = 1, [MOVE_EXPLOSION] = 1,
[MOVE_FURY_SWIPES] = 1, [MOVE_FURY_SWIPES] = 1,
[MOVE_BONEMERANG] = 1, [MOVE_BONEMERANG] = 1,
[MOVE_REST] = 0,
[MOVE_ROCK_SLIDE] = 1, [MOVE_ROCK_SLIDE] = 1,
[MOVE_HYPER_FANG] = 1, [MOVE_HYPER_FANG] = 1,
[MOVE_SHARPEN] = 0,
[MOVE_CONVERSION] = 0,
[MOVE_TRI_ATTACK] = 1, [MOVE_TRI_ATTACK] = 1,
[MOVE_SUPER_FANG] = 1, [MOVE_SUPER_FANG] = 1,
[MOVE_SLASH] = 1, [MOVE_SLASH] = 1,
[MOVE_SUBSTITUTE] = 0,
[MOVE_STRUGGLE] = 1, [MOVE_STRUGGLE] = 1,
[MOVE_SKETCH] = 0,
[MOVE_TRIPLE_KICK] = 1, [MOVE_TRIPLE_KICK] = 1,
[MOVE_THIEF] = 1, [MOVE_THIEF] = 1,
[MOVE_SPIDER_WEB] = 0,
[MOVE_MIND_READER] = 0,
[MOVE_NIGHTMARE] = 0,
[MOVE_FLAME_WHEEL] = 1, [MOVE_FLAME_WHEEL] = 1,
[MOVE_SNORE] = 1, [MOVE_SNORE] = 1,
[MOVE_CURSE] = 0,
[MOVE_FLAIL] = 1, [MOVE_FLAIL] = 1,
[MOVE_CONVERSION_2] = 0,
[MOVE_AEROBLAST] = 1, [MOVE_AEROBLAST] = 1,
[MOVE_COTTON_SPORE] = 0,
[MOVE_REVERSAL] = 1, [MOVE_REVERSAL] = 1,
[MOVE_SPITE] = 0,
[MOVE_POWDER_SNOW] = 1, [MOVE_POWDER_SNOW] = 1,
[MOVE_PROTECT] = -1, [MOVE_PROTECT] = -1,
[MOVE_MACH_PUNCH] = 1, [MOVE_MACH_PUNCH] = 1,
[MOVE_SCARY_FACE] = 0,
[MOVE_FEINT_ATTACK] = 1, [MOVE_FEINT_ATTACK] = 1,
[MOVE_SWEET_KISS] = 0,
[MOVE_BELLY_DRUM] = 0,
[MOVE_SLUDGE_BOMB] = 1, [MOVE_SLUDGE_BOMB] = 1,
[MOVE_MUD_SLAP] = 1, [MOVE_MUD_SLAP] = 1,
[MOVE_OCTAZOOKA] = 1, [MOVE_OCTAZOOKA] = 1,
[MOVE_SPIKES] = 0,
[MOVE_ZAP_CANNON] = 1, [MOVE_ZAP_CANNON] = 1,
[MOVE_FORESIGHT] = 0,
[MOVE_DESTINY_BOND] = 0,
[MOVE_PERISH_SONG] = 0,
[MOVE_ICY_WIND] = 1, [MOVE_ICY_WIND] = 1,
[MOVE_DETECT] = -1, [MOVE_DETECT] = -1,
[MOVE_BONE_RUSH] = 1, [MOVE_BONE_RUSH] = 1,
[MOVE_LOCK_ON] = 0,
[MOVE_OUTRAGE] = 1, [MOVE_OUTRAGE] = 1,
[MOVE_SANDSTORM] = 0,
[MOVE_GIGA_DRAIN] = 1, [MOVE_GIGA_DRAIN] = 1,
[MOVE_ENDURE] = -1, [MOVE_ENDURE] = -1,
[MOVE_CHARM] = 0,
[MOVE_ROLLOUT] = 1, [MOVE_ROLLOUT] = 1,
[MOVE_FALSE_SWIPE] = 1, [MOVE_FALSE_SWIPE] = 1,
[MOVE_SWAGGER] = 0,
[MOVE_MILK_DRINK] = 0,
[MOVE_SPARK] = 1, [MOVE_SPARK] = 1,
[MOVE_FURY_CUTTER] = 1, [MOVE_FURY_CUTTER] = 1,
[MOVE_STEEL_WING] = 1, [MOVE_STEEL_WING] = 1,
[MOVE_MEAN_LOOK] = 0,
[MOVE_ATTRACT] = 0,
[MOVE_SLEEP_TALK] = 0,
[MOVE_HEAL_BELL] = 0,
[MOVE_RETURN] = 1, [MOVE_RETURN] = 1,
[MOVE_PRESENT] = 1, [MOVE_PRESENT] = 1,
[MOVE_FRUSTRATION] = 1, [MOVE_FRUSTRATION] = 1,
[MOVE_SAFEGUARD] = 0,
[MOVE_PAIN_SPLIT] = 0,
[MOVE_SACRED_FIRE] = 1, [MOVE_SACRED_FIRE] = 1,
[MOVE_MAGNITUDE] = 1, [MOVE_MAGNITUDE] = 1,
[MOVE_DYNAMIC_PUNCH] = 1, [MOVE_DYNAMIC_PUNCH] = 1,
[MOVE_MEGAHORN] = 1, [MOVE_MEGAHORN] = 1,
[MOVE_DRAGON_BREATH] = 1, [MOVE_DRAGON_BREATH] = 1,
[MOVE_BATON_PASS] = 0,
[MOVE_ENCORE] = 0,
[MOVE_PURSUIT] = 1, [MOVE_PURSUIT] = 1,
[MOVE_RAPID_SPIN] = 1, [MOVE_RAPID_SPIN] = 1,
[MOVE_SWEET_SCENT] = 0,
[MOVE_IRON_TAIL] = 1, [MOVE_IRON_TAIL] = 1,
[MOVE_METAL_CLAW] = 1, [MOVE_METAL_CLAW] = 1,
[MOVE_VITAL_THROW] = 1, [MOVE_VITAL_THROW] = 1,
[MOVE_MORNING_SUN] = 0,
[MOVE_SYNTHESIS] = 0,
[MOVE_MOONLIGHT] = 0,
[MOVE_HIDDEN_POWER] = 1, [MOVE_HIDDEN_POWER] = 1,
[MOVE_CROSS_CHOP] = 1, [MOVE_CROSS_CHOP] = 1,
[MOVE_TWISTER] = 1, [MOVE_TWISTER] = 1,
[MOVE_RAIN_DANCE] = 0,
[MOVE_SUNNY_DAY] = 0,
[MOVE_CRUNCH] = 1, [MOVE_CRUNCH] = 1,
[MOVE_MIRROR_COAT] = 0,
[MOVE_PSYCH_UP] = 0,
[MOVE_EXTREME_SPEED] = 1, [MOVE_EXTREME_SPEED] = 1,
[MOVE_ANCIENT_POWER] = 1, [MOVE_ANCIENT_POWER] = 1,
[MOVE_SHADOW_BALL] = 1, [MOVE_SHADOW_BALL] = 1,
@ -294,56 +217,25 @@ static const s8 sMindRatings[] =
[MOVE_BEAT_UP] = 1, [MOVE_BEAT_UP] = 1,
[MOVE_FAKE_OUT] = -1, [MOVE_FAKE_OUT] = -1,
[MOVE_UPROAR] = 1, [MOVE_UPROAR] = 1,
[MOVE_STOCKPILE] = 0,
[MOVE_SPIT_UP] = 1, [MOVE_SPIT_UP] = 1,
[MOVE_SWALLOW] = 0,
[MOVE_HEAT_WAVE] = 1, [MOVE_HEAT_WAVE] = 1,
[MOVE_HAIL] = 0,
[MOVE_TORMENT] = 0,
[MOVE_FLATTER] = 0,
[MOVE_WILL_O_WISP] = 0,
[MOVE_MEMENTO] = 0,
[MOVE_FACADE] = 1, [MOVE_FACADE] = 1,
[MOVE_FOCUS_PUNCH] = 1, [MOVE_FOCUS_PUNCH] = 1,
[MOVE_SMELLING_SALTS] = 1, [MOVE_SMELLING_SALTS] = 1,
[MOVE_FOLLOW_ME] = 0,
[MOVE_NATURE_POWER] = 0,
[MOVE_CHARGE] = 0,
[MOVE_TAUNT] = 0,
[MOVE_HELPING_HAND] = 0,
[MOVE_TRICK] = 0,
[MOVE_ROLE_PLAY] = 0,
[MOVE_WISH] = 0,
[MOVE_ASSIST] = 0,
[MOVE_INGRAIN] = 0,
[MOVE_SUPERPOWER] = 1, [MOVE_SUPERPOWER] = 1,
[MOVE_MAGIC_COAT] = 0,
[MOVE_RECYCLE] = 0,
[MOVE_REVENGE] = 1, [MOVE_REVENGE] = 1,
[MOVE_BRICK_BREAK] = 1, [MOVE_BRICK_BREAK] = 1,
[MOVE_YAWN] = 0,
[MOVE_KNOCK_OFF] = 1, [MOVE_KNOCK_OFF] = 1,
[MOVE_ENDEAVOR] = 1, [MOVE_ENDEAVOR] = 1,
[MOVE_ERUPTION] = 1, [MOVE_ERUPTION] = 1,
[MOVE_SKILL_SWAP] = 0,
[MOVE_IMPRISON] = 0,
[MOVE_REFRESH] = 0,
[MOVE_GRUDGE] = 0,
[MOVE_SNATCH] = 0,
[MOVE_SECRET_POWER] = 1, [MOVE_SECRET_POWER] = 1,
[MOVE_DIVE] = 1, [MOVE_DIVE] = 1,
[MOVE_ARM_THRUST] = 1, [MOVE_ARM_THRUST] = 1,
[MOVE_CAMOUFLAGE] = 0,
[MOVE_TAIL_GLOW] = 0,
[MOVE_LUSTER_PURGE] = 1, [MOVE_LUSTER_PURGE] = 1,
[MOVE_MIST_BALL] = 1, [MOVE_MIST_BALL] = 1,
[MOVE_FEATHER_DANCE] = 0,
[MOVE_TEETER_DANCE] = 0,
[MOVE_BLAZE_KICK] = 1, [MOVE_BLAZE_KICK] = 1,
[MOVE_MUD_SPORT] = 0,
[MOVE_ICE_BALL] = 1, [MOVE_ICE_BALL] = 1,
[MOVE_NEEDLE_ARM] = 1, [MOVE_NEEDLE_ARM] = 1,
[MOVE_SLACK_OFF] = 0,
[MOVE_HYPER_VOICE] = 1, [MOVE_HYPER_VOICE] = 1,
[MOVE_POISON_FANG] = 1, [MOVE_POISON_FANG] = 1,
[MOVE_CRUSH_CLAW] = 1, [MOVE_CRUSH_CLAW] = 1,
@ -352,17 +244,10 @@ static const s8 sMindRatings[] =
[MOVE_METEOR_MASH] = 1, [MOVE_METEOR_MASH] = 1,
[MOVE_ASTONISH] = 1, [MOVE_ASTONISH] = 1,
[MOVE_WEATHER_BALL] = 1, [MOVE_WEATHER_BALL] = 1,
[MOVE_AROMATHERAPY] = 0,
[MOVE_FAKE_TEARS] = 0,
[MOVE_AIR_CUTTER] = 1, [MOVE_AIR_CUTTER] = 1,
[MOVE_OVERHEAT] = 1, [MOVE_OVERHEAT] = 1,
[MOVE_ODOR_SLEUTH] = 0,
[MOVE_ROCK_TOMB] = 1, [MOVE_ROCK_TOMB] = 1,
[MOVE_SILVER_WIND] = 1, [MOVE_SILVER_WIND] = 1,
[MOVE_METAL_SOUND] = 0,
[MOVE_GRASS_WHISTLE] = 0,
[MOVE_TICKLE] = 0,
[MOVE_COSMIC_POWER] = 0,
[MOVE_WATER_SPOUT] = 1, [MOVE_WATER_SPOUT] = 1,
[MOVE_SIGNAL_BEAM] = 1, [MOVE_SIGNAL_BEAM] = 1,
[MOVE_SHADOW_PUNCH] = 1, [MOVE_SHADOW_PUNCH] = 1,
@ -374,22 +259,15 @@ static const s8 sMindRatings[] =
[MOVE_BULLET_SEED] = 1, [MOVE_BULLET_SEED] = 1,
[MOVE_AERIAL_ACE] = 1, [MOVE_AERIAL_ACE] = 1,
[MOVE_ICICLE_SPEAR] = 1, [MOVE_ICICLE_SPEAR] = 1,
[MOVE_IRON_DEFENSE] = 0,
[MOVE_BLOCK] = 0,
[MOVE_HOWL] = 0,
[MOVE_DRAGON_CLAW] = 1, [MOVE_DRAGON_CLAW] = 1,
[MOVE_FRENZY_PLANT] = 1, [MOVE_FRENZY_PLANT] = 1,
[MOVE_BULK_UP] = 0,
[MOVE_BOUNCE] = 1, [MOVE_BOUNCE] = 1,
[MOVE_MUD_SHOT] = 1, [MOVE_MUD_SHOT] = 1,
[MOVE_POISON_TAIL] = 1, [MOVE_POISON_TAIL] = 1,
[MOVE_COVET] = 1, [MOVE_COVET] = 1,
[MOVE_VOLT_TACKLE] = 1, [MOVE_VOLT_TACKLE] = 1,
[MOVE_MAGICAL_LEAF] = 1, [MOVE_MAGICAL_LEAF] = 1,
[MOVE_WATER_SPORT] = 0,
[MOVE_CALM_MIND] = 0,
[MOVE_LEAF_BLADE] = 1, [MOVE_LEAF_BLADE] = 1,
[MOVE_DRAGON_DANCE] = 0,
[MOVE_ROCK_BLAST] = 1, [MOVE_ROCK_BLAST] = 1,
[MOVE_SHOCK_WAVE] = 1, [MOVE_SHOCK_WAVE] = 1,
[MOVE_WATER_PULSE] = 1, [MOVE_WATER_PULSE] = 1,
@ -397,14 +275,12 @@ static const s8 sMindRatings[] =
[MOVE_PSYCHO_BOOST] = 1, [MOVE_PSYCHO_BOOST] = 1,
}; };
#define TAG_JUDGEMENT_ICON 1000 static const struct OamData sOam_JudgementIcon =
static const struct OamData sJudgementIconOamData =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0, .mosaic = FALSE,
.bpp = ST_OAM_4BPP, .bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16), .shape = SPRITE_SHAPE(16x16),
.x = 0, .x = 0,
@ -416,47 +292,47 @@ static const struct OamData sJudgementIconOamData =
.affineParam = 0 .affineParam = 0
}; };
static const union AnimCmd sJudgementIconAnimCmd0[] = static const union AnimCmd sAnim_JudgementIcon_X[] =
{ {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd1[] = static const union AnimCmd sAnim_JudgementIcon_Triangle[] =
{ {
ANIMCMD_FRAME(4, 1), ANIMCMD_FRAME(4, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd2[] = static const union AnimCmd sAnim_JudgementIcon_Circle[] =
{ {
ANIMCMD_FRAME(8, 1), ANIMCMD_FRAME(8, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd3[] = static const union AnimCmd sAnim_JudgementIcon_Line[] =
{ {
ANIMCMD_FRAME(12, 1), ANIMCMD_FRAME(12, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const sJudgementIconAnimCmds[] = static const union AnimCmd *const sAnims_JudgementIcon[] =
{ {
sJudgementIconAnimCmd0, [ANIM_ICON_X] = sAnim_JudgementIcon_X,
sJudgementIconAnimCmd1, [ANIM_ICON_TRIANGLE] = sAnim_JudgementIcon_Triangle,
sJudgementIconAnimCmd2, [ANIM_ICON_CIRCLE] = sAnim_JudgementIcon_Circle,
sJudgementIconAnimCmd3 [ANIM_ICON_LINE] = sAnim_JudgementIcon_Line,
}; };
static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon = static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon =
{ {
.tileTag = TAG_JUDGEMENT_ICON, .tileTag = TAG_JUDGEMENT_ICON,
.paletteTag = TAG_NONE, .paletteTag = TAG_NONE,
.oam = &sJudgementIconOamData, .oam = &sOam_JudgementIcon,
.anims = sJudgementIconAnimCmds, .anims = sAnims_JudgementIcon,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCb_JudgmentIcon, .callback = SpriteCB_JudgmentIcon,
}; };
static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] = static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] =
@ -507,12 +383,12 @@ void CallBattleArenaFunction(void)
u8 BattleArena_ShowJudgmentWindow(u8 *state) u8 BattleArena_ShowJudgmentWindow(u8 *state)
{ {
int i; int i;
u8 ret = 0; u8 result = ARENA_RESULT_RUNNING;
switch (*state) switch (*state)
{ {
case 0: case 0:
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK);
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet);
LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20); LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20);
gBattle_WIN0H = 0xFF; gBattle_WIN0H = 0xFF;
@ -549,13 +425,15 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
case 3: case 3:
if (!IsDma3ManagerBusyWithBgCopy()) if (!IsDma3ManagerBusyWithBgCopy())
{ {
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
// Create dividing line for the the score totals at the bottom
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0); u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0);
StartSpriteAnim(&gSprites[spriteId], 3); StartSpriteAnim(&gSprites[spriteId], ANIM_ICON_LINE);
} }
ret = 1; result = ARENA_RESULT_STEP_DONE;
(*state)++; (*state)++;
} }
break; break;
@ -566,7 +444,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 5: case 5:
PlaySE(SE_ARENA_TIMEUP1); PlaySE(SE_ARENA_TIMEUP1);
@ -575,7 +453,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 6: case 6:
PlaySE(SE_ARENA_TIMEUP1); PlaySE(SE_ARENA_TIMEUP1);
@ -584,49 +462,50 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 7: case 7:
PlaySE(SE_ARENA_TIMEUP2); PlaySE(SE_ARENA_TIMEUP2);
if (gBattleTextBuff1[0] > gBattleTextBuff2[0]) if (gBattleTextBuff1[0] > gBattleTextBuff2[0])
{ {
ret = 2; result = ARENA_RESULT_PLAYER_WON;
gBattleScripting.battler = 0; gBattleScripting.battler = 0;
} }
else if (gBattleTextBuff1[0] < gBattleTextBuff2[0]) else if (gBattleTextBuff1[0] < gBattleTextBuff2[0])
{ {
ret = 3; result = ARENA_RESULT_PLAYER_LOST;
gBattleScripting.battler = 1; gBattleScripting.battler = 1;
} }
else else
{ {
ret = 4; result = ARENA_RESULT_TIE;
} }
(*state)++; (*state)++;
break; break;
case 8: case JUDGEMENT_STATE_FINISHED:
// Finishing this state is the indicator to SpriteCB_JudgmentIcon that its safe to destroy the judgement icon sprites
(*state)++; (*state)++;
break; break;
case 9: case JUDGEMENT_STATE_FINISHED + 1:
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR); HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR);
CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(0);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256); m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK); BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK);
(*state)++; (*state)++;
break; break;
case 10: case JUDGEMENT_STATE_FINISHED + 2:
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON); FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON);
ret = 1; result = ARENA_RESULT_STEP_DONE;
(*state)++; (*state)++;
} }
break; break;
} }
return ret; return result;
} }
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler) static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
@ -656,7 +535,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
if (pointsPlayer > pointsOpponent) if (pointsPlayer > pointsOpponent)
{ {
animNum = 2; animNum = ANIM_ICON_CIRCLE;
// +2 to score total for winning
if (battler != 0) if (battler != 0)
gBattleTextBuff2[0] += 2; gBattleTextBuff2[0] += 2;
else else
@ -664,7 +544,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
} }
else if (pointsPlayer == pointsOpponent) else if (pointsPlayer == pointsOpponent)
{ {
animNum = 1; animNum = ANIM_ICON_TRIANGLE;
// +1 to score total for a tie
if (battler != 0) if (battler != 0)
gBattleTextBuff2[0] += 1; gBattleTextBuff2[0] += 1;
else else
@ -672,16 +553,16 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
} }
else else
{ {
animNum = 0; animNum = ANIM_ICON_X;
} }
pointsPlayer = CreateSprite(&sSpriteTemplate_JudgmentIcon, x, y, 0); pointsPlayer = CreateSprite(&sSpriteTemplate_JudgmentIcon, x, y, 0);
StartSpriteAnim(&gSprites[pointsPlayer], animNum); StartSpriteAnim(&gSprites[pointsPlayer], animNum);
} }
static void SpriteCb_JudgmentIcon(struct Sprite *sprite) static void SpriteCB_JudgmentIcon(struct Sprite *sprite)
{ {
if (gBattleCommunication[0] > 8) if (gBattleCommunication[0] > JUDGEMENT_STATE_FINISHED)
DestroySprite(sprite); DestroySprite(sprite);
} }
@ -701,8 +582,7 @@ void BattleArena_InitPoints(void)
void BattleArena_AddMindPoints(u8 battler) void BattleArena_AddMindPoints(u8 battler)
{ {
s8 *mindPoints = gBattleStruct->arenaMindPoints; gBattleStruct->arenaMindPoints[battler] += sMindRatings[gCurrentMove];
mindPoints[battler] += sMindRatings[gCurrentMove];
} }
void BattleArena_AddSkillPoints(u8 battler) void BattleArena_AddSkillPoints(u8 battler)
@ -719,7 +599,7 @@ void BattleArena_AddSkillPoints(u8 battler)
} }
else if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) else if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{ {
if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[6] != 1) if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED)
skillPoints[battler] -= 2; skillPoints[battler] -= 2;
} }
else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)) else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE))

Some files were not shown because too many files have changed in this diff Show More