diff --git a/.gitignore b/.gitignore index e644f691..5ffc547a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ build/* *.dmp *.bak *.lnk -*.sav *.sa1 *.sg1 *.ss1 @@ -14,3 +13,6 @@ build/* *.ss3 generatedrepoints *__pycache__ +graphics/*.h +graphics/shiny/*.h +test.sav diff --git a/BPRE.ld b/BPRE.ld index d702a02f..90bb41df 100644 --- a/BPRE.ld +++ b/BPRE.ld @@ -208,4 +208,7 @@ free_ = 0x8002BC4 | 1; CpuSet = 0x81E3B64 | 1; +sSurfBlobAnim_FaceSouth = 0x83a552c; +sSurfBlobAnim_FaceNorth = 0x83a5538; +sSurfBlobAnim_FaceWest = 0x83a5544; diff --git a/Dynamic Surfing FR.ups b/Dynamic Surfing FR.ups new file mode 100644 index 00000000..28173b4d Binary files /dev/null and b/Dynamic Surfing FR.ups differ diff --git a/README.md b/README.md index 1498d92e..8c215fc1 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,21 @@ -# dynamic_surf_ows +# Dynamic surfing overworlds for FR +## Expansion by Shiny miner, ansh, jordank -===================================================== +**Original thread (by ghoulslash):** +https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/ -What Is This? +For any queries, ping one of us via [Discord](https://discord.gg/yKhCRrqJyX): +- anxz86 +- jordank.memes +- shinyhunter08 + +## What Is This? This is a feature, originally from pokeem, (see https://github.com/Slawter666/pokeemerald/tree/surfable/src), to have the surfing sprite dynamically change based on the first party pokemon or selected pokemon from the menu. -It has a few improved features: +![Surfing Pikachu](example.gif) + +## Improved Features 1. One master structure for all species data, so worrying about matching indexes is no longer an issue @@ -18,21 +27,267 @@ It has a few improved features: 5. The overlay frames are hidden underneath map tiles (eg. treetops over water) -===================================================== +### Special Sprite Handling + +This repo also now supports unique West/Left-facing and East/Right-facing sprites! +In the case of Kingler, it has an asymmetric sprite, with one larger claw. Mirroring this sprite would have resulted in the claw switching sides when the player moves around; instead, we now support sprites that have a unique look for all 4 directions! + +![Kingler](kingler.gif) -Important Notes: +## Important Notes 1. This includes the dynamic overworld palette hack, as it removes the need to worry about matching palettes, and is generally just awesome. See https://github.com/Navenatox/DynamicOverworldPalettes for more details. The original source code has been modified to call some of these functions, so removing the file if you've already added this feature will not do. There is ample free-space in FR so I suggest just leaving it be unless you know what you are doing. -2. This feauture is currently missing a lot of necessary artwork. Any pokemon without art will default to the original surf blob. As art is added, either by the user or community, you can change this in src/surf_mons.h by changing the elements `.paletteTag` and `.images` of `const struct SpriteTemplate s[species]Overworld` +2. Any pokemon without art will default to the original surf blob. As art is added, either by the user or community, you can change this in src/surf_mons.h by changing the elements `.paletteTag` and `.images` of `const struct SpriteTemplate s[species]Overworld` 3. Fire Red likes vertical images, and as such the sprites have to have all their frames lined up vertically, as opposed to the pokeem images that are layered horizontally. While annoying, changing the frame ordering isn't a big deal, and I hope this won't stand in the way of community art being shared. -===================================================== -How To Compile: - -1. add `rom.gba` to the main directory +## TODOs: + +1. Verify that each Pokemon has a matching Shiny sprite + +2. Continue normalizing sprite order ([0-1] .. [7-8]), rather than ([1-0] .. [8-7]) + +3. Fix template, old, and alt sprites, in accordance with #2 + +3. Test all sprites in-engine (see Tha Code Mining Hub's #surf-overworlds-expansion channel, and "Checking in-game" thread) + +4. Apply fixes from #3. + +--- + +# Credits: +## History Lesson +Here's a fun infographic, provided by AsparagusEduardo in the [Team Aqua Asset Repo](https://github.com/Pawkkie/Team-Aquas-Asset-Repo)'s [Discord server](https://discord.gg/hX3a63RYzZ): +![Chart showing the history of development for this project, starting with Slawter666's project for early pret/pokeemerald. This split into Ghoulslash's binary Fire Red version of the project, continued by Shiny-Miner, Ansh, and Jordank, and into surskitty's port to pokeemerald-expansion, which was continued by grunt-lucas and wally-217](history.png) + +## Legacy Sprites +Various artists contributed edited sprites [Gen 1](https://www.spriters-resource.com/ds_dsi/pokemonheartgoldsoulsilver/sheet/26794/), [Gen 2](https://www.spriters-resource.com/fullview/26795/), and [Gen 3](https://www.spriters-resource.com/ds_dsi/pokemonheartgoldsoulsilver/sheet/26795/) from the Following Pokemon feature of Heart Gold and Soul Silver. Please let me know if you've contributed, and would like specific credit for specific Pokemon; This is rabbit hole to unravel, but here are the names we could verify: +- [Ghoulslash](https://github.com/ghoulslash/dynamic_surf_ows) +- [grunt-lucas](https://github.com/grunt-lucas/pokeemerald-expansion/tree/surfable/graphics/object_events/pics/pokemon/surfable) +- [Slawter666](https://github.com/Slawter666/pokeemerald/blob/surfable/graphics/event_objects/pics/pokemon/surfable/) +- [Surskitty](https://github.com/surskitty/pokeemerald/tree/surfable/graphics/object_events/pics/pokemon/surfable) +- [wally-217](https://github.com/zacwalton/pokeemerald-expansion/tree/master/graphics/object_events/pics/pokemon/surfable) + +## Modern Sprites +Any sprites listed below this header are custom drawn, in the Shiny-Miner/Ansh/Jordank version of this project (the repo you're reading currently) + +### [Avara](https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/) +- Wartortle, Tentacool, Tentacruel + +### [eMMe97](https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/) +- Squirtle, Blastoise + +### Hestia +- Wailmer + +### Michelle Soto +- Dratini +- Carvanha +- Made the raft used by several smaller Pokemon + +### [Nolo33LP](https://x.com/Nolo33LP) +- Pichu, Pikachu, Raichu + - Additional editing by Jordank +- Clamperl, Huntail, Gorebyss +- Latias, Latios +- Rayquaza + +### [EduarPokeN](https://x.com/EduarPokeN) +- Whiscash +- Corphish, Crawdaunt +- Improved the Raft used by several smaller Pokemon + +### [Pokets](https://x.com/pokets3) +- Snorlax + - Snoring, w/ 4-frame animation adjustment by [Jordank](https://github.com/jmynes/dynamic_surf_ows_masters-expansion) +- Lugia + - Surfing sprite by Pokets + - Flying sprite adapted from HG/SS by Jordank +- Sharpedo +- Wailord +- Barboach +- Feebas +- Relicanth +- Luvdisc +- Surskit, Masquerain +- Zangoose + +### [Surskitty](https://github.com/surskitty) +- Kyogre + - Primal Kyogre + +## Edited HGSS Sprites (such as posture/redrawn parts) +### Surskitty +- Nidoking, Nidoqueen +- Kangaskhan +- Quagsire +- Swampert + +# [wally-217](https://github.com/zacwalton/pokeemerald-expansion/tree/master/graphics/object_events/pics/pokemon/surfable) +- Lickitung + +# Completed Pokemon +## Spriting Progress: +### Gen 1: 100% +- Squirtle - Complete (eMMe97) +- Wartortle - Complete (Avara) +- Blastoise - Complete (eMMe97) +- Pikachu - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Raichu - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Nidoqueen - Complete +- Nidoking - Complete +- Psyduck - Complete (ghoulslash) +- Golduck - Complete (ghoulslash) +- Poliwag - Complete +- Poliwhirl - Complete +- Poliwrath - Complete +- Tentacool - Complete (Avara) +- Tentacruel - Complete (Avara) +- Slowpoke - Complete (ghoulslash) +- Slowbro - Complete (ghoulslash) +- Seel - Complete (ghoulslash) +- Dewgong - Complete (ghoulslash) +- Shellder - Complete +- Cloyster - Complete +- Krabby - Complete +- Kingler - Complete (Ansh746) +- Lickitung - Complete +- Rhydon - Complete +- Kangaskhan - Complete +- Horsea - Complete +- Seadra - Complete +- Goldeen - Complete +- Seaking - Complete +- Staryu - Complete (ghoulslash) +- Starmie - Complete (ghoulslash) +- Tauros - Complete +- Gyarados - Complete +- Lapras - Complete (Slawter666) +- Vaporeon - Complete (ghoulslash) +- Omanyte - Complete +- Omastar - Complete +- Kabuto - Complete +- Kabutops - Complete +- Snorlax - Complete ([Pokets](https://x.com/pokets3)), with Snoring efforts from Jordank +- Dratini - Complete (michelle soto) +- Dragonair - Complete +- Dragonite - Complete +- Mew - Complete + +### Gen 2: 100% +- Totodile - Complete +- Croconaw - Complete +- Feraligatr - Complete +- Sentret - Complete (gota_csm) +- Furret - Complete (gota_csm) +- Pichu - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Chinchou - Complete +- Lanturn - Complete +- Marill - Complete +- Azumarill - Complete +- Politoed - Complete +- Wooper - Complete +- Quagsire - Complete +- Slowking - Complete (ghoulslash) +- Qwilfish - Complete +- Sneasel - Complete +- Corsola - Complete +- Remoraid - Complete +- Octillery - Complete +- Mantine - Complete +- Kingdra - Complete +- Miltank - Complete +- Suicune - Complete +- Tyranitar - Complete +- Lugia - Complete (Surfing by Pokets, Flying HGSS edit by Jordank) + +### Gen 3: 100% +- Mudkip - Complete +- Marshtomp - Complete +- Swampert - Complete +- Zigzagoon - Complete +- Linoone - Complete +- Lotad - Complete +- Lombre - Complete +- Ludicolo - Complete +- Pelipper - Complete +- Makuhita - Complete +- Hariyama - Complete +- Azurill - Complete +- Aggron - Complete +- Carvanha - [Complete?] Michelle Soto +- Sharpedo - Complete ([Pokets](https://x.com/pokets3)) +- Wailmer - Complete (Hestia) +- Wailord - Complete ([Pokets](https://x.com/pokets3)) +- Barboach - Complete ([Pokets](https://x.com/pokets3)) +- Whiscash - Complete ([EduarPokeN](https://x.com/EduarPokeN)) +- Corphish - Complete ([EduarPokeN](https://x.com/EduarPokeN)) +- Crawdaunt - Complete ([EduarPokeN](https://x.com/EduarPokeN)) +- Feebas - Complete ([Pokets](https://x.com/pokets3)) +- Milotic - Complete +- Spheal - Complete (ghoulslash) +- Sealeo - Complete (ghoulslash) +- Walrein - Complete (ghoulslash) +- Clamperl - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Huntail - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Gorebyss - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Relicanth - Complete ([Pokets](https://x.com/pokets3)) +- Luvdisc - Complete ([Pokets](https://x.com/pokets3)) +- Latias - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Latios - Complete ([Nolo33LP](https://x.com/Nolo33LP)) +- Kyogre - Complete (Surskitty) +- Rayquaza - Complete ([Nolo33LP](https://x.com/Nolo33LP)) + +## Tradebacks (Receives Surf in a later gen) +### Learns Surf in Gen 4: 100% +- Exploud - Complete + +### Learns Surf in Gen 9: 100% +- Surskit - Complete ([Pokets](https://x.com/pokets3)) +- Masquerain - Complete ([Pokets](https://x.com/pokets3)) +- Zangoose - Complete ([Pokets](https://x.com/pokets3)) + +## Pokemon w/ Gen 4-9 Evolutions +### Gen 4: 0% +- Munchlax - Missing +- Mantyke - Missing +- Lickilicky - Missing +- Rhyperior - Missing +- Weavile - Missing + +## Pokemon w/ Regional Variants and Evolutions +### Alola: 0% +- Alolan Raichu - Missing + +### Galar: 0% +- Galarian Slowpoke - Missing +- Galarian Slowbro - Missing +- Galarian Slowking - Missing +- Galarian Corsola - Missing +- Cursola - Missing +- Galarian Zigzagoon - Missing +- Galarian Linoone - Missing +- Obstagoon - Missing + +### Hisui: 0% +- Hisuian Qwilfish - Missing +- Overqwil - Missing + +### Paldea: 0% +- Paldean Tauros (Combat Breed) - Missing +- Paldean Tauros (Aqua Breed) - Missing +- Paldean Wooper - Missing +- Clodsire - Missing + +--- + +## How To Compile: + +0. Ensure that you have Pokemon - Fire Red v1.0 (aka `1636 - Pokemon Fire Red (U)(Squirrels).gba`). If you're unsure, you can [verify](https://emn178.github.io/online-tools/md5_checksum.html) the md5sum of your ROM, which should match `e26ee0d44e809351c8ce2d73c7400cdd` + +1. Rename your ROM to `rom.gba`, and add it to the root directory of this project 2. open `scripts/make.py` and modify `OFFSET_TO_PUT` to wherever you'd like to insert this code, as well as `SEARCH_FREE_SPACE` to `True` if you'd like to search for free space from said offset. @@ -42,12 +297,11 @@ How To Compile: 4. `test.gba` will be added to the folder, and the offsets will be located in `offsets.ini` +--- -===================================================== - -Adding New Species: +### Adding New Species: -if you want to add new species that can learn surf, follow these steps. I will use Popplio as an example +If you want to add new species that can learn surf, follow these steps. I will use Popplio as an example 1. make the sprite, 32 x 384 (12 frames of 32x32). Use the existing sprites as models. 2a. add the indexed image .png file to graphics/. Eg. `popplio.png` @@ -78,8 +332,8 @@ const struct SpriteFrameImage gSurfingOverlayPicTable_Popplio[] = { overworld_frame(&popplioTiles[0], 4, 4, 11), }; -sPopplioOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfBlobFieldEffect) -sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfMonOverlay) +const struct SpriteTemplate sPopplioOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Popplio, UpdateSurfMonOverlay); ``` 4. If you do not have any overlay frames, the sprite sheet only needs to be 32x192 (6 frames), and do not need to define the `OverlayPicTable`. Also, if you want unique palette tags, `PAL_TAG_SURF_NEW` should be `PAL_TAG_POPPLIO_SURF` or whatever you want to call it, instead. @@ -90,8 +344,7 @@ sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popp .species = SPECIES_POPPLIO, .palAddr = &popplioPal[0], .shinyPalAddr = &popplioShinyPal[0], // or 0 if it doesn't exist - .overworldGfx = &sPopplioOverword, + .overworldGfx = &sPopplioOverworld, .overlayGfx = &sPopplioOverlay, // or 0 if it doesn't exist }, ``` - diff --git a/[Female]_Dynamic_Surfing_FR.SAV b/[Female]_Dynamic_Surfing_FR.SAV new file mode 100644 index 00000000..cbc0946f Binary files /dev/null and b/[Female]_Dynamic_Surfing_FR.SAV differ diff --git a/[Male]_Dynamic_Surfing_FR.SAV b/[Male]_Dynamic_Surfing_FR.SAV new file mode 100644 index 00000000..c16a3924 Binary files /dev/null and b/[Male]_Dynamic_Surfing_FR.SAV differ diff --git a/alt-graphics/Lugia/lugia-flying-game-colors.png b/alt-graphics/Lugia/lugia-flying-game-colors.png new file mode 100644 index 00000000..09ee8e06 Binary files /dev/null and b/alt-graphics/Lugia/lugia-flying-game-colors.png differ diff --git a/alt-graphics/Lugia/lugia-flying.png b/alt-graphics/Lugia/lugia-flying.png new file mode 100644 index 00000000..5825715b Binary files /dev/null and b/alt-graphics/Lugia/lugia-flying.png differ diff --git a/alt-graphics/Lugia/lugia-shiny-flying.png b/alt-graphics/Lugia/lugia-shiny-flying.png new file mode 100644 index 00000000..3723b28b Binary files /dev/null and b/alt-graphics/Lugia/lugia-shiny-flying.png differ diff --git a/alt-graphics/Lugia/lugia-surfing-game-colors.png b/alt-graphics/Lugia/lugia-surfing-game-colors.png new file mode 100644 index 00000000..d857884c Binary files /dev/null and b/alt-graphics/Lugia/lugia-surfing-game-colors.png differ diff --git a/alt-graphics/Nidoqueen/nidoqueen-shiny-game-colors.png b/alt-graphics/Nidoqueen/nidoqueen-shiny-game-colors.png new file mode 100644 index 00000000..e784e58b Binary files /dev/null and b/alt-graphics/Nidoqueen/nidoqueen-shiny-game-colors.png differ diff --git a/alt-graphics/Snorlax/snorlax-2-frame-not-snoring.png b/alt-graphics/Snorlax/snorlax-2-frame-not-snoring.png new file mode 100644 index 00000000..a329762f Binary files /dev/null and b/alt-graphics/Snorlax/snorlax-2-frame-not-snoring.png differ diff --git a/alt-graphics/Snorlax/snorlax-2-frame-snoring.png b/alt-graphics/Snorlax/snorlax-2-frame-snoring.png new file mode 100644 index 00000000..21e608a7 Binary files /dev/null and b/alt-graphics/Snorlax/snorlax-2-frame-snoring.png differ diff --git a/alt-graphics/Snorlax/snorlax-4-frame-snoring.png b/alt-graphics/Snorlax/snorlax-4-frame-snoring.png new file mode 100644 index 00000000..8ca547b1 Binary files /dev/null and b/alt-graphics/Snorlax/snorlax-4-frame-snoring.png differ diff --git a/example.gif b/example.gif new file mode 100755 index 00000000..12537e63 Binary files /dev/null and b/example.gif differ diff --git a/graphics/aggron.png b/graphics/aggron.png new file mode 100644 index 00000000..e27cedec Binary files /dev/null and b/graphics/aggron.png differ diff --git a/graphics/azumarill.png b/graphics/azumarill.png new file mode 100644 index 00000000..3d3bba5a Binary files /dev/null and b/graphics/azumarill.png differ diff --git a/graphics/azurill.png b/graphics/azurill.png new file mode 100644 index 00000000..af6a9574 Binary files /dev/null and b/graphics/azurill.png differ diff --git a/graphics/barboach.png b/graphics/barboach.png new file mode 100644 index 00000000..0beb970e Binary files /dev/null and b/graphics/barboach.png differ diff --git a/graphics/blastoise.h b/graphics/blastoise.h deleted file mode 100644 index 48b7e08f..00000000 --- a/graphics/blastoise.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(blastoise) - -//====================================================================== -// -// blastoise, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_BLASTOISE_H -#define GRIT_BLASTOISE_H - -#define blastoiseTilesLen 6144 -extern const unsigned char blastoiseTiles[6144]; - -#define blastoisePalLen 32 -extern const unsigned short blastoisePal[16]; - -#endif // GRIT_BLASTOISE_H - -//}}BLOCK(blastoise) diff --git a/graphics/blastoise.png b/graphics/blastoise.png index 162cce15..8554fd86 100644 Binary files a/graphics/blastoise.png and b/graphics/blastoise.png differ diff --git a/graphics/carvanha.png b/graphics/carvanha.png new file mode 100755 index 00000000..5462ff5a Binary files /dev/null and b/graphics/carvanha.png differ diff --git a/graphics/chinchou.png b/graphics/chinchou.png new file mode 100644 index 00000000..01e1eb8d Binary files /dev/null and b/graphics/chinchou.png differ diff --git a/graphics/clamperl.png b/graphics/clamperl.png new file mode 100755 index 00000000..ace6a971 Binary files /dev/null and b/graphics/clamperl.png differ diff --git a/graphics/cloyster.png b/graphics/cloyster.png new file mode 100644 index 00000000..b8648a97 Binary files /dev/null and b/graphics/cloyster.png differ diff --git a/graphics/corphish.png b/graphics/corphish.png new file mode 100755 index 00000000..43e8a16d Binary files /dev/null and b/graphics/corphish.png differ diff --git a/graphics/corsola.png b/graphics/corsola.png new file mode 100644 index 00000000..8c821ffb Binary files /dev/null and b/graphics/corsola.png differ diff --git a/graphics/crawdaunt.png b/graphics/crawdaunt.png new file mode 100755 index 00000000..30e0baa1 Binary files /dev/null and b/graphics/crawdaunt.png differ diff --git a/graphics/croconaw.png b/graphics/croconaw.png new file mode 100644 index 00000000..b663d574 Binary files /dev/null and b/graphics/croconaw.png differ diff --git a/graphics/dewgong.h b/graphics/dewgong.h deleted file mode 100644 index 888613e6..00000000 --- a/graphics/dewgong.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(dewgong) - -//====================================================================== -// -// dewgong, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_DEWGONG_H -#define GRIT_DEWGONG_H - -#define dewgongTilesLen 6144 -extern const unsigned char dewgongTiles[6144]; - -#define dewgongPalLen 32 -extern const unsigned short dewgongPal[16]; - -#endif // GRIT_DEWGONG_H - -//}}BLOCK(dewgong) diff --git a/graphics/dewgong.png b/graphics/dewgong.png index ace7e66b..5804c4db 100644 Binary files a/graphics/dewgong.png and b/graphics/dewgong.png differ diff --git a/graphics/dragonair.png b/graphics/dragonair.png new file mode 100644 index 00000000..fae2f823 Binary files /dev/null and b/graphics/dragonair.png differ diff --git a/graphics/dragonite.png b/graphics/dragonite.png new file mode 100644 index 00000000..175b3114 Binary files /dev/null and b/graphics/dragonite.png differ diff --git a/graphics/dratini.png b/graphics/dratini.png new file mode 100644 index 00000000..7802b88c Binary files /dev/null and b/graphics/dratini.png differ diff --git a/graphics/exploud.png b/graphics/exploud.png new file mode 100644 index 00000000..1bdbafc2 Binary files /dev/null and b/graphics/exploud.png differ diff --git a/graphics/feebas.png b/graphics/feebas.png new file mode 100644 index 00000000..e9a88f93 Binary files /dev/null and b/graphics/feebas.png differ diff --git a/graphics/feraligatr.png b/graphics/feraligatr.png new file mode 100644 index 00000000..53563b6c Binary files /dev/null and b/graphics/feraligatr.png differ diff --git a/graphics/furret.png b/graphics/furret.png new file mode 100644 index 00000000..aeae2b55 Binary files /dev/null and b/graphics/furret.png differ diff --git a/graphics/goldeen.png b/graphics/goldeen.png new file mode 100644 index 00000000..a7de9385 Binary files /dev/null and b/graphics/goldeen.png differ diff --git a/graphics/golduck.h b/graphics/golduck.h deleted file mode 100644 index 2efadc82..00000000 --- a/graphics/golduck.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(golduck) - -//====================================================================== -// -// golduck, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_GOLDUCK_H -#define GRIT_GOLDUCK_H - -#define golduckTilesLen 6144 -extern const unsigned char golduckTiles[6144]; - -#define golduckPalLen 32 -extern const unsigned short golduckPal[16]; - -#endif // GRIT_GOLDUCK_H - -//}}BLOCK(golduck) diff --git a/graphics/gorebyss.png b/graphics/gorebyss.png new file mode 100755 index 00000000..c7c081bb Binary files /dev/null and b/graphics/gorebyss.png differ diff --git a/graphics/gyarados.png b/graphics/gyarados.png new file mode 100644 index 00000000..f18e1a4e Binary files /dev/null and b/graphics/gyarados.png differ diff --git a/graphics/hariyama.png b/graphics/hariyama.png new file mode 100644 index 00000000..8192cfb5 Binary files /dev/null and b/graphics/hariyama.png differ diff --git a/graphics/horsea.png b/graphics/horsea.png new file mode 100644 index 00000000..e7e31047 Binary files /dev/null and b/graphics/horsea.png differ diff --git a/graphics/huntail.png b/graphics/huntail.png new file mode 100755 index 00000000..2b8d3c76 Binary files /dev/null and b/graphics/huntail.png differ diff --git a/graphics/kabuto.png b/graphics/kabuto.png new file mode 100644 index 00000000..6bf18482 Binary files /dev/null and b/graphics/kabuto.png differ diff --git a/graphics/kabutops.png b/graphics/kabutops.png new file mode 100644 index 00000000..42967b6a Binary files /dev/null and b/graphics/kabutops.png differ diff --git a/graphics/kangaskhan.png b/graphics/kangaskhan.png new file mode 100644 index 00000000..bbda8715 Binary files /dev/null and b/graphics/kangaskhan.png differ diff --git a/graphics/kingdra.png b/graphics/kingdra.png new file mode 100644 index 00000000..57d79f88 Binary files /dev/null and b/graphics/kingdra.png differ diff --git a/graphics/kingler.png b/graphics/kingler.png new file mode 100644 index 00000000..8c1cabef Binary files /dev/null and b/graphics/kingler.png differ diff --git a/graphics/krabby.png b/graphics/krabby.png new file mode 100755 index 00000000..5398a229 Binary files /dev/null and b/graphics/krabby.png differ diff --git a/graphics/kyogre.png b/graphics/kyogre.png new file mode 100644 index 00000000..0fdf49b9 Binary files /dev/null and b/graphics/kyogre.png differ diff --git a/graphics/lanturn.png b/graphics/lanturn.png new file mode 100644 index 00000000..5686191d Binary files /dev/null and b/graphics/lanturn.png differ diff --git a/graphics/lapras.h b/graphics/lapras.h deleted file mode 100644 index ff031352..00000000 --- a/graphics/lapras.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(lapras) - -//====================================================================== -// -// lapras, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_LAPRAS_H -#define GRIT_LAPRAS_H - -#define laprasTilesLen 6144 -extern const unsigned char laprasTiles[6144]; - -#define laprasPalLen 32 -extern const unsigned short laprasPal[16]; - -#endif // GRIT_LAPRAS_H - -//}}BLOCK(lapras) diff --git a/graphics/lapras.png b/graphics/lapras.png index 050cc366..3b6fe7d0 100644 Binary files a/graphics/lapras.png and b/graphics/lapras.png differ diff --git a/graphics/latias.png b/graphics/latias.png new file mode 100755 index 00000000..931c49cd Binary files /dev/null and b/graphics/latias.png differ diff --git a/graphics/latios.png b/graphics/latios.png new file mode 100755 index 00000000..55c26b86 Binary files /dev/null and b/graphics/latios.png differ diff --git a/graphics/lickitung.png b/graphics/lickitung.png new file mode 100644 index 00000000..539af88b Binary files /dev/null and b/graphics/lickitung.png differ diff --git a/graphics/linoone.png b/graphics/linoone.png new file mode 100644 index 00000000..5224b778 Binary files /dev/null and b/graphics/linoone.png differ diff --git a/graphics/lombre.png b/graphics/lombre.png new file mode 100644 index 00000000..7f4258c6 Binary files /dev/null and b/graphics/lombre.png differ diff --git a/graphics/lotad.png b/graphics/lotad.png new file mode 100644 index 00000000..7f832e32 Binary files /dev/null and b/graphics/lotad.png differ diff --git a/graphics/ludicolo.png b/graphics/ludicolo.png new file mode 100644 index 00000000..20e53c5b Binary files /dev/null and b/graphics/ludicolo.png differ diff --git a/graphics/lugia.png b/graphics/lugia.png new file mode 100644 index 00000000..b30c8569 Binary files /dev/null and b/graphics/lugia.png differ diff --git a/graphics/luvdisc.png b/graphics/luvdisc.png new file mode 100644 index 00000000..7cd89c05 Binary files /dev/null and b/graphics/luvdisc.png differ diff --git a/graphics/makuhita.png b/graphics/makuhita.png new file mode 100644 index 00000000..85f305c0 Binary files /dev/null and b/graphics/makuhita.png differ diff --git a/graphics/mantine.png b/graphics/mantine.png new file mode 100644 index 00000000..e64ba055 Binary files /dev/null and b/graphics/mantine.png differ diff --git a/graphics/marill.png b/graphics/marill.png new file mode 100644 index 00000000..3f0055a2 Binary files /dev/null and b/graphics/marill.png differ diff --git a/graphics/marshtomp.png b/graphics/marshtomp.png new file mode 100644 index 00000000..68780457 Binary files /dev/null and b/graphics/marshtomp.png differ diff --git a/graphics/masquerain.png b/graphics/masquerain.png new file mode 100644 index 00000000..ec4528da Binary files /dev/null and b/graphics/masquerain.png differ diff --git a/graphics/mew.png b/graphics/mew.png new file mode 100644 index 00000000..3e85173b Binary files /dev/null and b/graphics/mew.png differ diff --git a/graphics/milotic.png b/graphics/milotic.png new file mode 100644 index 00000000..9ac1e863 Binary files /dev/null and b/graphics/milotic.png differ diff --git a/graphics/miltank.png b/graphics/miltank.png new file mode 100644 index 00000000..c89b2533 Binary files /dev/null and b/graphics/miltank.png differ diff --git a/graphics/mudkip.png b/graphics/mudkip.png new file mode 100644 index 00000000..bdcae256 Binary files /dev/null and b/graphics/mudkip.png differ diff --git a/graphics/nidoking.png b/graphics/nidoking.png new file mode 100644 index 00000000..3b2f9215 Binary files /dev/null and b/graphics/nidoking.png differ diff --git a/graphics/nidoqueen.png b/graphics/nidoqueen.png new file mode 100644 index 00000000..836f1e44 Binary files /dev/null and b/graphics/nidoqueen.png differ diff --git a/graphics/octillery.png b/graphics/octillery.png new file mode 100644 index 00000000..e9a96c7f Binary files /dev/null and b/graphics/octillery.png differ diff --git a/graphics/omanyte.png b/graphics/omanyte.png new file mode 100644 index 00000000..f56e1e4d Binary files /dev/null and b/graphics/omanyte.png differ diff --git a/graphics/omastar.png b/graphics/omastar.png new file mode 100644 index 00000000..d6853c81 Binary files /dev/null and b/graphics/omastar.png differ diff --git a/graphics/pelipper.png b/graphics/pelipper.png new file mode 100644 index 00000000..9ba44257 Binary files /dev/null and b/graphics/pelipper.png differ diff --git a/graphics/pichu.png b/graphics/pichu.png new file mode 100755 index 00000000..2c3029ac Binary files /dev/null and b/graphics/pichu.png differ diff --git a/graphics/pikachu.png b/graphics/pikachu.png new file mode 100755 index 00000000..350a3340 Binary files /dev/null and b/graphics/pikachu.png differ diff --git a/graphics/politoed.png b/graphics/politoed.png new file mode 100644 index 00000000..3322ba0f Binary files /dev/null and b/graphics/politoed.png differ diff --git a/graphics/poliwag.png b/graphics/poliwag.png new file mode 100644 index 00000000..a6f23cb8 Binary files /dev/null and b/graphics/poliwag.png differ diff --git a/graphics/poliwhirl.png b/graphics/poliwhirl.png new file mode 100644 index 00000000..a786855e Binary files /dev/null and b/graphics/poliwhirl.png differ diff --git a/graphics/poliwrath.png b/graphics/poliwrath.png new file mode 100644 index 00000000..4859604d Binary files /dev/null and b/graphics/poliwrath.png differ diff --git a/graphics/psyduck.h b/graphics/psyduck.h deleted file mode 100644 index 5b99d9e9..00000000 --- a/graphics/psyduck.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(psyduck) - -//====================================================================== -// -// psyduck, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_PSYDUCK_H -#define GRIT_PSYDUCK_H - -#define psyduckTilesLen 6144 -extern const unsigned char psyduckTiles[6144]; - -#define psyduckPalLen 32 -extern const unsigned short psyduckPal[16]; - -#endif // GRIT_PSYDUCK_H - -//}}BLOCK(psyduck) diff --git a/graphics/quagsire.png b/graphics/quagsire.png new file mode 100644 index 00000000..9ba64be7 Binary files /dev/null and b/graphics/quagsire.png differ diff --git a/graphics/qwilfish.png b/graphics/qwilfish.png new file mode 100644 index 00000000..c0c816b1 Binary files /dev/null and b/graphics/qwilfish.png differ diff --git a/graphics/raichu.png b/graphics/raichu.png new file mode 100755 index 00000000..c1db4a41 Binary files /dev/null and b/graphics/raichu.png differ diff --git a/graphics/rayquaza.png b/graphics/rayquaza.png new file mode 100755 index 00000000..1903a096 Binary files /dev/null and b/graphics/rayquaza.png differ diff --git a/graphics/relicanth.png b/graphics/relicanth.png new file mode 100755 index 00000000..72970a91 Binary files /dev/null and b/graphics/relicanth.png differ diff --git a/graphics/remoraid.png b/graphics/remoraid.png new file mode 100644 index 00000000..7855f59c Binary files /dev/null and b/graphics/remoraid.png differ diff --git a/graphics/rhydon.png b/graphics/rhydon.png new file mode 100644 index 00000000..539beb9c Binary files /dev/null and b/graphics/rhydon.png differ diff --git a/graphics/rhyhorn.png b/graphics/rhyhorn.png new file mode 100644 index 00000000..ae2eaf41 Binary files /dev/null and b/graphics/rhyhorn.png differ diff --git a/graphics/seadra.png b/graphics/seadra.png new file mode 100644 index 00000000..94b2ec25 Binary files /dev/null and b/graphics/seadra.png differ diff --git a/graphics/seaking.png b/graphics/seaking.png new file mode 100644 index 00000000..7956ee6a Binary files /dev/null and b/graphics/seaking.png differ diff --git a/graphics/sealeo.h b/graphics/sealeo.h deleted file mode 100644 index e634940d..00000000 --- a/graphics/sealeo.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(sealeo) - -//====================================================================== -// -// sealeo, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SEALEO_H -#define GRIT_SEALEO_H - -#define sealeoTilesLen 6144 -extern const unsigned char sealeoTiles[6144]; - -#define sealeoPalLen 32 -extern const unsigned short sealeoPal[16]; - -#endif // GRIT_SEALEO_H - -//}}BLOCK(sealeo) diff --git a/graphics/seel.h b/graphics/seel.h deleted file mode 100644 index 12875bc0..00000000 --- a/graphics/seel.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(seel) - -//====================================================================== -// -// seel, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SEEL_H -#define GRIT_SEEL_H - -#define seelTilesLen 6144 -extern const unsigned char seelTiles[6144]; - -#define seelPalLen 32 -extern const unsigned short seelPal[16]; - -#endif // GRIT_SEEL_H - -//}}BLOCK(seel) diff --git a/graphics/seel.png b/graphics/seel.png index bb3e280b..d4457f25 100644 Binary files a/graphics/seel.png and b/graphics/seel.png differ diff --git a/graphics/sentret.png b/graphics/sentret.png new file mode 100644 index 00000000..87bb5870 Binary files /dev/null and b/graphics/sentret.png differ diff --git a/graphics/sharpedo.png b/graphics/sharpedo.png new file mode 100755 index 00000000..4d5f157e Binary files /dev/null and b/graphics/sharpedo.png differ diff --git a/graphics/shellder.png b/graphics/shellder.png new file mode 100644 index 00000000..7adbbe96 Binary files /dev/null and b/graphics/shellder.png differ diff --git a/graphics/shiny/aggronShiny.png b/graphics/shiny/aggronShiny.png new file mode 100644 index 00000000..129b1832 Binary files /dev/null and b/graphics/shiny/aggronShiny.png differ diff --git a/graphics/shiny/azumarillShiny.png b/graphics/shiny/azumarillShiny.png new file mode 100644 index 00000000..7d8fde51 Binary files /dev/null and b/graphics/shiny/azumarillShiny.png differ diff --git a/graphics/shiny/azurillShiny.png b/graphics/shiny/azurillShiny.png new file mode 100644 index 00000000..4078ad7c Binary files /dev/null and b/graphics/shiny/azurillShiny.png differ diff --git a/graphics/shiny/barboachShiny.png b/graphics/shiny/barboachShiny.png new file mode 100644 index 00000000..253e4649 Binary files /dev/null and b/graphics/shiny/barboachShiny.png differ diff --git a/graphics/shiny/blastoiseShiny.h b/graphics/shiny/blastoiseShiny.h deleted file mode 100644 index 3c4d8b5d..00000000 --- a/graphics/shiny/blastoiseShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(blastoiseShiny) - -//====================================================================== -// -// blastoiseShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_BLASTOISESHINY_H -#define GRIT_BLASTOISESHINY_H - -#define blastoiseShinyPalLen 32 -extern const unsigned short blastoiseShinyPal[16]; - -#endif // GRIT_BLASTOISESHINY_H - -//}}BLOCK(blastoiseShiny) diff --git a/graphics/shiny/blastoiseShiny.png b/graphics/shiny/blastoiseShiny.png index a1a6ca08..7cd58eea 100644 Binary files a/graphics/shiny/blastoiseShiny.png and b/graphics/shiny/blastoiseShiny.png differ diff --git a/graphics/shiny/carvanhaShiny.png b/graphics/shiny/carvanhaShiny.png new file mode 100755 index 00000000..5462ff5a Binary files /dev/null and b/graphics/shiny/carvanhaShiny.png differ diff --git a/graphics/shiny/chinchouShiny.png b/graphics/shiny/chinchouShiny.png new file mode 100644 index 00000000..611854bc Binary files /dev/null and b/graphics/shiny/chinchouShiny.png differ diff --git a/graphics/shiny/clamperlShiny.png b/graphics/shiny/clamperlShiny.png new file mode 100644 index 00000000..32fc2d60 Binary files /dev/null and b/graphics/shiny/clamperlShiny.png differ diff --git a/graphics/shiny/cloysterShiny.png b/graphics/shiny/cloysterShiny.png new file mode 100644 index 00000000..4d1aa660 Binary files /dev/null and b/graphics/shiny/cloysterShiny.png differ diff --git a/graphics/shiny/corphishShiny.png b/graphics/shiny/corphishShiny.png new file mode 100755 index 00000000..fb248594 Binary files /dev/null and b/graphics/shiny/corphishShiny.png differ diff --git a/graphics/shiny/corsolaShiny.png b/graphics/shiny/corsolaShiny.png new file mode 100644 index 00000000..c39d189b Binary files /dev/null and b/graphics/shiny/corsolaShiny.png differ diff --git a/graphics/shiny/crawdauntShiny.png b/graphics/shiny/crawdauntShiny.png new file mode 100755 index 00000000..c961be76 Binary files /dev/null and b/graphics/shiny/crawdauntShiny.png differ diff --git a/graphics/shiny/croconawShiny.png b/graphics/shiny/croconawShiny.png new file mode 100644 index 00000000..7ef5361d Binary files /dev/null and b/graphics/shiny/croconawShiny.png differ diff --git a/graphics/shiny/dewgongShiny.h b/graphics/shiny/dewgongShiny.h deleted file mode 100644 index 9dada6fb..00000000 --- a/graphics/shiny/dewgongShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(dewgongShiny) - -//====================================================================== -// -// dewgongShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_DEWGONGSHINY_H -#define GRIT_DEWGONGSHINY_H - -#define dewgongShinyPalLen 32 -extern const unsigned short dewgongShinyPal[16]; - -#endif // GRIT_DEWGONGSHINY_H - -//}}BLOCK(dewgongShiny) diff --git a/graphics/shiny/dewgongShiny.png b/graphics/shiny/dewgongShiny.png index 9d436d71..9027e08e 100644 Binary files a/graphics/shiny/dewgongShiny.png and b/graphics/shiny/dewgongShiny.png differ diff --git a/graphics/shiny/dragonairShiny.png b/graphics/shiny/dragonairShiny.png new file mode 100644 index 00000000..fae2f823 Binary files /dev/null and b/graphics/shiny/dragonairShiny.png differ diff --git a/graphics/shiny/dragoniteShiny.png b/graphics/shiny/dragoniteShiny.png new file mode 100644 index 00000000..98678ebe Binary files /dev/null and b/graphics/shiny/dragoniteShiny.png differ diff --git a/graphics/shiny/dratiniShiny.png b/graphics/shiny/dratiniShiny.png new file mode 100644 index 00000000..983d4039 Binary files /dev/null and b/graphics/shiny/dratiniShiny.png differ diff --git a/graphics/shiny/exploudShiny.png b/graphics/shiny/exploudShiny.png new file mode 100644 index 00000000..26c8a40d Binary files /dev/null and b/graphics/shiny/exploudShiny.png differ diff --git a/graphics/shiny/feebasShiny.png b/graphics/shiny/feebasShiny.png new file mode 100644 index 00000000..3d47958e Binary files /dev/null and b/graphics/shiny/feebasShiny.png differ diff --git a/graphics/shiny/feraligatrShiny.png b/graphics/shiny/feraligatrShiny.png new file mode 100644 index 00000000..6fdf0889 Binary files /dev/null and b/graphics/shiny/feraligatrShiny.png differ diff --git a/graphics/shiny/furretShiny.png b/graphics/shiny/furretShiny.png new file mode 100644 index 00000000..6771f87b Binary files /dev/null and b/graphics/shiny/furretShiny.png differ diff --git a/graphics/shiny/goldeenShiny.png b/graphics/shiny/goldeenShiny.png new file mode 100644 index 00000000..918868d8 Binary files /dev/null and b/graphics/shiny/goldeenShiny.png differ diff --git a/graphics/shiny/golduckShiny.h b/graphics/shiny/golduckShiny.h deleted file mode 100644 index a6e8b8b4..00000000 --- a/graphics/shiny/golduckShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(golduckShiny) - -//====================================================================== -// -// golduckShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_GOLDUCKSHINY_H -#define GRIT_GOLDUCKSHINY_H - -#define golduckShinyPalLen 32 -extern const unsigned short golduckShinyPal[16]; - -#endif // GRIT_GOLDUCKSHINY_H - -//}}BLOCK(golduckShiny) diff --git a/graphics/shiny/gorebyssShiny.png b/graphics/shiny/gorebyssShiny.png new file mode 100755 index 00000000..8c023c34 Binary files /dev/null and b/graphics/shiny/gorebyssShiny.png differ diff --git a/graphics/shiny/gyaradosShiny.png b/graphics/shiny/gyaradosShiny.png new file mode 100644 index 00000000..aa7973f4 Binary files /dev/null and b/graphics/shiny/gyaradosShiny.png differ diff --git a/graphics/shiny/hariyamaShiny.png b/graphics/shiny/hariyamaShiny.png new file mode 100644 index 00000000..49caab19 Binary files /dev/null and b/graphics/shiny/hariyamaShiny.png differ diff --git a/graphics/shiny/horseaShiny.png b/graphics/shiny/horseaShiny.png new file mode 100644 index 00000000..530741ac Binary files /dev/null and b/graphics/shiny/horseaShiny.png differ diff --git a/graphics/shiny/huntailShiny.png b/graphics/shiny/huntailShiny.png new file mode 100755 index 00000000..7e956626 Binary files /dev/null and b/graphics/shiny/huntailShiny.png differ diff --git a/graphics/shiny/kabutoShiny.png b/graphics/shiny/kabutoShiny.png new file mode 100644 index 00000000..cc39d209 Binary files /dev/null and b/graphics/shiny/kabutoShiny.png differ diff --git a/graphics/shiny/kabutopsShiny.png b/graphics/shiny/kabutopsShiny.png new file mode 100644 index 00000000..74c5d009 Binary files /dev/null and b/graphics/shiny/kabutopsShiny.png differ diff --git a/graphics/shiny/kangaskhanShiny.png b/graphics/shiny/kangaskhanShiny.png new file mode 100644 index 00000000..6bae7ebd Binary files /dev/null and b/graphics/shiny/kangaskhanShiny.png differ diff --git a/graphics/shiny/kingdraShiny.png b/graphics/shiny/kingdraShiny.png new file mode 100644 index 00000000..39010b9d Binary files /dev/null and b/graphics/shiny/kingdraShiny.png differ diff --git a/graphics/shiny/kinglerShiny.png b/graphics/shiny/kinglerShiny.png new file mode 100755 index 00000000..f386df56 Binary files /dev/null and b/graphics/shiny/kinglerShiny.png differ diff --git a/graphics/shiny/krabbyShiny.png b/graphics/shiny/krabbyShiny.png new file mode 100644 index 00000000..db7b7d05 Binary files /dev/null and b/graphics/shiny/krabbyShiny.png differ diff --git a/graphics/shiny/kyogreShiny.png b/graphics/shiny/kyogreShiny.png new file mode 100644 index 00000000..a3cd31fe Binary files /dev/null and b/graphics/shiny/kyogreShiny.png differ diff --git a/graphics/shiny/lanturnShiny.png b/graphics/shiny/lanturnShiny.png new file mode 100644 index 00000000..a2bae4aa Binary files /dev/null and b/graphics/shiny/lanturnShiny.png differ diff --git a/graphics/shiny/laprasShiny.h b/graphics/shiny/laprasShiny.h deleted file mode 100644 index b6e63a2e..00000000 --- a/graphics/shiny/laprasShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(laprasShiny) - -//====================================================================== -// -// laprasShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_LAPRASSHINY_H -#define GRIT_LAPRASSHINY_H - -#define laprasShinyPalLen 32 -extern const unsigned short laprasShinyPal[16]; - -#endif // GRIT_LAPRASSHINY_H - -//}}BLOCK(laprasShiny) diff --git a/graphics/shiny/laprasShiny.png b/graphics/shiny/laprasShiny.png index 35fbad0b..948ab50f 100644 Binary files a/graphics/shiny/laprasShiny.png and b/graphics/shiny/laprasShiny.png differ diff --git a/graphics/shiny/latiasShiny.png b/graphics/shiny/latiasShiny.png new file mode 100755 index 00000000..0b3c68f2 Binary files /dev/null and b/graphics/shiny/latiasShiny.png differ diff --git a/graphics/shiny/latiosShiny.png b/graphics/shiny/latiosShiny.png new file mode 100755 index 00000000..3f1cd4e6 Binary files /dev/null and b/graphics/shiny/latiosShiny.png differ diff --git a/graphics/shiny/lickitungShiny.png b/graphics/shiny/lickitungShiny.png new file mode 100644 index 00000000..d0852e99 Binary files /dev/null and b/graphics/shiny/lickitungShiny.png differ diff --git a/graphics/shiny/linooneShiny.png b/graphics/shiny/linooneShiny.png new file mode 100644 index 00000000..0e95b370 Binary files /dev/null and b/graphics/shiny/linooneShiny.png differ diff --git a/graphics/shiny/lombreShiny.png b/graphics/shiny/lombreShiny.png new file mode 100644 index 00000000..12deed29 Binary files /dev/null and b/graphics/shiny/lombreShiny.png differ diff --git a/graphics/shiny/lotadShiny.png b/graphics/shiny/lotadShiny.png new file mode 100644 index 00000000..02c836ff Binary files /dev/null and b/graphics/shiny/lotadShiny.png differ diff --git a/graphics/shiny/ludicoloShiny.png b/graphics/shiny/ludicoloShiny.png new file mode 100644 index 00000000..58889e4b Binary files /dev/null and b/graphics/shiny/ludicoloShiny.png differ diff --git a/graphics/shiny/lugiaShiny.png b/graphics/shiny/lugiaShiny.png new file mode 100644 index 00000000..de02ec4d Binary files /dev/null and b/graphics/shiny/lugiaShiny.png differ diff --git a/graphics/shiny/luvdiscShiny.png b/graphics/shiny/luvdiscShiny.png new file mode 100644 index 00000000..e27711d5 Binary files /dev/null and b/graphics/shiny/luvdiscShiny.png differ diff --git a/graphics/shiny/makuhitaShiny.png b/graphics/shiny/makuhitaShiny.png new file mode 100644 index 00000000..ee56189b Binary files /dev/null and b/graphics/shiny/makuhitaShiny.png differ diff --git a/graphics/shiny/mantineShiny.png b/graphics/shiny/mantineShiny.png new file mode 100644 index 00000000..717d5eba Binary files /dev/null and b/graphics/shiny/mantineShiny.png differ diff --git a/graphics/shiny/marillShiny.png b/graphics/shiny/marillShiny.png new file mode 100644 index 00000000..d0ac9451 Binary files /dev/null and b/graphics/shiny/marillShiny.png differ diff --git a/graphics/shiny/marshtompShiny.png b/graphics/shiny/marshtompShiny.png new file mode 100644 index 00000000..b7f2161a Binary files /dev/null and b/graphics/shiny/marshtompShiny.png differ diff --git a/graphics/shiny/masquerainShiny.png b/graphics/shiny/masquerainShiny.png new file mode 100644 index 00000000..af76cf08 Binary files /dev/null and b/graphics/shiny/masquerainShiny.png differ diff --git a/graphics/shiny/mewShiny.png b/graphics/shiny/mewShiny.png new file mode 100644 index 00000000..66ef493e Binary files /dev/null and b/graphics/shiny/mewShiny.png differ diff --git a/graphics/shiny/miloticShiny.png b/graphics/shiny/miloticShiny.png new file mode 100644 index 00000000..ddf4860f Binary files /dev/null and b/graphics/shiny/miloticShiny.png differ diff --git a/graphics/shiny/miltankShiny.png b/graphics/shiny/miltankShiny.png new file mode 100644 index 00000000..709bf6b2 Binary files /dev/null and b/graphics/shiny/miltankShiny.png differ diff --git a/graphics/shiny/mudkipShiny.png b/graphics/shiny/mudkipShiny.png new file mode 100644 index 00000000..085924f6 Binary files /dev/null and b/graphics/shiny/mudkipShiny.png differ diff --git a/graphics/shiny/nidokingShiny.png b/graphics/shiny/nidokingShiny.png new file mode 100644 index 00000000..3fde2ca3 Binary files /dev/null and b/graphics/shiny/nidokingShiny.png differ diff --git a/graphics/shiny/nidoqueenShiny.png b/graphics/shiny/nidoqueenShiny.png new file mode 100644 index 00000000..d4aaff1e Binary files /dev/null and b/graphics/shiny/nidoqueenShiny.png differ diff --git a/graphics/shiny/octilleryShiny.png b/graphics/shiny/octilleryShiny.png new file mode 100644 index 00000000..d1acc790 Binary files /dev/null and b/graphics/shiny/octilleryShiny.png differ diff --git a/graphics/shiny/omanyteShiny.png b/graphics/shiny/omanyteShiny.png new file mode 100644 index 00000000..f56e1e4d Binary files /dev/null and b/graphics/shiny/omanyteShiny.png differ diff --git a/graphics/shiny/omastarShiny.png b/graphics/shiny/omastarShiny.png new file mode 100644 index 00000000..d6853c81 Binary files /dev/null and b/graphics/shiny/omastarShiny.png differ diff --git a/graphics/shiny/pelipperShiny.png b/graphics/shiny/pelipperShiny.png new file mode 100644 index 00000000..cb4290ca Binary files /dev/null and b/graphics/shiny/pelipperShiny.png differ diff --git a/graphics/shiny/pichuShiny.png b/graphics/shiny/pichuShiny.png new file mode 100755 index 00000000..be15daf0 Binary files /dev/null and b/graphics/shiny/pichuShiny.png differ diff --git a/graphics/shiny/pikachuShiny.png b/graphics/shiny/pikachuShiny.png new file mode 100755 index 00000000..f39c19ff Binary files /dev/null and b/graphics/shiny/pikachuShiny.png differ diff --git a/graphics/shiny/politoedShiny.png b/graphics/shiny/politoedShiny.png new file mode 100644 index 00000000..5a1e3ce9 Binary files /dev/null and b/graphics/shiny/politoedShiny.png differ diff --git a/graphics/shiny/poliwagShiny.png b/graphics/shiny/poliwagShiny.png new file mode 100644 index 00000000..0e934f85 Binary files /dev/null and b/graphics/shiny/poliwagShiny.png differ diff --git a/graphics/shiny/poliwhirlShiny.png b/graphics/shiny/poliwhirlShiny.png new file mode 100644 index 00000000..937799aa Binary files /dev/null and b/graphics/shiny/poliwhirlShiny.png differ diff --git a/graphics/shiny/poliwrathShiny.png b/graphics/shiny/poliwrathShiny.png new file mode 100644 index 00000000..e7482d6d Binary files /dev/null and b/graphics/shiny/poliwrathShiny.png differ diff --git a/graphics/shiny/psyduckShiny.h b/graphics/shiny/psyduckShiny.h deleted file mode 100644 index e02ac765..00000000 --- a/graphics/shiny/psyduckShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(psyduckShiny) - -//====================================================================== -// -// psyduckShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_PSYDUCKSHINY_H -#define GRIT_PSYDUCKSHINY_H - -#define psyduckShinyPalLen 32 -extern const unsigned short psyduckShinyPal[16]; - -#endif // GRIT_PSYDUCKSHINY_H - -//}}BLOCK(psyduckShiny) diff --git a/graphics/shiny/quagsireShiny.png b/graphics/shiny/quagsireShiny.png new file mode 100644 index 00000000..0da40e81 Binary files /dev/null and b/graphics/shiny/quagsireShiny.png differ diff --git a/graphics/shiny/qwilfishShiny.png b/graphics/shiny/qwilfishShiny.png new file mode 100644 index 00000000..7111be1d Binary files /dev/null and b/graphics/shiny/qwilfishShiny.png differ diff --git a/graphics/shiny/raichuShiny.png b/graphics/shiny/raichuShiny.png new file mode 100755 index 00000000..99c794f3 Binary files /dev/null and b/graphics/shiny/raichuShiny.png differ diff --git a/graphics/shiny/rayquazaShiny.png b/graphics/shiny/rayquazaShiny.png new file mode 100755 index 00000000..2ca83727 Binary files /dev/null and b/graphics/shiny/rayquazaShiny.png differ diff --git a/graphics/shiny/relicanthShiny.png b/graphics/shiny/relicanthShiny.png new file mode 100755 index 00000000..2961005a Binary files /dev/null and b/graphics/shiny/relicanthShiny.png differ diff --git a/graphics/shiny/remoraidShiny.png b/graphics/shiny/remoraidShiny.png new file mode 100644 index 00000000..eaa57068 Binary files /dev/null and b/graphics/shiny/remoraidShiny.png differ diff --git a/graphics/shiny/rhydonShiny.png b/graphics/shiny/rhydonShiny.png new file mode 100644 index 00000000..403095b2 Binary files /dev/null and b/graphics/shiny/rhydonShiny.png differ diff --git a/graphics/shiny/seadraShiny.png b/graphics/shiny/seadraShiny.png new file mode 100644 index 00000000..dfd0e5d6 Binary files /dev/null and b/graphics/shiny/seadraShiny.png differ diff --git a/graphics/shiny/seakingShiny.png b/graphics/shiny/seakingShiny.png new file mode 100644 index 00000000..13bb4f65 Binary files /dev/null and b/graphics/shiny/seakingShiny.png differ diff --git a/graphics/shiny/sealeoShiny.h b/graphics/shiny/sealeoShiny.h deleted file mode 100644 index 66dba849..00000000 --- a/graphics/shiny/sealeoShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(sealeoShiny) - -//====================================================================== -// -// sealeoShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SEALEOSHINY_H -#define GRIT_SEALEOSHINY_H - -#define sealeoShinyPalLen 32 -extern const unsigned short sealeoShinyPal[16]; - -#endif // GRIT_SEALEOSHINY_H - -//}}BLOCK(sealeoShiny) diff --git a/graphics/shiny/seelShiny.h b/graphics/shiny/seelShiny.h deleted file mode 100644 index c11161b1..00000000 --- a/graphics/shiny/seelShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(seelShiny) - -//====================================================================== -// -// seelShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SEELSHINY_H -#define GRIT_SEELSHINY_H - -#define seelShinyPalLen 32 -extern const unsigned short seelShinyPal[16]; - -#endif // GRIT_SEELSHINY_H - -//}}BLOCK(seelShiny) diff --git a/graphics/shiny/seelShiny.png b/graphics/shiny/seelShiny.png index bdaa21ce..a6e698be 100644 Binary files a/graphics/shiny/seelShiny.png and b/graphics/shiny/seelShiny.png differ diff --git a/graphics/shiny/sentretShiny.png b/graphics/shiny/sentretShiny.png new file mode 100644 index 00000000..03a041bd Binary files /dev/null and b/graphics/shiny/sentretShiny.png differ diff --git a/graphics/shiny/sharpedoShiny.png b/graphics/shiny/sharpedoShiny.png new file mode 100755 index 00000000..f4f3e81f Binary files /dev/null and b/graphics/shiny/sharpedoShiny.png differ diff --git a/graphics/shiny/shellderShiny.png b/graphics/shiny/shellderShiny.png new file mode 100644 index 00000000..43f6bd50 Binary files /dev/null and b/graphics/shiny/shellderShiny.png differ diff --git a/graphics/shiny/slowbroShiny.h b/graphics/shiny/slowbroShiny.h deleted file mode 100644 index d833754e..00000000 --- a/graphics/shiny/slowbroShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(slowbroShiny) - -//====================================================================== -// -// slowbroShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWBROSHINY_H -#define GRIT_SLOWBROSHINY_H - -#define slowbroShinyPalLen 32 -extern const unsigned short slowbroShinyPal[16]; - -#endif // GRIT_SLOWBROSHINY_H - -//}}BLOCK(slowbroShiny) diff --git a/graphics/shiny/slowkingShiny.h b/graphics/shiny/slowkingShiny.h deleted file mode 100644 index ea24a70a..00000000 --- a/graphics/shiny/slowkingShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(slowkingShiny) - -//====================================================================== -// -// slowkingShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWKINGSHINY_H -#define GRIT_SLOWKINGSHINY_H - -#define slowkingShinyPalLen 32 -extern const unsigned short slowkingShinyPal[16]; - -#endif // GRIT_SLOWKINGSHINY_H - -//}}BLOCK(slowkingShiny) diff --git a/graphics/shiny/slowpokeShiny.h b/graphics/shiny/slowpokeShiny.h deleted file mode 100644 index e34c74fe..00000000 --- a/graphics/shiny/slowpokeShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(slowpokeShiny) - -//====================================================================== -// -// slowpokeShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWPOKESHINY_H -#define GRIT_SLOWPOKESHINY_H - -#define slowpokeShinyPalLen 32 -extern const unsigned short slowpokeShinyPal[16]; - -#endif // GRIT_SLOWPOKESHINY_H - -//}}BLOCK(slowpokeShiny) diff --git a/graphics/shiny/sneaselShiny.png b/graphics/shiny/sneaselShiny.png new file mode 100644 index 00000000..f62a9a0f Binary files /dev/null and b/graphics/shiny/sneaselShiny.png differ diff --git a/graphics/shiny/snorlaxShiny.png b/graphics/shiny/snorlaxShiny.png new file mode 100644 index 00000000..92de169a Binary files /dev/null and b/graphics/shiny/snorlaxShiny.png differ diff --git a/graphics/shiny/sphealShiny.h b/graphics/shiny/sphealShiny.h deleted file mode 100644 index 66645582..00000000 --- a/graphics/shiny/sphealShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(sphealShiny) - -//====================================================================== -// -// sphealShiny, 32x192@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SPHEALSHINY_H -#define GRIT_SPHEALSHINY_H - -#define sphealShinyPalLen 32 -extern const unsigned short sphealShinyPal[16]; - -#endif // GRIT_SPHEALSHINY_H - -//}}BLOCK(sphealShiny) diff --git a/graphics/shiny/squirtleShiny.h b/graphics/shiny/squirtleShiny.h deleted file mode 100644 index ded0212f..00000000 --- a/graphics/shiny/squirtleShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(squirtleShiny) - -//====================================================================== -// -// squirtleShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SQUIRTLESHINY_H -#define GRIT_SQUIRTLESHINY_H - -#define squirtleShinyPalLen 32 -extern const unsigned short squirtleShinyPal[16]; - -#endif // GRIT_SQUIRTLESHINY_H - -//}}BLOCK(squirtleShiny) diff --git a/graphics/shiny/squirtleShiny.png b/graphics/shiny/squirtleShiny.png index 81890da5..8c448001 100644 Binary files a/graphics/shiny/squirtleShiny.png and b/graphics/shiny/squirtleShiny.png differ diff --git a/graphics/shiny/starmieShiny.h b/graphics/shiny/starmieShiny.h deleted file mode 100644 index aa47ad65..00000000 --- a/graphics/shiny/starmieShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(starmieShiny) - -//====================================================================== -// -// starmieShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_STARMIESHINY_H -#define GRIT_STARMIESHINY_H - -#define starmieShinyPalLen 32 -extern const unsigned short starmieShinyPal[16]; - -#endif // GRIT_STARMIESHINY_H - -//}}BLOCK(starmieShiny) diff --git a/graphics/shiny/starmieShiny.png b/graphics/shiny/starmieShiny.png index 92494023..586708a8 100644 Binary files a/graphics/shiny/starmieShiny.png and b/graphics/shiny/starmieShiny.png differ diff --git a/graphics/shiny/staryuShiny.h b/graphics/shiny/staryuShiny.h deleted file mode 100644 index 49545e75..00000000 --- a/graphics/shiny/staryuShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(staryuShiny) - -//====================================================================== -// -// staryuShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_STARYUSHINY_H -#define GRIT_STARYUSHINY_H - -#define staryuShinyPalLen 32 -extern const unsigned short staryuShinyPal[16]; - -#endif // GRIT_STARYUSHINY_H - -//}}BLOCK(staryuShiny) diff --git a/graphics/shiny/staryuShiny.png b/graphics/shiny/staryuShiny.png index 0fe583ab..2958806f 100644 Binary files a/graphics/shiny/staryuShiny.png and b/graphics/shiny/staryuShiny.png differ diff --git a/graphics/shiny/suicuneShiny.png b/graphics/shiny/suicuneShiny.png new file mode 100644 index 00000000..85b29ecc Binary files /dev/null and b/graphics/shiny/suicuneShiny.png differ diff --git a/graphics/shiny/surskitShiny.png b/graphics/shiny/surskitShiny.png new file mode 100644 index 00000000..843fbef8 Binary files /dev/null and b/graphics/shiny/surskitShiny.png differ diff --git a/graphics/shiny/swampertShiny.png b/graphics/shiny/swampertShiny.png new file mode 100644 index 00000000..524cec4a Binary files /dev/null and b/graphics/shiny/swampertShiny.png differ diff --git a/graphics/shiny/taurosShiny.png b/graphics/shiny/taurosShiny.png new file mode 100644 index 00000000..538fb8ff Binary files /dev/null and b/graphics/shiny/taurosShiny.png differ diff --git a/graphics/shiny/tentacoolShiny.h b/graphics/shiny/tentacoolShiny.h deleted file mode 100644 index e04f31c3..00000000 --- a/graphics/shiny/tentacoolShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(tentacoolShiny) - -//====================================================================== -// -// tentacoolShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_TENTACOOLSHINY_H -#define GRIT_TENTACOOLSHINY_H - -#define tentacoolShinyPalLen 32 -extern const unsigned short tentacoolShinyPal[16]; - -#endif // GRIT_TENTACOOLSHINY_H - -//}}BLOCK(tentacoolShiny) diff --git a/graphics/shiny/tentacoolShiny.png b/graphics/shiny/tentacoolShiny.png index 40d1be19..894cb1a9 100644 Binary files a/graphics/shiny/tentacoolShiny.png and b/graphics/shiny/tentacoolShiny.png differ diff --git a/graphics/shiny/tentacruelShiny.h b/graphics/shiny/tentacruelShiny.h deleted file mode 100644 index 0cce3f75..00000000 --- a/graphics/shiny/tentacruelShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(tentacruelShiny) - -//====================================================================== -// -// tentacruelShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_TENTACRUELSHINY_H -#define GRIT_TENTACRUELSHINY_H - -#define tentacruelShinyPalLen 32 -extern const unsigned short tentacruelShinyPal[16]; - -#endif // GRIT_TENTACRUELSHINY_H - -//}}BLOCK(tentacruelShiny) diff --git a/graphics/shiny/tentacruelShiny.png b/graphics/shiny/tentacruelShiny.png index da476ea2..3b4b8d15 100644 Binary files a/graphics/shiny/tentacruelShiny.png and b/graphics/shiny/tentacruelShiny.png differ diff --git a/graphics/shiny/totodileShiny.png b/graphics/shiny/totodileShiny.png new file mode 100644 index 00000000..2110ce08 Binary files /dev/null and b/graphics/shiny/totodileShiny.png differ diff --git a/graphics/shiny/tyranitarShiny.png b/graphics/shiny/tyranitarShiny.png new file mode 100644 index 00000000..f567e10e Binary files /dev/null and b/graphics/shiny/tyranitarShiny.png differ diff --git a/graphics/shiny/vaporeonShiny.h b/graphics/shiny/vaporeonShiny.h deleted file mode 100644 index df3d54cb..00000000 --- a/graphics/shiny/vaporeonShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(vaporeonShiny) - -//====================================================================== -// -// vaporeonShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_VAPOREONSHINY_H -#define GRIT_VAPOREONSHINY_H - -#define vaporeonShinyPalLen 32 -extern const unsigned short vaporeonShinyPal[16]; - -#endif // GRIT_VAPOREONSHINY_H - -//}}BLOCK(vaporeonShiny) diff --git a/graphics/shiny/vaporeonShiny.png b/graphics/shiny/vaporeonShiny.png index 2fdf82b1..c9611e7a 100644 Binary files a/graphics/shiny/vaporeonShiny.png and b/graphics/shiny/vaporeonShiny.png differ diff --git a/graphics/shiny/wailmerShiny.h b/graphics/shiny/wailmerShiny.h deleted file mode 100644 index 7890ca79..00000000 --- a/graphics/shiny/wailmerShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(wailmerShiny) - -//====================================================================== -// -// wailmerShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WAILMERSHINY_H -#define GRIT_WAILMERSHINY_H - -#define wailmerShinyPalLen 32 -extern const unsigned short wailmerShinyPal[16]; - -#endif // GRIT_WAILMERSHINY_H - -//}}BLOCK(wailmerShiny) diff --git a/graphics/shiny/wailmerShiny.png b/graphics/shiny/wailmerShiny.png index 47e052ef..90995f5f 100644 Binary files a/graphics/shiny/wailmerShiny.png and b/graphics/shiny/wailmerShiny.png differ diff --git a/graphics/shiny/wailordShiny.png b/graphics/shiny/wailordShiny.png new file mode 100755 index 00000000..11616967 Binary files /dev/null and b/graphics/shiny/wailordShiny.png differ diff --git a/graphics/shiny/walreinShiny.h b/graphics/shiny/walreinShiny.h deleted file mode 100644 index 0fd39357..00000000 --- a/graphics/shiny/walreinShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(walreinShiny) - -//====================================================================== -// -// walreinShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WALREINSHINY_H -#define GRIT_WALREINSHINY_H - -#define walreinShinyPalLen 32 -extern const unsigned short walreinShinyPal[16]; - -#endif // GRIT_WALREINSHINY_H - -//}}BLOCK(walreinShiny) diff --git a/graphics/shiny/wartortleShiny.h b/graphics/shiny/wartortleShiny.h deleted file mode 100644 index 35a694ed..00000000 --- a/graphics/shiny/wartortleShiny.h +++ /dev/null @@ -1,24 +0,0 @@ - -//{{BLOCK(wartortleShiny) - -//====================================================================== -// -// wartortleShiny, 32x384@4, -// + palette 16 entries, not compressed -// Total size: 32 = 32 -// -// Time-stamp: 2019-09-29, 11:54:52 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WARTORTLESHINY_H -#define GRIT_WARTORTLESHINY_H - -#define wartortleShinyPalLen 32 -extern const unsigned short wartortleShinyPal[16]; - -#endif // GRIT_WARTORTLESHINY_H - -//}}BLOCK(wartortleShiny) diff --git a/graphics/shiny/wartortleShiny.png b/graphics/shiny/wartortleShiny.png index 8ba6ae50..f7619249 100644 Binary files a/graphics/shiny/wartortleShiny.png and b/graphics/shiny/wartortleShiny.png differ diff --git a/graphics/shiny/whiscashShiny.png b/graphics/shiny/whiscashShiny.png new file mode 100755 index 00000000..55311104 Binary files /dev/null and b/graphics/shiny/whiscashShiny.png differ diff --git a/graphics/shiny/wooperShiny.png b/graphics/shiny/wooperShiny.png new file mode 100644 index 00000000..38e3d823 Binary files /dev/null and b/graphics/shiny/wooperShiny.png differ diff --git a/graphics/shiny/zangooseShiny.png b/graphics/shiny/zangooseShiny.png new file mode 100644 index 00000000..2e843fed Binary files /dev/null and b/graphics/shiny/zangooseShiny.png differ diff --git a/graphics/shiny/zigzagoonShiny.png b/graphics/shiny/zigzagoonShiny.png new file mode 100644 index 00000000..d9cea93a Binary files /dev/null and b/graphics/shiny/zigzagoonShiny.png differ diff --git a/graphics/slowbro.h b/graphics/slowbro.h deleted file mode 100644 index bb2d74e7..00000000 --- a/graphics/slowbro.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(slowbro) - -//====================================================================== -// -// slowbro, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWBRO_H -#define GRIT_SLOWBRO_H - -#define slowbroTilesLen 6144 -extern const unsigned char slowbroTiles[6144]; - -#define slowbroPalLen 32 -extern const unsigned short slowbroPal[16]; - -#endif // GRIT_SLOWBRO_H - -//}}BLOCK(slowbro) diff --git a/graphics/slowking.h b/graphics/slowking.h deleted file mode 100644 index 80e32fee..00000000 --- a/graphics/slowking.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(slowking) - -//====================================================================== -// -// slowking, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWKING_H -#define GRIT_SLOWKING_H - -#define slowkingTilesLen 6144 -extern const unsigned char slowkingTiles[6144]; - -#define slowkingPalLen 32 -extern const unsigned short slowkingPal[16]; - -#endif // GRIT_SLOWKING_H - -//}}BLOCK(slowking) diff --git a/graphics/slowpoke.h b/graphics/slowpoke.h deleted file mode 100644 index a3de4f4d..00000000 --- a/graphics/slowpoke.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(slowpoke) - -//====================================================================== -// -// slowpoke, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SLOWPOKE_H -#define GRIT_SLOWPOKE_H - -#define slowpokeTilesLen 6144 -extern const unsigned char slowpokeTiles[6144]; - -#define slowpokePalLen 32 -extern const unsigned short slowpokePal[16]; - -#endif // GRIT_SLOWPOKE_H - -//}}BLOCK(slowpoke) diff --git a/graphics/sneasel.png b/graphics/sneasel.png new file mode 100644 index 00000000..839b5885 Binary files /dev/null and b/graphics/sneasel.png differ diff --git a/graphics/snorlax.png b/graphics/snorlax.png new file mode 100644 index 00000000..6f71f108 Binary files /dev/null and b/graphics/snorlax.png differ diff --git a/graphics/spheal.h b/graphics/spheal.h deleted file mode 100644 index 65ac5d75..00000000 --- a/graphics/spheal.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(spheal) - -//====================================================================== -// -// spheal, 32x192@4, -// + palette 16 entries, not compressed -// + 96 tiles not compressed -// Total size: 32 + 3072 = 3104 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SPHEAL_H -#define GRIT_SPHEAL_H - -#define sphealTilesLen 3072 -extern const unsigned char sphealTiles[3072]; - -#define sphealPalLen 32 -extern const unsigned short sphealPal[16]; - -#endif // GRIT_SPHEAL_H - -//}}BLOCK(spheal) diff --git a/graphics/squirtle.h b/graphics/squirtle.h deleted file mode 100644 index 2a72bd18..00000000 --- a/graphics/squirtle.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(squirtle) - -//====================================================================== -// -// squirtle, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_SQUIRTLE_H -#define GRIT_SQUIRTLE_H - -#define squirtleTilesLen 6144 -extern const unsigned char squirtleTiles[6144]; - -#define squirtlePalLen 32 -extern const unsigned short squirtlePal[16]; - -#endif // GRIT_SQUIRTLE_H - -//}}BLOCK(squirtle) diff --git a/graphics/squirtle.png b/graphics/squirtle.png index 7798225b..a9777be4 100644 Binary files a/graphics/squirtle.png and b/graphics/squirtle.png differ diff --git a/graphics/starmie.h b/graphics/starmie.h deleted file mode 100644 index af96390e..00000000 --- a/graphics/starmie.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(starmie) - -//====================================================================== -// -// starmie, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_STARMIE_H -#define GRIT_STARMIE_H - -#define starmieTilesLen 6144 -extern const unsigned char starmieTiles[6144]; - -#define starmiePalLen 32 -extern const unsigned short starmiePal[16]; - -#endif // GRIT_STARMIE_H - -//}}BLOCK(starmie) diff --git a/graphics/staryu.h b/graphics/staryu.h deleted file mode 100644 index e36bbb79..00000000 --- a/graphics/staryu.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(staryu) - -//====================================================================== -// -// staryu, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_STARYU_H -#define GRIT_STARYU_H - -#define staryuTilesLen 6144 -extern const unsigned char staryuTiles[6144]; - -#define staryuPalLen 32 -extern const unsigned short staryuPal[16]; - -#endif // GRIT_STARYU_H - -//}}BLOCK(staryu) diff --git a/graphics/suicune.png b/graphics/suicune.png new file mode 100644 index 00000000..f1c5df09 Binary files /dev/null and b/graphics/suicune.png differ diff --git a/graphics/surskit.png b/graphics/surskit.png new file mode 100644 index 00000000..48a5c30a Binary files /dev/null and b/graphics/surskit.png differ diff --git a/graphics/swampert.png b/graphics/swampert.png new file mode 100644 index 00000000..5add53e5 Binary files /dev/null and b/graphics/swampert.png differ diff --git a/graphics/tauros.png b/graphics/tauros.png new file mode 100644 index 00000000..57037243 Binary files /dev/null and b/graphics/tauros.png differ diff --git a/graphics/tentacool.h b/graphics/tentacool.h deleted file mode 100644 index 8249aace..00000000 --- a/graphics/tentacool.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(tentacool) - -//====================================================================== -// -// tentacool, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_TENTACOOL_H -#define GRIT_TENTACOOL_H - -#define tentacoolTilesLen 6144 -extern const unsigned char tentacoolTiles[6144]; - -#define tentacoolPalLen 32 -extern const unsigned short tentacoolPal[16]; - -#endif // GRIT_TENTACOOL_H - -//}}BLOCK(tentacool) diff --git a/graphics/tentacool.png b/graphics/tentacool.png index 7387ffbb..a7f6cc3f 100644 Binary files a/graphics/tentacool.png and b/graphics/tentacool.png differ diff --git a/graphics/tentacruel.h b/graphics/tentacruel.h deleted file mode 100644 index b5c41e26..00000000 --- a/graphics/tentacruel.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(tentacruel) - -//====================================================================== -// -// tentacruel, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_TENTACRUEL_H -#define GRIT_TENTACRUEL_H - -#define tentacruelTilesLen 6144 -extern const unsigned char tentacruelTiles[6144]; - -#define tentacruelPalLen 32 -extern const unsigned short tentacruelPal[16]; - -#endif // GRIT_TENTACRUEL_H - -//}}BLOCK(tentacruel) diff --git a/graphics/tentacruel.png b/graphics/tentacruel.png index 08eb5df2..e885a3c0 100644 Binary files a/graphics/tentacruel.png and b/graphics/tentacruel.png differ diff --git a/graphics/totodile.png b/graphics/totodile.png new file mode 100644 index 00000000..2c846cec Binary files /dev/null and b/graphics/totodile.png differ diff --git a/graphics/tyranitar.png b/graphics/tyranitar.png new file mode 100644 index 00000000..1ec168ba Binary files /dev/null and b/graphics/tyranitar.png differ diff --git a/graphics/vaporeon.h b/graphics/vaporeon.h deleted file mode 100644 index de7f841a..00000000 --- a/graphics/vaporeon.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(vaporeon) - -//====================================================================== -// -// vaporeon, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_VAPOREON_H -#define GRIT_VAPOREON_H - -#define vaporeonTilesLen 6144 -extern const unsigned char vaporeonTiles[6144]; - -#define vaporeonPalLen 32 -extern const unsigned short vaporeonPal[16]; - -#endif // GRIT_VAPOREON_H - -//}}BLOCK(vaporeon) diff --git a/graphics/vaporeon.png b/graphics/vaporeon.png index 0f9c3535..f165a421 100644 Binary files a/graphics/vaporeon.png and b/graphics/vaporeon.png differ diff --git a/graphics/wailmer.h b/graphics/wailmer.h deleted file mode 100644 index 723f9f8e..00000000 --- a/graphics/wailmer.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(wailmer) - -//====================================================================== -// -// wailmer, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WAILMER_H -#define GRIT_WAILMER_H - -#define wailmerTilesLen 6144 -extern const unsigned char wailmerTiles[6144]; - -#define wailmerPalLen 32 -extern const unsigned short wailmerPal[16]; - -#endif // GRIT_WAILMER_H - -//}}BLOCK(wailmer) diff --git a/graphics/wailmer.png b/graphics/wailmer.png index b09b3c00..468f088f 100644 Binary files a/graphics/wailmer.png and b/graphics/wailmer.png differ diff --git a/graphics/wailord.png b/graphics/wailord.png new file mode 100755 index 00000000..76fb4906 Binary files /dev/null and b/graphics/wailord.png differ diff --git a/graphics/walrein.h b/graphics/walrein.h deleted file mode 100644 index f42af4d0..00000000 --- a/graphics/walrein.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(walrein) - -//====================================================================== -// -// walrein, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WALREIN_H -#define GRIT_WALREIN_H - -#define walreinTilesLen 6144 -extern const unsigned char walreinTiles[6144]; - -#define walreinPalLen 32 -extern const unsigned short walreinPal[16]; - -#endif // GRIT_WALREIN_H - -//}}BLOCK(walrein) diff --git a/graphics/wartortle.h b/graphics/wartortle.h deleted file mode 100644 index 94bc594c..00000000 --- a/graphics/wartortle.h +++ /dev/null @@ -1,28 +0,0 @@ - -//{{BLOCK(wartortle) - -//====================================================================== -// -// wartortle, 32x384@4, -// + palette 16 entries, not compressed -// + 192 tiles not compressed -// Total size: 32 + 6144 = 6176 -// -// Time-stamp: 2019-09-29, 11:54:51 -// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 -// ( http://www.coranac.com/projects/#grit ) -// -//====================================================================== - -#ifndef GRIT_WARTORTLE_H -#define GRIT_WARTORTLE_H - -#define wartortleTilesLen 6144 -extern const unsigned char wartortleTiles[6144]; - -#define wartortlePalLen 32 -extern const unsigned short wartortlePal[16]; - -#endif // GRIT_WARTORTLE_H - -//}}BLOCK(wartortle) diff --git a/graphics/wartortle.png b/graphics/wartortle.png index 382ac8a3..ddc14041 100644 Binary files a/graphics/wartortle.png and b/graphics/wartortle.png differ diff --git a/graphics/whiscash.png b/graphics/whiscash.png new file mode 100755 index 00000000..8bfbea41 Binary files /dev/null and b/graphics/whiscash.png differ diff --git a/graphics/wooper.png b/graphics/wooper.png new file mode 100644 index 00000000..4827d7c0 Binary files /dev/null and b/graphics/wooper.png differ diff --git a/graphics/zangoose.png b/graphics/zangoose.png new file mode 100644 index 00000000..a8a4c034 Binary files /dev/null and b/graphics/zangoose.png differ diff --git a/graphics/zigzagoon.png b/graphics/zigzagoon.png new file mode 100644 index 00000000..8632980a Binary files /dev/null and b/graphics/zigzagoon.png differ diff --git a/history.png b/history.png new file mode 100644 index 00000000..726ecc1f Binary files /dev/null and b/history.png differ diff --git a/kingler.gif b/kingler.gif new file mode 100755 index 00000000..ce6cd4b5 Binary files /dev/null and b/kingler.gif differ diff --git a/old-graphics/doesntsurf/lairon.png b/old-graphics/doesntsurf/lairon.png new file mode 100644 index 00000000..cfc47600 Binary files /dev/null and b/old-graphics/doesntsurf/lairon.png differ diff --git a/old-graphics/kingler.png b/old-graphics/kingler.png new file mode 100644 index 00000000..c7dd472b Binary files /dev/null and b/old-graphics/kingler.png differ diff --git a/old-graphics/kinglerShiny.png b/old-graphics/kinglerShiny.png new file mode 100644 index 00000000..bcf3baea Binary files /dev/null and b/old-graphics/kinglerShiny.png differ diff --git a/old-graphics/nidoqueenShiny.png b/old-graphics/nidoqueenShiny.png new file mode 100644 index 00000000..425ce237 Binary files /dev/null and b/old-graphics/nidoqueenShiny.png differ diff --git a/old-graphics/pikachu.png b/old-graphics/pikachu.png new file mode 100644 index 00000000..e4e3cd78 Binary files /dev/null and b/old-graphics/pikachu.png differ diff --git a/old-graphics/snorlax.png b/old-graphics/snorlax.png new file mode 100644 index 00000000..e0469d82 Binary files /dev/null and b/old-graphics/snorlax.png differ diff --git a/old-graphics/snorlaxShiny.png b/old-graphics/snorlaxShiny.png new file mode 100644 index 00000000..7d789113 Binary files /dev/null and b/old-graphics/snorlaxShiny.png differ diff --git a/scripts/aseprite/canvasResizeFrom32to64.lua b/scripts/aseprite/canvasResizeFrom32to64.lua new file mode 100644 index 00000000..9022663c --- /dev/null +++ b/scripts/aseprite/canvasResizeFrom32to64.lua @@ -0,0 +1,52 @@ +-- Generated by ChatGPt 4o +-- Jordank (jmynes) +-- +-- This script takes a sprite with 32x32px frames, and centers it in 64x64px frames, without resizing the sprites + +local spr = app.activeSprite +if not spr then + app.alert("There is no active sprite.") + return +end + +local originalFrameSize = 32 +local newFrameSize = 64 + +-- Calculate the new canvas dimensions based on the number of columns and rows in the original sprite +local columns = math.floor(spr.width / originalFrameSize) +local rows = math.floor(spr.height / originalFrameSize) +local newWidth = columns * newFrameSize +local newHeight = rows * newFrameSize + +-- Create a new sprite with the new dimensions and the same color mode as the original +local newSprite = Sprite(newWidth, newHeight, spr.colorMode) + +-- Limit the palette to the exact number of colors in the original palette +local originalPalette = spr.palettes[1] +newSprite:setPalette(originalPalette) + +-- Copy each 32x32 region from the original sprite and draw it into the center of each 64x64 cell in the new sprite +for row = 0, rows - 1 do + for col = 0, columns - 1 do + local x = col * originalFrameSize + local y = row * originalFrameSize + local newX = col * newFrameSize + (newFrameSize - originalFrameSize) / 2 + local newY = row * newFrameSize + (newFrameSize - originalFrameSize) / 2 + + -- Define the region to copy from the original sprite + local region = Image(originalFrameSize, originalFrameSize, spr.colorMode) + region:drawSprite(spr, 1, -x, -y) -- Draw the specific 32x32 section from original + + -- Use drawPixels to place the region in the center of the new 64x64 cell + for px = 0, originalFrameSize - 1 do + for py = 0, originalFrameSize - 1 do + local color = region:getPixel(px, py) + newSprite.cels[1].image:putPixel(newX + px, newY + py, color) + end + end + end +end + +app.activeSprite = newSprite +app.refresh() + diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 00000000..b6f1add4 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,7 @@ +echo "Running clean" +python3 scripts/clean.py all +echo "Sleeping 3 seconds" +sleep 3 +echo "Running make" +python3 scripts/make.py +echo "Sleeping 1 seconds" diff --git a/scripts/sprites_converter/README.md b/scripts/sprites_converter/README.md new file mode 100644 index 00000000..d680f0b5 --- /dev/null +++ b/scripts/sprites_converter/README.md @@ -0,0 +1,36 @@ +# SpriteSheet Converter + +This Python script converts spritesheets by rearranging frames according to a selected conversion strategy and frame size. It supports multiple conversion layouts, such as inverting frames vertically, converting a vertical spritesheet to a horizontal layout, and vice versa. The tool can be run in both interactive mode and via command-line arguments. + +## Features + +- **Interactive Mode:** + Displays a menu that allows you to choose the conversion strategy and toggle between 32×32px and 64×64px frames. + +- **Command-Line Arguments:** + Run the script non-interactively by specifying the conversion strategy and frame size in any order. + For example: + - `python3 convert.py invert 64` + - `python3 convert.py 64 h2v` + - `python3 convert.py v2h` + +- **Multiple Conversion Layouts:** + - **Invert Frames [Vertical]:** Inverts pairs of frames vertically. + - **Vertical to Horizontal Layout:** Converts a vertically arranged spritesheet into a horizontal layout. + - **Horizontal to Vertical Layout:** Converts a horizontally arranged spritesheet into a vertical layout. + +- **ANSI Color Output:** + Uses ANSI escape codes for colored and formatted console output during conversion. + +- **Recursive Directory Handling:** + Processes all spritesheet files within the `convert_sprites` directory (including subdirectories) and outputs converted spritesheets into an `exported_sprites` directory. + +## Prerequisites + +- **Python 3.x** + +- **Pillow:** + The Python Imaging Library fork is required for image manipulation. Install it via pip: + + ```bash + pip install pillow diff --git a/scripts/sprites_converter/convert.py b/scripts/sprites_converter/convert.py new file mode 100644 index 00000000..10dcc3a1 --- /dev/null +++ b/scripts/sprites_converter/convert.py @@ -0,0 +1,282 @@ +import os +from PIL import Image + +# Flags settings (formerly in flags.txt: "32 before after") +FRAME_SIZE = 32 +ORIGINAL_FORMAT = "before" +TARGET_FORMAT = "after" + +class SpriteSheet: + def __init__(self, path: str, Format: list, frame_size: int): + img = Image.open(path).convert("P") + self.image = img + self.frame_size = frame_size + self.Format = Format + self.width, self.height = img.size + self.frames = self.getFrames() + + def convert(self, newFormat: list): + newImage = Image.new( + mode="P", + size=(len(newFormat[0]) * self.frame_size, len(newFormat) * self.frame_size) + ) + newImage.putpalette(self.image.getpalette()) + row_size = len(newFormat) + column_size = len(newFormat[0]) + for row in range(row_size): + for column in range(column_size): + left = self.frame_size * column + upper = self.frame_size * row + right = left + self.frame_size + lower = upper + self.frame_size + newImage.paste(self.frames[newFormat[row][column]], (left, upper, right, lower)) + self.image = newImage + + def getFrames(self) -> dict: + frames = dict() + row_size = len(self.Format) + column_size = len(self.Format[0]) + for row in range(row_size): + for column in range(column_size): + left = self.frame_size * column + upper = self.frame_size * row + right = left + self.frame_size + lower = upper + self.frame_size + frames[self.Format[row][column]] = self.image.crop((left, upper, right, lower)) + return frames + +color__ = lambda rgb: f"\033[38;2;{rgb[0]};{rgb[1]};{rgb[2]}m" +__color = "\033[39m" + +bgcolor__ = lambda rgb: f"\033[48;2;{rgb[0]};{rgb[1]};{rgb[2]}m" +__bgcolor = "\033[49m" + +underline__ = "\033[4m" +__underline = "\033[24m" + +bold__ = "\033[1m" +__bold = "\033[22m" + +italic__ = "\033[3m" +__italic = "\033[23m" + +default = "\033[0m" + +# Layout definitions with metadata +invertVerticalLayout = { + "label": "Invert Vertical Frames", + "help_text": "This strategy inverts each pair of frames in a vertical spritesheet.", + "arg": "invert", + "strategy": { + "before": [ + [1], + [0], + [3], + [2], + [5], + [4], + [7], + [6], + [9], + [8], + [11], + [10] + ], + "after": [ + [0], + [1], + [2], + [3], + [4], + [5], + [6], + [7], + [8], + [9], + [10], + [11] + ] + } +} + +v2hLayout = { + "label": "Vertical to Horizontal", + "help_text": "This strategy converts a vertically arranged spritesheet into a horizontal layout.", + "arg": "v2h", + "strategy": { + "before": [ + [0], + [1], + [2], + [3], + [4], + [5], + [6], + [7], + [8], + [9], + [10], + [11] + ], + "after": [ + [0, 1, 2, 3, 4, 5], + [6, 7, 8, 9, 10, 11] + ] + } +} + +h2vLayout = { + "label": "Horizontal to Vertical", + "help_text": "This strategy converts a horizontally arranged spritesheet into a vertical layout.", + "arg": "h2v", + "strategy": { + "before": [ + [0, 1, 2, 3, 4, 5], + [6, 7, 8, 9, 10, 11] + ], + "after": [ + [0], + [1], + [2], + [3], + [4], + [5], + [6], + [7], + [8], + [9], + [10], + [11] + ] + } +} + +# List of all layouts +layouts = [invertVerticalLayout, v2hLayout, h2vLayout] + +def display_main_menu(frame_size: int) -> None: + """Prints the main conversion menu with layout descriptions.""" + print(f"Choose conversion method [{frame_size}x{frame_size}px frames]:") + for i, layout in enumerate(layouts, start=1): + print(f"{i}. {layout['label']} [{layout['arg']}]") + # The last menu option toggles the frame size. + toggle_option = len(layouts) + 1 + if frame_size == 32: + print(f"{toggle_option}. Switch to 64x64px frames") + else: + print(f"{toggle_option}. Switch to 32x32px frames") + print("\nEnter option, 'h' for help, or 'q' to exit:", end=" ") + +def display_help_menu() -> None: + """Prints the help menu to choose a conversion schema.""" + print("Which conversion type would you like to see the schema of?") + for i, layout in enumerate(layouts, start=1): + print(f"{i}. {layout['label']}") + print("\nEnter option:", end=" ") + +def display_schema(layout: dict) -> None: + """Prints out the conversion schema for a given layout.""" + print(f"\n{layout['label']}:") + print(layout['help_text']) + print("\nBefore:") + for row in layout["strategy"]["before"]: + print(row, end=",\n") + print("\nAfter:") + for row in layout["strategy"]["after"]: + print(row, end=",\n") + print() + +def handle_help() -> None: + """Handles help requests by displaying the appropriate schema.""" + display_help_menu() + help_choice = input().strip() + print("\n############################################") + try: + index = int(help_choice) - 1 + if 0 <= index < len(layouts): + display_schema(layouts[index]) + print("############################################\n") + else: + print("Invalid help option.\n") + except ValueError: + print("Invalid help option.\n") + +def main(): + # --- Command-line Argument Handling --- + # If arguments are provided, they can include the conversion strategy + # ("invert", "v2h", or "h2v") and/or a frame size (an integer). + # They can be provided in any order. + args = os.sys.argv[1:] + conversion_mode = None + current_frame_size = FRAME_SIZE # Default frame size: 32 + + if args: + for arg in args: + arg_lower = arg.lower() + if arg_lower in [layout["arg"] for layout in layouts]: + conversion_mode = arg_lower + else: + try: + current_frame_size = int(arg) + except ValueError: + pass # Ignore any argument that isn't a known strategy or an integer + if conversion_mode is None: + conversion_mode = invertVerticalLayout["arg"] + else: + # --- Interactive Mode --- + while True: + display_main_menu(current_frame_size) + choice = input().strip() + print() + if choice.lower() == "q": + exit(0) + if choice.lower() == "h": + handle_help() + continue + try: + choice_num = int(choice) + except ValueError: + continue + # If user selects the last option for switching frame size: + if choice_num == len(layouts) + 1: + current_frame_size = 64 if current_frame_size == 32 else 32 + continue + # If a valid layout option is chosen: + if 1 <= choice_num <= len(layouts): + conversion_mode = layouts[choice_num - 1]["arg"] + break + # End interactive mode + # --- End CLI handling --- + + # Choose the layout based on conversion_mode + chosen_layout = None + for layout in layouts: + if layout["arg"] == conversion_mode: + chosen_layout = layout + break + if chosen_layout is None: + chosen_layout = invertVerticalLayout + + # Ensure the top-level exported_sprites directory exists. + export_dir = os.path.abspath("convert_sprites").replace("convert_sprites", "exported_sprites") + if not os.path.exists(export_dir): + os.mkdir(export_dir) + + for path, dirs, files in os.walk(os.path.abspath("convert_sprites")): + # Create directories in exported_sprites as needed + for dir in dirs: + out_dir = os.path.join(path, dir).replace("convert_sprites", "exported_sprites") + if not os.path.isdir(out_dir): + os.mkdir(out_dir) + for file in files: + # Use the 'before' mapping for reading and the 'after' mapping for conversion. + sheet_before = chosen_layout["strategy"][ORIGINAL_FORMAT] + sheet_after = chosen_layout["strategy"][TARGET_FORMAT] + spritesheet = SpriteSheet(os.path.join(path, file), sheet_before, int(current_frame_size)) + spritesheet.convert(sheet_after) + print(bold__ + f"{color__((23,23,234))}Converting{__color}", file + __bold + "...", end=" ") + spritesheet.image.save(os.path.join(path, file).replace("convert_sprites", "exported_sprites")) + print("done") + +if __name__ == "__main__": + main() diff --git a/scripts/sprites_converter/convert_sprites/aggron.png b/scripts/sprites_converter/convert_sprites/aggron.png new file mode 100644 index 00000000..e27cedec Binary files /dev/null and b/scripts/sprites_converter/convert_sprites/aggron.png differ diff --git a/scripts/sprites_converter/exported_sprites/aggron.png b/scripts/sprites_converter/exported_sprites/aggron.png new file mode 100644 index 00000000..3c040b32 Binary files /dev/null and b/scripts/sprites_converter/exported_sprites/aggron.png differ diff --git a/orgLocs.asm b/special_inserts.asm similarity index 100% rename from orgLocs.asm rename to special_inserts.asm diff --git a/src/defines.h b/src/defines.h index 0a469139..234185f7 100644 --- a/src/defines.h +++ b/src/defines.h @@ -64,8 +64,8 @@ {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} #define AFFINEANIMCMD_JUMP(_target) \ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} - #define gEventObjectBaseOam_32x32 ((struct OamData*) 0x83A3718) +#define gObjectEventBaseOam_64x64 ((struct OamData*) 0x83A3720) #define gSurfablePokemonAnimTable ((const union AnimCmd* const*) 0x83A555C) #define gDummySpriteAffineAnimTable (const union AffineAnimCmd* const*) 0x8231CFC #define sDefaultSurfBlob ((const struct SpriteTemplate*) 0x83A556C) @@ -77,3 +77,87 @@ #define PalTypeReflection 4 #define PalTypeOther 5 +// New Animation Data for separate East/West facing frames +extern const union AnimCmd sSurfBlobAnim_FaceSouth[]; +extern const union AnimCmd sSurfBlobAnim_FaceNorth[]; +extern const union AnimCmd sSurfBlobAnim_FaceWest[]; +static const union AnimCmd SurfMonAnim_FaceEast[] = +{ + ANIMCMD_FRAME(6, 48), + ANIMCMD_FRAME(7, 48), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const gSurfablePokemonAnimTable2[] = +{ + sSurfBlobAnim_FaceSouth, + sSurfBlobAnim_FaceNorth, + sSurfBlobAnim_FaceWest, + SurfMonAnim_FaceEast, +}; + + +// New Animation data for smoother animation (4 frames per direction) + +static const union AnimCmd SurfMonSmootherAnim_FaceSouth[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 24), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(3, 24), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd SurfMonSmootherAnim_FaceNorth[] = +{ + ANIMCMD_FRAME(4, 24), + ANIMCMD_FRAME(5, 24), + ANIMCMD_FRAME(6, 24), + ANIMCMD_FRAME(7, 24), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd SurfMonSmootherAnim_FaceWest[] = +{ + ANIMCMD_FRAME(8, 24), + ANIMCMD_FRAME(9, 24), + ANIMCMD_FRAME(10, 24), + ANIMCMD_FRAME(11, 24), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd SurfMonSmootherAnim_FaceEast[] = +{ + ANIMCMD_FRAME(8, 24, .hFlip = TRUE), + ANIMCMD_FRAME(9, 24, .hFlip = TRUE), + ANIMCMD_FRAME(10, 24, .hFlip = TRUE), + ANIMCMD_FRAME(11, 24, .hFlip = TRUE), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSurfablePokemonAnimTable3[] = +{ + SurfMonSmootherAnim_FaceSouth, + SurfMonSmootherAnim_FaceNorth, + SurfMonSmootherAnim_FaceWest, + SurfMonSmootherAnim_FaceEast, +}; + +// Four frame animation with separate east and west facing frames + +static const union AnimCmd SurfMonSmootherAnim_FaceEastUnique[] = +{ + ANIMCMD_FRAME(12, 24), + ANIMCMD_FRAME(13, 24), + ANIMCMD_FRAME(14, 24), + ANIMCMD_FRAME(15, 24), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSurfablePokemonAnimTable4[] = +{ + SurfMonSmootherAnim_FaceSouth, + SurfMonSmootherAnim_FaceNorth, + SurfMonSmootherAnim_FaceWest, + SurfMonSmootherAnim_FaceEastUnique, +}; \ No newline at end of file diff --git a/src/pal_tags.h b/src/pal_tags.h index 905f8b1c..702181fb 100644 --- a/src/pal_tags.h +++ b/src/pal_tags.h @@ -4,10 +4,13 @@ you only need one pal tag based on the way they are now loaded. If you want more, uncomment out UNIQUE_TAGS in config.h and assign each to the species in gSurfablePokemon */ #ifdef UNIQUE_TAGS -enum { - PAL_TAG_SQUIRTLE_SURF = 0x3001, - PAL_TAG_WARTORTLE_SURF, +enum +{ + PAL_TAG_SQUIRTLE_SURF = 0x3001, + PAL_TAG_WARTORTLE_SURF, PAL_TAG_BLASTOISE_SURF, + PAL_TAG_PIKACHU_SURF, + PAL_TAG_RAICHU_SURF, PAL_TAG_NIDOQUEEN_SURF, PAL_TAG_NIDOKING_SURF, PAL_TAG_PSYDUCK_SURF, @@ -47,12 +50,13 @@ enum { PAL_TAG_DRAGONAIR_SURF, PAL_TAG_DRAGONITE_SURF, PAL_TAG_MEW_SURF, -// Gen II Pokemon + // Gen II Pokemon PAL_TAG_TOTODILE_SURF, PAL_TAG_CROCONAW_SURF, PAL_TAG_FERALIGATR_SURF, PAL_TAG_SENTRET_SURF, PAL_TAG_FURRET_SURF, + PAL_TAG_PICHU_SURF, PAL_TAG_CHINCHOU_SURF, PAL_TAG_LANTURN_SURF, PAL_TAG_MARILL_SURF, @@ -72,7 +76,7 @@ enum { PAL_TAG_SUICUNE_SURF, PAL_TAG_TYRANITAR_SURF, PAL_TAG_LUGIA_SURF, -// Gen III Pokemon + // Gen III Pokemon PAL_TAG_MUDKIP_SURF, PAL_TAG_MARSHTOMP_SURF, PAL_TAG_SWAMPERT_SURF, @@ -91,6 +95,7 @@ enum { PAL_TAG_SHARPEDO_SURF, PAL_TAG_WAILMER_SURF, PAL_TAG_WAILORD_SURF, + PAL_TAG_ZANGOOSE_SURF, PAL_TAG_BARBOACH_SURF, PAL_TAG_WHISCASH_SURF, PAL_TAG_CORPHISH_SURF, diff --git a/src/surf_mons.h b/src/surf_mons.h old mode 100644 new mode 100755 index 9cceb62a..eaad6aef --- a/src/surf_mons.h +++ b/src/surf_mons.h @@ -9,14 +9,28 @@ #include "../include/gba/types.h" #include "../include/fieldmap.h" - #define PAL_TAG_SURF_BLOB 0x1100 #define PAL_TAG_SURF_NEW 0x3001 #define NO_OVERLAY {0, 0, NULL, NULL, NULL, NULL, NULL} #define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2} + +//Surf Template 1 - Normal - 32x32 64x64 #define surf_template(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gEventObjectBaseOam_32x32, .anims = gSurfablePokemonAnimTable, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} +#define surf_template64x64(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gObjectEventBaseOam_64x64, .anims = gSurfablePokemonAnimTable, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} + +//Surf Template 2 - Separate East/West Frames - 32x32 64x64 +#define surf_template2(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gEventObjectBaseOam_32x32, .anims = gSurfablePokemonAnimTable2, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} +#define surf_template2_64x64(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gObjectEventBaseOam_64x64, .anims = sSurfablePokemonAnimTable2, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} + +//Surf Template 3 - Four frames per direction - 32x32 64x64 +#define surf_template3(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gEventObjectBaseOam_32x32, .anims = gSurfablePokemonAnimTable3, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} +#define surf_template3_64x64(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gObjectEventBaseOam_64x64, .anims = sSurfablePokemonAnimTable3, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} + +// Surf Template 4 - Four frames per direction + unique east and west facing frames 32x32 64x64 +#define surf_template4(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gEventObjectBaseOam_32x32, .anims = gSurfablePokemonAnimTable4, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} +#define surf_template4_64x64(tag, image, cb) {.tileTag = 0xFFFF, .paletteTag = tag, .oam = gObjectEventBaseOam_64x64, .anims = sSurfablePokemonAnimTable4, .images = image, .affineAnims = gDummySpriteAffineAnimTable, .callback = cb} extern s32 gFieldEffectArguments[8]; extern void UpdateSurfMonOverlay(struct Sprite *sprite); @@ -34,56 +48,82 @@ const struct Coords16 sDirectionToVectors[] = { }; // Images -/*============================== -GEN I -==============================*/ extern const u32 surfBlobTiles[]; extern const u16 surfBlobPal[]; +/*============================== + GEN 1 +==============================*/ + //=============== SQUIRTLE extern const u32 squirtleTiles[]; extern const u16 squirtlePal[]; extern const u16 squirtleShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Squirtle[] = { - overworld_frame(&squirtleTiles[0], 4, 4, 1), - overworld_frame(&squirtleTiles[0], 4, 4, 0), - overworld_frame(&squirtleTiles[0], 4, 4, 3), - overworld_frame(&squirtleTiles[0], 4, 4, 2), - overworld_frame(&squirtleTiles[0], 4, 4, 5), - overworld_frame(&squirtleTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&squirtleTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&squirtleTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&squirtleTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Squirtle[] = { - overworld_frame(&squirtleTiles[0], 4, 4, 7), - overworld_frame(&squirtleTiles[0], 4, 4, 6), - overworld_frame(&squirtleTiles[0], 4, 4, 9), - overworld_frame(&squirtleTiles[0], 4, 4, 8), - overworld_frame(&squirtleTiles[0], 4, 4, 11), - overworld_frame(&squirtleTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&squirtleTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&squirtleTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&squirtleTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&squirtleTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sSquirtleOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Squirtle, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sSquirtleOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Squirtle, UpdateSurfMonOverlay); - //=============== WARTORTLE extern const u32 wartortleTiles[]; extern const u16 wartortlePal[]; extern const u16 wartortleShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Wartortle[] = { - overworld_frame(&wartortleTiles[0], 4, 4, 1), - overworld_frame(&wartortleTiles[0], 4, 4, 0), - overworld_frame(&wartortleTiles[0], 4, 4, 3), - overworld_frame(&wartortleTiles[0], 4, 4, 2), - overworld_frame(&wartortleTiles[0], 4, 4, 5), - overworld_frame(&wartortleTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&wartortleTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&wartortleTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wartortleTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Wartortle[] = { - overworld_frame(&wartortleTiles[0], 4, 4, 7), - overworld_frame(&wartortleTiles[0], 4, 4, 6), - overworld_frame(&wartortleTiles[0], 4, 4, 9), - overworld_frame(&wartortleTiles[0], 4, 4, 8), - overworld_frame(&wartortleTiles[0], 4, 4, 11), - overworld_frame(&wartortleTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&wartortleTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&wartortleTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wartortleTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&wartortleTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sWartortleOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Wartortle, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sWartortleOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Wartortle, UpdateSurfMonOverlay); @@ -91,55 +131,217 @@ const struct SpriteTemplate sWartortleOverlay = surf_template(PAL_TAG_SURF_NEW, extern const u32 blastoiseTiles[]; extern const u16 blastoisePal[]; extern const u16 blastoiseShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Blastoise[] = { - overworld_frame(&blastoiseTiles[0], 4, 4, 1), - overworld_frame(&blastoiseTiles[0], 4, 4, 0), - overworld_frame(&blastoiseTiles[0], 4, 4, 3), - overworld_frame(&blastoiseTiles[0], 4, 4, 2), - overworld_frame(&blastoiseTiles[0], 4, 4, 5), - overworld_frame(&blastoiseTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&blastoiseTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&blastoiseTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&blastoiseTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Blastoise[] = { - overworld_frame(&blastoiseTiles[0], 4, 4, 7), - overworld_frame(&blastoiseTiles[0], 4, 4, 6), - overworld_frame(&blastoiseTiles[0], 4, 4, 9), - overworld_frame(&blastoiseTiles[0], 4, 4, 8), - overworld_frame(&blastoiseTiles[0], 4, 4, 11), - overworld_frame(&blastoiseTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&blastoiseTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&blastoiseTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&blastoiseTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&blastoiseTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sBlastoiseOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Blastoise, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sBlastoiseOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Blastoise, UpdateSurfMonOverlay); +//=============== PIKACHU +// NOTE: Large, 64x64 Sprite +extern const u32 pikachuTiles[]; +extern const u16 pikachuPal[]; +extern const u16 pikachuShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Pikachu[] = { + // Facing South + overworld_frame(&pikachuTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&pikachuTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&pikachuTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Pikachu[] = { + // Facing South + overworld_frame(&pikachuTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&pikachuTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&pikachuTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&pikachuTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteTemplate sPikachuOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Pikachu, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPikachuOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Pikachu, UpdateSurfMonOverlay); + +//=============== RAICHU +// NOTE: Large, 64x64 Sprite +extern const u32 raichuTiles[]; +extern const u16 raichuPal[]; +extern const u16 raichuShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Raichu[] = { + // Facing South + overworld_frame(&raichuTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&raichuTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&raichuTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Raichu[] = { + // Facing South + overworld_frame(&raichuTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&raichuTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&raichuTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&raichuTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteTemplate sRaichuOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Raichu, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sRaichuOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Raichu, UpdateSurfMonOverlay); + //=============== NIDOQUEEN -//extern const u32 nidoqueenTiles[]; -//extern const u16 nidoqueenPal[]; -//extern const u16 nidoqueenShinyPal[]; +extern const u32 nidoqueenTiles[]; +extern const u16 nidoqueenPal[]; +extern const u16 nidoqueenShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Nidoqueen[] = { + // Facing South + overworld_frame(&nidoqueenTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&nidoqueenTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&nidoqueenTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Nidoqueen[] = { + // Facing South + overworld_frame(&nidoqueenTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&nidoqueenTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&nidoqueenTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&nidoqueenTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sNidoqueenOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Nidoqueen, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sNidoqueenOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Nidoqueen, UpdateSurfMonOverlay); //=============== NIDOKING -//extern const u32 nidokingTiles[]; -//extern const u16 nidokingPal[]; -//extern const u16 nidokingShinyPal[]; +extern const u32 nidokingTiles[]; +extern const u16 nidokingPal[]; +extern const u16 nidokingShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Nidoking[] = { + // Facing South + overworld_frame(&nidokingTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&nidokingTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&nidokingTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Nidoking[] = { + // Facing South + overworld_frame(&nidokingTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&nidokingTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&nidokingTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&nidokingTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sNidokingOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Nidoking, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sNidokingOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Nidoking, UpdateSurfMonOverlay); //=============== PSYDUCK extern const u32 psyduckTiles[]; extern const u16 psyduckPal[]; extern const u16 psyduckShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Psyduck[] = { - overworld_frame(&psyduckTiles[0], 4, 4, 0), - overworld_frame(&psyduckTiles[0], 4, 4, 1), - overworld_frame(&psyduckTiles[0], 4, 4, 2), - overworld_frame(&psyduckTiles[0], 4, 4, 3), - overworld_frame(&psyduckTiles[0], 4, 4, 4), - overworld_frame(&psyduckTiles[0], 4, 4, 5), + // Facing South + overworld_frame(&psyduckTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&psyduckTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&psyduckTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Psyduck[] = { - overworld_frame(&psyduckTiles[0], 4, 4, 6), - overworld_frame(&psyduckTiles[0], 4, 4, 7), - overworld_frame(&psyduckTiles[0], 4, 4, 8), - overworld_frame(&psyduckTiles[0], 4, 4, 9), - overworld_frame(&psyduckTiles[0], 4, 4, 10), - overworld_frame(&psyduckTiles[0], 4, 4, 11), + // Facing South + overworld_frame(&psyduckTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&psyduckTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&psyduckTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&psyduckTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sPsyduckOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Psyduck, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sPsyduckOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Psyduck, UpdateSurfMonOverlay); @@ -147,61 +349,179 @@ const struct SpriteTemplate sPsyduckOverlay = surf_template(PAL_TAG_SURF_NEW, gS extern const u32 golduckTiles[]; extern const u16 golduckPal[]; extern const u16 golduckShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Golduck[] = { - overworld_frame(&golduckTiles[0], 4, 4, 0), - overworld_frame(&golduckTiles[0], 4, 4, 1), - overworld_frame(&golduckTiles[0], 4, 4, 2), - overworld_frame(&golduckTiles[0], 4, 4, 3), - overworld_frame(&golduckTiles[0], 4, 4, 4), - overworld_frame(&golduckTiles[0], 4, 4, 5), + // Facing South + overworld_frame(&golduckTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&golduckTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&golduckTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Golduck[] = { - overworld_frame(&golduckTiles[0], 4, 4, 6), - overworld_frame(&golduckTiles[0], 4, 4, 7), - overworld_frame(&golduckTiles[0], 4, 4, 8), - overworld_frame(&golduckTiles[0], 4, 4, 9), - overworld_frame(&golduckTiles[0], 4, 4, 10), - overworld_frame(&golduckTiles[0], 4, 4, 11), + // Facing South + overworld_frame(&golduckTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&golduckTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&golduckTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&golduckTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sGolduckOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Golduck, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sGolduckOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Golduck, UpdateSurfMonOverlay); - //=============== POLIWAG -//extern const u32 poliwagTiles[]; -//extern const u16 poliwagPal[]; -//extern const u16 poliwagShinyPal[]; +extern const u32 poliwagTiles[]; +extern const u16 poliwagPal[]; +extern const u16 poliwagShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Poliwag[] = { + // Facing South + overworld_frame(&poliwagTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&poliwagTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwagTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Poliwag[] = { + // Facing South + overworld_frame(&poliwagTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&poliwagTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwagTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&poliwagTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sPoliwagOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Poliwag, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPoliwagOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Poliwag, UpdateSurfMonOverlay); //=============== POLIWHIRL -//extern const u32 poliwhirlTiles[]; -//extern const u16 poliwhirlPal[]; -//extern const u16 poliwhirlShinyPal[]; +extern const u32 poliwhirlTiles[]; +extern const u16 poliwhirlPal[]; +extern const u16 poliwhirlShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Poliwhirl[] = { + // Facing South + overworld_frame(&poliwhirlTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&poliwhirlTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwhirlTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Poliwhirl[] = { + // Facing South + overworld_frame(&poliwhirlTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&poliwhirlTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwhirlTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&poliwhirlTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sPoliwhirlOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Poliwhirl, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPoliwhirlOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Poliwhirl, UpdateSurfMonOverlay); //=============== POLIWRATH -//extern const u32 poliwrathTiles[]; -//extern const u16 poliwrathPal[]; -//extern const u16 poliwrathShinyPal[]; +extern const u32 poliwrathTiles[]; +extern const u16 poliwrathPal[]; +extern const u16 poliwrathShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Poliwrath[] = { + // Facing South + overworld_frame(&poliwrathTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&poliwrathTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwrathTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Poliwrath[] = { + // Facing South + overworld_frame(&poliwrathTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&poliwrathTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&poliwrathTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&poliwrathTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sPoliwrathOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Poliwrath, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPoliwrathOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Poliwrath, UpdateSurfMonOverlay); //=============== TENTACOOL extern const u32 tentacoolTiles[]; extern const u16 tentacoolPal[]; extern const u16 tentacoolShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Tentacool[] = { - overworld_frame(&tentacoolTiles[0], 4, 4, 1), - overworld_frame(&tentacoolTiles[0], 4, 4, 0), - overworld_frame(&tentacoolTiles[0], 4, 4, 3), - overworld_frame(&tentacoolTiles[0], 4, 4, 2), - overworld_frame(&tentacoolTiles[0], 4, 4, 5), - overworld_frame(&tentacoolTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&tentacoolTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&tentacoolTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tentacoolTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Tentacool[] = { - overworld_frame(&tentacoolTiles[0], 4, 4, 7), - overworld_frame(&tentacoolTiles[0], 4, 4, 6), - overworld_frame(&tentacoolTiles[0], 4, 4, 9), - overworld_frame(&tentacoolTiles[0], 4, 4, 8), - overworld_frame(&tentacoolTiles[0], 4, 4, 11), - overworld_frame(&tentacoolTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&tentacoolTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&tentacoolTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tentacoolTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&tentacoolTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sTentacoolOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Tentacool, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sTentacoolOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Tentacool, UpdateSurfMonOverlay); @@ -209,22 +529,35 @@ const struct SpriteTemplate sTentacoolOverlay = surf_template(PAL_TAG_SURF_NEW, extern const u32 tentacruelTiles[]; extern const u16 tentacruelPal[]; extern const u16 tentacruelShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Tentacruel[] = { - overworld_frame(&tentacruelTiles[0], 4, 4, 1), - overworld_frame(&tentacruelTiles[0], 4, 4, 0), - overworld_frame(&tentacruelTiles[0], 4, 4, 3), - overworld_frame(&tentacruelTiles[0], 4, 4, 2), - overworld_frame(&tentacruelTiles[0], 4, 4, 4), - overworld_frame(&tentacruelTiles[0], 4, 4, 5), + // Facing South + overworld_frame(&tentacruelTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&tentacruelTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tentacruelTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Tentacruel[] = { - overworld_frame(&tentacruelTiles[0], 4, 4, 7), - overworld_frame(&tentacruelTiles[0], 4, 4, 6), - overworld_frame(&tentacruelTiles[0], 4, 4, 9), - overworld_frame(&tentacruelTiles[0], 4, 4, 8), - overworld_frame(&tentacruelTiles[0], 4, 4, 11), - overworld_frame(&tentacruelTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&tentacruelTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&tentacruelTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tentacruelTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&tentacruelTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sTentacruelOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Tentacruel, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sTentacruelOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Tentacruel, UpdateSurfMonOverlay); @@ -232,22 +565,35 @@ const struct SpriteTemplate sTentacruelOverlay = surf_template(PAL_TAG_SURF_NEW, extern const u32 slowpokeTiles[]; extern const u16 slowpokePal[]; extern const u16 slowpokeShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Slowpoke[] = { - overworld_frame(&slowpokeTiles[0], 4, 4, 0), - overworld_frame(&slowpokeTiles[0], 4, 4, 1), - overworld_frame(&slowpokeTiles[0], 4, 4, 2), - overworld_frame(&slowpokeTiles[0], 4, 4, 3), - overworld_frame(&slowpokeTiles[0], 4, 4, 4), - overworld_frame(&slowpokeTiles[0], 4, 4, 5), + // Facing South + overworld_frame(&slowpokeTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&slowpokeTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowpokeTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Slowpoke[] = { - overworld_frame(&slowpokeTiles[0], 4, 4, 6), - overworld_frame(&slowpokeTiles[0], 4, 4, 7), - overworld_frame(&slowpokeTiles[0], 4, 4, 8), - overworld_frame(&slowpokeTiles[0], 4, 4, 9), - overworld_frame(&slowpokeTiles[0], 4, 4, 10), - overworld_frame(&slowpokeTiles[0], 4, 4, 11), + // Facing South + overworld_frame(&slowpokeTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&slowpokeTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowpokeTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&slowpokeTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sSlowpokeOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Slowpoke, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sSlowpokeOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Slowpoke, UpdateSurfMonOverlay); @@ -255,22 +601,35 @@ const struct SpriteTemplate sSlowpokeOverlay = surf_template(PAL_TAG_SURF_NEW, g extern const u32 slowbroTiles[]; extern const u16 slowbroPal[]; extern const u16 slowbroShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Slowbro[] = { - overworld_frame(&slowbroTiles[0], 4, 4, 0), - overworld_frame(&slowbroTiles[0], 4, 4, 1), - overworld_frame(&slowbroTiles[0], 4, 4, 2), - overworld_frame(&slowbroTiles[0], 4, 4, 3), - overworld_frame(&slowbroTiles[0], 4, 4, 4), - overworld_frame(&slowbroTiles[0], 4, 4, 5), + // Facing South + overworld_frame(&slowbroTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&slowbroTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowbroTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Slowbro[] = { - overworld_frame(&slowbroTiles[0], 4, 4, 6), - overworld_frame(&slowbroTiles[0], 4, 4, 7), - overworld_frame(&slowbroTiles[0], 4, 4, 8), - overworld_frame(&slowbroTiles[0], 4, 4, 9), - overworld_frame(&slowbroTiles[0], 4, 4, 10), - overworld_frame(&slowbroTiles[0], 4, 4, 11), + // Facing South + overworld_frame(&slowbroTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&slowbroTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowbroTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&slowbroTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sSlowbroOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Slowbro, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sSlowbroOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Slowbro, UpdateSurfMonOverlay); @@ -278,22 +637,35 @@ const struct SpriteTemplate sSlowbroOverlay = surf_template(PAL_TAG_SURF_NEW, gS extern const u32 seelTiles[]; extern const u16 seelPal[]; extern const u16 seelShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Seel[] = { - overworld_frame(&seelTiles[0], 4, 4, 1), - overworld_frame(&seelTiles[0], 4, 4, 0), - overworld_frame(&seelTiles[0], 4, 4, 3), - overworld_frame(&seelTiles[0], 4, 4, 2), - overworld_frame(&seelTiles[0], 4, 4, 5), - overworld_frame(&seelTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&seelTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&seelTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seelTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Seel[] = { - overworld_frame(&seelTiles[0], 4, 4, 7), - overworld_frame(&seelTiles[0], 4, 4, 6), - overworld_frame(&seelTiles[0], 4, 4, 9), - overworld_frame(&seelTiles[0], 4, 4, 8), - overworld_frame(&seelTiles[0], 4, 4, 11), - overworld_frame(&seelTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&seelTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&seelTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seelTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&seelTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sSeelOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Seel, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sSeelOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Seel, UpdateSurfMonOverlay); @@ -301,520 +673,2709 @@ const struct SpriteTemplate sSeelOverlay = surf_template(PAL_TAG_SURF_NEW, gSurf extern const u32 dewgongTiles[]; extern const u16 dewgongPal[]; extern const u16 dewgongShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Dewgong[] = { - overworld_frame(&dewgongTiles[0], 4, 4, 1), - overworld_frame(&dewgongTiles[0], 4, 4, 0), - overworld_frame(&dewgongTiles[0], 4, 4, 3), - overworld_frame(&dewgongTiles[0], 4, 4, 2), - overworld_frame(&dewgongTiles[0], 4, 4, 5), - overworld_frame(&dewgongTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&dewgongTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&dewgongTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dewgongTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Dewgong[] = { - overworld_frame(&dewgongTiles[0], 4, 4, 7), - overworld_frame(&dewgongTiles[0], 4, 4, 6), - overworld_frame(&dewgongTiles[0], 4, 4, 9), - overworld_frame(&dewgongTiles[0], 4, 4, 8), - overworld_frame(&dewgongTiles[0], 4, 4, 11), - overworld_frame(&dewgongTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&dewgongTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&dewgongTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dewgongTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&dewgongTiles[0], 4, 4, 11), // Bob Down }; + const struct SpriteTemplate sDewgongOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Dewgong, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sDewgongOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Dewgong, UpdateSurfMonOverlay); //=============== SHELLDER -//extern const u32 shellderTiles[]; -//extern const u16 shellderPal[]; -//extern const u16 shellderShinyPal[]; - -//=============== CLOYSTER -//extern const u32 cloysterTiles[]; -//extern const u16 cloysterPal[]; -//extern const u16 cloysterShinyPal[]; +extern const u32 shellderTiles[]; +extern const u16 shellderPal[]; +extern const u16 shellderShinyPal[]; -//=============== KRABBY -//extern const u32 krabbyTiles[]; -//extern const u16 krabbyPal[]; -//extern const u16 krabbyShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Shellder[] = { + // Facing South + overworld_frame(&shellderTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 1), // Bob Down -//=============== KINGLER -//extern const u32 kinglerTiles[]; -//extern const u16 kinglerPal[]; -//extern const u16 kinglerShinyPal[]; + // Facing North + overworld_frame(&shellderTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 3), // Bob Down -//=============== LICKITUNG -//extern const u32 lickitungTiles[]; -//extern const u16 lickitungPal[]; -//extern const u16 lickitungShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&shellderTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 5), // Bob Down +}; -//=============== RHYDON -//extern const u32 rhydonTiles[]; -//extern const u16 rhydonPal[]; -//extern const u16 rhydonShinyPal[]; +const struct SpriteFrameImage gSurfingOverlayPicTable_Shellder[] = { + // Facing South + overworld_frame(&shellderTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 7), // Bob Down -//=============== KANGASKHAN -//extern const u32 kangaskhanTiles[]; -//extern const u16 kangaskhanPal[]; -//extern const u16 kangaskhanShinyPal[]; + // Facing North + overworld_frame(&shellderTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 9), // Bob Down -//=============== HORSEA -//extern const u32 horseaTiles[]; -//extern const u16 horseaPal[]; -//extern const u16 horseaShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&shellderTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&shellderTiles[0], 4, 4, 11), // Bob Down +}; -//=============== SEADRA -//extern const u32 seadraTiles[]; -//extern const u16 seadraPal[]; -//extern const u16 seadraShinyPal[]; +const struct SpriteTemplate sShellderOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Shellder, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sShellderOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Shellder, UpdateSurfMonOverlay); -//=============== GOLDEEN -//extern const u32 goldeenTiles[]; -//extern const u16 goldeenPal[]; -//extern const u16 goldeenShinyPal[]; +//=============== CLOYSTER +extern const u32 cloysterTiles[]; +extern const u16 cloysterPal[]; +extern const u16 cloysterShinyPal[]; -//=============== SEAKING -//extern const u32 seakingTiles[]; -//extern const u16 seakingPal[]; -//extern const u16 seakingShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Cloyster[] = { + // Facing South + overworld_frame(&cloysterTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 1), // Bob Down -//=============== STARYU -extern const u32 staryuTiles[]; -extern const u16 staryuPal[]; -extern const u16 staryuShinyPal[]; -const struct SpriteFrameImage gSurfingOverworldPicTable_Staryu[] = { - overworld_frame(&staryuTiles[0], 4, 4, 0), - overworld_frame(&staryuTiles[0], 4, 4, 1), - overworld_frame(&staryuTiles[0], 4, 4, 2), - overworld_frame(&staryuTiles[0], 4, 4, 3), - overworld_frame(&staryuTiles[0], 4, 4, 4), - overworld_frame(&staryuTiles[0], 4, 4, 5), -}; -const struct SpriteFrameImage gSurfingOverlayPicTable_Staryu[] = { - overworld_frame(&staryuTiles[0], 4, 4, 6), - overworld_frame(&staryuTiles[0], 4, 4, 7), - overworld_frame(&staryuTiles[0], 4, 4, 8), - overworld_frame(&staryuTiles[0], 4, 4, 9), - overworld_frame(&staryuTiles[0], 4, 4, 10), - overworld_frame(&staryuTiles[0], 4, 4, 11), -}; -const struct SpriteTemplate sStaryuOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Staryu, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sStaryuOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Staryu, UpdateSurfMonOverlay); + // Facing North + overworld_frame(&cloysterTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 3), // Bob Down -//=============== STARMIE -extern const u32 starmieTiles[]; -extern const u16 starmiePal[]; -extern const u16 starmieShinyPal[]; -const struct SpriteFrameImage gSurfingOverworldPicTable_Starmie[] = { - overworld_frame(&starmieTiles[0], 4, 4, 0), - overworld_frame(&starmieTiles[0], 4, 4, 1), - overworld_frame(&starmieTiles[0], 4, 4, 2), - overworld_frame(&starmieTiles[0], 4, 4, 3), - overworld_frame(&starmieTiles[0], 4, 4, 4), - overworld_frame(&starmieTiles[0], 4, 4, 5), -}; -const struct SpriteFrameImage gSurfingOverlayPicTable_Starmie[] = { - overworld_frame(&starmieTiles[0], 4, 4, 6), - overworld_frame(&starmieTiles[0], 4, 4, 7), - overworld_frame(&starmieTiles[0], 4, 4, 8), - overworld_frame(&starmieTiles[0], 4, 4, 9), - overworld_frame(&starmieTiles[0], 4, 4, 10), - overworld_frame(&starmieTiles[0], 4, 4, 11), + // Facing East/West (Mirrored) + overworld_frame(&cloysterTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 5), // Bob Down }; -const struct SpriteTemplate sStarmieOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Starmie, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sStarmieOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Starmie, UpdateSurfMonOverlay); -//=============== TAUROS -//extern const u32 taurosTiles[]; -//extern const u16 taurosPal[]; -//extern const u16 taurosShinyPal[]; +const struct SpriteFrameImage gSurfingOverlayPicTable_Cloyster[] = { + // Facing South + overworld_frame(&cloysterTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 7), // Bob Down -//=============== GYARADOS -//extern const u32 gyaradosTiles[]; -//extern const u16 gyaradosPal[]; -//extern const u16 gyaradosShinyPal[]; + // Facing North + overworld_frame(&cloysterTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 9), // Bob Down -//=============== LAPRAS -extern const u32 laprasTiles[]; -extern const u16 laprasPal[]; -extern const u16 laprasShinyPal[]; -const struct SpriteFrameImage gSurfingOverworldPicTable_Lapras[] = { - overworld_frame(&laprasTiles[0], 4, 4, 1), - overworld_frame(&laprasTiles[0], 4, 4, 0), - overworld_frame(&laprasTiles[0], 4, 4, 3), - overworld_frame(&laprasTiles[0], 4, 4, 2), - overworld_frame(&laprasTiles[0], 4, 4, 5), - overworld_frame(&laprasTiles[0], 4, 4, 4), -}; -const struct SpriteFrameImage gSurfingOverlayPicTable_Lapras[] = { - overworld_frame(&laprasTiles[0], 4, 4, 7), - overworld_frame(&laprasTiles[0], 4, 4, 6), - overworld_frame(&laprasTiles[0], 4, 4, 9), - overworld_frame(&laprasTiles[0], 4, 4, 8), - overworld_frame(&laprasTiles[0], 4, 4, 11), - overworld_frame(&laprasTiles[0], 4, 4, 10), + // Facing East/West (Mirrored) + overworld_frame(&cloysterTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&cloysterTiles[0], 4, 4, 11), // Bob Down }; -const struct SpriteTemplate sLaprasOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lapras, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sLaprasOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lapras, UpdateSurfMonOverlay); +const struct SpriteTemplate sCloysterOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Cloyster, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCloysterOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Cloyster, UpdateSurfMonOverlay); -//=============== VAPOREON -extern const u32 vaporeonTiles[]; -extern const u16 vaporeonPal[]; -extern const u16 vaporeonShinyPal[]; -const struct SpriteFrameImage gSurfingOverworldPicTable_Vaporeon[] = { - overworld_frame(&vaporeonTiles[0], 4, 4, 1), - overworld_frame(&vaporeonTiles[0], 4, 4, 0), - overworld_frame(&vaporeonTiles[0], 4, 4, 3), - overworld_frame(&vaporeonTiles[0], 4, 4, 2), - overworld_frame(&vaporeonTiles[0], 4, 4, 5), - overworld_frame(&vaporeonTiles[0], 4, 4, 4), -}; -const struct SpriteFrameImage gSurfingOverlayPicTable_Vaporeon[] = { - overworld_frame(&vaporeonTiles[0], 4, 4, 7), - overworld_frame(&vaporeonTiles[0], 4, 4, 6), - overworld_frame(&vaporeonTiles[0], 4, 4, 9), - overworld_frame(&vaporeonTiles[0], 4, 4, 8), - overworld_frame(&vaporeonTiles[0], 4, 4, 11), - overworld_frame(&vaporeonTiles[0], 4, 4, 10), -}; -const struct SpriteTemplate sVaporeonOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Vaporeon, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sVaporeonOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Vaporeon, UpdateSurfMonOverlay); +//=============== KRABBY +extern const u32 krabbyTiles[]; +extern const u16 krabbyPal[]; +extern const u16 krabbyShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Krabby[] = { + // Facing South + overworld_frame(&krabbyTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 1), // Bob Down -//=============== OMANYTE -//extern const u32 omanyteTiles[]; -//extern const u16 omanytePal[]; -//extern const u16 omanyteShinyPal[]; + // Facing North + overworld_frame(&krabbyTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 3), // Bob Down -//=============== OMASTAR -//extern const u32 omastarTiles[]; -//extern const u16 omastarPal[]; -//extern const u16 omastarShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&krabbyTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 5), // Bob Down +}; -//=============== KABUTO -//extern const u32 kabutoTiles[]; -//extern const u16 kabutoPal[]; -//extern const u16 kabutoShinyPal[]; +const struct SpriteFrameImage gSurfingOverlayPicTable_Krabby[] = { + // Facing South + overworld_frame(&krabbyTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 7), // Bob Down -//=============== KABUTOPS -//extern const u32 kabutopsTiles[]; -//extern const u16 kabutopsPal[]; -//extern const u16 kabutopsShinyPal[]; + // Facing North + overworld_frame(&krabbyTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 9), // Bob Down -//=============== SNORLAX -//extern const u32 snorlaxTiles[]; -//extern const u16 snorlaxPal[]; -//extern const u16 snorlaxShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&krabbyTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&krabbyTiles[0], 4, 4, 11), // Bob Down +}; -//=============== DRATINI -//extern const u32 dratiniTiles[]; -//extern const u16 dratiniPal[]; -//extern const u16 dratiniShinyPal[]; +const struct SpriteTemplate sKrabbyOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Krabby, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKrabbyOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Krabby, UpdateSurfMonOverlay); -//=============== DRAGONAIR -//extern const u32 dragonairTiles[]; -//extern const u16 dragonairPal[]; -//extern const u16 dragonairShinyPal[]; +//=============== KINGLER +// NOTE: Supports unique left/right sprites! +extern const u32 kinglerTiles[]; +extern const u16 kinglerPal[]; +extern const u16 kinglerShinyPal[]; -//=============== DRAGONITE -//extern const u32 dragoniteTiles[]; -//extern const u16 dragonitePal[]; -//extern const u16 dragoniteShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Kingler[] = { + // Facing South + overworld_frame(&kinglerTiles[0], 4, 4, 0), + overworld_frame(&kinglerTiles[0], 4, 4, 1), -//=============== MEW -//extern const u32 mewTiles[]; -//extern const u16 mewPal[]; -//extern const u16 mewShinyPal[]; + // Facing North + overworld_frame(&kinglerTiles[0], 4, 4, 2), + overworld_frame(&kinglerTiles[0], 4, 4, 3), -/*============================== -GEN II -==============================*/ + // Facing West + overworld_frame(&kinglerTiles[0], 4, 4, 4), + overworld_frame(&kinglerTiles[0], 4, 4, 5), -//=============== TOTODILE -//extern const u32 totodileTiles[]; -//extern const u16 totodilePal[]; -//extern const u16 totodileShinyPal[]; + // Facing East + overworld_frame(&kinglerTiles[0], 4, 4, 6), + overworld_frame(&kinglerTiles[0], 4, 4, 7), +}; +const struct SpriteFrameImage gSurfingOverlayPicTable_Kingler[] = { + // Facing South + overworld_frame(&kinglerTiles[0], 4, 4, 8), + overworld_frame(&kinglerTiles[0], 4, 4, 9), -//=============== CROCONAW -//extern const u32 croconawTiles[]; -//extern const u16 croconawPal[]; -//extern const u16 croconawShinyPal[]; + // Facing North + overworld_frame(&kinglerTiles[0], 4, 4, 10), + overworld_frame(&kinglerTiles[0], 4, 4, 11), + // Facing West + overworld_frame(&kinglerTiles[0], 4, 4, 12), + overworld_frame(&kinglerTiles[0], 4, 4, 13), -//=============== FERALIGATR -//extern const u32 feraligatrTiles[]; -//extern const u16 feraligatrPal[]; -//extern const u16 feraligatrShinyPal[]; + // Facing East + overworld_frame(&kinglerTiles[0], 4, 4, 14), + overworld_frame(&kinglerTiles[0], 4, 4, 15), +}; -//=============== SENTRET -//extern const u32 sentretTiles[]; -//extern const u16 sentretPal[]; -//extern const u16 sentretShinyPal[]; +// This commented out frame order flips Kingler, such that it faces +// towards the screen when moving right. However, this results in +// something a little silly, making the player always facing Kingler's +// largest claw. So, we left it as-is, Kingler will face away from the +// screen when moving right/east, and towards the screen when left/west +// +// const struct SpriteFrameImage gSurfingOverworldPicTable_Kingler[] = { +// overworld_frame(&kinglerTiles[0], 4, 4, 2), +// overworld_frame(&kinglerTiles[0], 4, 4, 3), +// overworld_frame(&kinglerTiles[0], 4, 4, 0), +// overworld_frame(&kinglerTiles[0], 4, 4, 1), +// overworld_frame(&kinglerTiles[0], 4, 4, 6), +// overworld_frame(&kinglerTiles[0], 4, 4, 7), +// overworld_frame(&kinglerTiles[0], 4, 4, 4), +// overworld_frame(&kinglerTiles[0], 4, 4, 5), +// }; -//=============== FURRET -//extern const u32 furretTiles[]; -//extern const u16 furretPal[]; -//extern const u16 furretShinyPal[]; +// const struct SpriteFrameImage gSurfingOverlayPicTable_Kingler[] = { +// overworld_frame(&kinglerTiles[0], 4, 4, 10), +// overworld_frame(&kinglerTiles[0], 4, 4, 11), +// overworld_frame(&kinglerTiles[0], 4, 4, 8), +// overworld_frame(&kinglerTiles[0], 4, 4, 9), +// overworld_frame(&kinglerTiles[0], 4, 4, 14), +// overworld_frame(&kinglerTiles[0], 4, 4, 15), +// overworld_frame(&kinglerTiles[0], 4, 4, 12), +// overworld_frame(&kinglerTiles[0], 4, 4, 13), +// }; -//=============== CHINCHOU -//extern const u32 chinchouTiles[]; -//extern const u16 chinchouPal[]; -//extern const u16 chinchouShinyPal[]; +const struct SpriteTemplate sKinglerOverworld = surf_template2(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kingler, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKinglerOverlay = surf_template2(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kingler, UpdateSurfMonOverlay); -//=============== LANTURN -//extern const u32 lanturnTiles[]; -//extern const u16 lanturnPal[]; -//extern const u16 lanturnShinyPal[]; +//=============== LICKITUNG +extern const u32 lickitungTiles[]; +extern const u16 lickitungPal[]; +extern const u16 lickitungShinyPal[]; -//=============== MARILL -//extern const u32 marillTiles[]; -//extern const u16 marillPal[]; -//extern const u16 marillShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Lickitung[] = { + // Facing South + overworld_frame(&lickitungTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 1), // Bob Down -//=============== AZUMARILL -//extern const u32 azumarillTiles[]; -//extern const u16 azumarillPal[]; -//extern const u16 azumarillShinyPal[]; + // Facing North + overworld_frame(&lickitungTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 3), // Bob Down -//=============== POLITOED -//extern const u32 politoedTiles[]; -//extern const u16 politoedPal[]; -//extern const u16 politoedShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&lickitungTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 5), // Bob Down +}; -//=============== WOOPER -//extern const u32 wooperTiles[]; -//extern const u16 wooperPal[]; -//extern const u16 wooperShinyPal[]; +const struct SpriteFrameImage gSurfingOverlayPicTable_Lickitung[] = { + // Facing South + overworld_frame(&lickitungTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 7), // Bob Down -//=============== QUAGSIRE -//extern const u32 quagsireTiles[]; -//extern const u16 quagsirePal[]; -//extern const u16 quagsireShinyPal[]; + // Facing North + overworld_frame(&lickitungTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 9), // Bob Down -//=============== SLOWKING -extern const u32 slowkingTiles[]; -extern const u16 slowkingPal[]; -extern const u16 slowkingShinyPal[]; -const struct SpriteFrameImage gSurfingOverworldPicTable_Slowking[] = { - overworld_frame(&slowkingTiles[0], 4, 4, 0), - overworld_frame(&slowkingTiles[0], 4, 4, 1), - overworld_frame(&slowkingTiles[0], 4, 4, 2), - overworld_frame(&slowkingTiles[0], 4, 4, 3), - overworld_frame(&slowkingTiles[0], 4, 4, 4), - overworld_frame(&slowkingTiles[0], 4, 4, 5), + // Facing East/West (Mirrored) + overworld_frame(&lickitungTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&lickitungTiles[0], 4, 4, 11), // Bob Down }; -const struct SpriteFrameImage gSurfingOverlayPicTable_Slowking[] = { - overworld_frame(&slowkingTiles[0], 4, 4, 6), - overworld_frame(&slowkingTiles[0], 4, 4, 7), - overworld_frame(&slowkingTiles[0], 4, 4, 8), - overworld_frame(&slowkingTiles[0], 4, 4, 9), - overworld_frame(&slowkingTiles[0], 4, 4, 10), - overworld_frame(&slowkingTiles[0], 4, 4, 11), -}; -const struct SpriteTemplate sSlowkingOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Slowking, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sSlowkingOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Slowking, UpdateSurfMonOverlay); +const struct SpriteTemplate sLickitungOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lickitung, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLickitungOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lickitung, UpdateSurfMonOverlay); -//=============== QWILFISH -//extern const u32 qwilfishTiles[]; -//extern const u16 qwilfishPal[]; -//extern const u16 qwilfishShinyPal[]; +//=============== RHYDON +extern const u32 rhydonTiles[]; +extern const u16 rhydonPal[]; +extern const u16 rhydonShinyPal[]; -//=============== SNEASEL -//extern const u32 sneaselTiles[]; -//extern const u16 sneaselPal[]; -//extern const u16 sneaselShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Rhydon[] = { + // Facing South + overworld_frame(&rhydonTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 1), // Bob Down -//=============== CORSOLA -//extern const u32 corsolaTiles[]; -//extern const u16 corsolaPal[]; -//extern const u16 corsolaShinyPal[]; + // Facing North + overworld_frame(&rhydonTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 3), // Bob Down -//=============== REMORAID -//extern const u32 remoraidTiles[]; -//extern const u16 remoraidPal[]; -//extern const u16 remoraidShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&rhydonTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 5), // Bob Down +}; -//=============== OCTILLERY -//extern const u32 octilleryTiles[]; -//extern const u16 octilleryPal[]; -//extern const u16 octilleryShinyPal[]; +const struct SpriteFrameImage gSurfingOverlayPicTable_Rhydon[] = { + // Facing South + overworld_frame(&rhydonTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 7), // Bob Down -//=============== MANTINE -//extern const u32 mantineTiles[]; -//extern const u16 mantinePal[]; -//extern const u16 mantineShinyPal[]; + // Facing North + overworld_frame(&rhydonTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&rhydonTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&rhydonTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sRhydonOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Rhydon, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sRhydonOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Rhydon, UpdateSurfMonOverlay); + +//=============== KANGASKHAN +extern const u32 kangaskhanTiles[]; +extern const u16 kangaskhanPal[]; +extern const u16 kangaskhanShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Kangaskhan[] = { + // Facing South + overworld_frame(&kangaskhanTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&kangaskhanTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kangaskhanTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Kangaskhan[] = { + // Facing South + overworld_frame(&kangaskhanTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&kangaskhanTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kangaskhanTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&kangaskhanTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sKangaskhanOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kangaskhan, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKangaskhanOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kangaskhan, UpdateSurfMonOverlay); + +//=============== HORSEA +extern const u32 horseaTiles[]; +extern const u16 horseaPal[]; +extern const u16 horseaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Horsea[] = { + // Facing South + overworld_frame(&horseaTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&horseaTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&horseaTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Horsea[] = { + // Facing South + overworld_frame(&horseaTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&horseaTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&horseaTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&horseaTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sHorseaOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Horsea, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sHorseaOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Horsea, UpdateSurfMonOverlay); + +//=============== SEADRA +extern const u32 seadraTiles[]; +extern const u16 seadraPal[]; +extern const u16 seadraShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Seadra[] = { + // Facing South + overworld_frame(&seadraTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&seadraTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seadraTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Seadra[] = { + // Facing South + overworld_frame(&seadraTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&seadraTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seadraTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&seadraTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSeadraOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Seadra, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSeadraOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Seadra, UpdateSurfMonOverlay); + +//=============== GOLDEEN +extern const u32 goldeenTiles[]; +extern const u16 goldeenPal[]; +extern const u16 goldeenShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Goldeen[] = { + // Facing South + overworld_frame(&goldeenTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&goldeenTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&goldeenTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Goldeen[] = { + // Facing South + overworld_frame(&goldeenTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&goldeenTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&goldeenTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&goldeenTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sGoldeenOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Goldeen, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sGoldeenOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Goldeen, UpdateSurfMonOverlay); + +//=============== SEAKING +extern const u32 seakingTiles[]; +extern const u16 seakingPal[]; +extern const u16 seakingShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Seaking[] = { + // Facing South + overworld_frame(&seakingTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&seakingTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seakingTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Seaking[] = { + // Facing South + overworld_frame(&seakingTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&seakingTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&seakingTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&seakingTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSeakingOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Seaking, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSeakingOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Seaking, UpdateSurfMonOverlay); + +//=============== STARYU +extern const u32 staryuTiles[]; +extern const u16 staryuPal[]; +extern const u16 staryuShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Staryu[] = { + // Facing South + overworld_frame(&staryuTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&staryuTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&staryuTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Staryu[] = { + // Facing South + overworld_frame(&staryuTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&staryuTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&staryuTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&staryuTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sStaryuOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Staryu, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sStaryuOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Staryu, UpdateSurfMonOverlay); + +//=============== STARMIE +extern const u32 starmieTiles[]; +extern const u16 starmiePal[]; +extern const u16 starmieShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Starmie[] = { + // Facing South + overworld_frame(&starmieTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&starmieTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&starmieTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Starmie[] = { + // Facing South + overworld_frame(&starmieTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&starmieTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&starmieTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&starmieTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sStarmieOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Starmie, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sStarmieOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Starmie, UpdateSurfMonOverlay); + +//=============== TAUROS +extern const u32 taurosTiles[]; +extern const u16 taurosPal[]; +extern const u16 taurosShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Tauros[] = { + // Facing South + overworld_frame(&taurosTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&taurosTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&taurosTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Tauros[] = { + // Facing South + overworld_frame(&taurosTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&taurosTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&taurosTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&taurosTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sTaurosOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Tauros, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sTaurosOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Tauros, UpdateSurfMonOverlay); + +//=============== GYARADOS +extern const u32 gyaradosTiles[]; +extern const u16 gyaradosPal[]; +extern const u16 gyaradosShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Gyarados[] = { + // Facing South + overworld_frame(&gyaradosTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&gyaradosTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&gyaradosTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Gyarados[] = { + // Facing South + overworld_frame(&gyaradosTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&gyaradosTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&gyaradosTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&gyaradosTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sGyaradosOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Gyarados, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sGyaradosOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Gyarados, UpdateSurfMonOverlay); + +//=============== LAPRAS +extern const u32 laprasTiles[]; +extern const u16 laprasPal[]; +extern const u16 laprasShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Lapras[] = { + // Facing South + overworld_frame(&laprasTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&laprasTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&laprasTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Lapras[] = { + // Facing South + overworld_frame(&laprasTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&laprasTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&laprasTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&laprasTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sLaprasOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lapras, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLaprasOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lapras, UpdateSurfMonOverlay); + +//=============== VAPOREON +extern const u32 vaporeonTiles[]; +extern const u16 vaporeonPal[]; +extern const u16 vaporeonShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Vaporeon[] = { + // Facing South + overworld_frame(&vaporeonTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&vaporeonTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&vaporeonTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Vaporeon[] = { + // Facing South + overworld_frame(&vaporeonTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&vaporeonTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&vaporeonTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&vaporeonTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sVaporeonOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Vaporeon, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sVaporeonOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Vaporeon, UpdateSurfMonOverlay); + +//=============== OMANYTE +extern const u32 omanyteTiles[]; +extern const u16 omanytePal[]; +extern const u16 omanyteShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Omanyte[] = { + // Facing South + overworld_frame(&omanyteTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&omanyteTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&omanyteTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Omanyte[] = { + // Facing South + overworld_frame(&omanyteTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&omanyteTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&omanyteTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&omanyteTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sOmanyteOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Omanyte, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sOmanyteOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Omanyte, UpdateSurfMonOverlay); + +//=============== OMASTAR +extern const u32 omastarTiles[]; +extern const u16 omastarPal[]; +extern const u16 omastarShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Omastar[] = { + // Facing South + overworld_frame(&omastarTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&omastarTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&omastarTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Omastar[] = { + // Facing South + overworld_frame(&omastarTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&omastarTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&omastarTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&omastarTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sOmastarOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Omastar, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sOmastarOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Omastar, UpdateSurfMonOverlay); + +//=============== KABUTO +extern const u32 kabutoTiles[]; +extern const u16 kabutoPal[]; +extern const u16 kabutoShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Kabuto[] = { + // Facing South + overworld_frame(&kabutoTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&kabutoTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kabutoTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Kabuto[] = { + // Facing South + overworld_frame(&kabutoTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&kabutoTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kabutoTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&kabutoTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sKabutoOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kabuto, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKabutoOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kabuto, UpdateSurfMonOverlay); + +//=============== KABUTOPS +extern const u32 kabutopsTiles[]; +extern const u16 kabutopsPal[]; +extern const u16 kabutopsShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Kabutops[] = { + // Facing South + overworld_frame(&kabutopsTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&kabutopsTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kabutopsTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Kabutops[] = { + // Facing South + overworld_frame(&kabutopsTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&kabutopsTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kabutopsTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&kabutopsTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sKabutopsOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kabutops, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKabutopsOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kabutops, UpdateSurfMonOverlay); + +//=============== SNORLAX +// NOTE: Large, 64x64 Sprite +// NOTE: Supports unique left/right sprites! +// NOTE: Supports 4-frame animations! +extern const u32 snorlaxTiles[]; +extern const u16 snorlaxPal[]; +extern const u16 snorlaxShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Snorlax[] = { + // Facing South + overworld_frame(&snorlaxTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 1), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 2), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 3), // Bob Down + + // Facing North + overworld_frame(&snorlaxTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 5), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 6), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 7), // Bob Down + + // Facing West + overworld_frame(&snorlaxTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 9), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 10), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 11), // Bob Down + + // Facing East + overworld_frame(&snorlaxTiles[0], 8, 8, 12), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 13), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 14), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 15), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Snorlax[] = { + // Facing South + overworld_frame(&snorlaxTiles[0], 8, 8, 16), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 17), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 18), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 19), // Bob Down + + // Facing North + overworld_frame(&snorlaxTiles[0], 8, 8, 20), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 21), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 22), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 23), // Bob Down + + // Facing West + overworld_frame(&snorlaxTiles[0], 8, 8, 24), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 25), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 26), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 27), // Bob Down + + // Facing East + overworld_frame(&snorlaxTiles[0], 8, 8, 28), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 29), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 30), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 31), // Bob Down +}; + +const struct SpriteTemplate sSnorlaxOverworld = surf_template4_64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Snorlax, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSnorlaxOverlay = surf_template4_64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Snorlax, UpdateSurfMonOverlay); + +//=============== DRATINI +extern const u32 dratiniTiles[]; +extern const u16 dratiniPal[]; +extern const u16 dratiniShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Dratini[] = { + // Facing South + overworld_frame(&dratiniTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&dratiniTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dratiniTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Dratini[] = { + // Facing South + overworld_frame(&dratiniTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&dratiniTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dratiniTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&dratiniTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sDratiniOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Dratini, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sDratiniOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Dratini, UpdateSurfMonOverlay); + +//=============== DRAGONAIR +extern const u32 dragonairTiles[]; +extern const u16 dragonairPal[]; +extern const u16 dragonairShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Dragonair[] = { + // Facing South + overworld_frame(&dragonairTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&dragonairTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dragonairTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Dragonair[] = { + // Facing South + overworld_frame(&dragonairTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&dragonairTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dragonairTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&dragonairTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sDragonairOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Dragonair, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sDragonairOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Dragonair, UpdateSurfMonOverlay); + +//=============== DRAGONITE +extern const u32 dragoniteTiles[]; +extern const u16 dragonitePal[]; +extern const u16 dragoniteShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Dragonite[] = { + // Facing South + overworld_frame(&dragoniteTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&dragoniteTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dragoniteTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Dragonite[] = { + // Facing South + overworld_frame(&dragoniteTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&dragoniteTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&dragoniteTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&dragoniteTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sDragoniteOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Dragonite, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sDragoniteOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Dragonite, UpdateSurfMonOverlay); + +//=============== MEW +extern const u32 mewTiles[]; +extern const u16 mewPal[]; +extern const u16 mewShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Mew[] = { + // Facing South + overworld_frame(&mewTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&mewTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mewTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Mew[] = { + // Facing South + overworld_frame(&mewTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&mewTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mewTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&mewTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMewOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Mew, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMewOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Mew, UpdateSurfMonOverlay); + +/*============================== + GEN 2 +==============================*/ + +//=============== TOTODILE +extern const u32 totodileTiles[]; +extern const u16 totodilePal[]; +extern const u16 totodileShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Totodile[] = { + // Facing South + overworld_frame(&totodileTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&totodileTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&totodileTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Totodile[] = { + // Facing South + overworld_frame(&totodileTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&totodileTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&totodileTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&totodileTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sTotodileOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Totodile, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sTotodileOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Totodile, UpdateSurfMonOverlay); + +//=============== CROCONAW +extern const u32 croconawTiles[]; +extern const u16 croconawPal[]; +extern const u16 croconawShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Croconaw[] = { + // Facing South + overworld_frame(&croconawTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&croconawTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&croconawTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Croconaw[] = { + // Facing South + overworld_frame(&croconawTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&croconawTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&croconawTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&croconawTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sCroconawOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Croconaw, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCroconawOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Croconaw, UpdateSurfMonOverlay); + +//=============== FERALIGATR +// NOTE: Large, 64x64 Sprite +extern const u32 feraligatrTiles[]; +extern const u16 feraligatrPal[]; +extern const u16 feraligatrShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Feraligatr[] = { + // Facing South + overworld_frame(&feraligatrTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&feraligatrTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&feraligatrTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Feraligatr[] = { + // Facing South + overworld_frame(&feraligatrTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&feraligatrTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&feraligatrTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&feraligatrTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteTemplate sFeraligatrOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Feraligatr, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sFeraligatrOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Feraligatr, UpdateSurfMonOverlay); + +//=============== SENTRET +extern const u32 sentretTiles[]; +extern const u16 sentretPal[]; +extern const u16 sentretShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Sentret[] = { + // Facing South + overworld_frame(&sentretTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&sentretTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sentretTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Sentret[] = { + // Facing South + overworld_frame(&sentretTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&sentretTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sentretTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&sentretTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSentretOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Sentret, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSentretOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Sentret, UpdateSurfMonOverlay); + +//=============== FURRET +extern const u32 furretTiles[]; +extern const u16 furretPal[]; +extern const u16 furretShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Furret[] = { + // Facing South + overworld_frame(&furretTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&furretTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&furretTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Furret[] = { + // Facing South + overworld_frame(&furretTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&furretTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&furretTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&furretTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sFurretOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Furret, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sFurretOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Furret, UpdateSurfMonOverlay); + +//=============== PICHU +// NOTE: Large, 64x64 Sprite +extern const u32 pichuTiles[]; +extern const u16 pichuPal[]; +extern const u16 pichuShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Pichu[] = { + // Facing South + overworld_frame(&pichuTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&pichuTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&pichuTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Pichu[] = { + // Facing South + overworld_frame(&pichuTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&pichuTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&pichuTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&pichuTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteTemplate sPichuOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Pichu, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPichuOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Pichu, UpdateSurfMonOverlay); + +//=============== CHINCHOU +extern const u32 chinchouTiles[]; +extern const u16 chinchouPal[]; +extern const u16 chinchouShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Chinchou[] = { + // Facing South + overworld_frame(&chinchouTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&chinchouTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&chinchouTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Chinchou[] = { + // Facing South + overworld_frame(&chinchouTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&chinchouTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&chinchouTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&chinchouTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sChinchouOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Chinchou, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sChinchouOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Chinchou, UpdateSurfMonOverlay); + +//=============== LANTURN +extern const u32 lanturnTiles[]; +extern const u16 lanturnPal[]; +extern const u16 lanturnShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Lanturn[] = { + // Facing South + overworld_frame(&lanturnTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&lanturnTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&lanturnTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Lanturn[] = { + // Facing South + overworld_frame(&lanturnTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&lanturnTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&lanturnTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&lanturnTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sLanturnOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lanturn, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLanturnOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lanturn, UpdateSurfMonOverlay); + +//=============== MARILL +extern const u32 marillTiles[]; +extern const u16 marillPal[]; +extern const u16 marillShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Marill[] = { + // Facing South + overworld_frame(&marillTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&marillTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&marillTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Marill[] = { + // Facing South + overworld_frame(&marillTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&marillTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&marillTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&marillTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMarillOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Marill, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMarillOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Marill, UpdateSurfMonOverlay); + +//=============== AZUMARILL +extern const u32 azumarillTiles[]; +extern const u16 azumarillPal[]; +extern const u16 azumarillShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Azumarill[] = { + // Facing South + overworld_frame(&azumarillTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&azumarillTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&azumarillTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Azumarill[] = { + // Facing South + overworld_frame(&azumarillTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&azumarillTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&azumarillTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&azumarillTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sAzumarillOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Azumarill, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sAzumarillOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Azumarill, UpdateSurfMonOverlay); + +//=============== POLITOED +extern const u32 politoedTiles[]; +extern const u16 politoedPal[]; +extern const u16 politoedShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Politoed[] = { + // Facing South + overworld_frame(&politoedTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&politoedTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&politoedTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Politoed[] = { + // Facing South + overworld_frame(&politoedTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&politoedTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&politoedTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&politoedTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sPolitoedOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Politoed, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPolitoedOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Politoed, UpdateSurfMonOverlay); + +//=============== WOOPER +extern const u32 wooperTiles[]; +extern const u16 wooperPal[]; +extern const u16 wooperShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Wooper[] = { + // Facing South + overworld_frame(&wooperTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&wooperTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wooperTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Wooper[] = { + // Facing South + overworld_frame(&wooperTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&wooperTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wooperTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&wooperTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sWooperOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Wooper, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sWooperOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Wooper, UpdateSurfMonOverlay); + +//=============== QUAGSIRE +extern const u32 quagsireTiles[]; +extern const u16 quagsirePal[]; +extern const u16 quagsireShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Quagsire[] = { + // Facing South + overworld_frame(&quagsireTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&quagsireTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&quagsireTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Quagsire[] = { + // Facing South + overworld_frame(&quagsireTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&quagsireTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&quagsireTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&quagsireTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sQuagsireOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Quagsire, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sQuagsireOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Quagsire, UpdateSurfMonOverlay); + +//=============== SLOWKING +extern const u32 slowkingTiles[]; +extern const u16 slowkingPal[]; +extern const u16 slowkingShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Slowking[] = { + // Facing South + overworld_frame(&slowkingTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&slowkingTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowkingTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Slowking[] = { + // Facing South + overworld_frame(&slowkingTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&slowkingTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&slowkingTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&slowkingTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSlowkingOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Slowking, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSlowkingOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Slowking, UpdateSurfMonOverlay); + +//=============== QWILFISH +extern const u32 qwilfishTiles[]; +extern const u16 qwilfishPal[]; +extern const u16 qwilfishShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Qwilfish[] = { + // Facing South + overworld_frame(&qwilfishTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&qwilfishTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&qwilfishTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Qwilfish[] = { + // Facing South + overworld_frame(&qwilfishTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&qwilfishTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&qwilfishTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&qwilfishTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sQwilfishOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Qwilfish, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sQwilfishOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Qwilfish, UpdateSurfMonOverlay); + +//=============== SNEASEL +extern const u32 sneaselTiles[]; +extern const u16 sneaselPal[]; +extern const u16 sneaselShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Sneasel[] = { + // Facing South + overworld_frame(&sneaselTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&sneaselTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sneaselTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Sneasel[] = { + // Facing South + overworld_frame(&sneaselTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&sneaselTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sneaselTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&sneaselTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSneaselOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Sneasel, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSneaselOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Sneasel, UpdateSurfMonOverlay); + +//=============== CORSOLA +extern const u32 corsolaTiles[]; +extern const u16 corsolaPal[]; +extern const u16 corsolaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Corsola[] = { + // Facing South + overworld_frame(&corsolaTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&corsolaTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&corsolaTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Corsola[] = { + // Facing South + overworld_frame(&corsolaTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&corsolaTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&corsolaTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&corsolaTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sCorsolaOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Corsola, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCorsolaOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Corsola, UpdateSurfMonOverlay); + +//=============== REMORAID +extern const u32 remoraidTiles[]; +extern const u16 remoraidPal[]; +extern const u16 remoraidShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Remoraid[] = { + // Facing South + overworld_frame(&remoraidTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&remoraidTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&remoraidTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Remoraid[] = { + // Facing South + overworld_frame(&remoraidTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&remoraidTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&remoraidTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&remoraidTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sRemoraidOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Remoraid, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sRemoraidOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Remoraid, UpdateSurfMonOverlay); + +//=============== OCTILLERY +extern const u32 octilleryTiles[]; +extern const u16 octilleryPal[]; +extern const u16 octilleryShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Octillery[] = { + // Facing South + overworld_frame(&octilleryTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&octilleryTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&octilleryTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Octillery[] = { + // Facing South + overworld_frame(&octilleryTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&octilleryTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&octilleryTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&octilleryTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sOctilleryOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Octillery, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sOctilleryOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Octillery, UpdateSurfMonOverlay); + +//=============== MANTINE +extern const u32 mantineTiles[]; +extern const u16 mantinePal[]; +extern const u16 mantineShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Mantine[] = { + // Facing South + overworld_frame(&mantineTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&mantineTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mantineTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Mantine[] = { + // Facing South + overworld_frame(&mantineTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&mantineTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mantineTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&mantineTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMantineOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Mantine, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMantineOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Mantine, UpdateSurfMonOverlay); //=============== KINGDRA -//extern const u32 kingdraTiles[]; -//extern const u16 kingdraPal[]; -//extern const u16 kingdraShinyPal[]; +extern const u32 kingdraTiles[]; +extern const u16 kingdraPal[]; +extern const u16 kingdraShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Kingdra[] = { + // Facing South + overworld_frame(&kingdraTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&kingdraTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kingdraTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Kingdra[] = { + // Facing South + overworld_frame(&kingdraTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&kingdraTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kingdraTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&kingdraTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sKingdraOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kingdra, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKingdraOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kingdra, UpdateSurfMonOverlay); //=============== MILTANK -//extern const u32 miltankTiles[]; -//extern const u16 miltankPal[]; -//extern const u16 miltankShinyPal[]; +extern const u32 miltankTiles[]; +extern const u16 miltankPal[]; +extern const u16 miltankShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Miltank[] = { + // Facing South + overworld_frame(&miltankTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&miltankTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&miltankTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Miltank[] = { + // Facing South + overworld_frame(&miltankTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&miltankTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&miltankTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&miltankTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMiltankOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Miltank, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMiltankOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Miltank, UpdateSurfMonOverlay); //=============== SUICUNE -//extern const u32 suicuneTiles[]; -//extern const u16 suicunePal[]; -//extern const u16 suicuneShinyPal[]; +extern const u32 suicuneTiles[]; +extern const u16 suicunePal[]; +extern const u16 suicuneShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Suicune[] = { + // Facing South + overworld_frame(&suicuneTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&suicuneTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&suicuneTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Suicune[] = { + // Facing South + overworld_frame(&suicuneTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&suicuneTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&suicuneTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&suicuneTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSuicuneOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Suicune, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSuicuneOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Suicune, UpdateSurfMonOverlay); //=============== TYRANITAR -//extern const u32 tyranitarTiles[]; -//extern const u16 tyranitarPal[]; -//extern const u16 tyranitarShinyPal[]; +extern const u32 tyranitarTiles[]; +extern const u16 tyranitarPal[]; +extern const u16 tyranitarShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Tyranitar[] = { + // Facing South + overworld_frame(&tyranitarTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&tyranitarTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tyranitarTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Tyranitar[] = { + // Facing South + overworld_frame(&tyranitarTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&tyranitarTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&tyranitarTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&tyranitarTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sTyranitarOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Tyranitar, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sTyranitarOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Tyranitar, UpdateSurfMonOverlay); + +//=============== LUGIA +extern const u32 lugiaTiles[]; +extern const u16 lugiaPal[]; +extern const u16 lugiaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Lugia[] = { + // Facing South + overworld_frame(&lugiaTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&lugiaTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&lugiaTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Lugia[] = { + // Facing South + overworld_frame(&lugiaTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&lugiaTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 9), // Bob Down -//=============== LUGIA -//extern const u32 lugiaTiles[]; -//extern const u16 lugiaPal[]; -//extern const u16 lugiaShinyPal[]; + // Facing East/West (Mirrored) + overworld_frame(&lugiaTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&lugiaTiles[0], 8, 8, 11), // Bob Down +}; +const struct SpriteTemplate sLugiaOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lugia, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLugiaOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lugia, UpdateSurfMonOverlay); /*============================== -GEN III + GEN 3 ==============================*/ + //=============== MUDKIP -//extern const u32 mudkipTiles[]; -//extern const u16 mudkipPal[]; -//extern const u16 mudkipShinyPal[]; +extern const u32 mudkipTiles[]; +extern const u16 mudkipPal[]; +extern const u16 mudkipShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Mudkip[] = { + // Facing South + overworld_frame(&mudkipTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&mudkipTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mudkipTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Mudkip[] = { + // Facing South + overworld_frame(&mudkipTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&mudkipTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&mudkipTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&mudkipTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMudkipOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Mudkip, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMudkipOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Mudkip, UpdateSurfMonOverlay); //=============== MARSHTOMP -//extern const u32 marshtompTiles[]; -//extern const u16 marshtompPal[]; -//extern const u16 marshtompShinyPal[]; +extern const u32 marshtompTiles[]; +extern const u16 marshtompPal[]; +extern const u16 marshtompShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Marshtomp[] = { + // Facing South + overworld_frame(&marshtompTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&marshtompTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&marshtompTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Marshtomp[] = { + // Facing South + overworld_frame(&marshtompTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&marshtompTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&marshtompTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&marshtompTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sMarshtompOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Marshtomp, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMarshtompOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Marshtomp, UpdateSurfMonOverlay); //=============== SWAMPERT -//extern const u32 swampertTiles[]; -//extern const u16 swampertPal[]; -//extern const u16 swampertShinyPal[]; +extern const u32 swampertTiles[]; +extern const u16 swampertPal[]; +extern const u16 swampertShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Swampert[] = { + // Facing South + overworld_frame(&swampertTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&swampertTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&swampertTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Swampert[] = { + // Facing South + overworld_frame(&swampertTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&swampertTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&swampertTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&swampertTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSwampertOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Swampert, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSwampertOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Swampert, UpdateSurfMonOverlay); //=============== ZIGZAGOON -//extern const u32 zigzagoonTiles[]; -//extern const u16 zigzagoonPal[]; -//extern const u16 zigzagoonShinyPal[]; +extern const u32 zigzagoonTiles[]; +extern const u16 zigzagoonPal[]; +extern const u16 zigzagoonShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Zigzagoon[] = { + overworld_frame(&zigzagoonTiles[0], 4, 4, 0), + overworld_frame(&zigzagoonTiles[0], 4, 4, 1), + overworld_frame(&zigzagoonTiles[0], 4, 4, 2), + overworld_frame(&zigzagoonTiles[0], 4, 4, 3), + overworld_frame(&zigzagoonTiles[0], 4, 4, 4), + overworld_frame(&zigzagoonTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Zigzagoon[] = { + overworld_frame(&zigzagoonTiles[0], 4, 4, 6), + overworld_frame(&zigzagoonTiles[0], 4, 4, 7), + overworld_frame(&zigzagoonTiles[0], 4, 4, 8), + overworld_frame(&zigzagoonTiles[0], 4, 4, 9), + overworld_frame(&zigzagoonTiles[0], 4, 4, 10), + overworld_frame(&zigzagoonTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sZigzagoonOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Zigzagoon, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sZigzagoonOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Zigzagoon, UpdateSurfMonOverlay); //=============== LINOONE -//extern const u32 linooneTiles[]; -//extern const u16 linoonePal[]; -//extern const u16 linooneShinyPal[]; +extern const u32 linooneTiles[]; +extern const u16 linoonePal[]; +extern const u16 linooneShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Linoone[] = { + overworld_frame(&linooneTiles[0], 4, 4, 0), + overworld_frame(&linooneTiles[0], 4, 4, 1), + overworld_frame(&linooneTiles[0], 4, 4, 2), + overworld_frame(&linooneTiles[0], 4, 4, 3), + overworld_frame(&linooneTiles[0], 4, 4, 4), + overworld_frame(&linooneTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Linoone[] = { + overworld_frame(&linooneTiles[0], 4, 4, 6), + overworld_frame(&linooneTiles[0], 4, 4, 7), + overworld_frame(&linooneTiles[0], 4, 4, 8), + overworld_frame(&linooneTiles[0], 4, 4, 9), + overworld_frame(&linooneTiles[0], 4, 4, 10), + overworld_frame(&linooneTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sLinooneOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Linoone, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLinooneOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Linoone, UpdateSurfMonOverlay); //=============== LOTAD -//extern const u32 lotadTiles[]; -//extern const u16 lotadPal[]; -//extern const u16 lotadShinyPal[]; +extern const u32 lotadTiles[]; +extern const u16 lotadPal[]; +extern const u16 lotadShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Lotad[] = { + overworld_frame(&lotadTiles[0], 4, 4, 0), + overworld_frame(&lotadTiles[0], 4, 4, 1), + overworld_frame(&lotadTiles[0], 4, 4, 2), + overworld_frame(&lotadTiles[0], 4, 4, 3), + overworld_frame(&lotadTiles[0], 4, 4, 4), + overworld_frame(&lotadTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Lotad[] = { + overworld_frame(&lotadTiles[0], 4, 4, 6), + overworld_frame(&lotadTiles[0], 4, 4, 7), + overworld_frame(&lotadTiles[0], 4, 4, 8), + overworld_frame(&lotadTiles[0], 4, 4, 9), + overworld_frame(&lotadTiles[0], 4, 4, 10), + overworld_frame(&lotadTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sLotadOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lotad, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLotadOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lotad, UpdateSurfMonOverlay); //=============== LOMBRE -//extern const u32 lombreTiles[]; -//extern const u16 lombrePal[]; -//extern const u16 lombreShinyPal[]; +extern const u32 lombreTiles[]; +extern const u16 lombrePal[]; +extern const u16 lombreShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Lombre[] = { + overworld_frame(&lombreTiles[0], 4, 4, 0), + overworld_frame(&lombreTiles[0], 4, 4, 1), + overworld_frame(&lombreTiles[0], 4, 4, 2), + overworld_frame(&lombreTiles[0], 4, 4, 3), + overworld_frame(&lombreTiles[0], 4, 4, 4), + overworld_frame(&lombreTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Lombre[] = { + overworld_frame(&lombreTiles[0], 4, 4, 6), + overworld_frame(&lombreTiles[0], 4, 4, 7), + overworld_frame(&lombreTiles[0], 4, 4, 8), + overworld_frame(&lombreTiles[0], 4, 4, 9), + overworld_frame(&lombreTiles[0], 4, 4, 10), + overworld_frame(&lombreTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sLombreOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Lombre, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLombreOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Lombre, UpdateSurfMonOverlay); //=============== LUDICOLO -//extern const u32 ludicoloTiles[]; -//extern const u16 ludicoloPal[]; -//extern const u16 ludicoloShinyPal[]; +extern const u32 ludicoloTiles[]; +extern const u16 ludicoloPal[]; +extern const u16 ludicoloShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Ludicolo[] = { + overworld_frame(&ludicoloTiles[0], 4, 4, 0), + overworld_frame(&ludicoloTiles[0], 4, 4, 1), + overworld_frame(&ludicoloTiles[0], 4, 4, 2), + overworld_frame(&ludicoloTiles[0], 4, 4, 3), + overworld_frame(&ludicoloTiles[0], 4, 4, 4), + overworld_frame(&ludicoloTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Ludicolo[] = { + overworld_frame(&ludicoloTiles[0], 4, 4, 6), + overworld_frame(&ludicoloTiles[0], 4, 4, 7), + overworld_frame(&ludicoloTiles[0], 4, 4, 8), + overworld_frame(&ludicoloTiles[0], 4, 4, 9), + overworld_frame(&ludicoloTiles[0], 4, 4, 10), + overworld_frame(&ludicoloTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sLudicoloOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Ludicolo, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLudicoloOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Ludicolo, UpdateSurfMonOverlay); //=============== PELIPPER -//extern const u32 pelipperTiles[]; -//extern const u16 pelipperPal[]; -//extern const u16 pelipperShinyPal[]; +extern const u32 pelipperTiles[]; +extern const u16 pelipperPal[]; +extern const u16 pelipperShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Pelipper[] = { + overworld_frame(&pelipperTiles[0], 4, 4, 0), + overworld_frame(&pelipperTiles[0], 4, 4, 1), + overworld_frame(&pelipperTiles[0], 4, 4, 2), + overworld_frame(&pelipperTiles[0], 4, 4, 3), + overworld_frame(&pelipperTiles[0], 4, 4, 4), + overworld_frame(&pelipperTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Pelipper[] = { + overworld_frame(&pelipperTiles[0], 4, 4, 6), + overworld_frame(&pelipperTiles[0], 4, 4, 7), + overworld_frame(&pelipperTiles[0], 4, 4, 8), + overworld_frame(&pelipperTiles[0], 4, 4, 9), + overworld_frame(&pelipperTiles[0], 4, 4, 10), + overworld_frame(&pelipperTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sPelipperOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Pelipper, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sPelipperOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Pelipper, UpdateSurfMonOverlay); + +//=============== SURSKIT +extern const u32 surskitTiles[]; +extern const u16 surskitPal[]; +extern const u16 surskitShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Surskit[] = { + overworld_frame(&surskitTiles[0], 8, 8, 1), + overworld_frame(&surskitTiles[0], 8, 8, 0), + overworld_frame(&surskitTiles[0], 8, 8, 3), + overworld_frame(&surskitTiles[0], 8, 8, 2), + overworld_frame(&surskitTiles[0], 8, 8, 5), + overworld_frame(&surskitTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Surskit[] = { + overworld_frame(&surskitTiles[0], 8, 8, 7), + overworld_frame(&surskitTiles[0], 8, 8, 6), + overworld_frame(&surskitTiles[0], 8, 8, 9), + overworld_frame(&surskitTiles[0], 8, 8, 8), + overworld_frame(&surskitTiles[0], 8, 8, 11), + overworld_frame(&surskitTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sSurskitOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Surskit, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSurskitOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Surskit, UpdateSurfMonOverlay); + +//=============== MASQUERAIN +extern const u32 masquerainTiles[]; +extern const u16 masquerainPal[]; +extern const u16 masquerainShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Masquerain[] = { + overworld_frame(&masquerainTiles[0], 8, 8, 1), + overworld_frame(&masquerainTiles[0], 8, 8, 0), + overworld_frame(&masquerainTiles[0], 8, 8, 3), + overworld_frame(&masquerainTiles[0], 8, 8, 2), + overworld_frame(&masquerainTiles[0], 8, 8, 5), + overworld_frame(&masquerainTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Masquerain[] = { + overworld_frame(&masquerainTiles[0], 8, 8, 7), + overworld_frame(&masquerainTiles[0], 8, 8, 6), + overworld_frame(&masquerainTiles[0], 8, 8, 9), + overworld_frame(&masquerainTiles[0], 8, 8, 8), + overworld_frame(&masquerainTiles[0], 8, 8, 11), + overworld_frame(&masquerainTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sMasquerainOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Masquerain, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMasquerainOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Masquerain, UpdateSurfMonOverlay); //=============== EXPLOUD -//extern const u32 exploudTiles[]; -//extern const u16 exploudPal[]; -//extern const u16 exploudShinyPal[]; +extern const u32 exploudTiles[]; +extern const u16 exploudPal[]; +extern const u16 exploudShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Exploud[] = { + overworld_frame(&exploudTiles[0], 4, 4, 0), + overworld_frame(&exploudTiles[0], 4, 4, 1), + overworld_frame(&exploudTiles[0], 4, 4, 2), + overworld_frame(&exploudTiles[0], 4, 4, 3), + overworld_frame(&exploudTiles[0], 4, 4, 4), + overworld_frame(&exploudTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Exploud[] = { + overworld_frame(&exploudTiles[0], 4, 4, 6), + overworld_frame(&exploudTiles[0], 4, 4, 7), + overworld_frame(&exploudTiles[0], 4, 4, 8), + overworld_frame(&exploudTiles[0], 4, 4, 9), + overworld_frame(&exploudTiles[0], 4, 4, 10), + overworld_frame(&exploudTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sExploudOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Exploud, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sExploudOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Exploud, UpdateSurfMonOverlay); //=============== MAKUHITA -//extern const u32 makuhitaTiles[]; -//extern const u16 makuhitaPal[]; -//extern const u16 makuhitaShinyPal[]; +extern const u32 makuhitaTiles[]; +extern const u16 makuhitaPal[]; +extern const u16 makuhitaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Makuhita[] = { + overworld_frame(&makuhitaTiles[0], 4, 4, 0), + overworld_frame(&makuhitaTiles[0], 4, 4, 1), + overworld_frame(&makuhitaTiles[0], 4, 4, 2), + overworld_frame(&makuhitaTiles[0], 4, 4, 3), + overworld_frame(&makuhitaTiles[0], 4, 4, 4), + overworld_frame(&makuhitaTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Makuhita[] = { + overworld_frame(&makuhitaTiles[0], 4, 4, 6), + overworld_frame(&makuhitaTiles[0], 4, 4, 7), + overworld_frame(&makuhitaTiles[0], 4, 4, 8), + overworld_frame(&makuhitaTiles[0], 4, 4, 9), + overworld_frame(&makuhitaTiles[0], 4, 4, 10), + overworld_frame(&makuhitaTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sMakuhitaOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Makuhita, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMakuhitaOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Makuhita, UpdateSurfMonOverlay); //=============== HARIYAMA -//extern const u32 hariyamaTiles[]; -//extern const u16 hariyamaPal[]; -//extern const u16 hariyamaShinyPal[]; +extern const u32 hariyamaTiles[]; +extern const u16 hariyamaPal[]; +extern const u16 hariyamaShinyPal[]; -//=============== AZUMARILL -//extern const u32 azurillTiles[]; -//extern const u16 azurillPal[]; -//extern const u16 azurillShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Hariyama[] = { + overworld_frame(&hariyamaTiles[0], 4, 4, 0), + overworld_frame(&hariyamaTiles[0], 4, 4, 1), + overworld_frame(&hariyamaTiles[0], 4, 4, 2), + overworld_frame(&hariyamaTiles[0], 4, 4, 3), + overworld_frame(&hariyamaTiles[0], 4, 4, 4), + overworld_frame(&hariyamaTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Hariyama[] = { + overworld_frame(&hariyamaTiles[0], 4, 4, 6), + overworld_frame(&hariyamaTiles[0], 4, 4, 7), + overworld_frame(&hariyamaTiles[0], 4, 4, 8), + overworld_frame(&hariyamaTiles[0], 4, 4, 9), + overworld_frame(&hariyamaTiles[0], 4, 4, 10), + overworld_frame(&hariyamaTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sHariyamaOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Hariyama, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sHariyamaOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Hariyama, UpdateSurfMonOverlay); //=============== AGGRON -//extern const u32 aggronTiles[]; -//extern const u16 aggronPal[]; -//extern const u16 aggronShinyPal[]; +extern const u32 aggronTiles[]; +extern const u16 aggronPal[]; +extern const u16 aggronShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Aggron[] = { + overworld_frame(&aggronTiles[0], 4, 4, 0), + overworld_frame(&aggronTiles[0], 4, 4, 1), + overworld_frame(&aggronTiles[0], 4, 4, 2), + overworld_frame(&aggronTiles[0], 4, 4, 3), + overworld_frame(&aggronTiles[0], 4, 4, 5), + overworld_frame(&aggronTiles[0], 4, 4, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Aggron[] = { + overworld_frame(&aggronTiles[0], 4, 4, 6), + overworld_frame(&aggronTiles[0], 4, 4, 7), + overworld_frame(&aggronTiles[0], 4, 4, 8), + overworld_frame(&aggronTiles[0], 4, 4, 9), + overworld_frame(&aggronTiles[0], 4, 4, 10), + overworld_frame(&aggronTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sAggronOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Aggron, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sAggronOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Aggron, UpdateSurfMonOverlay); //=============== CARVANHA -//extern const u32 carvanhaTiles[]; -//extern const u16 carvanhaPal[]; -//extern const u16 carvanhaShinyPal[]; +extern const u32 carvanhaTiles[]; +extern const u16 carvanhaPal[]; +extern const u16 carvanhaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Carvanha[] = { + overworld_frame(&carvanhaTiles[0], 8, 8, 1), + overworld_frame(&carvanhaTiles[0], 8, 8, 0), + overworld_frame(&carvanhaTiles[0], 8, 8, 3), + overworld_frame(&carvanhaTiles[0], 8, 8, 2), + overworld_frame(&carvanhaTiles[0], 8, 8, 5), + overworld_frame(&carvanhaTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Carvanha[] = { + overworld_frame(&carvanhaTiles[0], 8, 8, 7), + overworld_frame(&carvanhaTiles[0], 8, 8, 6), + overworld_frame(&carvanhaTiles[0], 8, 8, 9), + overworld_frame(&carvanhaTiles[0], 8, 8, 8), + overworld_frame(&carvanhaTiles[0], 8, 8, 11), + overworld_frame(&carvanhaTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sCarvanhaOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Carvanha, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCarvanhaOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Carvanha, UpdateSurfMonOverlay); //=============== SHARPEDO -//extern const u32 sharpedoTiles[]; -//extern const u16 sharpedoPal[]; -//extern const u16 sharpedoShinyPal[]; +extern const u32 sharpedoTiles[]; +extern const u16 sharpedoPal[]; +extern const u16 sharpedoShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Sharpedo[] = { + // Facing South + overworld_frame(&sharpedoTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&sharpedoTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sharpedoTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Sharpedo[] = { + // Facing South + overworld_frame(&sharpedoTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&sharpedoTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&sharpedoTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&sharpedoTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sSharpedoOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Sharpedo, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSharpedoOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Sharpedo, UpdateSurfMonOverlay); //=============== WAILMER extern const u32 wailmerTiles[]; extern const u16 wailmerPal[]; extern const u16 wailmerShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Wailmer[] = { - overworld_frame(&wailmerTiles[0], 4, 4, 1), - overworld_frame(&wailmerTiles[0], 4, 4, 0), - overworld_frame(&wailmerTiles[0], 4, 4, 3), - overworld_frame(&wailmerTiles[0], 4, 4, 2), - overworld_frame(&wailmerTiles[0], 4, 4, 5), - overworld_frame(&wailmerTiles[0], 4, 4, 4), + // Facing South + overworld_frame(&wailmerTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&wailmerTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wailmerTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 5), // Bob Down }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Wailmer[] = { - overworld_frame(&wailmerTiles[0], 4, 4, 7), - overworld_frame(&wailmerTiles[0], 4, 4, 6), - overworld_frame(&wailmerTiles[0], 4, 4, 9), - overworld_frame(&wailmerTiles[0], 4, 4, 8), - overworld_frame(&wailmerTiles[0], 4, 4, 11), - overworld_frame(&wailmerTiles[0], 4, 4, 10), + // Facing South + overworld_frame(&wailmerTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&wailmerTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&wailmerTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&wailmerTiles[0], 8, 8, 11), // Bob Down }; -const struct SpriteTemplate sWailmerOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Wailmer, UpdateSurfBlobFieldEffect); -const struct SpriteTemplate sWailmerOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Wailmer, UpdateSurfMonOverlay); + +const struct SpriteTemplate sWailmerOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Wailmer, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sWailmerOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Wailmer, UpdateSurfMonOverlay); //=============== WAILORD -//extern const u32 wailordTiles[]; -//extern const u16 wailordPal[]; -//extern const u16 wailordShinyPal[]; +extern const u32 wailordTiles[]; +extern const u16 wailordPal[]; +extern const u16 wailordShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Wailord[] = { + overworld_frame(&wailordTiles[0], 8, 8, 1), + overworld_frame(&wailordTiles[0], 8, 8, 0), + overworld_frame(&wailordTiles[0], 8, 8, 3), + overworld_frame(&wailordTiles[0], 8, 8, 2), + overworld_frame(&wailordTiles[0], 8, 8, 5), + overworld_frame(&wailordTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Wailord[] = { + overworld_frame(&wailordTiles[0], 8, 8, 7), + overworld_frame(&wailordTiles[0], 8, 8, 6), + overworld_frame(&wailordTiles[0], 8, 8, 9), + overworld_frame(&wailordTiles[0], 8, 8, 8), + overworld_frame(&wailordTiles[0], 8, 8, 11), + overworld_frame(&wailordTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sWailordOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Wailord, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sWailordOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Wailord, UpdateSurfMonOverlay); + +//=============== ZANGOOSE +extern const u32 zangooseTiles[]; +extern const u16 zangoosePal[]; +extern const u16 zangooseShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Zangoose[] = { + // Facing South + overworld_frame(&zangooseTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&zangooseTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&zangooseTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Zangoose[] = { + // Facing South + overworld_frame(&zangooseTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&zangooseTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&zangooseTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&zangooseTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sZangooseOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Zangoose, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sZangooseOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Zangoose, UpdateSurfMonOverlay); //=============== BARBOACH -//extern const u32 barboachTiles[]; -//extern const u16 barboachPal[]; -//extern const u16 barboachShinyPal[]; +extern const u32 barboachTiles[]; +extern const u16 barboachPal[]; +extern const u16 barboachShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Barboach[] = { + overworld_frame(&barboachTiles[0], 8, 8, 1), + overworld_frame(&barboachTiles[0], 8, 8, 0), + overworld_frame(&barboachTiles[0], 8, 8, 3), + overworld_frame(&barboachTiles[0], 8, 8, 2), + overworld_frame(&barboachTiles[0], 8, 8, 5), + overworld_frame(&barboachTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Barboach[] = { + overworld_frame(&barboachTiles[0], 8, 8, 7), + overworld_frame(&barboachTiles[0], 8, 8, 6), + overworld_frame(&barboachTiles[0], 8, 8, 9), + overworld_frame(&barboachTiles[0], 8, 8, 8), + overworld_frame(&barboachTiles[0], 8, 8, 11), + overworld_frame(&barboachTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sBarboachOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Barboach, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sBarboachOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Barboach, UpdateSurfMonOverlay); //=============== WHISCASH -//extern const u32 whiscashTiles[]; -//extern const u16 whiscashPal[]; -//extern const u16 whiscashShinyPal[]; +extern const u32 whiscashTiles[]; +extern const u16 whiscashPal[]; +extern const u16 whiscashShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Whiscash[] = { + // Facing South + overworld_frame(&whiscashTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&whiscashTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&whiscashTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Whiscash[] = { + // Facing South + overworld_frame(&whiscashTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&whiscashTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&whiscashTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&whiscashTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sWhiscashOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Whiscash, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sWhiscashOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Whiscash, UpdateSurfMonOverlay); //=============== CORPHISH -//extern const u32 corphishTiles[]; -//extern const u16 corphishPal[]; -//extern const u16 corphishShinyPal[]; +extern const u32 corphishTiles[]; +extern const u16 corphishPal[]; +extern const u16 corphishShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Corphish[] = { + overworld_frame(&corphishTiles[0], 8, 8, 1), + overworld_frame(&corphishTiles[0], 8, 8, 0), + overworld_frame(&corphishTiles[0], 8, 8, 3), + overworld_frame(&corphishTiles[0], 8, 8, 2), + overworld_frame(&corphishTiles[0], 8, 8, 5), + overworld_frame(&corphishTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Corphish[] = { + overworld_frame(&corphishTiles[0], 8, 8, 7), + overworld_frame(&corphishTiles[0], 8, 8, 6), + overworld_frame(&corphishTiles[0], 8, 8, 9), + overworld_frame(&corphishTiles[0], 8, 8, 8), + overworld_frame(&corphishTiles[0], 8, 8, 11), + overworld_frame(&corphishTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sCorphishOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Corphish, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCorphishOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Corphish, UpdateSurfMonOverlay); //=============== CRAWDAUNT -//extern const u32 crawdauntTiles[]; -//extern const u16 crawdauntPal[]; -//extern const u16 crawdauntShinyPal[]; +extern const u32 crawdauntTiles[]; +extern const u16 crawdauntPal[]; +extern const u16 crawdauntShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Crawdaunt[] = { + // Facing South + overworld_frame(&crawdauntTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&crawdauntTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&crawdauntTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Crawdaunt[] = { + // Facing South + overworld_frame(&crawdauntTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&crawdauntTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&crawdauntTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&crawdauntTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sCrawdauntOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Crawdaunt, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sCrawdauntOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Crawdaunt, UpdateSurfMonOverlay); //=============== FEEBAS -//extern const u32 feebasTiles[]; -//extern const u16 feebasPal[]; -//extern const u16 feebasShinyPal[]; +extern const u32 feebasTiles[]; +extern const u16 feebasPal[]; +extern const u16 feebasShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Feebas[] = { + overworld_frame(&feebasTiles[0], 8, 8, 1), + overworld_frame(&feebasTiles[0], 8, 8, 0), + overworld_frame(&feebasTiles[0], 8, 8, 3), + overworld_frame(&feebasTiles[0], 8, 8, 2), + overworld_frame(&feebasTiles[0], 8, 8, 5), + overworld_frame(&feebasTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Feebas[] = { + overworld_frame(&feebasTiles[0], 8, 8, 7), + overworld_frame(&feebasTiles[0], 8, 8, 6), + overworld_frame(&feebasTiles[0], 8, 8, 9), + overworld_frame(&feebasTiles[0], 8, 8, 8), + overworld_frame(&feebasTiles[0], 8, 8, 11), + overworld_frame(&feebasTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sFeebasOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Feebas, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sFeebasOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Feebas, UpdateSurfMonOverlay); //=============== MILOTIC -//extern const u32 miloticTiles[]; -//extern const u16 miloticPal[]; -//extern const u16 miloticShinyPal[]; +extern const u32 miloticTiles[]; +extern const u16 miloticPal[]; +extern const u16 miloticShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Milotic[] = { + overworld_frame(&miloticTiles[0], 4, 4, 0), + overworld_frame(&miloticTiles[0], 4, 4, 1), + overworld_frame(&miloticTiles[0], 4, 4, 2), + overworld_frame(&miloticTiles[0], 4, 4, 3), + overworld_frame(&miloticTiles[0], 4, 4, 4), + overworld_frame(&miloticTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Milotic[] = { + overworld_frame(&miloticTiles[0], 4, 4, 6), + overworld_frame(&miloticTiles[0], 4, 4, 7), + overworld_frame(&miloticTiles[0], 4, 4, 8), + overworld_frame(&miloticTiles[0], 4, 4, 9), + overworld_frame(&miloticTiles[0], 4, 4, 10), + overworld_frame(&miloticTiles[0], 4, 4, 11), +}; + +const struct SpriteTemplate sMiloticOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Milotic, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sMiloticOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Milotic, UpdateSurfMonOverlay); //=============== SPHEAL extern const u32 sphealTiles[]; extern const u16 sphealPal[]; extern const u16 sphealShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Spheal[] = { overworld_frame(&sphealTiles[0], 4, 4, 0), overworld_frame(&sphealTiles[0], 4, 4, 1), @@ -823,13 +3384,50 @@ const struct SpriteFrameImage gSurfingOverworldPicTable_Spheal[] = { overworld_frame(&sphealTiles[0], 4, 4, 4), overworld_frame(&sphealTiles[0], 4, 4, 5), }; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Spheal[] = { + overworld_frame(&sphealTiles[0], 4, 4, 6), + overworld_frame(&sphealTiles[0], 4, 4, 7), + overworld_frame(&sphealTiles[0], 4, 4, 8), + overworld_frame(&sphealTiles[0], 4, 4, 9), + overworld_frame(&sphealTiles[0], 4, 4, 10), + overworld_frame(&sphealTiles[0], 4, 4, 11), +}; + const struct SpriteTemplate sSphealOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Spheal, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSphealOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Spheal, UpdateSurfMonOverlay); + +//=============== AZURILL +extern const u32 azurillTiles[]; +extern const u16 azurillPal[]; +extern const u16 azurillShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Azurill[] = { + overworld_frame(&azurillTiles[0], 4, 4, 0), + overworld_frame(&azurillTiles[0], 4, 4, 1), + overworld_frame(&azurillTiles[0], 4, 4, 2), + overworld_frame(&azurillTiles[0], 4, 4, 3), + overworld_frame(&azurillTiles[0], 4, 4, 4), + overworld_frame(&azurillTiles[0], 4, 4, 5), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Azurill[] = { + overworld_frame(&azurillTiles[0], 4, 4, 6), + overworld_frame(&azurillTiles[0], 4, 4, 7), + overworld_frame(&azurillTiles[0], 4, 4, 8), + overworld_frame(&azurillTiles[0], 4, 4, 9), + overworld_frame(&azurillTiles[0], 4, 4, 10), + overworld_frame(&azurillTiles[0], 4, 4, 11), +}; +const struct SpriteTemplate sAzurillOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Azurill, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sAzurillOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Azurill, UpdateSurfMonOverlay); //=============== SEALEO extern const u32 sealeoTiles[]; extern const u16 sealeoPal[]; extern const u16 sealeoShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Sealeo[] = { overworld_frame(&sealeoTiles[0], 4, 4, 0), overworld_frame(&sealeoTiles[0], 4, 4, 1), @@ -838,6 +3436,7 @@ const struct SpriteFrameImage gSurfingOverworldPicTable_Sealeo[] = { overworld_frame(&sealeoTiles[0], 4, 4, 4), overworld_frame(&sealeoTiles[0], 4, 4, 5), }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Sealeo[] = { overworld_frame(&sealeoTiles[0], 4, 4, 6), overworld_frame(&sealeoTiles[0], 4, 4, 7), @@ -846,14 +3445,15 @@ const struct SpriteFrameImage gSurfingOverlayPicTable_Sealeo[] = { overworld_frame(&sealeoTiles[0], 4, 4, 10), overworld_frame(&sealeoTiles[0], 4, 4, 11), }; + const struct SpriteTemplate sSealeoOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Sealeo, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sSealeoOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Sealeo, UpdateSurfMonOverlay); - //=============== WALREIN extern const u32 walreinTiles[]; extern const u16 walreinPal[]; extern const u16 walreinShinyPal[]; + const struct SpriteFrameImage gSurfingOverworldPicTable_Walrein[] = { overworld_frame(&walreinTiles[0], 4, 4, 0), overworld_frame(&walreinTiles[0], 4, 4, 1), @@ -862,6 +3462,7 @@ const struct SpriteFrameImage gSurfingOverworldPicTable_Walrein[] = { overworld_frame(&walreinTiles[0], 4, 4, 4), overworld_frame(&walreinTiles[0], 4, 4, 5), }; + const struct SpriteFrameImage gSurfingOverlayPicTable_Walrein[] = { overworld_frame(&walreinTiles[0], 4, 4, 6), overworld_frame(&walreinTiles[0], 4, 4, 7), @@ -870,56 +3471,313 @@ const struct SpriteFrameImage gSurfingOverlayPicTable_Walrein[] = { overworld_frame(&walreinTiles[0], 4, 4, 10), overworld_frame(&walreinTiles[0], 4, 4, 11), }; + const struct SpriteTemplate sWalreinOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Walrein, UpdateSurfBlobFieldEffect); const struct SpriteTemplate sWalreinOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Walrein, UpdateSurfMonOverlay); - //=============== CLAMPERL -//extern const u32 clamperlTiles[]; -//extern const u16 clamperlPal[]; -//extern const u16 clamperlShinyPal[]; +extern const u32 clamperlTiles[]; +extern const u16 clamperlPal[]; +extern const u16 clamperlShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Clamperl[] = { + // Facing South + overworld_frame(&clamperlTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&clamperlTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&clamperlTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Clamperl[] = { + // Facing South + overworld_frame(&clamperlTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&clamperlTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&clamperlTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&clamperlTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sClamperlOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Clamperl, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sClamperlOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Clamperl, UpdateSurfMonOverlay); //=============== HUNTAIL -//extern const u32 huntailTiles[]; -//extern const u16 huntailPal[]; -//extern const u16 huntailShinyPal[]; +extern const u32 huntailTiles[]; +extern const u16 huntailPal[]; +extern const u16 huntailShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Huntail[] = { + // Facing South + overworld_frame(&huntailTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&huntailTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&huntailTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Huntail[] = { + // Facing South + overworld_frame(&huntailTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&huntailTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&huntailTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&huntailTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sHuntailOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Huntail, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sHuntailOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Huntail, UpdateSurfMonOverlay); //=============== GOREBYSS -//extern const u32 gorebyssTiles[]; -//extern const u16 gorebyssPal[]; -//extern const u16 gorebyssShinyPal[]; +extern const u32 gorebyssTiles[]; +extern const u16 gorebyssPal[]; +extern const u16 gorebyssShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Gorebyss[] = { + // Facing South + overworld_frame(&gorebyssTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&gorebyssTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&gorebyssTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Gorebyss[] = { + // Facing South + overworld_frame(&gorebyssTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&gorebyssTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&gorebyssTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&gorebyssTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sGorebyssOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Gorebyss, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sGorebyssOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Gorebyss, UpdateSurfMonOverlay); //=============== RELICANTH -//extern const u32 relicanthTiles[]; -//extern const u16 relicanthPal[]; -//extern const u16 relicanthShinyPal[]; +extern const u32 relicanthTiles[]; +extern const u16 relicanthPal[]; +extern const u16 relicanthShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Relicanth[] = { + // Facing South + overworld_frame(&relicanthTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&relicanthTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&relicanthTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Relicanth[] = { + // Facing South + overworld_frame(&relicanthTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&relicanthTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&relicanthTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&relicanthTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sRelicanthOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Relicanth, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sRelicanthOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Relicanth, UpdateSurfMonOverlay); //=============== LUVDISC -//extern const u32 luvdiscTiles[]; -//extern const u16 luvdiscPal[]; -//extern const u16 luvdiscShinyPal[]; +extern const u32 luvdiscTiles[]; +extern const u16 luvdiscPal[]; +extern const u16 luvdiscShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Luvdisc[] = { + overworld_frame(&luvdiscTiles[0], 8, 8, 1), + overworld_frame(&luvdiscTiles[0], 8, 8, 0), + overworld_frame(&luvdiscTiles[0], 8, 8, 3), + overworld_frame(&luvdiscTiles[0], 8, 8, 2), + overworld_frame(&luvdiscTiles[0], 8, 8, 5), + overworld_frame(&luvdiscTiles[0], 8, 8, 4), +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Luvdisc[] = { + overworld_frame(&luvdiscTiles[0], 8, 8, 7), + overworld_frame(&luvdiscTiles[0], 8, 8, 6), + overworld_frame(&luvdiscTiles[0], 8, 8, 9), + overworld_frame(&luvdiscTiles[0], 8, 8, 8), + overworld_frame(&luvdiscTiles[0], 8, 8, 11), + overworld_frame(&luvdiscTiles[0], 8, 8, 10), +}; + +const struct SpriteTemplate sLuvdiscOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Luvdisc, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLuvdiscOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Luvdisc, UpdateSurfMonOverlay); //=============== LATIAS -//extern const u32 latiasTiles[]; -//extern const u16 latiasPal[]; -//extern const u16 latiasShinyPal[]; +extern const u32 latiasTiles[]; +extern const u16 latiasPal[]; +extern const u16 latiasShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Latias[] = { + // Facing South + overworld_frame(&latiasTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&latiasTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&latiasTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Latias[] = { + // Facing South + overworld_frame(&latiasTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&latiasTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&latiasTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&latiasTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sLatiasOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Latias, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLatiasOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Latias, UpdateSurfMonOverlay); //=============== LATIOS -//extern const u32 latiosTiles[]; -//extern const u16 latiosPal[]; -//extern const u16 latiosShinyPal[]; +extern const u32 latiosTiles[]; +extern const u16 latiosPal[]; +extern const u16 latiosShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Latios[] = { + // Facing South + overworld_frame(&latiosTiles[0], 4, 4, 0), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 1), // Bob Down + + // Facing North + overworld_frame(&latiosTiles[0], 4, 4, 2), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&latiosTiles[0], 4, 4, 4), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Latios[] = { + // Facing South + overworld_frame(&latiosTiles[0], 4, 4, 6), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 7), // Bob Down + + // Facing North + overworld_frame(&latiosTiles[0], 4, 4, 8), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&latiosTiles[0], 4, 4, 10), // Bob Up + overworld_frame(&latiosTiles[0], 4, 4, 11), // Bob Down +}; + +const struct SpriteTemplate sLatiosOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Latios, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sLatiosOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Latios, UpdateSurfMonOverlay); //=============== KYOGRE -//extern const u32 kyogreTiles[]; -//extern const u16 kyogrePal[]; -//extern const u16 kyogreShinyPal[]; +extern const u32 kyogreTiles[]; +extern const u16 kyogrePal[]; +extern const u16 kyogreShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Kyogre[] = { + // Facing South + overworld_frame(&kyogreTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 1), // Bob Down + + // Facing North + overworld_frame(&kyogreTiles[0], 8, 8, 2), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 3), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kyogreTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 5), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Kyogre[] = { + // Facing South + overworld_frame(&kyogreTiles[0], 8, 8, 6), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 7), // Bob Down + + // Facing North + overworld_frame(&kyogreTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 9), // Bob Down + + // Facing East/West (Mirrored) + overworld_frame(&kyogreTiles[0], 8, 8, 10), // Bob Up + overworld_frame(&kyogreTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteTemplate sKyogreOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Kyogre, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sKyogreOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Kyogre, UpdateSurfMonOverlay); //=============== RAYQUAZA -//extern const u32 rayquazaTiles[]; -//extern const u16 rayquazaPal[]; -//extern const u16 rayquazaShinyPal[]; +extern const u32 rayquazaTiles[]; +extern const u16 rayquazaPal[]; +extern const u16 rayquazaShinyPal[]; + +const struct SpriteFrameImage gSurfingOverworldPicTable_Rayquaza[] = { + overworld_frame(&rayquazaTiles[0], 8, 8, 1), + overworld_frame(&rayquazaTiles[0], 8, 8, 0), + overworld_frame(&rayquazaTiles[0], 8, 8, 3), + overworld_frame(&rayquazaTiles[0], 8, 8, 2), + overworld_frame(&rayquazaTiles[0], 8, 8, 5), + overworld_frame(&rayquazaTiles[0], 8, 8, 4), +}; +const struct SpriteFrameImage gSurfingOverlayPicTable_Rayquaza[] = { + overworld_frame(&rayquazaTiles[0], 8, 8, 7), + overworld_frame(&rayquazaTiles[0], 8, 8, 6), + overworld_frame(&rayquazaTiles[0], 8, 8, 9), + overworld_frame(&rayquazaTiles[0], 8, 8, 8), + overworld_frame(&rayquazaTiles[0], 8, 8, 11), + overworld_frame(&rayquazaTiles[0], 8, 8, 10), +}; +const struct SpriteTemplate sRayquazaOverworld = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Rayquaza, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sRayquazaOverlay = surf_template64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Rayquaza, UpdateSurfMonOverlay); /*================================================== RIDEABLE POKEMON STRUCTURE @@ -936,719 +3794,790 @@ struct RideableMons }; const struct RideableMons gSurfablePokemon[] = -{ - { - .species = SPECIES_SQUIRTLE, - .palAddr = &squirtlePal[0], - .shinyPalAddr = &squirtleShinyPal[0], - .overworldGfx = &sSquirtleOverworld, - .overlayGfx = &sSquirtleOverlay, - }, - { - .species = SPECIES_WARTORTLE, - .palAddr = &wartortlePal[0], - .shinyPalAddr = &wartortleShinyPal[0], - .overworldGfx = &sWartortleOverworld, - .overlayGfx = &sWartortleOverlay, - }, - { - .species = SPECIES_BLASTOISE, - .palAddr = &blastoisePal[0], - .shinyPalAddr = &blastoiseShinyPal[0], - .overworldGfx = &sBlastoiseOverworld, - .overlayGfx = &sBlastoiseOverlay, - }, - { - .species = SPECIES_NIDOQUEEN, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_NIDOKING, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_PSYDUCK, - .palAddr = &psyduckPal[0], - .shinyPalAddr = &psyduckShinyPal[0], - .overworldGfx = &sPsyduckOverworld, - .overlayGfx = &sPsyduckOverlay, - }, - { - .species = SPECIES_GOLDUCK, - .palAddr = &golduckPal[0], - .shinyPalAddr = &golduckShinyPal[0], - .overworldGfx = &sGolduckOverworld, - .overlayGfx = &sGolduckOverlay, - }, - { - .species = SPECIES_POLIWAG, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_POLIWHIRL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_POLIWRATH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_TENTACOOL, - .palAddr = &tentacoolPal[0], - .shinyPalAddr = &tentacoolShinyPal[0], - .overworldGfx = &sTentacoolOverworld, - .overlayGfx = &sTentacoolOverlay, - }, - { - .species = SPECIES_TENTACRUEL, - .palAddr = &tentacruelPal[0], - .shinyPalAddr = &tentacruelShinyPal[0], - .overworldGfx = &sTentacruelOverworld, - .overlayGfx = &sTentacruelOverlay, - }, - { - .species = SPECIES_SLOWPOKE, - .palAddr = &slowpokePal[0], - .shinyPalAddr = &slowpokeShinyPal[0], - .overworldGfx = &sSlowpokeOverworld, - .overlayGfx = &sSlowpokeOverlay, - }, - { - .species = SPECIES_SLOWBRO, - .palAddr = &slowbroPal[0], - .shinyPalAddr = &slowbroShinyPal[0], - .overworldGfx = &sSlowbroOverworld, - .overlayGfx = &sSlowbroOverlay, - }, - { - .species = SPECIES_SEEL, - .palAddr = &seelPal[0], - .shinyPalAddr = &seelShinyPal[0], - .overworldGfx = &sSeelOverworld, - .overlayGfx = &sSeelOverlay, - }, - { - .species = SPECIES_DEWGONG, - .palAddr = &dewgongPal[0], - .shinyPalAddr = &dewgongShinyPal[0], - .overworldGfx = &sDewgongOverworld, - .overlayGfx = &sDewgongOverlay, - }, - { - .species = SPECIES_SHELLDER, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CLOYSTER, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KRABBY, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KINGLER, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LICKITUNG, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_RHYDON, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KANGASKHAN, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_HORSEA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SEADRA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_GOLDEEN, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SEAKING, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_STARYU, - .palAddr = &staryuPal[0], - .shinyPalAddr = &staryuShinyPal[0], - .overworldGfx = &sStaryuOverworld, - .overlayGfx = &sStaryuOverlay, - }, - { - .species = SPECIES_STARMIE, - .palAddr = &starmiePal[0], - .shinyPalAddr = &starmieShinyPal[0], - .overworldGfx = &sStarmieOverworld, - .overlayGfx = &sStarmieOverlay, - }, - { - .species = SPECIES_TAUROS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_GYARADOS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LAPRAS, - .palAddr = &laprasPal[0], - .shinyPalAddr = &laprasShinyPal[0], - .overworldGfx = &sLaprasOverworld, - .overlayGfx = &sLaprasOverlay, - }, - { - .species = SPECIES_VAPOREON, - .palAddr = &vaporeonPal[0], - .shinyPalAddr = &vaporeonShinyPal[0], - .overworldGfx = &sVaporeonOverworld, - .overlayGfx = &sVaporeonOverlay, - }, - { - .species = SPECIES_OMANYTE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_OMASTAR, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KABUTO, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KABUTOPS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SNORLAX, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_DRATINI, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_DRAGONAIR, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_DRAGONITE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MEW, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_TOTODILE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CROCONAW, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_FERALIGATR, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SENTRET, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_FURRET, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CHINCHOU, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LANTURN, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MARILL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_AZUMARILL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_POLITOED, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_WOOPER, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_QUAGSIRE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SLOWKING, - .palAddr = &slowkingPal[0], - .shinyPalAddr = &slowkingShinyPal[0], - .overworldGfx = &sSlowkingOverworld, - .overlayGfx = &sSlowkingOverlay, - }, - { - .species = SPECIES_QWILFISH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SNEASEL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CORSOLA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_REMORAID, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_OCTILLERY, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MANTINE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KINGDRA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MILTANK, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SUICUNE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_TYRANITAR, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LUGIA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MUDKIP, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MARSHTOMP, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SWAMPERT, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_ZIGZAGOON, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LINOONE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LOTAD, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LOMBRE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LUDICOLO, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_PELIPPER, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_EXPLOUD, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MAKUHITA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_HARIYAMA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_AZURILL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_AGGRON, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CARVANHA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SHARPEDO, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_WAILMER, - .palAddr = &wailmerPal[0], - .shinyPalAddr = &wailmerShinyPal[0], - .overworldGfx = &sWailmerOverworld, - .overlayGfx = &sWailmerOverlay, - }, - { - .species = SPECIES_WAILORD, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_BARBOACH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_WHISCASH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CORPHISH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_CRAWDAUNT, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_FEEBAS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_MILOTIC, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_SPHEAL, - .palAddr = &sphealPal[0], - .shinyPalAddr = &sphealShinyPal[0], - .overworldGfx = &sSphealOverworld, - .overlayGfx = 0, - }, - { - .species = SPECIES_SEALEO, - .palAddr = &sealeoPal[0], - .shinyPalAddr = &sealeoShinyPal[0], - .overworldGfx = &sSealeoOverworld, - .overlayGfx = &sSealeoOverlay, - }, - { - .species = SPECIES_WALREIN, - .palAddr = &walreinPal[0], - .shinyPalAddr = &walreinShinyPal[0], - .overworldGfx = &sWalreinOverworld, - .overlayGfx = &sWalreinOverlay, - }, - { - .species = SPECIES_CLAMPERL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_HUNTAIL, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_GOREBYSS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_RELICANTH, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LUVDISC, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LATIAS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_LATIOS, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_KYOGRE, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, - { - .species = SPECIES_RAYQUAZA, - .palAddr = 0, - .shinyPalAddr = 0, - .overworldGfx = sDefaultSurfBlob, - .overlayGfx = 0, - }, + { + /* + * If a shiny palette or overlay does not exist, set: + * .shinyPalAddr = 0, + * .overlayGfx = 0, + */ + /* + { + .species = SPECIES_NAME, + .palAddr = &namePal[0], + .shinyPalAddr = &nameShinyPal[0], + .overworldGfx = &sNameOverworld, + .overlayGfx = &sNameOverlay, + }, + */ + + //=============== KANTO POKEMON + { + .species = SPECIES_SQUIRTLE, + .palAddr = &squirtlePal[0], + .shinyPalAddr = &squirtleShinyPal[0], + .overworldGfx = &sSquirtleOverworld, + .overlayGfx = &sSquirtleOverlay, + }, + { + .species = SPECIES_WARTORTLE, + .palAddr = &wartortlePal[0], + .shinyPalAddr = &wartortleShinyPal[0], + .overworldGfx = &sWartortleOverworld, + .overlayGfx = &sWartortleOverlay, + }, + { + .species = SPECIES_BLASTOISE, + .palAddr = &blastoisePal[0], + .shinyPalAddr = &blastoiseShinyPal[0], + .overworldGfx = &sBlastoiseOverworld, + .overlayGfx = &sBlastoiseOverlay, + }, + { + .species = SPECIES_PIKACHU, + .palAddr = &pikachuPal[0], + .shinyPalAddr = &pikachuShinyPal[0], + .overworldGfx = &sPikachuOverworld, + .overlayGfx = &sPikachuOverlay, + }, + { + .species = SPECIES_RAICHU, + .palAddr = &raichuPal[0], + .shinyPalAddr = &raichuShinyPal[0], + .overworldGfx = &sRaichuOverworld, + .overlayGfx = &sRaichuOverlay, + }, + { + .species = SPECIES_NIDOQUEEN, + .palAddr = &nidoqueenPal[0], + .shinyPalAddr = &nidoqueenShinyPal[0], + .overworldGfx = &sNidoqueenOverworld, + .overlayGfx = &sNidoqueenOverlay, + }, + { + .species = SPECIES_NIDOKING, + .palAddr = &nidokingPal[0], + .shinyPalAddr = &nidokingShinyPal[0], + .overworldGfx = &sNidokingOverworld, + .overlayGfx = &sNidokingOverlay, + }, + { + .species = SPECIES_PSYDUCK, + .palAddr = &psyduckPal[0], + .shinyPalAddr = &psyduckShinyPal[0], + .overworldGfx = &sPsyduckOverworld, + .overlayGfx = &sPsyduckOverlay, + }, + { + .species = SPECIES_GOLDUCK, + .palAddr = &golduckPal[0], + .shinyPalAddr = &golduckShinyPal[0], + .overworldGfx = &sGolduckOverworld, + .overlayGfx = &sGolduckOverlay, + }, + { + .species = SPECIES_POLIWAG, + .palAddr = &poliwagPal[0], + .shinyPalAddr = &poliwagShinyPal[0], + .overworldGfx = &sPoliwagOverworld, + .overlayGfx = &sPoliwagOverlay, + }, + { + .species = SPECIES_POLIWHIRL, + .palAddr = &poliwhirlPal[0], + .shinyPalAddr = &poliwhirlShinyPal[0], + .overworldGfx = &sPoliwhirlOverworld, + .overlayGfx = &sPoliwhirlOverlay, + }, + { + .species = SPECIES_POLIWRATH, + .palAddr = &poliwrathPal[0], + .shinyPalAddr = &poliwrathShinyPal[0], + .overworldGfx = &sPoliwrathOverworld, + .overlayGfx = &sPoliwrathOverlay, + }, + { + .species = SPECIES_TENTACOOL, + .palAddr = &tentacoolPal[0], + .shinyPalAddr = &tentacoolShinyPal[0], + .overworldGfx = &sTentacoolOverworld, + .overlayGfx = &sTentacoolOverlay, + }, + { + .species = SPECIES_TENTACRUEL, + .palAddr = &tentacruelPal[0], + .shinyPalAddr = &tentacruelShinyPal[0], + .overworldGfx = &sTentacruelOverworld, + .overlayGfx = &sTentacruelOverlay, + }, + { + .species = SPECIES_SLOWPOKE, + .palAddr = &slowpokePal[0], + .shinyPalAddr = &slowpokeShinyPal[0], + .overworldGfx = &sSlowpokeOverworld, + .overlayGfx = &sSlowpokeOverlay, + }, + { + .species = SPECIES_SLOWBRO, + .palAddr = &slowbroPal[0], + .shinyPalAddr = &slowbroShinyPal[0], + .overworldGfx = &sSlowbroOverworld, + .overlayGfx = &sSlowbroOverlay, + }, + { + .species = SPECIES_SEEL, + .palAddr = &seelPal[0], + .shinyPalAddr = &seelShinyPal[0], + .overworldGfx = &sSeelOverworld, + .overlayGfx = &sSeelOverlay, + }, + { + .species = SPECIES_DEWGONG, + .palAddr = &dewgongPal[0], + .shinyPalAddr = &dewgongShinyPal[0], + .overworldGfx = &sDewgongOverworld, + .overlayGfx = &sDewgongOverlay, + }, + { + .species = SPECIES_SHELLDER, + .palAddr = &shellderPal[0], + .shinyPalAddr = &shellderShinyPal[0], + .overworldGfx = &sShellderOverworld, + .overlayGfx = &sShellderOverlay, + }, + { + .species = SPECIES_CLOYSTER, + .palAddr = &cloysterPal[0], + .shinyPalAddr = &cloysterShinyPal[0], + .overworldGfx = &sCloysterOverworld, + .overlayGfx = &sCloysterOverlay, + }, + { + .species = SPECIES_KRABBY, + .palAddr = &krabbyPal[0], + .shinyPalAddr = &krabbyShinyPal[0], + .overworldGfx = &sKrabbyOverworld, + .overlayGfx = &sKrabbyOverlay, + }, + { + .species = SPECIES_KINGLER, + .palAddr = &kinglerPal[0], + .shinyPalAddr = &kinglerShinyPal[0], + .overworldGfx = &sKinglerOverworld, + .overlayGfx = &sKinglerOverlay, + }, + { + .species = SPECIES_LICKITUNG, + .palAddr = &lickitungPal[0], + .shinyPalAddr = &lickitungShinyPal[0], + .overworldGfx = &sLickitungOverworld, + .overlayGfx = &sLickitungOverlay, + }, + { + .species = SPECIES_RHYDON, + .palAddr = &rhydonPal[0], + .shinyPalAddr = &rhydonShinyPal[0], + .overworldGfx = &sRhydonOverworld, + .overlayGfx = &sRhydonOverlay, + }, + { + .species = SPECIES_KANGASKHAN, + .palAddr = &kangaskhanPal[0], + .shinyPalAddr = &kangaskhanShinyPal[0], + .overworldGfx = &sKangaskhanOverworld, + .overlayGfx = &sKangaskhanOverlay, + }, + { + .species = SPECIES_HORSEA, + .palAddr = &horseaPal[0], + .shinyPalAddr = &horseaShinyPal[0], + .overworldGfx = &sHorseaOverworld, + .overlayGfx = &sHorseaOverlay, + }, + { + .species = SPECIES_SEADRA, + .palAddr = &seadraPal[0], + .shinyPalAddr = &seadraShinyPal[0], + .overworldGfx = &sSeadraOverworld, + .overlayGfx = &sSeadraOverlay, + }, + { + .species = SPECIES_GOLDEEN, + .palAddr = &goldeenPal[0], + .shinyPalAddr = &goldeenShinyPal[0], + .overworldGfx = &sGoldeenOverworld, + .overlayGfx = &sGoldeenOverlay, + }, + { + .species = SPECIES_SEAKING, + .palAddr = &seakingPal[0], + .shinyPalAddr = &seakingShinyPal[0], + .overworldGfx = &sSeakingOverworld, + .overlayGfx = &sSeakingOverlay, + }, + { + .species = SPECIES_STARYU, + .palAddr = &staryuPal[0], + .shinyPalAddr = &staryuShinyPal[0], + .overworldGfx = &sStaryuOverworld, + .overlayGfx = &sStaryuOverlay, + }, + { + .species = SPECIES_STARMIE, + .palAddr = &starmiePal[0], + .shinyPalAddr = &starmieShinyPal[0], + .overworldGfx = &sStarmieOverworld, + .overlayGfx = &sStarmieOverlay, + }, + { + .species = SPECIES_TAUROS, + .palAddr = &taurosPal[0], + .shinyPalAddr = &taurosShinyPal[0], + .overworldGfx = &sTaurosOverworld, + .overlayGfx = &sTaurosOverlay, + }, + { + .species = SPECIES_GYARADOS, + .palAddr = &gyaradosPal[0], + .shinyPalAddr = &gyaradosShinyPal[0], + .overworldGfx = &sGyaradosOverworld, + .overlayGfx = &sGyaradosOverlay, + }, + { + .species = SPECIES_LAPRAS, + .palAddr = &laprasPal[0], + .shinyPalAddr = &laprasShinyPal[0], + .overworldGfx = &sLaprasOverworld, + .overlayGfx = &sLaprasOverlay, + }, + { + .species = SPECIES_VAPOREON, + .palAddr = &vaporeonPal[0], + .shinyPalAddr = &vaporeonShinyPal[0], + .overworldGfx = &sVaporeonOverworld, + .overlayGfx = &sVaporeonOverlay, + }, + { + .species = SPECIES_OMANYTE, + .palAddr = &omanytePal[0], + .shinyPalAddr = &omanyteShinyPal[0], + .overworldGfx = &sOmanyteOverworld, + .overlayGfx = &sOmanyteOverlay, + }, + { + .species = SPECIES_OMASTAR, + .palAddr = &omastarPal[0], + .shinyPalAddr = &omastarShinyPal[0], + .overworldGfx = &sOmastarOverworld, + .overlayGfx = &sOmastarOverlay, + }, + { + .species = SPECIES_KABUTO, + .palAddr = &kabutoPal[0], + .shinyPalAddr = &kabutoShinyPal[0], + .overworldGfx = &sKabutoOverworld, + .overlayGfx = &sKabutoOverlay, + }, + { + .species = SPECIES_KABUTOPS, + .palAddr = &kabutopsPal[0], + .shinyPalAddr = &kabutopsShinyPal[0], + .overworldGfx = &sKabutopsOverworld, + .overlayGfx = &sKabutopsOverlay, + }, + { + .species = SPECIES_SNORLAX, + .palAddr = &snorlaxPal[0], + .shinyPalAddr = &snorlaxShinyPal[0], + .overworldGfx = &sSnorlaxOverworld, + .overlayGfx = &sSnorlaxOverlay, + }, + { + .species = SPECIES_DRATINI, + .palAddr = &dratiniPal[0], + .shinyPalAddr = &dratiniShinyPal[0], + .overworldGfx = &sDratiniOverworld, + .overlayGfx = &sDratiniOverlay, + }, + { + .species = SPECIES_DRAGONAIR, + .palAddr = &dragonairPal[0], + .shinyPalAddr = &dragonairShinyPal[0], + .overworldGfx = &sDragonairOverworld, + .overlayGfx = &sDragonairOverlay, + }, + { + .species = SPECIES_DRAGONITE, + .palAddr = &dragonitePal[0], + .shinyPalAddr = &dragoniteShinyPal[0], + .overworldGfx = &sDragoniteOverworld, + .overlayGfx = &sDragoniteOverlay, + }, + { + .species = SPECIES_MEW, + .palAddr = &mewPal[0], + .shinyPalAddr = &mewShinyPal[0], + .overworldGfx = &sMewOverworld, + .overlayGfx = &sMewOverlay, + }, + //=============== JOHTO POKEMON + { + .species = SPECIES_TOTODILE, + .palAddr = &totodilePal[0], + .shinyPalAddr = &totodileShinyPal[0], + .overworldGfx = &sTotodileOverworld, + .overlayGfx = &sTotodileOverlay, + }, + { + .species = SPECIES_CROCONAW, + .palAddr = &croconawPal[0], + .shinyPalAddr = &croconawShinyPal[0], + .overworldGfx = &sCroconawOverworld, + .overlayGfx = &sCroconawOverlay, + }, + { + .species = SPECIES_FERALIGATR, + .palAddr = &feraligatrPal[0], + .shinyPalAddr = &feraligatrShinyPal[0], + .overworldGfx = &sFeraligatrOverworld, + .overlayGfx = &sFeraligatrOverlay, + }, + { + .species = SPECIES_SENTRET, + .palAddr = &sentretPal[0], + .shinyPalAddr = &sentretShinyPal[0], + .overworldGfx = &sSentretOverworld, + .overlayGfx = &sSentretOverlay, + }, + { + .species = SPECIES_FURRET, + .palAddr = &furretPal[0], + .shinyPalAddr = &furretShinyPal[0], + .overworldGfx = &sFurretOverworld, + .overlayGfx = &sFurretOverlay, + }, + { + .species = SPECIES_PICHU, + .palAddr = &pichuPal[0], + .shinyPalAddr = &pichuShinyPal[0], + .overworldGfx = &sPichuOverworld, + .overlayGfx = &sPichuOverlay, + }, + { + .species = SPECIES_CHINCHOU, + .palAddr = &chinchouPal[0], + .shinyPalAddr = &chinchouShinyPal[0], + .overworldGfx = &sChinchouOverworld, + .overlayGfx = &sChinchouOverlay, + }, + { + .species = SPECIES_LANTURN, + .palAddr = &lanturnPal[0], + .shinyPalAddr = &lanturnShinyPal[0], + .overworldGfx = &sLanturnOverworld, + .overlayGfx = &sLanturnOverlay, + }, + { + .species = SPECIES_AZURILL, + .palAddr = &azurillPal[0], + .shinyPalAddr = &azurillShinyPal[0], + .overworldGfx = &sAzurillOverworld, + .overlayGfx = &sAzurillOverlay, + }, + { + .species = SPECIES_MARILL, + .palAddr = &marillPal[0], + .shinyPalAddr = &marillShinyPal[0], + .overworldGfx = &sMarillOverworld, + .overlayGfx = &sMarillOverlay, + }, + { + .species = SPECIES_AZUMARILL, + .palAddr = &azumarillPal[0], + .shinyPalAddr = &azumarillShinyPal[0], + .overworldGfx = &sAzumarillOverworld, + .overlayGfx = &sAzumarillOverlay, + }, + { + .species = SPECIES_POLITOED, + .palAddr = &politoedPal[0], + .shinyPalAddr = &politoedShinyPal[0], + .overworldGfx = &sPolitoedOverworld, + .overlayGfx = &sPolitoedOverlay, + }, + { + .species = SPECIES_WOOPER, + .palAddr = &wooperPal[0], + .shinyPalAddr = &wooperShinyPal[0], + .overworldGfx = &sWooperOverworld, + .overlayGfx = &sWooperOverlay, + }, + { + .species = SPECIES_QUAGSIRE, + .palAddr = &quagsirePal[0], + .shinyPalAddr = &quagsireShinyPal[0], + .overworldGfx = &sQuagsireOverworld, + .overlayGfx = &sQuagsireOverlay, + }, + { + .species = SPECIES_SLOWKING, + .palAddr = &slowkingPal[0], + .shinyPalAddr = &slowkingShinyPal[0], + .overworldGfx = &sSlowkingOverworld, + .overlayGfx = &sSlowkingOverlay, + }, + { + .species = SPECIES_QWILFISH, + .palAddr = &qwilfishPal[0], + .shinyPalAddr = &qwilfishShinyPal[0], + .overworldGfx = &sQwilfishOverworld, + .overlayGfx = &sQwilfishOverlay, + }, + { + .species = SPECIES_SNEASEL, + .palAddr = &sneaselPal[0], + .shinyPalAddr = &sneaselShinyPal[0], + .overworldGfx = &sSneaselOverworld, + .overlayGfx = &sSneaselOverlay, + }, + { + .species = SPECIES_CORSOLA, + .palAddr = &corsolaPal[0], + .shinyPalAddr = &corsolaShinyPal[0], + .overworldGfx = &sCorsolaOverworld, + .overlayGfx = &sCorsolaOverlay, + }, + { + .species = SPECIES_REMORAID, + .palAddr = &remoraidPal[0], + .shinyPalAddr = &remoraidShinyPal[0], + .overworldGfx = &sRemoraidOverworld, + .overlayGfx = &sRemoraidOverlay, + }, + { + .species = SPECIES_OCTILLERY, + .palAddr = &octilleryPal[0], + .shinyPalAddr = &octilleryShinyPal[0], + .overworldGfx = &sOctilleryOverworld, + .overlayGfx = &sOctilleryOverlay, + }, + { + .species = SPECIES_MANTINE, + .palAddr = &mantinePal[0], + .shinyPalAddr = &mantineShinyPal[0], + .overworldGfx = &sMantineOverworld, + .overlayGfx = &sMantineOverlay, + }, + { + .species = SPECIES_KINGDRA, + .palAddr = &kingdraPal[0], + .shinyPalAddr = &kingdraShinyPal[0], + .overworldGfx = &sKingdraOverworld, + .overlayGfx = &sKingdraOverlay, + }, + { + .species = SPECIES_MILTANK, + .palAddr = &miltankPal[0], + .shinyPalAddr = &miltankShinyPal[0], + .overworldGfx = &sMiltankOverworld, + .overlayGfx = &sMiltankOverlay, + }, + { + .species = SPECIES_SUICUNE, + .palAddr = &suicunePal[0], + .shinyPalAddr = &suicuneShinyPal[0], + .overworldGfx = &sSuicuneOverworld, + .overlayGfx = &sSuicuneOverlay, + }, + { + .species = SPECIES_TYRANITAR, + .palAddr = &tyranitarPal[0], + .shinyPalAddr = &tyranitarShinyPal[0], + .overworldGfx = &sTyranitarOverworld, + .overlayGfx = &sTyranitarOverlay, + }, + { + .species = SPECIES_LUGIA, + .palAddr = &lugiaPal[0], + .shinyPalAddr = &lugiaShinyPal[0], + .overworldGfx = &sLugiaOverworld, + .overlayGfx = &sLugiaOverlay, + }, + /* + * =============== HOENN POKEMON + NOTE: These are listed in National Dex Order + (Not in Internal Order for FRLG/RSE) + */ + { + .species = SPECIES_MUDKIP, + .palAddr = &mudkipPal[0], + .shinyPalAddr = &mudkipShinyPal[0], + .overworldGfx = &sMudkipOverworld, + .overlayGfx = &sMudkipOverlay, + }, + { + .species = SPECIES_MARSHTOMP, + .palAddr = &marshtompPal[0], + .shinyPalAddr = &marshtompShinyPal[0], + .overworldGfx = &sMarshtompOverworld, + .overlayGfx = &sMarshtompOverlay, + }, + { + .species = SPECIES_SWAMPERT, + .palAddr = &swampertPal[0], + .shinyPalAddr = &swampertShinyPal[0], + .overworldGfx = &sSwampertOverworld, + .overlayGfx = &sSwampertOverlay, + }, + { + .species = SPECIES_ZIGZAGOON, + .palAddr = &zigzagoonPal[0], + .shinyPalAddr = &zigzagoonShinyPal[0], + .overworldGfx = &sZigzagoonOverworld, + .overlayGfx = &sZigzagoonOverlay, + }, + { + .species = SPECIES_LINOONE, + .palAddr = &linoonePal[0], + .shinyPalAddr = &linooneShinyPal[0], + .overworldGfx = &sLinooneOverworld, + .overlayGfx = &sLinooneOverlay, + }, + { + .species = SPECIES_LOTAD, + .palAddr = &lotadPal[0], + .shinyPalAddr = &lotadShinyPal[0], + .overworldGfx = &sLotadOverworld, + .overlayGfx = &sLotadOverlay, + }, + { + .species = SPECIES_LOMBRE, + .palAddr = &lombrePal[0], + .shinyPalAddr = &lombreShinyPal[0], + .overworldGfx = &sLombreOverworld, + .overlayGfx = &sLombreOverlay, + }, + { + .species = SPECIES_LUDICOLO, + .palAddr = &ludicoloPal[0], + .shinyPalAddr = &ludicoloShinyPal[0], + .overworldGfx = &sLudicoloOverworld, + .overlayGfx = &sLudicoloOverlay, + }, + { + .species = SPECIES_PELIPPER, + .palAddr = &pelipperPal[0], + .shinyPalAddr = &pelipperShinyPal[0], + .overworldGfx = &sPelipperOverworld, + .overlayGfx = &sPelipperOverlay, + }, + { + .species = SPECIES_EXPLOUD, + .palAddr = &exploudPal[0], + .shinyPalAddr = &exploudShinyPal[0], + .overworldGfx = &sExploudOverworld, + .overlayGfx = &sExploudOverlay, + }, + { + .species = SPECIES_SURSKIT, + .palAddr = &surskitPal[0], + .shinyPalAddr = &surskitShinyPal[0], + .overworldGfx = &sSurskitOverworld, + .overlayGfx = &sSurskitOverlay, + }, + { + .species = SPECIES_MASQUERAIN, + .palAddr = &masquerainPal[0], + .shinyPalAddr = &masquerainShinyPal[0], + .overworldGfx = &sMasquerainOverworld, + .overlayGfx = &sMasquerainOverlay, + }, + { + .species = SPECIES_MAKUHITA, + .palAddr = &makuhitaPal[0], + .shinyPalAddr = &makuhitaShinyPal[0], + .overworldGfx = &sMakuhitaOverworld, + .overlayGfx = &sMakuhitaOverlay, + }, + { + .species = SPECIES_HARIYAMA, + .palAddr = &hariyamaPal[0], + .shinyPalAddr = &hariyamaShinyPal[0], + .overworldGfx = &sHariyamaOverworld, + .overlayGfx = &sHariyamaOverlay, + }, + { + .species = SPECIES_AZURILL, + .palAddr = &azurillPal[0], + .shinyPalAddr = &azurillShinyPal[0], + .overworldGfx = &sAzurillOverworld, + .overlayGfx = &sAzurillOverlay, + }, + { + .species = SPECIES_AGGRON, + .palAddr = &aggronPal[0], + .shinyPalAddr = &aggronShinyPal[0], + .overworldGfx = &sAggronOverworld, + .overlayGfx = &sAggronOverlay, + }, + { + .species = SPECIES_CARVANHA, + .palAddr = &carvanhaPal[0], + .shinyPalAddr = &carvanhaShinyPal[0], + .overworldGfx = &sCarvanhaOverworld, + .overlayGfx = &sCarvanhaOverlay, + }, + { + .species = SPECIES_SHARPEDO, + .palAddr = &sharpedoPal[0], + .shinyPalAddr = &sharpedoShinyPal[0], + .overworldGfx = &sSharpedoOverworld, + .overlayGfx = &sSharpedoOverlay, + }, + { + .species = SPECIES_WAILMER, + .palAddr = &wailmerPal[0], + .shinyPalAddr = &wailmerShinyPal[0], + .overworldGfx = &sWailmerOverworld, + .overlayGfx = &sWailmerOverlay, + }, + { + .species = SPECIES_WAILORD, + .palAddr = &wailordPal[0], + .shinyPalAddr = &wailordShinyPal[0], + .overworldGfx = &sWailordOverworld, + .overlayGfx = &sWailordOverlay, + }, + { + .species = SPECIES_ZANGOOSE, + .palAddr = &zangoosePal[0], + .shinyPalAddr = &zangooseShinyPal[0], + .overworldGfx = &sZangooseOverworld, + .overlayGfx = &sZangooseOverlay, + }, + { + .species = SPECIES_BARBOACH, + .palAddr = &barboachPal[0], + .shinyPalAddr = &barboachShinyPal[0], + .overworldGfx = &sBarboachOverworld, + .overlayGfx = &sBarboachOverlay, + }, + { + .species = SPECIES_WHISCASH, + .palAddr = &whiscashPal[0], + .shinyPalAddr = &whiscashShinyPal[0], + .overworldGfx = &sWhiscashOverworld, + .overlayGfx = &sWhiscashOverlay, + }, + { + .species = SPECIES_CORPHISH, + .palAddr = &corphishPal[0], + .shinyPalAddr = &corphishShinyPal[0], + .overworldGfx = &sCorphishOverworld, + .overlayGfx = &sCorphishOverlay, + }, + { + .species = SPECIES_CRAWDAUNT, + .palAddr = &crawdauntPal[0], + .shinyPalAddr = &crawdauntShinyPal[0], + .overworldGfx = &sCrawdauntOverworld, + .overlayGfx = &sCrawdauntOverlay, + }, + { + .species = SPECIES_FEEBAS, + .palAddr = &feebasPal[0], + .shinyPalAddr = &feebasShinyPal[0], + .overworldGfx = &sFeebasOverworld, + .overlayGfx = &sFeebasOverlay, + }, + { + .species = SPECIES_MILOTIC, + .palAddr = &miloticPal[0], + .shinyPalAddr = &miloticShinyPal[0], + .overworldGfx = &sMiloticOverworld, + .overlayGfx = &sMiloticOverlay, + }, + { + .species = SPECIES_SPHEAL, + .palAddr = &sphealPal[0], + .shinyPalAddr = &sphealShinyPal[0], + .overworldGfx = &sSphealOverworld, + .overlayGfx = &sSphealOverlay, + }, + { + .species = SPECIES_SEALEO, + .palAddr = &sealeoPal[0], + .shinyPalAddr = &sealeoShinyPal[0], + .overworldGfx = &sSealeoOverworld, + .overlayGfx = &sSealeoOverlay, + }, + { + .species = SPECIES_WALREIN, + .palAddr = &walreinPal[0], + .shinyPalAddr = &walreinShinyPal[0], + .overworldGfx = &sWalreinOverworld, + .overlayGfx = &sWalreinOverlay, + }, + { + .species = SPECIES_CLAMPERL, + .palAddr = &clamperlPal[0], + .shinyPalAddr = &clamperlShinyPal[0], + .overworldGfx = &sClamperlOverworld, + .overlayGfx = &sClamperlOverlay, + }, + { + .species = SPECIES_HUNTAIL, + .palAddr = &huntailPal[0], + .shinyPalAddr = &huntailShinyPal[0], + .overworldGfx = &sHuntailOverworld, + .overlayGfx = &sHuntailOverlay, + }, + { + .species = SPECIES_GOREBYSS, + .palAddr = &gorebyssPal[0], + .shinyPalAddr = &gorebyssShinyPal[0], + .overworldGfx = &sGorebyssOverworld, + .overlayGfx = &sGorebyssOverlay, + }, + { + .species = SPECIES_RELICANTH, + .palAddr = &relicanthPal[0], + .shinyPalAddr = &relicanthShinyPal[0], + .overworldGfx = &sRelicanthOverworld, + .overlayGfx = &sRelicanthOverlay, + }, + { + .species = SPECIES_LUVDISC, + .palAddr = &luvdiscPal[0], + .shinyPalAddr = &luvdiscShinyPal[0], + .overworldGfx = &sLuvdiscOverworld, + .overlayGfx = &sLuvdiscOverlay, + }, + { + .species = SPECIES_LATIAS, + .palAddr = &latiasPal[0], + .shinyPalAddr = &latiasShinyPal[0], + .overworldGfx = &sLatiasOverworld, + .overlayGfx = &sLatiasOverlay, + }, + { + .species = SPECIES_LATIOS, + .palAddr = &latiosPal[0], + .shinyPalAddr = &latiosShinyPal[0], + .overworldGfx = &sLatiosOverworld, + .overlayGfx = &sLatiosOverlay, + }, + { + .species = SPECIES_KYOGRE, + .palAddr = &kyogrePal[0], + .shinyPalAddr = &kyogreShinyPal[0], + .overworldGfx = &sKyogreOverworld, + .overlayGfx = 0, + }, + { + .species = SPECIES_RAYQUAZA, + .palAddr = &rayquazaPal[0], + .shinyPalAddr = &rayquazaShinyPal[0], + .overworldGfx = &sRayquazaOverworld, + .overlayGfx = &sRayquazaOverlay, + }, }; diff --git a/template graphics/4 frame Red Base (64x64).png b/template graphics/4 frame Red Base (64x64).png new file mode 100644 index 00000000..ead82e73 Binary files /dev/null and b/template graphics/4 frame Red Base (64x64).png differ diff --git a/template graphics/4 frame example.txt b/template graphics/4 frame example.txt new file mode 100644 index 00000000..ada25803 --- /dev/null +++ b/template graphics/4 frame example.txt @@ -0,0 +1,46 @@ +//=============== SNORLAX +extern const u32 snorlaxTiles[]; +extern const u16 snorlaxPal[]; +extern const u16 snorlaxShinyPal[]; +const struct SpriteFrameImage gSurfingOverworldPicTable_Snorlax[] = { + // Facing North + overworld_frame(&snorlaxTiles[0], 8, 8, 0), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 1), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 2), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 3), // Bob Down + + // Facing South + overworld_frame(&snorlaxTiles[0], 8, 8, 4), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 5), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 6), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 7), // Bob Down + + // Facing East/West + overworld_frame(&snorlaxTiles[0], 8, 8, 8), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 9), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 10), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 11), // Bob Down +}; + +const struct SpriteFrameImage gSurfingOverlayPicTable_Snorlax[] = { + // Facing North + overworld_frame(&snorlaxTiles[0], 8, 8, 12), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 13), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 14), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 15), // Bob Down + + // Facing South + overworld_frame(&snorlaxTiles[0], 8, 8, 16), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 17), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 18), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 19), // Bob Down + + // Facing East/West + overworld_frame(&snorlaxTiles[0], 8, 8, 20), // Bob Up + overworld_frame(&snorlaxTiles[0], 8, 8, 21), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 22), // Bob Down + overworld_frame(&snorlaxTiles[0], 8, 8, 23), // Bob Down +}; + +const struct SpriteTemplate sSnorlaxOverworld = surf_template3_64x64(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Snorlax, UpdateSurfBlobFieldEffect); +const struct SpriteTemplate sSnorlaxOverlay = surf_template3_64x64(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Snorlax, UpdateSurfMonOverlay); \ No newline at end of file diff --git a/template graphics/Leaf Base (32x32).png b/template graphics/Leaf Base (32x32).png new file mode 100644 index 00000000..d4544869 Binary files /dev/null and b/template graphics/Leaf Base (32x32).png differ diff --git a/template graphics/Leaf Base (64x64).png b/template graphics/Leaf Base (64x64).png new file mode 100644 index 00000000..8a9e1b5b Binary files /dev/null and b/template graphics/Leaf Base (64x64).png differ diff --git a/template graphics/Raft Base (64x64).png b/template graphics/Raft Base (64x64).png new file mode 100644 index 00000000..746ebdd8 Binary files /dev/null and b/template graphics/Raft Base (64x64).png differ diff --git a/template graphics/Raft Base [With Leaf] (64x64).png b/template graphics/Raft Base [With Leaf] (64x64).png new file mode 100644 index 00000000..fca87819 Binary files /dev/null and b/template graphics/Raft Base [With Leaf] (64x64).png differ diff --git a/template graphics/Raft Base [With Red] (64x64).png b/template graphics/Raft Base [With Red] (64x64).png new file mode 100644 index 00000000..36d6c145 Binary files /dev/null and b/template graphics/Raft Base [With Red] (64x64).png differ diff --git a/template graphics/Red Base (32x32).png b/template graphics/Red Base (32x32).png new file mode 100644 index 00000000..25a83f20 Binary files /dev/null and b/template graphics/Red Base (32x32).png differ diff --git a/template graphics/Red Base (64x64).png b/template graphics/Red Base (64x64).png new file mode 100644 index 00000000..d92d8fe5 Binary files /dev/null and b/template graphics/Red Base (64x64).png differ diff --git a/test.SAV b/test.SAV new file mode 100755 index 00000000..1054351b Binary files /dev/null and b/test.SAV differ