summaryrefslogtreecommitdiff
path: root/data/sprites
diff options
context:
space:
mode:
Diffstat (limited to 'data/sprites')
-rw-r--r--data/sprites/facings.asm239
-rw-r--r--data/sprites/map_objects.asm306
2 files changed, 545 insertions, 0 deletions
diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm
new file mode 100644
index 00000000..ccf91082
--- /dev/null
+++ b/data/sprites/facings.asm
@@ -0,0 +1,239 @@
+Facings:
+; entries correspond to FACING_* constants
+ dw FacingStepDown0
+ dw FacingStepDown1
+ dw FacingStepDown2
+ dw FacingStepDown3
+ dw FacingStepUp0
+ dw FacingStepUp1
+ dw FacingStepUp2
+ dw FacingStepUp3
+ dw FacingStepLeft0
+ dw FacingStepLeft1
+ dw FacingStepLeft2
+ dw FacingStepLeft3
+ dw FacingStepRight0
+ dw FacingStepRight1
+ dw FacingStepRight2
+ dw FacingStepRight3
+ dw FacingFishDown
+ dw FacingFishUp
+ dw FacingFishLeft
+ dw FacingFishRight
+ dw FacingEmote
+ dw FacingShadow
+ dw FacingBigDollAsymmetric
+ dw FacingBigDollSymmetric
+ dw FacingWeirdTree0
+ dw FacingWeirdTree1
+ dw FacingWeirdTree2
+ dw FacingWeirdTree3
+ dw FacingBoulderDust1
+ dw FacingBoulderDust2
+ dw FacingGrass1
+ dw FacingGrass2
+.End
+ dw 0
+
+NUM_FACINGS EQU (Facings.End - Facings) / 2
+
+; Tables used as a reference to transform OAM data.
+
+; Format:
+; db y, x, attributes, tile index
+
+FacingStepDown0:
+FacingStepDown2:
+FacingWeirdTree0:
+FacingWeirdTree2: ; standing down
+ db 4 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, RELATIVE_ATTRIBUTES, $02
+ db 8, 8, RELATIVE_ATTRIBUTES, $03
+
+FacingStepDown1: ; walking down 1
+ db 4 ; #
+ db 0, 0, 0, $80
+ db 0, 8, 0, $81
+ db 8, 0, RELATIVE_ATTRIBUTES, $82
+ db 8, 8, RELATIVE_ATTRIBUTES, $83
+
+FacingStepDown3: ; walking down 2
+ db 4 ; #
+ db 0, 8, X_FLIP, $80
+ db 0, 0, X_FLIP, $81
+ db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $82
+ db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $83
+
+FacingStepUp0:
+FacingStepUp2: ; standing up
+ db 4 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, RELATIVE_ATTRIBUTES, $06
+ db 8, 8, RELATIVE_ATTRIBUTES, $07
+
+FacingStepUp1: ; walking up 1
+ db 4 ; #
+ db 0, 0, 0, $84
+ db 0, 8, 0, $85
+ db 8, 0, RELATIVE_ATTRIBUTES, $86
+ db 8, 8, RELATIVE_ATTRIBUTES, $87
+
+FacingStepUp3: ; walking up 2
+ db 4 ; #
+ db 0, 8, X_FLIP, $84
+ db 0, 0, X_FLIP, $85
+ db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $86
+ db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $87
+
+FacingStepLeft0:
+FacingStepLeft2: ; standing left
+ db 4 ; #
+ db 0, 0, 0, $08
+ db 0, 8, 0, $09
+ db 8, 0, RELATIVE_ATTRIBUTES, $0a
+ db 8, 8, RELATIVE_ATTRIBUTES, $0b
+
+FacingStepRight0:
+FacingStepRight2: ; standing right
+ db 4 ; #
+ db 0, 8, X_FLIP, $08
+ db 0, 0, X_FLIP, $09
+ db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
+ db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
+
+FacingStepLeft1:
+FacingStepLeft3: ; walking left
+ db 4 ; #
+ db 0, 0, 0, $88
+ db 0, 8, 0, $89
+ db 8, 0, RELATIVE_ATTRIBUTES, $8a
+ db 8, 8, RELATIVE_ATTRIBUTES, $8b
+
+FacingStepRight1:
+FacingStepRight3: ; walking right
+ db 4 ; #
+ db 0, 8, X_FLIP, $88
+ db 0, 0, X_FLIP, $89
+ db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $8a
+ db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $8b
+
+FacingFishDown: ; fishing down
+ db 5 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, RELATIVE_ATTRIBUTES, $02
+ db 8, 8, RELATIVE_ATTRIBUTES, $03
+ db 16, 0, ABSOLUTE_TILE_ID, $fc
+
+FacingFishUp: ; fishing up
+ db 5 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, RELATIVE_ATTRIBUTES, $06
+ db 8, 8, RELATIVE_ATTRIBUTES, $07
+ db -8, 0, ABSOLUTE_TILE_ID, $fc
+
+FacingFishLeft: ; fishing left
+ db 5 ; #
+ db 0, 0, 0, $08
+ db 0, 8, 0, $09
+ db 8, 0, RELATIVE_ATTRIBUTES, $0a
+ db 8, 8, RELATIVE_ATTRIBUTES, $0b
+ db 5, -8, ABSOLUTE_TILE_ID | X_FLIP, $fd
+
+FacingFishRight: ; fishing right
+ db 5 ; #
+ db 0, 8, X_FLIP, $08
+ db 0, 0, X_FLIP, $09
+ db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
+ db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
+ db 5, 16, ABSOLUTE_TILE_ID, $fd
+
+FacingEmote: ; emote
+ db 4 ; #
+ 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
+
+FacingShadow: ; shadow
+ db 2 ; #
+ db 0, 0, ABSOLUTE_TILE_ID, $fc
+ db 0, 8, ABSOLUTE_TILE_ID | X_FLIP, $fc
+
+FacingBigDollSymmetric: ; big snorlax or lapras doll
+ db 16 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 0, $02
+ db 8, 8, 0, $03
+ db 16, 0, 0, $04
+ db 16, 8, 0, $05
+ db 24, 0, 0, $06
+ db 24, 8, 0, $07
+ db 0, 24, X_FLIP, $00
+ db 0, 16, X_FLIP, $01
+ db 8, 24, X_FLIP, $02
+ db 8, 16, X_FLIP, $03
+ db 16, 24, X_FLIP, $04
+ db 16, 16, X_FLIP, $05
+ db 24, 24, X_FLIP, $06
+ db 24, 16, X_FLIP, $07
+
+FacingWeirdTree1:
+ db 4 ; #
+ db 0, 0, 0, $04
+ db 0, 8, 0, $05
+ db 8, 0, 0, $06
+ db 8, 8, 0, $07
+
+FacingWeirdTree3:
+ db 4 ; #
+ db 0, 8, X_FLIP, $04
+ db 0, 0, X_FLIP, $05
+ db 8, 8, X_FLIP, $06
+ db 8, 0, X_FLIP, $07
+
+FacingBigDollAsymmetric: ; big doll other than snorlax or lapras
+ db 14 ; #
+ db 0, 0, 0, $00
+ db 0, 8, 0, $01
+ db 8, 0, 0, $04
+ db 8, 8, 0, $05
+ db 16, 8, 0, $07
+ db 24, 8, 0, $0a
+ db 0, 24, 0, $03
+ db 0, 16, 0, $02
+ db 8, 24, X_FLIP, $02
+ db 8, 16, 0, $06
+ db 16, 24, 0, $09
+ db 16, 16, 0, $08
+ db 24, 24, X_FLIP, $04
+ db 24, 16, 0, $0b
+
+FacingBoulderDust1: ; boulder dust 1
+ db 4 ; #
+ 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
+
+FacingBoulderDust2: ; boulder dust 2
+ db 4 ; #
+ 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
+
+FacingGrass1:
+ db 2 ; #
+ db 8, 0, 0, $00
+ db 8, 8, 0 | X_FLIP, $00
+
+FacingGrass2:
+ db 2 ; #
+ db 9, -1, 0, $00
+ db 9, 9, 0 | X_FLIP, $00
diff --git a/data/sprites/map_objects.asm b/data/sprites/map_objects.asm
new file mode 100644
index 00000000..10afaf57
--- /dev/null
+++ b/data/sprites/map_objects.asm
@@ -0,0 +1,306 @@
+SpriteMovementData::
+; entries correspond to SPRITEMOVEDATA_* constants
+
+; SPRITEMOVEDATA_00
+ db SPRITEMOVEFN_00 ; movement function
+ db DOWN ; facing
+ db OBJECT_ACTION_STAND ; action
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 0 ; flags1
+ db 0 ; flags2
+ db SWIMMING ; palette flags
+
+; 25
+ db SPRITEMOVEFN_00 ; movement function
+ db DOWN ; facing
+ db OBJECT_ACTION_STAND ; action
+ db 0 ; flags1
+ db 0 ; flags2
+ db 0 ; palette flags