diff options
-rw-r--r-- | Improve-the-outdoor-sprite-system.md | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Improve-the-outdoor-sprite-system.md b/Improve-the-outdoor-sprite-system.md index 6cf3e0a..f100243 100644 --- a/Improve-the-outdoor-sprite-system.md +++ b/Improve-the-outdoor-sprite-system.md @@ -453,7 +453,7 @@ Two sprites are just copies of other sprites, but with the walking frames remove This used to be necessary because if there were ten or more walking sprites, you couldn't control which nine would be loaded first and have their walking frames available; it was up to `LoadAndSortSprites`. -Now, though, you can completely delete `SPRITE_STANDING_YOUNGSTER` and `SPRITE_KURT_OUTSIDE`, and use `SPRITE_YOUNGSTER` and `SPRITE_KURT` instead: +Now, though, these alternate non-walking sprites are redundant, so you can delete them: - Remove the `SPRITE_STANDING_YOUNGSTER` and `SPRITE_KURT_OUTSIDE` definitions and data from [constants/sprite_constants.asm](../blob/master/constants/sprite_constants.asm), [data/sprites/sprites.asm](../blob/master/data/sprites/sprites.asm), [gfx/sprites.asm](../blob/master/gfx/sprites.asm), and [gfx/sprites/*.png](../tree/master/gfx/sprites/). - Replace `SPRITE_STANDING_YOUNGSTER` and `SPRITE_KURT_OUTSIDE` with `SPRITE_YOUNGSTER` and `SPRITE_KURT` respectively in [maps/*.asm](../tree/master/maps/) and [data/maps/outdoor_sprites.asm](../blob/master/data/maps/outdoor_sprites.asm). Be sure to put them *after* all the walking sprites in their respective outdoor sprite sets, since their walking frames aren't needed. @@ -475,9 +475,10 @@ At first glance, it makes sense why these variable sprites exist. They're a neat It turns out that Crystal doesn't need these variable sprites, but Gold and Silver did. Crystal is exclusive to the GameBoy Color, so it has twice as much VRAM, and it's able to load walking frames for every sprite in bank 1 while still having room for standing-still sprites in bank 0. But Gold and Silver supported the Super GameBoy, which only had one VRAM bank; so still sprites like `SPRITE_POKE_BALL` and `SPRITE_SLOWPOKE` used up the same space budget as walking sprites. -Anyway, the point is that we don't need them any more. So you can completely delete those three variable sprites, and directly use the sprites that they turned into: +Anyway, the point is that we don't need them any more. So you can completely delete those three variable sprites: - Remove the `SPRITE_WEIRD_TREE`, `SPRITE_AZALEA_ROCKET`, and `SPRITE_OLIVINE_RIVAL` definitions from [constants/sprite_constants.asm](../blob/master/constants/sprite_constants.asm). -- Remove their respective `variablesprite` initializers from `InitializeEventsScript` in [engine/events/std_scripts.asm](../blob/master/engine/events/std_scripts.asm). +- Remove their respective `variablesprite` commands from `InitializeEventsScript` in [engine/events/std_scripts.asm](../blob/master/engine/events/std_scripts.asm), and their respective scripts in [maps/*.asm](../tree/master/maps/). You can also remove `special LoadUsedSpritesGFX` when it occurs in a map script right after a `variablesprite` command. +- Replace `SPRITE_WEIRD_TREE`, `SPRITE_AZALEA_ROCKET`, and `SPRITE_OLIVINE_RIVAL` with the actual sprites they're supposed to use in [maps/*.asm](../tree/master/maps/) and [data/maps/outdoor_sprites.asm](../blob/master/data/maps/outdoor_sprites.asm). Be sure to put the actual sprites among the first nine list entries, since they all need to walk. For more information on variable sprites, see [the tutorial to add a new sprite](Add-a-new-overworld-sprite). |