summaryrefslogtreecommitdiff
path: root/engine/sprites/sprites.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/sprites/sprites.asm')
-rw-r--r--engine/sprites/sprites.asm155
1 files changed, 155 insertions, 0 deletions
diff --git a/engine/sprites/sprites.asm b/engine/sprites/sprites.asm
new file mode 100644
index 0000000..a1dc401
--- /dev/null
+++ b/engine/sprites/sprites.asm
@@ -0,0 +1,155 @@
+INCLUDE "constants.asm"
+
+SECTION "LoadOverworldSprite", ROMX[$4150], BANK[$05]
+
+LoadOverworldSprite: ; 05:4150
+ push af
+ call GetOverworldSpriteData
+ push bc
+ push hl
+ push de
+ ld a, [wcdaf]
+ bit 7, a
+ jr nz, .dont_copy
+ call Get2bpp
+.dont_copy
+ pop de
+ ld hl, SPRITE_TILE_SIZE * 3
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, vChars1 - vChars0
+ add hl, bc
+ pop bc
+ pop af
+ call IsAnimatedSprite
+ ret c
+ ld a, [wcdaf]
+ bit 6, a
+ ret nz
+ call Get2bpp
+ ret
+
+; get the data for overworld sprite in a
+; returns: gfx ptr in hl, length in c, bank in b
+GetOverworldSpriteData: ; 05:417d
+ push hl
+ dec a
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld bc, OverworldSprites
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ swap c
+ inc hl
+ ld b, [hl]
+ pop hl
+ ret
+
+SECTION "OverworldSprites", ROMX[$423B], BANK[$05]
+
+overworld_sprite: MACRO
+; pointer, length, bank
+ dw \1
+ db \2 tiles, BANK(\1)
+ENDM
+
+OverworldSprites::
+ overworld_sprite GoldSpriteGFX, 12
+ overworld_sprite GoldBikeSpriteGFX, 12
+ overworld_sprite GoldSkateboardSpriteGFX, 12
+ overworld_sprite SilverSpriteGFX, 12
+ overworld_sprite OkidoSpriteGFX, 12
+ overworld_sprite RedSpriteGFX, 12
+ overworld_sprite BlueSpriteGFX, 12
+ overworld_sprite MasakiSpriteGFX, 12
+ overworld_sprite ElderSpriteGFX, 12
+ overworld_sprite SakakiSpriteGFX, 12
+ overworld_sprite GantetsuSpriteGFX, 12
+ overworld_sprite MomSpriteGFX, 12
+ overworld_sprite SilversMomSpriteGFX, 12
+ overworld_sprite RedsMomSpriteGFX, 12
+ overworld_sprite RedsMomSpriteGFX, 12
+ overworld_sprite NanamiSpriteGFX, 12
+ overworld_sprite EvilOkidoSpriteGFX, 12
+ overworld_sprite KikukoSpriteGFX, 12
+ overworld_sprite HayatoSpriteGFX, 12
+ overworld_sprite TsukushiSpriteGFX, 12
+ overworld_sprite TsukushiSpriteGFX, 12
+ overworld_sprite EnokiSpriteGFX, 12
+ overworld_sprite MikanSpriteGFX, 12
+ overworld_sprite MikanSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerMSpriteGFX, 12
+ overworld_sprite CooltrainerFSpriteGFX, 12
+ overworld_sprite BugCatcherBoySpriteGFX, 12
+ overworld_sprite TwinSpriteGFX, 12
+ overworld_sprite YoungsterSpriteGFX, 12
+ overworld_sprite LassSpriteGFX, 12
+ overworld_sprite TeacherSpriteGFX, 12
+ overworld_sprite GirlSpriteGFX, 12
+ overworld_sprite SuperNerdSpriteGFX, 12
+ overworld_sprite RockerSpriteGFX, 12
+ overworld_sprite PokefanMSpriteGFX, 12
+ overworld_sprite PokefanFSpriteGFX, 12
+ overworld_sprite GrampsSpriteGFX, 12
+ overworld_sprite GrannySpriteGFX, 12
+ overworld_sprite SwimmerMSpriteGFX, 12
+ overworld_sprite SwimmerFSpriteGFX, 12
+ overworld_sprite RocketMSpriteGFX, 12
+ overworld_sprite RocketMSpriteGFX, 12
+ overworld_sprite RocketMSpriteGFX, 12
+ overworld_sprite RocketFSpriteGFX, 12
+ overworld_sprite NurseSpriteGFX, 12
+ overworld_sprite LinkReceptionistSpriteGFX, 12
+ overworld_sprite ClerkSpriteGFX, 12
+ overworld_sprite FisherSpriteGFX, 12
+ overworld_sprite FishingGuruSpriteGFX, 12
+ overworld_sprite ScientistSpriteGFX, 12
+ overworld_sprite MediumSpriteGFX, 12
+ overworld_sprite SageSpriteGFX, 12
+ overworld_sprite FrowningManSpriteGFX, 12
+ overworld_sprite GentlemanSpriteGFX, 12
+ overworld_sprite BlackbeltSpriteGFX, 12
+ overworld_sprite ReceptionistSpriteGFX, 12
+ overworld_sprite OfficerSpriteGFX, 12
+ overworld_sprite CaptainSpriteGFX, 12
+ overworld_sprite CaptainSpriteGFX, 12
+ overworld_sprite CaptainSpriteGFX, 12
+ overworld_sprite MohawkSpriteGFX, 12
+ overworld_sprite GymGuySpriteGFX, 12
+ overworld_sprite SailorSpriteGFX, 12
+ overworld_sprite HelmetSpriteGFX, 12
+ overworld_sprite BurglarSpriteGFX, 12
+ overworld_sprite SidonSpriteGFX, 12
+ overworld_sprite PippiSpriteGFX, 12
+ overworld_sprite PoppoSpriteGFX, 12
+ overworld_sprite LizardonSpriteGFX, 12
+ overworld_sprite KabigonSpriteGFX, 4
+ overworld_sprite PawouSpriteGFX, 12
+ overworld_sprite NyorobonSpriteGFX, 12
+ overworld_sprite LaplaceSpriteGFX, 12
+ overworld_sprite PokeBallSpriteGFX, 4
+ overworld_sprite PokedexSpriteGFX, 4
+ overworld_sprite PaperSpriteGFX, 4
+ overworld_sprite OldLinkReceptionistSpriteGFX, 4
+ overworld_sprite OldLinkReceptionistSpriteGFX, 4
+ overworld_sprite EggSpriteGFX, 4
+ overworld_sprite BoulderSpriteGFX, 4