diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-12-18 16:43:24 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-12-18 16:43:24 -0500 |
commit | ae881a3623eae7cf61702e73ead7c2343af0bda3 (patch) | |
tree | 9344e79fcc6db84ac12d65adfd119f1a6375b80d /src | |
parent | 7984a91c0892e0bd96ace89405d565ec0b43e084 (diff) |
Start implementing LG and 1.1
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 4 | ||||
-rw-r--r-- | src/title_screen.c | 37 |
2 files changed, 40 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index 9294c80ce..394a1f42a 100644 --- a/src/main.c +++ b/src/main.c @@ -57,8 +57,10 @@ static void IntrDummy(void); #if defined(FIRERED) #define GAME_VERSION VERSION_FIRE_RED -#elif defined(LEAF_GREEN) +#elif defined(LEAFGREEN) #define GAME_VERSION VERSION_LEAF_GREEN +#else +#error unknown version #endif const u8 gGameVersion = GAME_VERSION; diff --git a/src/title_screen.c b/src/title_screen.c index 2d6b6cf15..5955ea3a3 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -60,6 +60,7 @@ static void UpdateScanlineEffectRegBuffer(s16 a0); static void ScheduleStopScanlineEffect(void); static void LoadMainTitleScreenPalsAndResetBgs(void); static void CB2_FadeOutTransitionToSaveClearScreen(void); +static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite); static void CB2_FadeOutTransitionToBerryFix(void); static void LoadSpriteGfxAndPals(void); static void Task_FlameOrLeafSpawner(u8 taskId); @@ -238,6 +239,12 @@ static const u8 gUnknown_83BFBD4[] = { 0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90 }; +#if defined(LEAFGREEN) +static const u16 gUnknown_LG_83BFA10[] = { + 50, 80, 110, 60, 90, 70, 100, 50 +}; +#endif + void CB2_InitTitleScreen(void) { switch (gMain.state) @@ -876,6 +883,7 @@ static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite) #endif } +#if defined(FIRERED) static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) { u8 spriteId; @@ -901,6 +909,35 @@ static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool } return FALSE; } +#elif defined(LEAFGREEN) +void _CreateFlameOrLeafSprite(s32 y0, s32 x1, s32 y1) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, 0xF0, y0, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 0xF00; + gSprites[spriteId].data[1] = x1; + gSprites[spriteId].data[2] = y0 << 4; + gSprites[spriteId].data[3] = y1; + gSprites[spriteId].callback = SpriteCallback_TitleScreenFlameOrLeaf; + } +} + +void SpriteCallback_LG_8079800(struct Sprite * sprite) +{ + sprite->pos1.x -= 7; + if (sprite->pos1.x < -16) + { + sprite->pos1.x = 0x100; + sprite->data[7]++; + if (sprite->data[7] >= NELEMS(gUnknown_LG_83BFA10)) + sprite->data[7] = 0; + sprite->pos1.y = gUnknown_LG_83BFA10[sprite->data[7]]; + } +} + +#define CreateFlameOrLeafSprite ((bool32 (*)())_CreateFlameOrLeafSprite) +#endif //FRLG static void Task_FlameOrLeafSpawner(u8 taskId) { |