mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
Merge pull request #514 from Rangi42/master
[Ready to merge] Named constants for sprite movement data bit flags + other minor fixes
This commit is contained in:
commit
d596a0c83b
@ -1775,7 +1775,7 @@ Music_Vibrato: ; e8882
|
||||
swap a
|
||||
srl a ; halve
|
||||
ld e, a
|
||||
adc a, 0; round up
|
||||
adc 0 ; round up
|
||||
swap a
|
||||
or e
|
||||
ld [hl], a
|
||||
|
@ -5,8 +5,8 @@ ENDM
|
||||
|
||||
map_const: MACRO
|
||||
;\1: map id
|
||||
;\2: height: in blocks
|
||||
;\3: width: in blocks
|
||||
;\2: width: in blocks
|
||||
;\3: height: in blocks
|
||||
GROUP_\1 EQU const_value
|
||||
enum MAP_\1
|
||||
\1_WIDTH EQU \2
|
||||
|
@ -44,16 +44,54 @@ OW_LEFT EQU LEFT << 2
|
||||
OW_RIGHT EQU RIGHT << 2
|
||||
|
||||
; object_struct OBJECT_FLAGS1 bit flags
|
||||
INVISIBLE EQU 0
|
||||
FIXED_FACING EQU 2
|
||||
SLIDING EQU 3
|
||||
EMOTE_OBJECT EQU 7
|
||||
const_def
|
||||
const INVISIBLE_F ; 0
|
||||
const WONT_DELETE_F ; 1
|
||||
const FIXED_FACING_F ; 2
|
||||
const SLIDING_F ; 3
|
||||
const NOCLIP_TILES_F ; 4
|
||||
const MOVE_ANYWHERE_F ; 5
|
||||
const NOCLIP_OBJS_F ; 6
|
||||
const EMOTE_OBJECT_F ; 7
|
||||
|
||||
INVISIBLE EQU 1 << INVISIBLE_F
|
||||
WONT_DELETE EQU 1 << WONT_DELETE_F
|
||||
FIXED_FACING EQU 1 << FIXED_FACING_F
|
||||
SLIDING EQU 1 << SLIDING_F
|
||||
NOCLIP_TILES EQU 1 << NOCLIP_TILES_F
|
||||
MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F
|
||||
NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F
|
||||
EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
|
||||
|
||||
; object_struct OBJECT_FLAGS2 bit flags
|
||||
LOW_PRIORITY EQU 0
|
||||
HIGH_PRIORITY EQU 1
|
||||
OVERHEAD EQU 3
|
||||
const_def
|
||||
const LOW_PRIORITY_F ; 0
|
||||
const HIGH_PRIORITY_F ; 1
|
||||
const OBJ_FLAGS2_2 ; 2
|
||||
const OVERHEAD_F ; 3
|
||||
const USE_OBP1_F ; 4
|
||||
|
||||
LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
|
||||
HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
|
||||
OVERHEAD EQU 1 << OVERHEAD_F
|
||||
USE_OBP1 EQU 1 << USE_OBP1_F
|
||||
|
||||
; object_struct OBJECT_PALETTE bit flags
|
||||
const_def 5
|
||||
const SWIMMING_F ; 5
|
||||
const STRENGTH_BOULDER_F ; 6
|
||||
const BIG_OBJECT_F ; 7
|
||||
|
||||
SWIMMING EQU 1 << SWIMMING_F
|
||||
STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F
|
||||
BIG_OBJECT EQU 1 << BIG_OBJECT_F
|
||||
|
||||
; facing attribute bit flags
|
||||
RELATIVE_ATTRIBUTES_F EQU 1
|
||||
ABSOLUTE_TILE_ID_F EQU 2
|
||||
|
||||
RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
|
||||
ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
|
||||
|
||||
; map_object struct members (see macros/wram.asm)
|
||||
const_def
|
||||
@ -75,8 +113,18 @@ OVERHEAD EQU 3
|
||||
const MAPOBJECT_F ; unused
|
||||
OBJECT_LENGTH EQU const_value
|
||||
|
||||
MAPOBJECT_SCREEN_HEIGHT EQU 11
|
||||
MAPOBJECT_SCREEN_WIDTH EQU 12
|
||||
; SpriteMovementData struct members (see data/sprites/map_objects.asm)
|
||||
const_def
|
||||
const SPRITEMOVEATTR_MOVEMENT ; 0
|
||||
const SPRITEMOVEATTR_FACING ; 1
|
||||
const SPRITEMOVEATTR_ACTION ; 2
|
||||
const SPRITEMOVEATTR_FLAGS1 ; 3
|
||||
const SPRITEMOVEATTR_FLAGS2 ; 4
|
||||
const SPRITEMOVEATTR_PALFLAGS ; 5
|
||||
NUM_SPRITEMOVEDATA_FIELDS EQU const_value
|
||||
|
||||
MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
|
||||
MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
|
||||
|
||||
|
||||
; SpriteMovementData indexes (see data/sprites/map_objects.asm)
|
||||
@ -119,7 +167,6 @@ MAPOBJECT_SCREEN_WIDTH EQU 12
|
||||
const SPRITEMOVEDATA_GRASS ; 23
|
||||
const SPRITEMOVEDATA_SWIM_WANDER ; 24
|
||||
NUM_SPRITEMOVEDATA EQU const_value
|
||||
SPRITEMOVEDATA_FIELDS EQU 6
|
||||
|
||||
; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm)
|
||||
const_def
|
||||
|
@ -15,9 +15,9 @@
|
||||
const SCGB_GS_TITLE_SCREEN
|
||||
const SCGB_0D
|
||||
const SCGB_MOVE_LIST
|
||||
const SCGB_0F
|
||||
const SCGB_BETA_PIKACHU_MINIGAME
|
||||
const SCGB_POKEDEX_SEARCH_OPTION
|
||||
const SCGB_11
|
||||
const SCGB_BETA_POKER
|
||||
const SCGB_POKEPIC
|
||||
const SCGB_13
|
||||
const SCGB_PACKPALS
|
||||
@ -75,40 +75,40 @@ SCGB_RAM EQU -1
|
||||
const PREDEFPAL_RB_PINKMON
|
||||
const PREDEFPAL_RB_YELLOWMON
|
||||
const PREDEFPAL_CGB_BADGE ; RB_GREYMON
|
||||
const PREDEFPAL_MEWMON_NITE
|
||||
const PREDEFPAL_BLUEMON_NITE
|
||||
const PREDEFPAL_REDMON_NITE
|
||||
const PREDEFPAL_CYANMON_NITE
|
||||
const PREDEFPAL_PURPLEMON_NITE
|
||||
const PREDEFPAL_BROWNMON_NITE
|
||||
const PREDEFPAL_GREENMON_NITE
|
||||
const PREDEFPAL_PINKMON_NITE
|
||||
const PREDEFPAL_YELLOWMON_NITE
|
||||
const PREDEFPAL_PARTY_ICON ; GREYMON_NITE
|
||||
const PREDEFPAL_BETA_SHINY_MEWMON
|
||||
const PREDEFPAL_BETA_SHINY_BLUEMON
|
||||
const PREDEFPAL_BETA_SHINY_REDMON
|
||||
const PREDEFPAL_BETA_SHINY_CYANMON
|
||||
const PREDEFPAL_BETA_SHINY_PURPLEMON
|
||||
const PREDEFPAL_BETA_SHINY_BROWNMON
|
||||
const PREDEFPAL_BETA_SHINY_GREENMON
|
||||
const PREDEFPAL_BETA_SHINY_PINKMON
|
||||
const PREDEFPAL_BETA_SHINY_YELLOWMON
|
||||
const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GREYMON
|
||||
const PREDEFPAL_HP_GREEN
|
||||
const PREDEFPAL_HP_YELLOW
|
||||
const PREDEFPAL_HP_RED
|
||||
const PREDEFPAL_POKEGEAR
|
||||
const PREDEFPAL_33
|
||||
const PREDEFPAL_34
|
||||
const PREDEFPAL_BETA_LOGO_1
|
||||
const PREDEFPAL_BETA_LOGO_2
|
||||
const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
|
||||
const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
|
||||
const PREDEFPAL_37
|
||||
const PREDEFPAL_BETA_INTRO_LAPRAS
|
||||
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
|
||||
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
|
||||
const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
|
||||
const PREDEFPAL_3B
|
||||
const PREDEFPAL_BETA_INTRO_VENUSAUR
|
||||
const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD
|
||||
const PREDEFPAL_SLOT_MACHINE_0
|
||||
const PREDEFPAL_SLOT_MACHINE_1
|
||||
const PREDEFPAL_SLOT_MACHINE_2
|
||||
const PREDEFPAL_SLOT_MACHINE_3
|
||||
const PREDEFPAL_SCGB_11_0
|
||||
const PREDEFPAL_SCGB_11_1
|
||||
const PREDEFPAL_SCGB_11_2
|
||||
const PREDEFPAL_SCGB_11_3
|
||||
const PREDEFPAL_45
|
||||
const PREDEFPAL_46
|
||||
const PREDEFPAL_BETA_POKER_0
|
||||
const PREDEFPAL_BETA_POKER_1
|
||||
const PREDEFPAL_BETA_POKER_2
|
||||
const PREDEFPAL_BETA_POKER_3
|
||||
const PREDEFPAL_BETA_RADIO
|
||||
const PREDEFPAL_BETA_POKEGEAR
|
||||
const PREDEFPAL_47
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_0
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_1
|
||||
|
@ -1,6 +1,6 @@
|
||||
anim_obj_gfx: MACRO
|
||||
; # tiles, label
|
||||
db \1
|
||||
db \1
|
||||
dba \2
|
||||
ENDM
|
||||
|
||||
|
@ -10,4 +10,4 @@ TileCollisionStdScripts:
|
||||
dbw COLL_TV, tv
|
||||
dbw COLL_WINDOW, window
|
||||
dbw COLL_INCENSE_BURNER, incenseburner
|
||||
db -1 ; end
|
||||
db -1 ; end
|
||||
|
@ -15,5 +15,5 @@ TimeCapsule_CatchRateItems: ; 28785
|
||||
db ITEM_DC, BERRY
|
||||
db ITEM_FA, BERRY
|
||||
db -1, BERRY
|
||||
db 0 ; end
|
||||
db 0 ; end
|
||||
; 2879e
|
||||
|
@ -50,24 +50,24 @@ FacingWeirdTree2: ; standing down
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $00
|
||||
db 0, 8, 0, $01
|
||||
db 8, 0, 2, $02
|
||||
db 8, 8, 2, $03
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $02
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $03
|
||||
; 409c
|
||||
|
||||
FacingStepDown1: ; walking down 1
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $80
|
||||
db 0, 8, 0, $81
|
||||
db 8, 0, 2, $82
|
||||
db 8, 8, 2, $83
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $82
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $83
|
||||
; 40ad
|
||||
|
||||
FacingStepDown3: ; walking down 2
|
||||
db 4 ; #
|
||||
db 0, 8, X_FLIP, $80
|
||||
db 0, 0, X_FLIP, $81
|
||||
db 8, 8, 2 | X_FLIP, $82
|
||||
db 8, 0, 2 | X_FLIP, $83
|
||||
db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $82
|
||||
db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $83
|
||||
; 40be
|
||||
|
||||
FacingStepUp0:
|
||||
@ -75,24 +75,24 @@ FacingStepUp2: ; standing up
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $04
|
||||
db 0, 8, 0, $05
|
||||
db 8, 0, 2, $06
|
||||
db 8, 8, 2, $07
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $06
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $07
|
||||
; 40cf
|
||||
|
||||
FacingStepUp1: ; walking up 1
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $84
|
||||
db 0, 8, 0, $85
|
||||
db 8, 0, 2, $86
|
||||
db 8, 8, 2, $87
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $86
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $87
|
||||
; 40e0
|
||||
|
||||
FacingStepUp3: ; walking up 2
|
||||
db 4 ; #
|
||||
db 0, 8, X_FLIP, $84
|
||||
db 0, 0, X_FLIP, $85
|
||||
db 8, 8, 2 | X_FLIP, $86
|
||||
db 8, 0, 2 | X_FLIP, $87
|
||||
db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $86
|
||||
db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $87
|
||||
; 40f1
|
||||
|
||||
FacingStepLeft0:
|
||||
@ -100,8 +100,8 @@ FacingStepLeft2: ; standing left
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $08
|
||||
db 0, 8, 0, $09
|
||||
db 8, 0, 2, $0a
|
||||
db 8, 8, 2, $0b
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $0a
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $0b
|
||||
; 4102
|
||||
|
||||
FacingStepRight0:
|
||||
@ -109,8 +109,8 @@ FacingStepRight2: ; standing right
|
||||
db 4 ; #
|
||||
db 0, 8, X_FLIP, $08
|
||||
db 0, 0, X_FLIP, $09
|
||||
db 8, 8, 2 | X_FLIP, $0a
|
||||
db 8, 0, 2 | X_FLIP, $0b
|
||||
db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
|
||||
db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
|
||||
; 4113
|
||||
|
||||
FacingStepLeft1:
|
||||
@ -118,8 +118,8 @@ FacingStepLeft3: ; walking left
|
||||
db 4 ; #
|
||||
db 0, 0, 0, $88
|
||||
db 0, 8, 0, $89
|
||||
db 8, 0, 2, $8a
|
||||
db 8, 8, 2, $8b
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $8a
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $8b
|
||||
; 4124
|
||||
|
||||
FacingStepRight1:
|
||||
@ -127,58 +127,58 @@ FacingStepRight3: ; walking right
|
||||
db 4 ; #
|
||||
db 0, 8, X_FLIP, $88
|
||||
db 0, 0, X_FLIP, $89
|
||||
db 8, 8, 2 | X_FLIP, $8a
|
||||
db 8, 0, 2 | X_FLIP, $8b
|
||||
db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $8a
|
||||
db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $8b
|
||||
; 4135
|
||||
|
||||
FacingFishDown: ; fishing down
|
||||
db 5 ; #
|
||||
db 0, 0, 0, $00
|
||||
db 0, 8, 0, $01
|
||||
db 8, 0, 2, $02
|
||||
db 8, 8, 2, $03
|
||||
db 16, 0, 4, $fc
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $02
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $03
|
||||
db 16, 0, ABSOLUTE_TILE_ID, $fc
|
||||
; 414a
|
||||
|
||||
FacingFishUp: ; fishing up
|
||||
db 5 ; #
|
||||
db 0, 0, 0, $04
|
||||
db 0, 8, 0, $05
|
||||
db 8, 0, 2, $06
|
||||
db 8, 8, 2, $07
|
||||
db -8, 0, 4, $fc
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $06
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $07
|
||||
db -8, 0, ABSOLUTE_TILE_ID, $fc
|
||||
; 415f
|
||||
|
||||
FacingFishLeft: ; fishing left
|
||||
db 5 ; #
|
||||
db 0, 0, 0, $08
|
||||
db 0, 8, 0, $09
|
||||
db 8, 0, 2, $0a
|
||||
db 8, 8, 2, $0b
|
||||
db 5, -8, 4 | X_FLIP, $fd
|
||||
db 8, 0, RELATIVE_ATTRIBUTES, $0a
|
||||
db 8, 8, RELATIVE_ATTRIBUTES, $0b
|
||||
db 5, -8, ABSOLUTE_TILE_ID | X_FLIP, $fd
|
||||
; 4174
|
||||
|
||||
FacingFishRight: ; fishing right
|
||||
db 5 ; #
|
||||
db 0, 8, X_FLIP, $08
|
||||
db 0, 0, X_FLIP, $09
|
||||
db 8, 8, 2 | X_FLIP, $0a
|
||||
db 8, 0, 2 | X_FLIP, $0b
|
||||
db 5, 16, 4, $fd
|
||||
db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
|
||||
db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
|
||||
db 5, 16, ABSOLUTE_TILE_ID, $fd
|
||||
; 4189
|
||||
|
||||
FacingEmote: ; emote
|
||||
db 4 ; #
|
||||
db 0, 0, 4, $f8
|
||||
db 0, 8, 4, $f9
|
||||
db 8, 0, 4, $fa
|
||||
db 8, 8, 4, $fb
|
||||
db 0, 0, ABSOLUTE_TILE_ID, $f8
|
||||
db 0, 8, ABSOLUTE_TILE_ID, $f9
|
||||
db 8, 0, ABSOLUTE_TILE_ID, $fa
|
||||
db 8, 8, ABSOLUTE_TILE_ID, $fb
|
||||
; 419a
|
||||
|
||||
FacingShadow: ; shadow
|
||||
db 2 ; #
|
||||
db 0, 0, 4, $fc
|
||||
db 0, 8, 4 | X_FLIP, $fc
|
||||
db 0, 0, ABSOLUTE_TILE_ID, $fc
|
||||
db 0, 8, ABSOLUTE_TILE_ID | X_FLIP, $fc
|
||||
; 41a3
|
||||
|
||||
FacingBigDollSymmetric: ; big snorlax or lapras doll
|
||||
@ -237,28 +237,28 @@ FacingBigDollAsymmetric: ; big doll other than snorlax or lapras
|
||||
|
||||
FacingBoulderDust1: ; boulder dust 1
|
||||
db 4 ; #
|
||||
db 0, 0, 4, $fe
|
||||
db 0, 8, 4, $fe
|
||||
db 8, 0, 4, $fe
|
||||
db 8, 8, 4, $fe
|
||||
db 0, 0, ABSOLUTE_TILE_ID, $fe
|
||||
db 0, 8, ABSOLUTE_TILE_ID, $fe
|
||||
db 8, 0, ABSOLUTE_TILE_ID, $fe
|
||||
db 8, 8, ABSOLUTE_TILE_ID, $fe
|
||||
; 4250
|
||||
|
||||
FacingBoulderDust2: ; boulder dust 2
|
||||
db 4 ; #
|
||||
db 0, 0, 4, $ff
|
||||
db 0, 8, 4, $ff
|
||||
db 8, 0, 4, $ff
|
||||
db 8, 8, 4, $ff
|
||||
db 0, 0, ABSOLUTE_TILE_ID, $ff
|
||||
db 0, 8, ABSOLUTE_TILE_ID, $ff
|
||||
db 8, 0, ABSOLUTE_TILE_ID, $ff
|
||||
db 8, 8, ABSOLUTE_TILE_ID, $ff
|
||||
; 4261
|
||||
|
||||
FacingGrass1: ; 4261
|
||||
db 2 ; #
|
||||
db 8, 0, 4, $fe
|
||||
db 8, 8, 4 | X_FLIP, $fe
|
||||
db 8, 0, ABSOLUTE_TILE_ID, $fe
|
||||
db 8, 8, ABSOLUTE_TILE_ID | X_FLIP, $fe
|
||||
; 426a
|
||||
|
||||
FacingGrass2: ; 426a
|
||||
db 2 ; #
|
||||
db 9, -1, 4, $fe
|
||||
db 9, 9, 4 | X_FLIP, $fe
|
||||
db 9, -1, ABSOLUTE_TILE_ID, $fe
|
||||
db 9, 9, ABSOLUTE_TILE_ID | X_FLIP, $fe
|
||||
; 4273
|
||||
|
@ -5,304 +5,304 @@ SpriteMovementData:: ; 4273
|
||||
db SPRITEMOVEFN_00 ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STILL
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00001100 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db FIXED_FACING | SLIDING ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_WANDER
|
||||
db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SPINRANDOM_SLOW
|
||||
db SPRITEMOVEFN_SLOW_RANDOM_SPIN ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_WALK_UP_DOWN
|
||||
db SPRITEMOVEFN_RANDOM_WALK_Y ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_WALK_LEFT_RIGHT
|
||||
db SPRITEMOVEFN_RANDOM_WALK_X ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STANDING_DOWN
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STANDING_UP
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db UP ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STANDING_LEFT
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db LEFT ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STANDING_RIGHT
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db RIGHT ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SPINRANDOM_FAST
|
||||
db SPRITEMOVEFN_FAST_RANDOM_SPIN ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_PLAYER
|
||||
db SPRITEMOVEFN_OBEY_DPAD ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_0C
|
||||
db SPRITEMOVEFN_08 ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_0D
|
||||
db SPRITEMOVEFN_09 ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_0E
|
||||
db SPRITEMOVEFN_0A ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_0F
|
||||
db SPRITEMOVEFN_0B ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_10
|
||||
db SPRITEMOVEFN_0C ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_11
|
||||
db SPRITEMOVEFN_0D ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_12
|
||||
db SPRITEMOVEFN_0E ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_FOLLOWING
|
||||
db SPRITEMOVEFN_FOLLOW ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SCRIPTED
|
||||
db SPRITEMOVEFN_SCRIPTED ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_BIGDOLLSYM
|
||||
db SPRITEMOVEFN_BIG_SNORLAX ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_BIG_DOLL_SYM ; action
|
||||
db %00101110 ; flags1
|
||||
db %00000001 ; flags2
|
||||
db %11000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db LOW_PRIORITY ; flags2
|
||||
db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_POKEMON
|
||||
db SPRITEMOVEFN_BOUNCE ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_BOUNCE ; action
|
||||
db %00101110 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SUDOWOODO
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00001100 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db FIXED_FACING | SLIDING ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SMASHABLE_ROCK
|
||||
db SPRITEMOVEFN_STANDING ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00101110 ; flags1
|
||||
db %00010000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db USE_OBP1 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_STRENGTH_BOULDER
|
||||
db SPRITEMOVEFN_STRENGTH ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00101110 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %01000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db 0 ; flags2
|
||||
db STRENGTH_BOULDER ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_FOLLOWNOTEXACT
|
||||
db SPRITEMOVEFN_FOLLOWNOTEXACT ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SHADOW
|
||||
db SPRITEMOVEFN_SHADOW ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_00 ; action
|
||||
db %10001110 ; flags1
|
||||
db %00000001 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
|
||||
db LOW_PRIORITY ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_EMOTE
|
||||
db SPRITEMOVEFN_EMOTE ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_EMOTE ; action
|
||||
db %10001110 ; flags1
|
||||
db %00000010 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
|
||||
db HIGH_PRIORITY ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SCREENSHAKE
|
||||
db SPRITEMOVEFN_SCREENSHAKE ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_00 ; action
|
||||
db %10000010 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | EMOTE_OBJECT ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
|
||||
db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; movement function
|
||||
db LEFT ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SPINCLOCKWISE
|
||||
db SPRITEMOVEFN_SPIN_CLOCKWISE ; movement function
|
||||
db RIGHT ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_BIGDOLLASYM
|
||||
db SPRITEMOVEFN_STRENGTH ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_BIG_DOLL_ASYM ; action
|
||||
db %00101110 ; flags1
|
||||
db %00000001 ; flags2
|
||||
db %11000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db LOW_PRIORITY ; flags2
|
||||
db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_BIGDOLL
|
||||
db SPRITEMOVEFN_STRENGTH ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_BIG_DOLL ; action
|
||||
db %00101110 ; flags1
|
||||
db %00000001 ; flags2
|
||||
db %11000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
|
||||
db LOW_PRIORITY ; flags2
|
||||
db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_BOULDERDUST
|
||||
db SPRITEMOVEFN_BOULDERDUST ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_BOULDER_DUST ; action
|
||||
db %10001110 ; flags1
|
||||
db %00000001 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
|
||||
db LOW_PRIORITY ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_GRASS
|
||||
db SPRITEMOVEFN_GRASS ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_GRASS_SHAKE ; action
|
||||
db %10001110 ; flags1
|
||||
db %00000010 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
|
||||
db HIGH_PRIORITY ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; SPRITEMOVEDATA_SWIM_WANDER
|
||||
db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00100000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db SWIMMING ; palette flags
|
||||
|
||||
; 25
|
||||
db SPRITEMOVEFN_00 ; movement function
|
||||
db DOWN ; facing
|
||||
db OBJECT_ACTION_STAND ; action
|
||||
db %00000000 ; flags1
|
||||
db %00000000 ; flags2
|
||||
db %00000000 ; palette flags
|
||||
db 0 ; flags1
|
||||
db 0 ; flags2
|
||||
db 0 ; palette flags
|
||||
|
||||
; 4357
|
||||
|
@ -109,11 +109,11 @@ TypeMatchups: ; 34bb1
|
||||
db STEEL, ROCK, SUPER_EFFECTIVE
|
||||
db STEEL, STEEL, NOT_VERY_EFFECTIVE
|
||||
|
||||
db -2 ; end
|
||||
db -2 ; end (with Foresight)
|
||||
|
||||
; Foresight removes Ghost's immunities.
|
||||
db NORMAL, GHOST, NO_EFFECT
|
||||
db FIGHTING, GHOST, NO_EFFECT
|
||||
|
||||
db -1 ; end (with Foresight)
|
||||
db -1 ; end
|
||||
; 34cfd
|
||||
|
@ -1,6 +1,6 @@
|
||||
treemon_map: MACRO
|
||||
map_id \1
|
||||
db \2 ; treemon set
|
||||
db \2 ; treemon set
|
||||
ENDM
|
||||
|
||||
TreeMonMaps: ; b825e
|
||||
|
@ -44,7 +44,7 @@ These are known bugs and glitches in the original Pokémon Crystal game: code th
|
||||
- [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly)
|
||||
- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
|
||||
- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
|
||||
- [`Function6ec1` does not correctly limit object movement](#function6ec1-does-not-correctly-limit-object-movement)
|
||||
- [Swimming NPCs aren't limited by their movement radius](#swimming-npcs-arent-limited-by-their-movement-radius)
|
||||
- [`CheckOwnMon` only checks the first five letters of OT names](#checkownmon-only-checks-the-first-five-letters-of-ot-names)
|
||||
- [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto)
|
||||
- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
|
||||
@ -1185,20 +1185,20 @@ In [home/map.asm](/home/map.asm):
|
||||
*To do:* Identify specific code causing this bug and fix it.
|
||||
|
||||
|
||||
## `Function6ec1` does not correctly limit object movement
|
||||
## Swimming NPCs aren't limited by their movement radius
|
||||
|
||||
This bug is why the Lapras in [maps/UnionCaveB2F.asm](/maps/UnionCaveB2F.asm), which uses `SPRITEMOVEDATA_SWIM_WANDER`, is not restricted by its `1, 1` movement radius.
|
||||
|
||||
In [engine/overworld/npc_movement.asm](/engine/overworld/npc_movement.asm):
|
||||
This is a bug with `CanObjectMoveInDirection` in [engine/overworld/npc_movement.asm](/engine/overworld/npc_movement.asm):
|
||||
|
||||
```asm
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
bit 4, [hl] ; lost, uncomment next line to fix
|
||||
; jr nz, .resume
|
||||
bit NOCLIP_TILES_F, [hl] ; lost, uncomment next line to fix
|
||||
; jr nz, .noclip_tiles
|
||||
```
|
||||
|
||||
**Fix:** Uncomment `jr nz, .resume`.
|
||||
**Fix:** Uncomment `jr nz, .noclip_tiles`.
|
||||
|
||||
|
||||
## `CheckOwnMon` only checks the first five letters of OT names
|
||||
|
@ -36,7 +36,7 @@ GLOBAL PICS_FIX
|
||||
|
||||
push hl
|
||||
push bc
|
||||
sub BANK(Pics_1) - PICS_FIX
|
||||
sub BANK("Pics 1") - PICS_FIX
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld hl, .PicsBanks
|
||||
@ -47,33 +47,33 @@ GLOBAL PICS_FIX
|
||||
ret
|
||||
|
||||
.PicsBanks: ; 511d4
|
||||
db BANK(Pics_1) + 0
|
||||
db BANK(Pics_1) + 1
|
||||
db BANK(Pics_1) + 2
|
||||
db BANK(Pics_1) + 3
|
||||
db BANK(Pics_1) + 4
|
||||
db BANK(Pics_1) + 5
|
||||
db BANK(Pics_1) + 6
|
||||
db BANK(Pics_1) + 7
|
||||
db BANK(Pics_1) + 8
|
||||
db BANK(Pics_1) + 9
|
||||
db BANK(Pics_1) + 10
|
||||
db BANK(Pics_1) + 11
|
||||
db BANK(Pics_1) + 12
|
||||
db BANK(Pics_1) + 13
|
||||
db BANK(Pics_1) + 14
|
||||
db BANK(Pics_1) + 15
|
||||
db BANK(Pics_1) + 16
|
||||
db BANK(Pics_1) + 17
|
||||
db BANK(Pics_1) + 18
|
||||
db BANK(Pics_1) + 19
|
||||
db BANK(Pics_1) + 20
|
||||
db BANK(Pics_1) + 21
|
||||
db BANK(Pics_1) + 22
|
||||
db BANK(Pics_1) + 23
|
||||
db BANK("Pics 1") ; BANK("Pics 1") + 0
|
||||
db BANK("Pics 2") ; BANK("Pics 1") + 1
|
||||
db BANK("Pics 3") ; BANK("Pics 1") + 2
|
||||
db BANK("Pics 4") ; BANK("Pics 1") + 3
|
||||
db BANK("Pics 5") ; BANK("Pics 1") + 4
|
||||
db BANK("Pics 6") ; BANK("Pics 1") + 5
|
||||
db BANK("Pics 7") ; BANK("Pics 1") + 6
|
||||
db BANK("Pics 8") ; BANK("Pics 1") + 7
|
||||
db BANK("Pics 9") ; BANK("Pics 1") + 8
|
||||
db BANK("Pics 10") ; BANK("Pics 1") + 9
|
||||
db BANK("Pics 11") ; BANK("Pics 1") + 10
|
||||
db BANK("Pics 12") ; BANK("Pics 1") + 11
|
||||
db BANK("Pics 13") ; BANK("Pics 1") + 12
|
||||
db BANK("Pics 14") ; BANK("Pics 1") + 13
|
||||
db BANK("Pics 15") ; BANK("Pics 1") + 14
|
||||
db BANK("Pics 16") ; BANK("Pics 1") + 15
|
||||
db BANK("Pics 17") ; BANK("Pics 1") + 16
|
||||
db BANK("Pics 18") ; BANK("Pics 1") + 17
|
||||
db BANK("Pics 19") ; BANK("Pics 1") + 18
|
||||
db BANK("Pics 20") ; BANK("Pics 1") + 19
|
||||
db BANK("Pics 21") ; BANK("Pics 1") + 20
|
||||
db BANK("Pics 22") ; BANK("Pics 1") + 21
|
||||
db BANK("Pics 23") ; BANK("Pics 1") + 22
|
||||
db BANK("Pics 24") ; BANK("Pics 1") + 23
|
||||
```
|
||||
|
||||
**Fix:** Use `dba` instead of `dba_pic`, and don't call `FixPicBank` to modify `a`.
|
||||
**Fix:** Use `dba` instead of `dba_pic`, delete `FixPicBank`, and remove all four calls to `FixPicBank`.
|
||||
|
||||
|
||||
## `PokemonPicPointers` and `UnownPicPointers` are assumed to start at the same address
|
||||
|
@ -1055,7 +1055,7 @@ AI_Smart_TrapTarget: ; 38a71
|
||||
jr nz, .asm_38a91
|
||||
|
||||
ld a, [wPlayerSubStatus1]
|
||||
and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ROLLOUT | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE
|
||||
and 1 << SUBSTATUS_IN_LOVE | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_IDENTIFIED | 1 << SUBSTATUS_NIGHTMARE
|
||||
jr nz, .asm_38a91
|
||||
|
||||
; Else, 50% chance to greatly encourage this move if it's the player's Pokemon first turn.
|
||||
@ -1569,7 +1569,7 @@ AI_Smart_DefrostOpponent: ; 38ccb
|
||||
; No move has EFFECT_DEFROST_OPPONENT, so this layer is unused.
|
||||
|
||||
ld a, [wEnemyMonStatus]
|
||||
and $20
|
||||
and 1 << FRZ
|
||||
ret z
|
||||
dec [hl]
|
||||
dec [hl]
|
||||
@ -1847,7 +1847,7 @@ AI_Smart_MeanLook: ; 38dfb
|
||||
; 80% chance to greatly encourage this move if the player is either
|
||||
; in love, identified, stuck in Rollout, or has a Nightmare.
|
||||
ld a, [wPlayerSubStatus1]
|
||||
and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ROLLOUT | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE
|
||||
and 1 << SUBSTATUS_IN_LOVE | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_IDENTIFIED | 1 << SUBSTATUS_NIGHTMARE
|
||||
jr nz, .asm_38e26
|
||||
|
||||
; Otherwise, discourage this move unless the player only has not very effective moves against the enemy.
|
||||
|
@ -364,7 +364,7 @@ CantMove: ; 341f0
|
||||
ld a, BATTLE_VARS_SUBSTATUS3
|
||||
call GetBattleVarAddr
|
||||
ld a, [hl]
|
||||
and $ff ^ (1<<SUBSTATUS_BIDE + 1<<SUBSTATUS_RAMPAGE + 1<<SUBSTATUS_CHARGED)
|
||||
and $ff ^ (1 << SUBSTATUS_BIDE | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_CHARGED)
|
||||
ld [hl], a
|
||||
|
||||
call ResetFuryCutterCount
|
||||
|
@ -39,12 +39,19 @@ PokemonCenterPC: ; 1559a
|
||||
dw PlaceNthMenuStrings
|
||||
dw .JumpTable
|
||||
|
||||
PCPC_PLAYERS_PC EQU 0
|
||||
PCPC_BILLS_PC EQU 1
|
||||
PCPC_OAKS_PC EQU 2
|
||||
PCPC_HALL_OF_FAME EQU 3
|
||||
PCPC_TURN_OFF EQU 4
|
||||
|
||||
.JumpTable:
|
||||
dw PlayersPC, .String_PlayersPC
|
||||
dw BillsPC, .String_BillsPC
|
||||
dw OaksPC, .String_OaksPC
|
||||
; entries correspond to PCPC_* constants
|
||||
dw PlayersPC, .String_PlayersPC
|
||||
dw BillsPC, .String_BillsPC
|
||||
dw OaksPC, .String_OaksPC
|
||||
dw HallOfFamePC, .String_HallOfFame
|
||||
dw TurnOffPC, .String_TurnOff
|
||||
dw TurnOffPC, .String_TurnOff
|
||||
|
||||
.String_PlayersPC: db "<PLAYER>'s PC@"
|
||||
.String_BillsPC: db "BILL's PC@"
|
||||
@ -53,33 +60,42 @@ PokemonCenterPC: ; 1559a
|
||||
.String_TurnOff: db "TURN OFF@"
|
||||
|
||||
.WhichPC:
|
||||
; before pokedex
|
||||
db 3 ; items
|
||||
db 1, 0, 4 ; bill's, player's, turn off
|
||||
db -1
|
||||
; before Pokédex
|
||||
db 3
|
||||
db PCPC_BILLS_PC
|
||||
db PCPC_PLAYERS_PC
|
||||
db PCPC_TURN_OFF
|
||||
db -1 ; end
|
||||
|
||||
; before Hall Of Fame
|
||||
db 4 ; items
|
||||
db 1, 0, 2, 4 ; bill's, player's, oak's, turn off
|
||||
db -1
|
||||
db 4
|
||||
db PCPC_BILLS_PC
|
||||
db PCPC_PLAYERS_PC
|
||||
db PCPC_OAKS_PC
|
||||
db PCPC_TURN_OFF
|
||||
db -1 ; end
|
||||
|
||||
; postgame
|
||||
db 5 ; items
|
||||
db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
|
||||
db -1
|
||||
db 5
|
||||
db PCPC_BILLS_PC
|
||||
db PCPC_PLAYERS_PC
|
||||
db PCPC_OAKS_PC
|
||||
db PCPC_HALL_OF_FAME
|
||||
db PCPC_TURN_OFF
|
||||
db -1 ; end
|
||||
|
||||
.ChooseWhichPCListToUse:
|
||||
call CheckReceivedDex
|
||||
jr nz, .got_dex
|
||||
ld a, $0
|
||||
ld a, 0 ; before Pokédex
|
||||
ret
|
||||
|
||||
.got_dex
|
||||
ld a, [wHallOfFameCount]
|
||||
and a
|
||||
ld a, $1
|
||||
ld a, 1 ; before Hall Of Fame
|
||||
ret z
|
||||
ld a, $2
|
||||
ld a, 2 ; postgame
|
||||
ret
|
||||
; 15650
|
||||
|
||||
@ -244,7 +260,16 @@ PlayersPCMenuData: ; 0x15736
|
||||
dw PlaceNthMenuStrings
|
||||
dw .PlayersPCMenuPointers
|
||||
|
||||
PLAYERSPC_WITHDRAW_ITEM EQU 0
|
||||
PLAYERSPC_DEPOSIT_ITEM EQU 1
|
||||
PLAYERSPC_TOSS_ITEM EQU 2
|
||||
PLAYERSPC_MAIL_BOX EQU 3
|
||||
PLAYERSPC_DECORATION EQU 4
|
||||
PLAYERSPC_TURN_OFF EQU 5
|
||||
PLAYERSPC_LOG_OFF EQU 6
|
||||
|
||||
.PlayersPCMenuPointers: ; 0x15746
|
||||
; entries correspond to PLAYERSPC_* constants
|
||||
dw PlayerWithdrawItemMenu, .WithdrawItem
|
||||
dw PlayerDepositItemMenu, .DepositItem
|
||||
dw PlayerTossItemMenu, .TossItem
|
||||
@ -261,32 +286,24 @@ PlayersPCMenuData: ; 0x15736
|
||||
.TurnOff: db "TURN OFF@"
|
||||
.LogOff: db "LOG OFF@"
|
||||
|
||||
WITHDRAW_ITEM EQU 0
|
||||
DEPOSIT_ITEM EQU 1
|
||||
TOSS_ITEM EQU 2
|
||||
MAIL_BOX EQU 3
|
||||
DECORATION EQU 4
|
||||
TURN_OFF EQU 5
|
||||
LOG_OFF EQU 6
|
||||
|
||||
.PlayersPCMenuList1:
|
||||
db 5
|
||||
db WITHDRAW_ITEM
|
||||
db DEPOSIT_ITEM
|
||||
db TOSS_ITEM
|
||||
db MAIL_BOX
|
||||
db TURN_OFF
|
||||
db -1
|
||||
db PLAYERSPC_WITHDRAW_ITEM
|
||||
db PLAYERSPC_DEPOSIT_ITEM
|
||||
db PLAYERSPC_TOSS_ITEM
|
||||
db PLAYERSPC_MAIL_BOX
|
||||
db PLAYERSPC_TURN_OFF
|
||||
db -1 ; end
|
||||
|
||||
.PlayersPCMenuList2:
|
||||
db 6
|
||||
db WITHDRAW_ITEM
|
||||
db DEPOSIT_ITEM
|
||||
db TOSS_ITEM
|
||||
db MAIL_BOX
|
||||
db DECORATION
|
||||
db LOG_OFF
|
||||
db -1
|
||||
db PLAYERSPC_WITHDRAW_ITEM
|
||||
db PLAYERSPC_DEPOSIT_ITEM
|
||||
db PLAYERSPC_TOSS_ITEM
|
||||
db PLAYERSPC_MAIL_BOX
|
||||
db PLAYERSPC_DECORATION
|
||||
db PLAYERSPC_LOG_OFF
|
||||
db -1 ; end
|
||||
|
||||
PC_DisplayTextWaitMenu: ; 157bb
|
||||
ld a, [wOptions]
|
||||
@ -461,13 +478,14 @@ PlayerDepositItemMenu: ; 0x1588b
|
||||
ret
|
||||
|
||||
.dw
|
||||
dw .tossable
|
||||
; entries correspond to ITEMMENU_* constants
|
||||
dw .tossable ; ITEMMENU_NOUSE
|
||||
dw .no_toss
|
||||
dw .no_toss
|
||||
dw .no_toss
|
||||
dw .tossable
|
||||
dw .tossable
|
||||
dw .tossable
|
||||
dw .tossable ; ITEMMENU_CURRENT
|
||||
dw .tossable ; ITEMMENU_PARTY
|
||||
dw .tossable ; ITEMMENU_CLOSE
|
||||
|
||||
.no_toss
|
||||
ret
|
||||
|
@ -48,7 +48,7 @@ LoadSGBLayoutCGB: ; 8d59
|
||||
dw _CGB_GSTitleScreen
|
||||
dw _CGB0d
|
||||
dw _CGB_MoveList
|
||||
dw _CGB0f
|
||||
dw _CGB_BetaPikachuMinigame
|
||||
dw _CGB_PokedexSearchOption
|
||||
dw _CGB11
|
||||
dw _CGB_Pokepic
|
||||
@ -532,7 +532,7 @@ _CGB_GSIntro: ; 9122
|
||||
; 9195
|
||||
|
||||
_CGB11: ; 9195
|
||||
ld hl, Palettes_SCGB_11
|
||||
ld hl, BetaPokerPals
|
||||
ld de, wBGPals1
|
||||
ld bc, 5 palettes
|
||||
ld a, BANK(wBGPals1)
|
||||
@ -790,8 +790,8 @@ _CGB_MoveList: ; 9373
|
||||
ret
|
||||
; 93a6
|
||||
|
||||
_CGB0f: ; 93a6
|
||||
ld hl, PalPacket_SCGB_0F + 1
|
||||
_CGB_BetaPikachuMinigame: ; 93a6
|
||||
ld hl, PalPacket_BetaPikachuMinigame + 1
|
||||
call CopyFourPalettes
|
||||
call WipeAttrMap
|
||||
call ApplyAttrMap
|
||||
|
@ -182,12 +182,12 @@ Unreferenced_Function8b4d:
|
||||
ld a, [hSGB]
|
||||
and a
|
||||
ret z
|
||||
ld hl, PalPacket_Function8b4d
|
||||
ld hl, PalPacket_BetaIntroVenusaur
|
||||
jp PushSGBPals_
|
||||
|
||||
.cgb
|
||||
ld de, wOBPals1
|
||||
ld a, PREDEFPAL_3B
|
||||
ld a, PREDEFPAL_BETA_INTRO_VENUSAUR
|
||||
call GetPredefPal
|
||||
jp LoadHLPaletteIntoDE
|
||||
|
||||
@ -1349,8 +1349,8 @@ INCLUDE "gfx/pokegear/pokegear.pal"
|
||||
FemalePokegearPals:
|
||||
INCLUDE "gfx/pokegear/pokegear_f.pal"
|
||||
|
||||
Palettes_SCGB_11:
|
||||
INCLUDE "gfx/unknown/b789.pal"
|
||||
BetaPokerPals:
|
||||
INCLUDE "gfx/beta_poker/beta_poker.pal"
|
||||
|
||||
SlotMachinePals:
|
||||
INCLUDE "gfx/slots/slots.pal"
|
||||
|
@ -252,7 +252,7 @@ GLOBAL PICS_FIX
|
||||
|
||||
push hl
|
||||
push bc
|
||||
sub BANK(Pics_1) - PICS_FIX
|
||||
sub BANK("Pics 1") - PICS_FIX
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld hl, .PicsBanks
|
||||
@ -263,30 +263,30 @@ GLOBAL PICS_FIX
|
||||
ret
|
||||
|
||||
.PicsBanks: ; 511d4
|
||||
db BANK(Pics_1) + 0
|
||||
db BANK(Pics_1) + 1
|
||||
db BANK(Pics_1) + 2
|
||||
db BANK(Pics_1) + 3
|
||||
db BANK(Pics_1) + 4
|
||||
db BANK(Pics_1) + 5
|
||||
db BANK(Pics_1) + 6
|
||||
db BANK(Pics_1) + 7
|
||||
db BANK(Pics_1) + 8
|
||||
db BANK(Pics_1) + 9
|
||||
db BANK(Pics_1) + 10
|
||||
db BANK(Pics_1) + 11
|
||||
db BANK(Pics_1) + 12
|
||||
db BANK(Pics_1) + 13
|
||||
db BANK(Pics_1) + 14
|
||||
db BANK(Pics_1) + 15
|
||||
db BANK(Pics_1) + 16
|
||||
db BANK(Pics_1) + 17
|
||||
db BANK(Pics_1) + 18
|
||||
db BANK(Pics_1) + 19
|
||||
db BANK(Pics_1) + 20
|
||||
db BANK(Pics_1) + 21
|
||||
db BANK(Pics_1) + 22
|
||||
db BANK(Pics_1) + 23
|
||||
db BANK("Pics 1") ; BANK("Pics 1") + 0
|
||||
db BANK("Pics 2") ; BANK("Pics 1") + 1
|
||||
db BANK("Pics 3") ; BANK("Pics 1") + 2
|
||||
db BANK("Pics 4") ; BANK("Pics 1") + 3
|
||||
db BANK("Pics 5") ; BANK("Pics 1") + 4
|
||||
db BANK("Pics 6") ; BANK("Pics 1") + 5
|
||||
db BANK("Pics 7") ; BANK("Pics 1") + 6
|
||||
db BANK("Pics 8") ; BANK("Pics 1") + 7
|
||||
db BANK("Pics 9") ; BANK("Pics 1") + 8
|
||||
db BANK("Pics 10") ; BANK("Pics 1") + 9
|
||||
db BANK("Pics 11") ; BANK("Pics 1") + 10
|
||||
db BANK("Pics 12") ; BANK("Pics 1") + 11
|
||||
db BANK("Pics 13") ; BANK("Pics 1") + 12
|
||||
db BANK("Pics 14") ; BANK("Pics 1") + 13
|
||||
db BANK("Pics 15") ; BANK("Pics 1") + 14
|
||||
db BANK("Pics 16") ; BANK("Pics 1") + 15
|
||||
db BANK("Pics 17") ; BANK("Pics 1") + 16
|
||||
db BANK("Pics 18") ; BANK("Pics 1") + 17
|
||||
db BANK("Pics 19") ; BANK("Pics 1") + 18
|
||||
db BANK("Pics 20") ; BANK("Pics 1") + 19
|
||||
db BANK("Pics 21") ; BANK("Pics 1") + 20
|
||||
db BANK("Pics 22") ; BANK("Pics 1") + 21
|
||||
db BANK("Pics 23") ; BANK("Pics 1") + 22
|
||||
db BANK("Pics 24") ; BANK("Pics 1") + 23
|
||||
|
||||
Function511ec: ; 511ec
|
||||
ld a, c
|
||||
|
@ -38,9 +38,9 @@ LoadSGBLayout: ; 864c
|
||||
dw .SGB_GSTitleScreen
|
||||
dw .SGB0d
|
||||
dw .SGB_MoveList
|
||||
dw .SGB0f
|
||||
dw .SGB_BetaPikachuMinigame
|
||||
dw .SGB_PokedexSearchOption
|
||||
dw .SGB11
|
||||
dw .SGB_BetaPoker
|
||||
dw .SGB12
|
||||
dw .SGB13
|
||||
dw .SGB_PackPals
|
||||
@ -346,18 +346,18 @@ endr
|
||||
ret
|
||||
; 8897
|
||||
|
||||
.SGB0f: ; 8897
|
||||
ld hl, PalPacket_SCGB_0F
|
||||
.SGB_BetaPikachuMinigame: ; 8897
|
||||
ld hl, PalPacket_BetaPikachuMinigame
|
||||
ld de, BlkPacket_9a86
|
||||
ret
|
||||
; 889e
|
||||
|
||||
.SGB11: ; 889e
|
||||
.SGB_BetaPoker: ; 889e
|
||||
ld hl, BlkPacket_9a86
|
||||
ld de, wPlayerLightScreenCount ; ???
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld hl, PalPacket_SCGB_11
|
||||
ld hl, PalPacket_BetaPoker
|
||||
ld de, BlkPacket_9a86
|
||||
ret
|
||||
; 88b1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user