Merge pull request #193 from PikalaxALT/leafgreen
Match Pokemon LeafGreen 1.0
@@ -27,6 +27,8 @@ matrix:
|
|||||||
script:
|
script:
|
||||||
- make tools CXX=g++-7
|
- make tools CXX=g++-7
|
||||||
- make -j2 compare
|
- make -j2 compare
|
||||||
|
- make -j2 compare_leafgreen
|
||||||
- make -j2 compare_firered_rev1
|
- make -j2 compare_firered_rev1
|
||||||
|
- make -j2 compare_leafgreen_rev1
|
||||||
after_success:
|
after_success:
|
||||||
- .travis/calcrom/webhook.sh pokefirered
|
- .travis/calcrom/webhook.sh pokefirered
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows Vista, 7, 8, 8.1, and 10 (1507, 1511, 1607, 1703)
|
| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows 8, 8.1, and 10 (1507, 1511, 1607, 1703)
|
||||||
| ----- | ----- | ------------------------- | ------------------ | ---------------------------------------------------------
|
| ----- | ----- | ------------------------- | ------------------ | ---------------------------------------------------------
|
||||||
| none | [Xcode Command Line Tools package][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | [Cygwin][cygwin]
|
| none | [Xcode Command Line Tools package][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | [Cygwin][cygwin]
|
||||||
|
|
||||||
@@ -42,4 +42,17 @@ If only `.c` or `.s` files were changed, turn off the dependency scanning tempor
|
|||||||
|
|
||||||
make -j$(nproc) NODEP=1
|
make -j$(nproc) NODEP=1
|
||||||
|
|
||||||
|
Convenient targets have been defined to build Pokémon LeafGreen and the 1.1 revisions of both games:
|
||||||
|
|
||||||
|
# LeafGreen 1.0
|
||||||
|
make -j$(nproc) leafgreen
|
||||||
|
# FireRed 1.1
|
||||||
|
make -j$(nproc) firered_rev1
|
||||||
|
# LeafGreen 1.1
|
||||||
|
make -j$(nproc) leafgreen_rev1
|
||||||
|
|
||||||
|
To confirm these match the respective official ROM images, prefix `compare_` to each target name. For example:
|
||||||
|
|
||||||
|
make -j$(nproc) compare_leafgreen
|
||||||
|
|
||||||
**Note:** If the build command is not recognized on Linux, including the Linux environment used within Windows, run `nproc` and replace `$(nproc)` with the returned value (e.g.: `make -j4`). Because `nproc` is not available on macOS, the alternative is `sysctl -n hw.ncpu`.
|
**Note:** If the build command is not recognized on Linux, including the Linux environment used within Windows, run `nproc` and replace `$(nproc)` with the returned value (e.g.: `make -j4`). Because `nproc` is not available on macOS, the alternative is `sysctl -n hw.ncpu`.
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ This is a disassembly of Pokémon FireRed and LeafGreen.
|
|||||||
It builds the following ROM:
|
It builds the following ROM:
|
||||||
|
|
||||||
* [**pokefirered.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1616) `sha1: 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc`
|
* [**pokefirered.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1616) `sha1: 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc`
|
||||||
|
* [**pokeleafgreen.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1617) `sha1: 574fa542ffebb14be69902d1d36f1ec0a4afd71e`
|
||||||
|
* [**pokefirered_rev1.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1672) `sha1: dd5945db9b930750cb39d00c84da8571feebf417`
|
||||||
|
* [**pokeleafgreen_rev1.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1668) `sha1: 7862c67bdecbe21d1d69ce082ce34327e1c6ed5e`
|
||||||
|
|
||||||
To set up the repository, see [INSTALL.md](INSTALL.md).
|
To set up the repository, see [INSTALL.md](INSTALL.md).
|
||||||
|
|
||||||
|
|||||||
@@ -9166,7 +9166,13 @@ _080FCB88:
|
|||||||
movs r0, 0x3D
|
movs r0, 0x3D
|
||||||
negs r0, r0
|
negs r0, r0
|
||||||
ands r0, r2
|
ands r0, r2
|
||||||
movs r2, 0x10
|
.ifdef FIRERED
|
||||||
|
movs r2, 0x10 @ VERSION_FIRE_RED << 2
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
movs r2, 0x14 @ VERSION_LEAF_GREEN << 2
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
orrs r0, r2
|
orrs r0, r2
|
||||||
strb r0, [r7, 0x1]
|
strb r0, [r7, 0x1]
|
||||||
movs r0, 0x11
|
movs r0, 0x11
|
||||||
|
|||||||
@@ -11885,7 +11885,13 @@ gMonFootprint_Jirachi:: @ 8E3956C
|
|||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gMonFrontPic_Deoxys:: @ 8E3958C
|
gMonFrontPic_Deoxys:: @ 8E3958C
|
||||||
|
.ifdef FIRERED
|
||||||
.incbin "graphics/pokemon/deoxys/front.4bpp.lz"
|
.incbin "graphics/pokemon/deoxys/front.4bpp.lz"
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
.incbin "graphics/pokemon/deoxys/front_def.4bpp.lz"
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gMonPalette_Deoxys:: @ 8E39D48
|
gMonPalette_Deoxys:: @ 8E39D48
|
||||||
@@ -11893,7 +11899,13 @@ gMonPalette_Deoxys:: @ 8E39D48
|
|||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gMonBackPic_Deoxys:: @ 8E39D70
|
gMonBackPic_Deoxys:: @ 8E39D70
|
||||||
|
.ifdef FIRERED
|
||||||
.incbin "graphics/pokemon/deoxys/back.4bpp.lz"
|
.incbin "graphics/pokemon/deoxys/back.4bpp.lz"
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
.incbin "graphics/pokemon/deoxys/back_def.4bpp.lz"
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gMonShinyPalette_Deoxys:: @ 8E3A360
|
gMonShinyPalette_Deoxys:: @ 8E3A360
|
||||||
@@ -11903,7 +11915,13 @@ gMonShinyPalette_Deoxys:: @ 8E3A360
|
|||||||
gMonIcon_Deoxys:: @ 8E3A388
|
gMonIcon_Deoxys:: @ 8E3A388
|
||||||
.incbin "graphics/pokemon/deoxys/icon.4bpp"
|
.incbin "graphics/pokemon/deoxys/icon.4bpp"
|
||||||
@ Referenced as part of the same array as normal deoxys
|
@ Referenced as part of the same array as normal deoxys
|
||||||
|
.ifdef FIRERED
|
||||||
.incbin "graphics/pokemon/deoxys/icon_attack.4bpp"
|
.incbin "graphics/pokemon/deoxys/icon_attack.4bpp"
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
.incbin "graphics/pokemon/deoxys/icon_defense.4bpp"
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gMonFootprint_Deoxys:: @ 8E3AB88
|
gMonFootprint_Deoxys:: @ 8E3AB88
|
||||||
@@ -16512,26 +16530,51 @@ gCreditsPokeballBgGfxMap:: @ 8EAB30C
|
|||||||
.incbin "graphics/credits/unk_8EAB30C.bin.lz"
|
.incbin "graphics/credits/unk_8EAB30C.bin.lz"
|
||||||
|
|
||||||
@ title_screen
|
@ title_screen
|
||||||
gGraphics_TitleScreen_PokemonFireRedLogoPals:: @ 8EAB6C4
|
.ifdef FIRERED
|
||||||
|
gGraphics_TitleScreen_GameTitleLogoPals:: @ 8EAB6C4
|
||||||
.incbin "graphics/title_screen/unk_8eab6c4.gbapal"
|
.incbin "graphics/title_screen/unk_8eab6c4.gbapal"
|
||||||
|
|
||||||
gGraphics_TitleScreen_PokemonFireRedLogoTiles:: @ 8EAB8C4
|
gGraphics_TitleScreen_GameTitleLogoTiles:: @ 8EAB8C4
|
||||||
.incbin "graphics/title_screen/unk_8eab8c4.8bpp.lz"
|
.incbin "graphics/title_screen/unk_8eab8c4.8bpp.lz"
|
||||||
|
|
||||||
gGraphics_TitleScreen_PokemonFireRedLogoMap:: @ 8EAD390
|
gGraphics_TitleScreen_GameTitleLogoMap:: @ 8EAD390
|
||||||
.incbin "graphics/title_screen/unk_8ead390.bin.lz"
|
.incbin "graphics/title_screen/unk_8ead390.bin.lz"
|
||||||
|
|
||||||
gGraphics_TitleScreen_CharizardPals:: @ 8EAD5E8
|
gGraphics_TitleScreen_BoxArtMonPals:: @ 8EAD5E8
|
||||||
.incbin "graphics/title_screen/unk_8ead5e8.gbapal"
|
.incbin "graphics/title_screen/unk_8ead5e8.gbapal"
|
||||||
|
|
||||||
gGraphics_TitleScreen_CharizardTiles:: @ 8EAD608
|
gGraphics_TitleScreen_BoxArtMonTiles:: @ 8EAD608
|
||||||
.incbin "graphics/title_screen/unk_8ead608.4bpp.lz"
|
.incbin "graphics/title_screen/unk_8ead608.4bpp.lz"
|
||||||
|
|
||||||
gGraphics_TitleScreen_CharizardMap:: @ 8EADEE4
|
gGraphics_TitleScreen_BoxArtMonMap:: @ 8EADEE4
|
||||||
.incbin "graphics/title_screen/unk_8eadee4.bin.lz"
|
.incbin "graphics/title_screen/unk_8eadee4.bin.lz"
|
||||||
|
|
||||||
gGraphics_TitleScreen_BackgroundPals:: @ 8EAE094
|
gGraphics_TitleScreen_BackgroundPals:: @ 8EAE094
|
||||||
.incbin "graphics/title_screen/unk_8eae094.gbapal"
|
.incbin "graphics/title_screen/unk_8eae094.gbapal"
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
gGraphics_TitleScreen_GameTitleLogoPals:: @ 8EAB6C4
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8eab744.gbapal"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_GameTitleLogoTiles:: @ 8EAB8C4
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8eab944.8bpp.lz"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_GameTitleLogoMap:: @ 8EAD390
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8ead508.bin.lz"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_BoxArtMonPals:: @ 8EAD5E8
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8ead768.gbapal"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_BoxArtMonTiles:: @ 8EAD608
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8ead788.4bpp.lz"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_BoxArtMonMap:: @ 8EADEE4
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8eae1ec.bin.lz"
|
||||||
|
|
||||||
|
gGraphics_TitleScreen_BackgroundPals:: @ 8EAE094
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8eae388.gbapal"
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
gGraphics_TitleScreen_CopyrightPressStartTiles:: @ 8EAE0B4
|
gGraphics_TitleScreen_CopyrightPressStartTiles:: @ 8EAE0B4
|
||||||
.incbin "graphics/title_screen/unk_8eae0b4.4bpp.lz"
|
.incbin "graphics/title_screen/unk_8eae0b4.4bpp.lz"
|
||||||
@@ -16539,8 +16582,15 @@ gGraphics_TitleScreen_CopyrightPressStartTiles:: @ 8EAE0B4
|
|||||||
gGraphics_TitleScreen_CopyrightPressStartMap:: @ 8EAE374
|
gGraphics_TitleScreen_CopyrightPressStartMap:: @ 8EAE374
|
||||||
.incbin "graphics/title_screen/unk_8eae374.bin.lz"
|
.incbin "graphics/title_screen/unk_8eae374.bin.lz"
|
||||||
|
|
||||||
gGraphics_TitleScreen_FirePals:: @ 8EAE488
|
.ifdef FIRERED
|
||||||
|
gGraphics_TitleScreen_FireOrLeafPals:: @ 8EAE488
|
||||||
.incbin "graphics/title_screen/unk_8eae488.gbapal"
|
.incbin "graphics/title_screen/unk_8eae488.gbapal"
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
gGraphics_TitleScreen_FireOrLeafPals:: @ 8EAE488
|
||||||
|
.incbin "graphics/title_screen/unk_lg_8eae77c.gbapal"
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
gGraphics_TitleScreen_BlankObjTiles:: @ 8EAE4A8
|
gGraphics_TitleScreen_BlankObjTiles:: @ 8EAE4A8
|
||||||
.incbin "graphics/title_screen/unk_8eae4a8.4bpp.lz"
|
.incbin "graphics/title_screen/unk_8eae4a8.4bpp.lz"
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
àààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààððððàððàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
230 123 90
|
||||||
|
16 164 74
|
||||||
|
148 255 57
|
||||||
|
98 222 57
|
||||||
|
57 189 65
|
||||||
|
230 255 230
|
||||||
|
148 255 205
|
||||||
|
82 246 131
|
||||||
|
180 180 115
|
||||||
|
255 205 148
|
||||||
|
246 172 123
|
||||||
|
238 148 106
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
230 123 90
|
||||||
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 135 B |
@@ -42,32 +42,67 @@ EventScript_16CC10:: @ 816CC10
|
|||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CC15:: @ 816CC15
|
EventScript_16CC15:: @ 816CC15
|
||||||
|
.ifdef FIRERED
|
||||||
setvar VAR_0x4001, SPECIES_ABRA
|
setvar VAR_0x4001, SPECIES_ABRA
|
||||||
setvar VAR_0x4002, 180
|
setvar VAR_0x4002, 180
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
setvar VAR_0x4001, SPECIES_ABRA
|
||||||
|
setvar VAR_0x4002, 120
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CC65
|
goto EventScript_16CC65
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CC25:: @ 816CC25
|
EventScript_16CC25:: @ 816CC25
|
||||||
|
.ifdef FIRERED
|
||||||
setvar VAR_0x4001, SPECIES_CLEFAIRY
|
setvar VAR_0x4001, SPECIES_CLEFAIRY
|
||||||
setvar VAR_0x4002, 500
|
setvar VAR_0x4002, 500
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
setvar VAR_0x4001, SPECIES_CLEFAIRY
|
||||||
|
setvar VAR_0x4002, 750
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CC65
|
goto EventScript_16CC65
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CC35:: @ 816CC35
|
EventScript_16CC35:: @ 816CC35
|
||||||
|
.ifdef FIRERED
|
||||||
setvar VAR_0x4001, SPECIES_DRATINI
|
setvar VAR_0x4001, SPECIES_DRATINI
|
||||||
setvar VAR_0x4002, 2800
|
setvar VAR_0x4002, 2800
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
setvar VAR_0x4001, SPECIES_PINSIR
|
||||||
|
setvar VAR_0x4002, 2500
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CC65
|
goto EventScript_16CC65
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CC45:: @ 816CC45
|
EventScript_16CC45:: @ 816CC45
|
||||||
|
.ifdef FIRERED
|
||||||
setvar VAR_0x4001, SPECIES_SCYTHER
|
setvar VAR_0x4001, SPECIES_SCYTHER
|
||||||
setvar VAR_0x4002, 5500
|
setvar VAR_0x4002, 5500
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
setvar VAR_0x4001, SPECIES_DRATINI
|
||||||
|
setvar VAR_0x4002, 4600
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CC65
|
goto EventScript_16CC65
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CC55:: @ 816CC55
|
EventScript_16CC55:: @ 816CC55
|
||||||
|
.ifdef FIRERED
|
||||||
setvar VAR_0x4001, SPECIES_PORYGON
|
setvar VAR_0x4001, SPECIES_PORYGON
|
||||||
setvar VAR_0x4002, 9999
|
setvar VAR_0x4002, 9999
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
setvar VAR_0x4001, SPECIES_PORYGON
|
||||||
|
setvar VAR_0x4002, 6500
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CC65
|
goto EventScript_16CC65
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -90,17 +125,35 @@ EventScript_16CC65:: @ 816CC65
|
|||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CCD4:: @ 816CCD4
|
EventScript_16CCD4:: @ 816CCD4
|
||||||
|
.ifdef FIRERED
|
||||||
givemon VAR_0x4001, 9, ITEM_NONE, 0, 0, 0
|
givemon VAR_0x4001, 9, ITEM_NONE, 0, 0, 0
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
givemon VAR_0x4001, 7, ITEM_NONE, 0, 0, 0
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CD52
|
goto EventScript_16CD52
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CCE9:: @ 816CCE9
|
EventScript_16CCE9:: @ 816CCE9
|
||||||
|
.ifdef FIRERED
|
||||||
givemon VAR_0x4001, 8, ITEM_NONE, 0, 0, 0
|
givemon VAR_0x4001, 8, ITEM_NONE, 0, 0, 0
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
givemon VAR_0x4001, 12, ITEM_NONE, 0, 0, 0
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CD52
|
goto EventScript_16CD52
|
||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CCFE:: @ 816CCFE
|
EventScript_16CCFE:: @ 816CCFE
|
||||||
|
.ifdef FIRERED
|
||||||
givemon VAR_0x4001, 18, ITEM_NONE, 0, 0, 0
|
givemon VAR_0x4001, 18, ITEM_NONE, 0, 0, 0
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
givemon VAR_0x4001, 24, ITEM_NONE, 0, 0, 0
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CD52
|
goto EventScript_16CD52
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -110,7 +163,13 @@ EventScript_16CD13:: @ 816CD13
|
|||||||
end
|
end
|
||||||
|
|
||||||
EventScript_16CD28:: @ 816CD28
|
EventScript_16CD28:: @ 816CD28
|
||||||
|
.ifdef FIRERED
|
||||||
givemon VAR_0x4001, 26, ITEM_NONE, 0, 0, 0
|
givemon VAR_0x4001, 26, ITEM_NONE, 0, 0, 0
|
||||||
|
.else
|
||||||
|
.ifdef LEAFGREEN
|
||||||
|
givemon VAR_0x4001, 18, ITEM_NONE, 0, 0, 0
|
||||||
|
.endif
|
||||||
|
.endif
|
||||||
goto EventScript_16CD52
|
goto EventScript_16CD52
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ gExpandedPlaceholder_Kun:: @ 8415A21
|
|||||||
gExpandedPlaceholder_Chan:: @ 8415A22
|
gExpandedPlaceholder_Chan:: @ 8415A22
|
||||||
.string "$"
|
.string "$"
|
||||||
|
|
||||||
gUnknown_8415A23:: @ 0x8415A23
|
gExpandedPlaceholder_Sapphire:: @ 0x8415A23
|
||||||
.string "SAPPHIRE$"
|
.string "SAPPHIRE$"
|
||||||
|
|
||||||
gExpandedPlaceholder_Ruby:: @ 8415A2C
|
gExpandedPlaceholder_Ruby:: @ 8415A2C
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 414 B |
@@ -1,19 +0,0 @@
|
|||||||
JASC-PAL
|
|
||||||
0100
|
|
||||||
16
|
|
||||||
0 0 0
|
|
||||||
238 172 0
|
|
||||||
156 115 115
|
|
||||||
246 205 205
|
|
||||||
123 90 90
|
|
||||||
222 164 164
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
0 0 0
|
|
||||||
222 123 32
|
|
||||||
255 205 32
|
|
||||||
205 90 0
|
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 845 B |
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
0 0 0
|
||||||
|
57 57 49
|
||||||
|
230 230 230
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
65 156 41
|
||||||
|
90 164 57
|
||||||
|
197 246 139
|
||||||
|
115 180 82
|
||||||
|
255 164 41
|
||||||
|
238 148 0
|
||||||
|
255 205 65
|
||||||
|
172 82 0
|
||||||
|
24 98 24
|
||||||
|
98 98 90
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
197 246 139
|
||||||
|
156 0 0
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
0 0 0
|
||||||
|
255 255 255
|
||||||
|
65 156 41
|
||||||
|
139 222 82
|
||||||
|
115 164 74
|
||||||
|
156 238 74
|
||||||
|
230 65 24
|
||||||
|
255 164 41
|
||||||
|
255 238 32
|
||||||
|
139 222 82
|
||||||
|
189 189 189
|
||||||
|
156 156 156
|
||||||
|
123 123 123
|
||||||
|
90 90 90
|
||||||
|
65 65 65
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
0 0 0
|
||||||
|
139 222 82
|
||||||
|
139 106 106
|
||||||
|
189 156 156
|
||||||
|
115 82 82
|
||||||
|
164 131 131
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
131 197 98
|
||||||
|
115 180 82
|
||||||
|
197 246 139
|
||||||
|
90 164 57
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
65 156 41
|
||||||
|
90 164 57
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
0 0 197
|
||||||
|
180 65 0
|
||||||
|
180 65 0
|
||||||
|
0 106 0
|
||||||
|
0 106 0
|
||||||
|
82 123 255
|
||||||
|
246 156 0
|
||||||
|
246 156 0
|
||||||
|
41 180 82
|
||||||
|
41 180 82
|
||||||
|
0 0 0
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
65 156 41
|
||||||
|
90 164 57
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
0 180 255
|
||||||
|
255 148 0
|
||||||
|
255 148 0
|
||||||
|
0 238 0
|
||||||
|
0 238 0
|
||||||
|
139 255 255
|
||||||
|
255 238 106
|
||||||
|
255 238 106
|
||||||
|
148 255 148
|
||||||
|
148 255 148
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
255 255 255
|
||||||
|
255 255 131
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
255 180 65
|
||||||
|
255 90 0
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
197 246 139
|
||||||
|
156 0 0
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
255 180 65
|
||||||
|
255 90 0
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
255 255 255
|
||||||
|
255 255 131
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
255 180 65
|
||||||
|
255 90 0
|
||||||
|
197 246 139
|
||||||
|
156 0 0
|
||||||
|
0 0 0
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
139 222 82
|
||||||
|
255 90 0
|
||||||
|
222 41 0
|
||||||
|
255 180 65
|
||||||
|
255 90 0
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
255 255 255
|
||||||
|
255 255 131
|
||||||
|
255 255 131
|
||||||
|
255 180 65
|
||||||
|
197 246 139
|
||||||
|
156 0 0
|
||||||
|
0 0 0
|
||||||
|
After Width: | Height: | Size: 842 B |
@@ -0,0 +1,259 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
256
|
||||||
|
0 255 41
|
||||||
|
0 0 0
|
||||||
|
255 238 16
|
||||||
|
246 222 41
|
||||||
|
246 238 246
|
||||||
|
255 246 24
|
||||||
|
246 246 41
|
||||||
|
246 246 246
|
||||||
|
246 255 255
|
||||||
|
255 246 255
|
||||||
|
32 0 255
|
||||||
|
106 65 156
|
||||||
|
32 0 238
|
||||||
|
246 222 24
|
||||||
|
246 222 32
|
||||||
|
255 238 41
|
||||||
|
255 238 49
|
||||||
|
255 255 16
|
||||||
|
255 255 24
|
||||||
|
255 255 246
|
||||||
|
255 255 255
|
||||||
|
123 106 156
|
||||||
|
24 41 32
|
||||||
|
32 32 74
|
||||||
|
32 0 230
|
||||||
|
115 82 164
|
||||||
|
16 0 246
|
||||||
|
106 82 172
|
||||||
|
246 238 32
|
||||||
|
255 230 24
|
||||||
|
246 230 41
|
||||||
|
246 238 41
|
||||||
|
246 230 49
|
||||||
|
246 238 49
|
||||||
|
255 246 32
|
||||||
|
255 246 41
|
||||||
|
255 255 32
|
||||||
|
255 255 41
|
||||||
|
32 24 32
|
||||||
|
32 32 41
|
||||||
|
197 156 41
|
||||||
|
197 164 41
|
||||||
|
156 156 156
|
||||||
|
164 164 156
|
||||||
|
172 172 172
|
||||||
|
180 189 180
|
||||||
|
41 0 230
|
||||||
|
189 189 189
|
||||||
|
197 189 189
|
||||||
|
197 197 197
|
||||||
|
205 205 213
|
||||||
|
8 8 197
|
||||||
|
246 230 24
|
||||||
|
246 230 32
|
||||||
|
255 238 24
|
||||||
|
255 238 32
|
||||||
|
32 32 32
|
||||||
|
32 41 32
|
||||||
|
41 32 32
|
||||||
|
41 41 32
|
||||||
|
49 32 32
|
||||||
|
49 41 32
|
||||||
|
41 32 41
|
||||||
|
49 32 41
|
||||||
|
24 41 41
|
||||||
|
32 32 90
|
||||||
|
16 24 106
|
||||||
|
24 32 98
|
||||||
|
41 32 82
|
||||||
|
41 32 98
|
||||||
|
41 41 82
|
||||||
|
41 41 98
|
||||||
|
0 0 115
|
||||||
|
8 8 131
|
||||||
|
32 24 115
|
||||||
|
32 24 131
|
||||||
|
32 41 115
|
||||||
|
41 41 115
|
||||||
|
32 41 131
|
||||||
|
41 41 131
|
||||||
|
57 41 41
|
||||||
|
57 41 49
|
||||||
|
57 49 41
|
||||||
|
57 57 57
|
||||||
|
65 41 41
|
||||||
|
74 41 41
|
||||||
|
65 57 57
|
||||||
|
74 57 57
|
||||||
|
57 74 74
|
||||||
|
65 65 74
|
||||||
|
82 74 82
|
||||||
|
82 57 131
|
||||||
|
82 90 82
|
||||||
|
90 90 90
|
||||||
|
90 98 98
|
||||||
|
98 98 106
|
||||||
|
115 106 106
|
||||||
|
131 98 115
|
||||||
|
139 98 106
|
||||||
|
139 115 98
|
||||||
|
180 139 57
|
||||||
|
172 131 65
|
||||||
|
156 115 90
|
||||||
|
156 131 82
|
||||||
|
115 82 139
|
||||||
|
123 82 131
|
||||||
|
115 98 131
|
||||||
|
131 98 123
|
||||||
|
115 123 123
|
||||||
|
123 123 131
|
||||||
|
139 131 139
|
||||||
|
148 123 131
|
||||||
|
205 172 24
|
||||||
|
213 172 16
|
||||||
|
205 164 32
|
||||||
|
213 172 32
|
||||||
|
222 189 24
|
||||||
|
230 189 16
|
||||||
|
213 189 32
|
||||||
|
222 189 32
|
||||||
|
230 205 24
|
||||||
|
230 205 32
|
||||||
|
230 213 32
|
||||||
|
238 222 32
|
||||||
|
180 148 57
|
||||||
|
189 156 49
|
||||||
|
180 148 74
|
||||||
|
180 172 90
|
||||||
|
156 148 123
|
||||||
|
139 148 139
|
||||||
|
164 148 115
|
||||||
|
172 156 106
|
||||||
|
197 156 49
|
||||||
|
205 180 49
|
||||||
|
197 172 90
|
||||||
|
205 189 82
|
||||||
|
222 205 49
|
||||||
|
230 222 49
|
||||||
|
205 205 74
|
||||||
|
222 213 65
|
||||||
|
49 0 230
|
||||||
|
213 213 213
|
||||||
|
222 230 230
|
||||||
|
222 230 230
|
||||||
|
255 0 246
|
||||||
|
255 0 255
|
||||||
|
16 8 197
|
||||||
|
16 16 189
|
||||||
|
32 16 164
|
||||||
|
41 16 164
|
||||||
|
32 16 180
|
||||||
|
41 16 189
|
||||||
|
8 8 205
|
||||||
|
8 16 205
|
||||||
|
24 8 213
|
||||||
|
24 16 205
|
||||||
|
41 8 213
|
||||||
|
41 16 213
|
||||||
|
49 8 213
|
||||||
|
57 16 213
|
||||||
|
16 8 230
|
||||||
|
24 8 230
|
||||||
|
24 16 230
|
||||||
|
24 24 230
|
||||||
|
8 8 246
|
||||||
|
8 16 246
|
||||||
|
16 8 246
|
||||||
|
16 16 246
|
||||||
|
32 8 230
|
||||||
|
32 16 230
|
||||||
|
32 8 238
|
||||||
|
32 8 246
|
||||||
|
41 8 230
|
||||||
|
41 16 230
|
||||||
|
49 16 230
|
||||||
|
49 8 238
|
||||||
|
32 32 156
|
||||||
|
24 32 172
|
||||||
|
41 41 156
|
||||||
|
41 32 164
|
||||||
|
74 49 180
|
||||||
|
82 49 172
|
||||||
|
82 65 164
|
||||||
|
90 74 164
|
||||||
|
24 32 189
|
||||||
|
57 41 189
|
||||||
|
41 32 213
|
||||||
|
57 32 213
|
||||||
|
74 41 189
|
||||||
|
90 57 189
|
||||||
|
74 49 197
|
||||||
|
74 41 205
|
||||||
|
205 205 205
|
||||||
|
41 41 41
|
||||||
|
189 189 189
|
||||||
|
172 172 172
|
||||||
|
246 246 246
|
||||||
|
123 123 123
|
||||||
|
156 156 156
|
||||||
|
139 139 139
|
||||||
|
238 238 238
|
||||||
|
16 16 16
|
||||||
|
98 98 98
|
||||||
|
82 82 82
|
||||||
|
222 222 222
|
||||||
|
57 57 57
|
||||||
|
0 0 0
|
||||||
|
255 255 255
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
0 0 0
|
||||||
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
246 148 98
|
||||||
|
0 0 0
|
||||||
|
246 148 98
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
0 32 32
|
||||||
|
0 49 41
|
||||||
|
0 65 49
|
||||||
|
0 82 57
|
||||||
|
16 98 74
|
||||||
|
24 115 90
|
||||||
|
41 148 115
|
||||||
|
74 180 139
|
||||||
|
98 205 156
|
||||||
|
131 230 172
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
255 255 90
|
||||||
|
0 0 0
|
||||||
|
123 123 123
|
||||||
|
197 197 197
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
0 0 0
|
||||||
|
123 123 123
|
||||||
|
197 197 197
|
||||||
|
222 222 222
|
||||||
|
255 255 255
|
||||||
|
230 123 90
|
||||||
|
0 123 0
|
||||||
|
16 148 32
|
||||||
|
41 180 65
|
||||||
|
65 213 98
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
0 0 213
|
||||||
|
172 180 197
|
||||||
|
49 57 65
|
||||||
|
115 123 131
|
||||||
|
246 246 246
|
||||||
|
57 82 82
|
||||||
|
90 115 115
|
||||||
|
123 131 123
|
||||||
|
49 74 57
|
||||||
|
16 32 24
|
||||||
|
0 82 0
|
||||||
|
32 82 24
|
||||||
|
16 98 0
|
||||||
|
57 164 16
|
||||||
|
90 222 24
|
||||||
|
189 255 8
|
||||||
@@ -506,6 +506,9 @@ $(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png
|
|||||||
$(TITLESCREENGFXDIR)/unk_8ead608.4bpp: %.4bpp: %.png
|
$(TITLESCREENGFXDIR)/unk_8ead608.4bpp: %.4bpp: %.png
|
||||||
$(GFX) $< $@ -num_tiles 135
|
$(GFX) $< $@ -num_tiles 135
|
||||||
|
|
||||||
|
$(TITLESCREENGFXDIR)/unk_lg_8ead788.4bpp: %.4bpp: %.png
|
||||||
|
$(GFX) $< $@ -num_tiles 123
|
||||||
|
|
||||||
$(CREDITSGFXDIR)/unk_8EAE548.4bpp: %.4bpp: %.png
|
$(CREDITSGFXDIR)/unk_8EAE548.4bpp: %.4bpp: %.png
|
||||||
$(GFX) $< $@ -num_tiles 77
|
$(GFX) $< $@ -num_tiles 77
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,16 @@
|
|||||||
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
|
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
|
||||||
// to the inclusion of asserts in the retail ROM.
|
// to the inclusion of asserts in the retail ROM.
|
||||||
|
|
||||||
|
// Define the game version for use elsewhere
|
||||||
|
#if defined(FIRERED)
|
||||||
|
#define GAME_VERSION VERSION_FIRE_RED
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
#define GAME_VERSION VERSION_LEAF_GREEN
|
||||||
|
#else
|
||||||
|
#error unknown version
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// rev1 renamed the source folder for reasons
|
||||||
#if REVISION == 0
|
#if REVISION == 0
|
||||||
#define CODE_ROOT "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/"
|
#define CODE_ROOT "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/"
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -708,9 +708,8 @@ extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
|
|||||||
extern const u8 gOtherText_NewName[];
|
extern const u8 gOtherText_NewName[];
|
||||||
extern const u8 gNameChoice_Green[];
|
extern const u8 gNameChoice_Green[];
|
||||||
extern const u8 gNameChoice_Red[];
|
extern const u8 gNameChoice_Red[];
|
||||||
extern const u8 gNameChoice_Red[];
|
|
||||||
extern const u8 gNameChoice_Fire[];
|
|
||||||
extern const u8 gNameChoice_Fire[];
|
extern const u8 gNameChoice_Fire[];
|
||||||
|
extern const u8 gNameChoice_Leaf[];
|
||||||
extern const u8 gNameChoice_Gary[];
|
extern const u8 gNameChoice_Gary[];
|
||||||
extern const u8 gNameChoice_Kaz[];
|
extern const u8 gNameChoice_Kaz[];
|
||||||
extern const u8 gNameChoice_Toru[];
|
extern const u8 gNameChoice_Toru[];
|
||||||
|
|||||||
@@ -4297,17 +4297,17 @@ extern const u32 gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet[];
|
|||||||
extern const u32 gBattleAnimSpritePal_FlyingDirt[];
|
extern const u32 gBattleAnimSpritePal_FlyingDirt[];
|
||||||
|
|
||||||
// title_screen
|
// title_screen
|
||||||
extern const u16 gGraphics_TitleScreen_PokemonFireRedLogoPals[];
|
extern const u16 gGraphics_TitleScreen_GameTitleLogoPals[];
|
||||||
extern const u8 gGraphics_TitleScreen_PokemonFireRedLogoTiles[];
|
extern const u8 gGraphics_TitleScreen_GameTitleLogoTiles[];
|
||||||
extern const u8 gGraphics_TitleScreen_PokemonFireRedLogoMap[];
|
extern const u8 gGraphics_TitleScreen_GameTitleLogoMap[];
|
||||||
extern const u16 gGraphics_TitleScreen_CharizardPals[];
|
extern const u16 gGraphics_TitleScreen_BoxArtMonPals[];
|
||||||
extern const u8 gGraphics_TitleScreen_CharizardTiles[];
|
extern const u8 gGraphics_TitleScreen_BoxArtMonTiles[];
|
||||||
extern const u8 gGraphics_TitleScreen_CharizardMap[];
|
extern const u8 gGraphics_TitleScreen_BoxArtMonMap[];
|
||||||
extern u16 gGraphics_TitleScreen_BackgroundPals[]; // If this is const, title_screen.c does not match
|
extern u16 gGraphics_TitleScreen_BackgroundPals[]; // If this is const, title_screen.c does not match
|
||||||
extern const u8 gGraphics_TitleScreen_CopyrightPressStartTiles[];
|
extern const u8 gGraphics_TitleScreen_CopyrightPressStartTiles[];
|
||||||
extern const u8 gGraphics_TitleScreen_CopyrightPressStartMap[];
|
extern const u8 gGraphics_TitleScreen_CopyrightPressStartMap[];
|
||||||
extern const u16 gGraphics_TitleScreen_FirePals[];
|
extern const u16 gGraphics_TitleScreen_FireOrLeafPals[];
|
||||||
extern const u8 gGraphics_TitleScreen_BlankObjTiles[];
|
extern const u32 gGraphics_TitleScreen_BlankObjTiles[];
|
||||||
|
|
||||||
// battle_gfx_sfx_util
|
// battle_gfx_sfx_util
|
||||||
extern const u32 gHealthboxSinglesPlayerGfx[];
|
extern const u32 gHealthboxSinglesPlayerGfx[];
|
||||||
|
|||||||
@@ -777,6 +777,11 @@ extern const u8 gText_Clefairy_500Coins[];
|
|||||||
extern const u8 gText_Dratini_2800Coins[];
|
extern const u8 gText_Dratini_2800Coins[];
|
||||||
extern const u8 gText_Scyther_5500Coins[];
|
extern const u8 gText_Scyther_5500Coins[];
|
||||||
extern const u8 gText_Porygon_9999Coins[];
|
extern const u8 gText_Porygon_9999Coins[];
|
||||||
|
extern const u8 gText_Abra_120Coins[];
|
||||||
|
extern const u8 gText_Clefairy_750Coins[];
|
||||||
|
extern const u8 gText_Pinsir_2500Coins[];
|
||||||
|
extern const u8 gText_Dratini_4600Coins[];
|
||||||
|
extern const u8 gText_Porygon_6500Coins[];
|
||||||
extern const u8 gText_NoThanks_2[];
|
extern const u8 gText_NoThanks_2[];
|
||||||
extern const u8 gText_HelixFossil[];
|
extern const u8 gText_HelixFossil[];
|
||||||
extern const u8 gText_DomeFossil[];
|
extern const u8 gText_DomeFossil[];
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ static const struct InGameTrade sInGameTrades[] = {
|
|||||||
.sheen = 10,
|
.sheen = 10,
|
||||||
.requestedSpecies = SPECIES_POLIWHIRL
|
.requestedSpecies = SPECIES_POLIWHIRL
|
||||||
}, {
|
}, {
|
||||||
|
#if defined(FIRERED)
|
||||||
.nickname = _("MS. NIDO"),
|
.nickname = _("MS. NIDO"),
|
||||||
.species = SPECIES_NIDORAN_F,
|
.species = SPECIES_NIDORAN_F,
|
||||||
.ivs = {22, 18, 25, 19, 15, 22},
|
.ivs = {22, 18, 25, 19, 15, 22},
|
||||||
@@ -41,6 +42,21 @@ static const struct InGameTrade sInGameTrades[] = {
|
|||||||
.otGender = FEMALE,
|
.otGender = FEMALE,
|
||||||
.sheen = 10,
|
.sheen = 10,
|
||||||
.requestedSpecies = SPECIES_NIDORAN_M
|
.requestedSpecies = SPECIES_NIDORAN_M
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
.nickname = _("MR. NIDO"),
|
||||||
|
.species = SPECIES_NIDORAN_M,
|
||||||
|
.ivs = {19, 25, 18, 22, 22, 15},
|
||||||
|
.abilityNum = 0,
|
||||||
|
.otId = 63184,
|
||||||
|
.conditions = {30, 5, 5, 5, 5},
|
||||||
|
.personality = 0x4c970b9e,
|
||||||
|
.heldItem = ITEM_TINY_MUSHROOM,
|
||||||
|
.mailNum = 255,
|
||||||
|
.otName = _("SAIGE"),
|
||||||
|
.otGender = FEMALE,
|
||||||
|
.sheen = 10,
|
||||||
|
.requestedSpecies = SPECIES_NIDORAN_F
|
||||||
|
#endif
|
||||||
}, {
|
}, {
|
||||||
.nickname = _("CH'DING"),
|
.nickname = _("CH'DING"),
|
||||||
.species = SPECIES_FARFETCHD,
|
.species = SPECIES_FARFETCHD,
|
||||||
@@ -56,6 +72,7 @@ static const struct InGameTrade sInGameTrades[] = {
|
|||||||
.sheen = 10,
|
.sheen = 10,
|
||||||
.requestedSpecies = SPECIES_SPEAROW
|
.requestedSpecies = SPECIES_SPEAROW
|
||||||
}, {
|
}, {
|
||||||
|
#if defined(FIRERED)
|
||||||
.nickname = _("NINA"),
|
.nickname = _("NINA"),
|
||||||
.species = SPECIES_NIDORINA,
|
.species = SPECIES_NIDORINA,
|
||||||
.ivs = {22, 25, 18, 19, 22, 15},
|
.ivs = {22, 25, 18, 19, 22, 15},
|
||||||
@@ -69,6 +86,21 @@ static const struct InGameTrade sInGameTrades[] = {
|
|||||||
.otGender = MALE,
|
.otGender = MALE,
|
||||||
.sheen = 10,
|
.sheen = 10,
|
||||||
.requestedSpecies = SPECIES_NIDORINO
|
.requestedSpecies = SPECIES_NIDORINO
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
.nickname = _("NINO"),
|
||||||
|
.species = SPECIES_NIDORINO,
|
||||||
|
.ivs = {19, 18, 25, 22, 15, 22},
|
||||||
|
.abilityNum = 0,
|
||||||
|
.otId = 13637,
|
||||||
|
.conditions = {5, 5, 5, 5, 30},
|
||||||
|
.personality = 0x00eeca19,
|
||||||
|
.heldItem = ITEM_NONE,
|
||||||
|
.mailNum = 255,
|
||||||
|
.otName = _("TURNER"),
|
||||||
|
.otGender = MALE,
|
||||||
|
.sheen = 10,
|
||||||
|
.requestedSpecies = SPECIES_NIDORINA
|
||||||
|
#endif
|
||||||
}, {
|
}, {
|
||||||
.nickname = _("MARC"),
|
.nickname = _("MARC"),
|
||||||
.species = SPECIES_LICKITUNG,
|
.species = SPECIES_LICKITUNG,
|
||||||
@@ -82,7 +114,11 @@ static const struct InGameTrade sInGameTrades[] = {
|
|||||||
.otName = _("HADEN"),
|
.otName = _("HADEN"),
|
||||||
.otGender = MALE,
|
.otGender = MALE,
|
||||||
.sheen = 10,
|
.sheen = 10,
|
||||||
|
#if defined(FIRERED)
|
||||||
.requestedSpecies = SPECIES_GOLDUCK
|
.requestedSpecies = SPECIES_GOLDUCK
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
.requestedSpecies = SPECIES_SLOWBRO
|
||||||
|
#endif
|
||||||
}, {
|
}, {
|
||||||
.nickname = _("ESPHERE"),
|
.nickname = _("ESPHERE"),
|
||||||
.species = SPECIES_ELECTRODE,
|
.species = SPECIES_ELECTRODE,
|
||||||
|
|||||||
@@ -670,8 +670,13 @@ static const u16 sDiglettLevelUpLearnset[] = {
|
|||||||
|
|
||||||
static const u16 sDugtrioLevelUpLearnset[] = {
|
static const u16 sDugtrioLevelUpLearnset[] = {
|
||||||
LEVEL_UP_MOVE(1, MOVE_TRI_ATTACK),
|
LEVEL_UP_MOVE(1, MOVE_TRI_ATTACK),
|
||||||
|
#if defined(FIRERED)
|
||||||
LEVEL_UP_MOVE(1, MOVE_SCRATCH),
|
LEVEL_UP_MOVE(1, MOVE_SCRATCH),
|
||||||
LEVEL_UP_MOVE(1, MOVE_SAND_ATTACK),
|
LEVEL_UP_MOVE(1, MOVE_SAND_ATTACK),
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
LEVEL_UP_MOVE(1, MOVE_SAND_ATTACK),
|
||||||
|
LEVEL_UP_MOVE(1, MOVE_SCRATCH),
|
||||||
|
#endif
|
||||||
LEVEL_UP_MOVE(1, MOVE_GROWL),
|
LEVEL_UP_MOVE(1, MOVE_GROWL),
|
||||||
LEVEL_UP_MOVE(5, MOVE_GROWL),
|
LEVEL_UP_MOVE(5, MOVE_GROWL),
|
||||||
LEVEL_UP_MOVE(9, MOVE_MAGNITUDE),
|
LEVEL_UP_MOVE(9, MOVE_MAGNITUDE),
|
||||||
@@ -5649,6 +5654,7 @@ static const u16 sJirachiLevelUpLearnset[] = {
|
|||||||
LEVEL_UP_END
|
LEVEL_UP_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u16 sDeoxysLevelUpLearnset[] = {
|
static const u16 sDeoxysLevelUpLearnset[] = {
|
||||||
LEVEL_UP_MOVE(1, MOVE_LEER),
|
LEVEL_UP_MOVE(1, MOVE_LEER),
|
||||||
LEVEL_UP_MOVE(1, MOVE_WRAP),
|
LEVEL_UP_MOVE(1, MOVE_WRAP),
|
||||||
@@ -5664,6 +5670,25 @@ static const u16 sDeoxysLevelUpLearnset[] = {
|
|||||||
LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
|
LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
|
||||||
LEVEL_UP_END
|
LEVEL_UP_END
|
||||||
};
|
};
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u16 sDeoxysLevelUpLearnset[] = {
|
||||||
|
LEVEL_UP_MOVE(1, MOVE_LEER),
|
||||||
|
LEVEL_UP_MOVE(1, MOVE_WRAP),
|
||||||
|
LEVEL_UP_MOVE(5, MOVE_NIGHT_SHADE),
|
||||||
|
LEVEL_UP_MOVE(10, MOVE_TELEPORT),
|
||||||
|
LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF),
|
||||||
|
LEVEL_UP_MOVE(20, MOVE_SPIKES),
|
||||||
|
LEVEL_UP_MOVE(25, MOVE_PSYCHIC),
|
||||||
|
LEVEL_UP_MOVE(30, MOVE_SNATCH),
|
||||||
|
LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE),
|
||||||
|
LEVEL_UP_MOVE(35, MOVE_AMNESIA),
|
||||||
|
LEVEL_UP_MOVE(40, MOVE_RECOVER),
|
||||||
|
LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST),
|
||||||
|
LEVEL_UP_MOVE(50, MOVE_COUNTER),
|
||||||
|
LEVEL_UP_MOVE(50, MOVE_MIRROR_COAT),
|
||||||
|
LEVEL_UP_END
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const u16 sChimechoLevelUpLearnset[] = {
|
static const u16 sChimechoLevelUpLearnset[] = {
|
||||||
LEVEL_UP_MOVE(1, MOVE_WRAP),
|
LEVEL_UP_MOVE(1, MOVE_WRAP),
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
|
|
||||||
## for encounter in wild_encounter_group.encounters
|
## for encounter in wild_encounter_group.encounters
|
||||||
|
{% if contains(encounter.base_label, "LeafGreen") %}#ifdef LEAFGREEN
|
||||||
|
{% else if contains(encounter.base_label, "FireRed") %}#ifdef FIRERED{% endif %}
|
||||||
{% if existsIn(encounter, "land_mons") %}
|
{% if existsIn(encounter, "land_mons") %}
|
||||||
const struct WildPokemon {{ encounter.base_label }}_LandMons[] =
|
const struct WildPokemon {{ encounter.base_label }}_LandMons[] =
|
||||||
{
|
{
|
||||||
@@ -64,11 +66,15 @@ const struct WildPokemon {{ encounter.base_label }}_FishingMons[] =
|
|||||||
|
|
||||||
const struct WildPokemonInfo {{ encounter.base_label }}_FishingMonsInfo = { {{encounter.fishing_mons.encounter_rate}}, {{ encounter.base_label }}_FishingMons };
|
const struct WildPokemonInfo {{ encounter.base_label }}_FishingMonsInfo = { {{encounter.fishing_mons.encounter_rate}}, {{ encounter.base_label }}_FishingMons };
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
#endif
|
||||||
|
|
||||||
## endfor
|
## endfor
|
||||||
|
|
||||||
const struct WildPokemonHeader {{ wild_encounter_group.label }}[] =
|
const struct WildPokemonHeader {{ wild_encounter_group.label }}[] =
|
||||||
{
|
{
|
||||||
## for encounter in wild_encounter_group.encounters
|
## for encounter in wild_encounter_group.encounters
|
||||||
|
{% if contains(encounter.base_label, "LeafGreen") %}#ifdef LEAFGREEN
|
||||||
|
{% else if contains(encounter.base_label, "FireRed") %}#ifdef FIRERED{% endif %}
|
||||||
{
|
{
|
||||||
.mapGroup = {% if wild_encounter_group.for_maps %}MAP_GROUP({{ removePrefix(encounter.map, "MAP_") }}){% else %}0{% endif %},
|
.mapGroup = {% if wild_encounter_group.for_maps %}MAP_GROUP({{ removePrefix(encounter.map, "MAP_") }}){% else %}0{% endif %},
|
||||||
.mapNum = {% if wild_encounter_group.for_maps %}MAP_NUM({{ removePrefix(encounter.map, "MAP_") }}){% else %}{{ loop.index1 }}{% endif %},
|
.mapNum = {% if wild_encounter_group.for_maps %}MAP_NUM({{ removePrefix(encounter.map, "MAP_") }}){% else %}{{ loop.index1 }}{% endif %},
|
||||||
@@ -77,6 +83,7 @@ const struct WildPokemonHeader {{ wild_encounter_group.label }}[] =
|
|||||||
.rockSmashMonsInfo = {% if existsIn(encounter, "rock_smash_mons") %}&{{ encounter.base_label }}_RockSmashMonsInfo{% else %}NULL{% endif %},
|
.rockSmashMonsInfo = {% if existsIn(encounter, "rock_smash_mons") %}&{{ encounter.base_label }}_RockSmashMonsInfo{% else %}NULL{% endif %},
|
||||||
.fishingMonsInfo = {% if existsIn(encounter, "fishing_mons") %}&{{ encounter.base_label }}_FishingMonsInfo{% else %}NULL{% endif %},
|
.fishingMonsInfo = {% if existsIn(encounter, "fishing_mons") %}&{{ encounter.base_label }}_FishingMonsInfo{% else %}NULL{% endif %},
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
## endfor
|
## endfor
|
||||||
{
|
{
|
||||||
.mapGroup = MAP_GROUP(UNDEFINED),
|
.mapGroup = MAP_GROUP(UNDEFINED),
|
||||||
|
|||||||
@@ -55,13 +55,6 @@ static void VCountIntr(void);
|
|||||||
static void SerialIntr(void);
|
static void SerialIntr(void);
|
||||||
static void IntrDummy(void);
|
static void IntrDummy(void);
|
||||||
|
|
||||||
#if defined(FIRERED)
|
|
||||||
#define GAME_VERSION VERSION_FIRE_RED
|
|
||||||
#elif defined(LEAFGREEN)
|
|
||||||
#define GAME_VERSION VERSION_LEAF_GREEN
|
|
||||||
#else
|
|
||||||
#error unknown version
|
|
||||||
#endif
|
|
||||||
const u8 gGameVersion = GAME_VERSION;
|
const u8 gGameVersion = GAME_VERSION;
|
||||||
|
|
||||||
const u8 gGameLanguage = GAME_LANGUAGE;
|
const u8 gGameLanguage = GAME_LANGUAGE;
|
||||||
|
|||||||
@@ -419,7 +419,11 @@ static const u8 gUnknown_845FD54[][5] = {
|
|||||||
[SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19},
|
[SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19},
|
||||||
[SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d},
|
[SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d},
|
||||||
[SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22},
|
[SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22},
|
||||||
|
#if defined(FIRERED)
|
||||||
[SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
|
[SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
[SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17},
|
||||||
|
#endif
|
||||||
[SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
|
[SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
|
||||||
[SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b},
|
[SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b},
|
||||||
[SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d}
|
[SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d}
|
||||||
|
|||||||
@@ -750,6 +750,12 @@ bool32 sub_8144254(const u16 * data)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
|
#define MEVENT_HEADER_VERSION_CODE 1
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
#define MEVENT_HEADER_VERSION_CODE 2
|
||||||
|
#endif
|
||||||
|
|
||||||
void BuildMEventClientHeader(struct MEventClientHeaderStruct * data)
|
void BuildMEventClientHeader(struct MEventClientHeaderStruct * data)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
@@ -759,7 +765,7 @@ void BuildMEventClientHeader(struct MEventClientHeaderStruct * data)
|
|||||||
data->unk_04 = 1;
|
data->unk_04 = 1;
|
||||||
data->unk_08 = 1;
|
data->unk_08 = 1;
|
||||||
data->unk_0C = 1;
|
data->unk_0C = 1;
|
||||||
data->unk_10 = 1;
|
data->unk_10 = MEVENT_HEADER_VERSION_CODE;
|
||||||
|
|
||||||
// Check whether a card already exists
|
// Check whether a card already exists
|
||||||
if (ValidateReceivedWonderCard())
|
if (ValidateReceivedWonderCard())
|
||||||
|
|||||||
@@ -22,7 +22,11 @@ extern ScrCmdFunc gMysteryEventScriptCmdTable[];
|
|||||||
extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[];
|
extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[];
|
||||||
|
|
||||||
#define LANGUAGE_MASK 0x1
|
#define LANGUAGE_MASK 0x1
|
||||||
|
#if defined(FIRERED)
|
||||||
#define VERSION_MASK 0x1
|
#define VERSION_MASK 0x1
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
#define VERSION_MASK 0x2
|
||||||
|
#endif
|
||||||
|
|
||||||
EWRAM_DATA static struct ScriptContext sMysteryEventScriptContext = {0};
|
EWRAM_DATA static struct ScriptContext sMysteryEventScriptContext = {0};
|
||||||
|
|
||||||
|
|||||||
@@ -271,11 +271,11 @@ static const struct WindowTemplate sNewGameAdventureIntroWindowTemplates[] = {
|
|||||||
}, DUMMY_WIN_TEMPLATE
|
}, DUMMY_WIN_TEMPLATE
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 sTextColor_HelpSystem[4] = {
|
static const u8 sTextColor_HelpSystem[4] = {
|
||||||
0x00, 0x01, 0x02
|
0x00, 0x01, 0x02
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 sTextColor_OakSpeech[4] = {
|
static const u8 sTextColor_OakSpeech[4] = {
|
||||||
0x00, 0x02, 0x03
|
0x00, 0x02, 0x03
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -405,11 +405,19 @@ static const u8 *const sHelpDocsPtrs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const u8 *const sMaleNameChoices[] = {
|
static const u8 *const sMaleNameChoices[] = {
|
||||||
|
#if defined(FIRERED)
|
||||||
gNameChoice_Red,
|
gNameChoice_Red,
|
||||||
gNameChoice_Fire,
|
gNameChoice_Fire,
|
||||||
gNameChoice_Ash,
|
gNameChoice_Ash,
|
||||||
gNameChoice_Kene,
|
gNameChoice_Kene,
|
||||||
gNameChoice_Geki,
|
gNameChoice_Geki,
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
gNameChoice_Green,
|
||||||
|
gNameChoice_Leaf,
|
||||||
|
gNameChoice_Gary,
|
||||||
|
gNameChoice_Kaz,
|
||||||
|
gNameChoice_Toru,
|
||||||
|
#endif
|
||||||
gNameChoice_Jak,
|
gNameChoice_Jak,
|
||||||
gNameChoice_Janne,
|
gNameChoice_Janne,
|
||||||
gNameChoice_Jonn,
|
gNameChoice_Jonn,
|
||||||
@@ -427,8 +435,13 @@ static const u8 *const sMaleNameChoices[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const u8 *const sFemaleNameChoices[] = {
|
static const u8 *const sFemaleNameChoices[] = {
|
||||||
|
#if defined(FIRERED)
|
||||||
gNameChoice_Red,
|
gNameChoice_Red,
|
||||||
gNameChoice_Fire,
|
gNameChoice_Fire,
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
gNameChoice_Green,
|
||||||
|
gNameChoice_Leaf,
|
||||||
|
#endif
|
||||||
gNameChoice_Omi,
|
gNameChoice_Omi,
|
||||||
gNameChoice_Jodi,
|
gNameChoice_Jodi,
|
||||||
gNameChoice_Amanda,
|
gNameChoice_Amanda,
|
||||||
@@ -449,10 +462,17 @@ static const u8 *const sFemaleNameChoices[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const u8 *const sRivalNameChoices[] = {
|
static const u8 *const sRivalNameChoices[] = {
|
||||||
|
#if defined(FIRERED)
|
||||||
gNameChoice_Green,
|
gNameChoice_Green,
|
||||||
gNameChoice_Gary,
|
gNameChoice_Gary,
|
||||||
gNameChoice_Kaz,
|
gNameChoice_Kaz,
|
||||||
gNameChoice_Toru
|
gNameChoice_Toru
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
gNameChoice_Red,
|
||||||
|
gNameChoice_Ash,
|
||||||
|
gNameChoice_Kene,
|
||||||
|
gNameChoice_Geki
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static void VBlankCB_NewGameOaksSpeech(void)
|
static void VBlankCB_NewGameOaksSpeech(void)
|
||||||
|
|||||||
@@ -1603,6 +1603,7 @@ static const u16 sHMMoves[] =
|
|||||||
MOVE_ROCK_SMASH, MOVE_WATERFALL, MOVE_DIVE, 0xFFFF
|
MOVE_ROCK_SMASH, MOVE_WATERFALL, MOVE_DIVE, 0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u16 sDeoxysBaseStats[] =
|
static const u16 sDeoxysBaseStats[] =
|
||||||
{
|
{
|
||||||
50, // Hp
|
50, // Hp
|
||||||
@@ -1612,6 +1613,17 @@ static const u16 sDeoxysBaseStats[] =
|
|||||||
180, // Sp.Attack
|
180, // Sp.Attack
|
||||||
20, // Sp.Defense
|
20, // Sp.Defense
|
||||||
};
|
};
|
||||||
|
#elif defined LEAFGREEN
|
||||||
|
static const u16 sDeoxysBaseStats[] =
|
||||||
|
{
|
||||||
|
50, // Hp
|
||||||
|
70, // Attack
|
||||||
|
160, // Defense
|
||||||
|
90, // Speed
|
||||||
|
70, // Sp.Attack
|
||||||
|
160, // Sp.Defense
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
const u16 gLinkPlayerFacilityClasses[] =
|
const u16 gLinkPlayerFacilityClasses[] =
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -316,11 +316,19 @@ static const struct MenuAction sScriptMultiChoiceMenu_BikeShop[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct MenuAction sScriptMultiChoiceMenu_GameCornerPokemonPrizes[] = {
|
static const struct MenuAction sScriptMultiChoiceMenu_GameCornerPokemonPrizes[] = {
|
||||||
|
#if defined(FIRERED)
|
||||||
{ gText_Abra_180Coins },
|
{ gText_Abra_180Coins },
|
||||||
{ gText_Clefairy_500Coins },
|
{ gText_Clefairy_500Coins },
|
||||||
{ gText_Dratini_2800Coins },
|
{ gText_Dratini_2800Coins },
|
||||||
{ gText_Scyther_5500Coins },
|
{ gText_Scyther_5500Coins },
|
||||||
{ gText_Porygon_9999Coins },
|
{ gText_Porygon_9999Coins },
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
{ gText_Abra_120Coins },
|
||||||
|
{ gText_Clefairy_750Coins },
|
||||||
|
{ gText_Pinsir_2500Coins },
|
||||||
|
{ gText_Dratini_4600Coins },
|
||||||
|
{ gText_Porygon_6500Coins },
|
||||||
|
#endif
|
||||||
{ gText_NoThanks_2 }
|
{ gText_NoThanks_2 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -213,9 +213,15 @@ static const u16 gUnknown_8464994[] = INCBIN_U16("graphics/slot_machine/unk_8464
|
|||||||
static const u16 gUnknown_84649B4[] = INCBIN_U16("graphics/slot_machine/unk_84649b4.gbapal");
|
static const u16 gUnknown_84649B4[] = INCBIN_U16("graphics/slot_machine/unk_84649b4.gbapal");
|
||||||
static const u16 gUnknown_84649D4[] = INCBIN_U16("graphics/slot_machine/unk_84649d4.gbapal");
|
static const u16 gUnknown_84649D4[] = INCBIN_U16("graphics/slot_machine/unk_84649d4.gbapal");
|
||||||
static const u16 gUnknown_84649F4[] = INCBIN_U16("graphics/slot_machine/unk_84649f4.gbapal");
|
static const u16 gUnknown_84649F4[] = INCBIN_U16("graphics/slot_machine/unk_84649f4.gbapal");
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u32 gUnknown_8464A14[] = INCBIN_U32("graphics/slot_machine/unk_8464a14.4bpp.lz");
|
static const u32 gUnknown_8464A14[] = INCBIN_U32("graphics/slot_machine/unk_8464a14.4bpp.lz");
|
||||||
static const u16 gUnknown_846504C[] = INCBIN_U16("graphics/slot_machine/unk_846504c.gbapal");
|
static const u16 gUnknown_846504C[] = INCBIN_U16("graphics/slot_machine/unk_846506c.gbapal");
|
||||||
static const u32 gUnknown_846506C[] = INCBIN_U32("graphics/slot_machine/unk_846506c.4bpp.lz");
|
static const u32 gUnknown_846506C[] = INCBIN_U32("graphics/slot_machine/unk_846506c.4bpp.lz");
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u32 gUnknown_8464A14[] = INCBIN_U32("graphics/slot_machine/unk_lg_8464434.4bpp.lz");
|
||||||
|
static const u16 gUnknown_846504C[] = INCBIN_U16("graphics/slot_machine/unk_lg_8464a3c.gbapal");
|
||||||
|
static const u32 gUnknown_846506C[] = INCBIN_U32("graphics/slot_machine/unk_lg_8464a3c.4bpp.lz");
|
||||||
|
#endif
|
||||||
static const u16 gUnknown_8465524[] = INCBIN_U16("graphics/slot_machine/unk_8465524.gbapal");
|
static const u16 gUnknown_8465524[] = INCBIN_U16("graphics/slot_machine/unk_8465524.gbapal");
|
||||||
static const u32 gUnknown_8465544[] = INCBIN_U32("graphics/slot_machine/unk_8465544.4bpp.lz");
|
static const u32 gUnknown_8465544[] = INCBIN_U32("graphics/slot_machine/unk_8465544.4bpp.lz");
|
||||||
|
|
||||||
@@ -236,6 +242,7 @@ static const struct SpritePalette gUnknown_84655C8[] = {
|
|||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u16 gUnknown_8465608[] = {
|
static const u16 gUnknown_8465608[] = {
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
@@ -245,6 +252,17 @@ static const u16 gUnknown_8465608[] = {
|
|||||||
4,
|
4,
|
||||||
3
|
3
|
||||||
};
|
};
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u16 gUnknown_8465608[] = {
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
3,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const u16 gUnknown_8465616[] = {
|
static const u16 gUnknown_8465616[] = {
|
||||||
0x0120, 0x011f, 0x011e, 0x011d, 0x011c, 0x011b, 0x011a, 0x0119, 0x0118, 0x0117, 0x0116, 0x0115, 0x0114, 0x0113, 0x0112, 0x0111,
|
0x0120, 0x011f, 0x011e, 0x011d, 0x011c, 0x011b, 0x011a, 0x0119, 0x0118, 0x0117, 0x0116, 0x0115, 0x0114, 0x0113, 0x0112, 0x0111,
|
||||||
@@ -517,6 +535,7 @@ bool8 (*const gUnknown_84658F0[])(u8 *, struct SlotMachineSetupTaskData *) = {
|
|||||||
sub_8141764
|
sub_8141764
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u16 gUnknown_8465930[] = INCBIN_U16("graphics/slot_machine/unk_8465930.gbapal");
|
static const u16 gUnknown_8465930[] = INCBIN_U16("graphics/slot_machine/unk_8465930.gbapal");
|
||||||
static const u16 gUnknown_8465950[] = INCBIN_U16("graphics/slot_machine/unk_8465950.gbapal");
|
static const u16 gUnknown_8465950[] = INCBIN_U16("graphics/slot_machine/unk_8465950.gbapal");
|
||||||
static const u16 gUnknown_8465970[] = INCBIN_U16("graphics/slot_machine/unk_8465970.gbapal");
|
static const u16 gUnknown_8465970[] = INCBIN_U16("graphics/slot_machine/unk_8465970.gbapal");
|
||||||
@@ -526,12 +545,28 @@ static const u32 gUnknown_84659D0[] = INCBIN_U32("graphics/slot_machine/unk_8465
|
|||||||
static const u32 gUnknown_84661D4[] = INCBIN_U32("graphics/slot_machine/unk_84661d4.bin.lz");
|
static const u32 gUnknown_84661D4[] = INCBIN_U32("graphics/slot_machine/unk_84661d4.bin.lz");
|
||||||
static const u16 gUnknown_84664BC[] = INCBIN_U16("graphics/slot_machine/unk_84664bc.gbapal");
|
static const u16 gUnknown_84664BC[] = INCBIN_U16("graphics/slot_machine/unk_84664bc.gbapal");
|
||||||
static const u16 gUnknown_84664DC[] = INCBIN_U16("graphics/slot_machine/unk_84664dc.gbapal","graphics/slot_machine/unk_84664fc.gbapal", "graphics/slot_machine/unk_846651c.gbapal");
|
static const u16 gUnknown_84664DC[] = INCBIN_U16("graphics/slot_machine/unk_84664dc.gbapal","graphics/slot_machine/unk_84664fc.gbapal", "graphics/slot_machine/unk_846651c.gbapal");
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u16 gUnknown_8465930[] = INCBIN_U16("graphics/slot_machine/unk_lg_84652bc.gbapal");
|
||||||
|
static const u16 gUnknown_8465950[] = INCBIN_U16("graphics/slot_machine/unk_lg_84652dc.gbapal");
|
||||||
|
static const u16 gUnknown_8465970[] = INCBIN_U16("graphics/slot_machine/unk_lg_84652fc.gbapal");
|
||||||
|
static const u16 gUnknown_8465990[] = INCBIN_U16("graphics/slot_machine/unk_lg_846531c.gbapal");
|
||||||
|
static const u16 gUnknown_84659B0[] = INCBIN_U16("graphics/slot_machine/unk_lg_846533c.gbapal");
|
||||||
|
static const u32 gUnknown_84659D0[] = INCBIN_U32("graphics/slot_machine/unk_lg_846535c.4bpp.lz");
|
||||||
|
static const u32 gUnknown_84661D4[] = INCBIN_U32("graphics/slot_machine/unk_lg_8465ab8.bin.lz");
|
||||||
|
static const u16 gUnknown_84664BC[] = INCBIN_U16("graphics/slot_machine/unk_lg_8465d9c.gbapal");
|
||||||
|
static const u16 gUnknown_84664DC[] = INCBIN_U16("graphics/slot_machine/unk_lg_8465dbc.gbapal","graphics/slot_machine/unk_lg_8465ddc.gbapal", "graphics/slot_machine/unk_lg_8465dfc.gbapal");
|
||||||
|
#endif
|
||||||
static const u32 gUnknown_846653C[] = INCBIN_U32("graphics/slot_machine/unk_846653c.4bpp.lz");
|
static const u32 gUnknown_846653C[] = INCBIN_U32("graphics/slot_machine/unk_846653c.4bpp.lz");
|
||||||
static const u16 gUnknown_84665C0[] = INCBIN_U16("graphics/slot_machine/unk_84665c0.gbapal");
|
static const u16 gUnknown_84665C0[] = INCBIN_U16("graphics/slot_machine/unk_84665c0.gbapal");
|
||||||
static const u16 gUnknown_84665E0[] = INCBIN_U16("graphics/slot_machine/unk_84665e0.gbapal");
|
static const u16 gUnknown_84665E0[] = INCBIN_U16("graphics/slot_machine/unk_84665e0.gbapal");
|
||||||
static const u16 gUnknown_8466600[] = INCBIN_U16("graphics/slot_machine/unk_8466600.gbapal");
|
static const u16 gUnknown_8466600[] = INCBIN_U16("graphics/slot_machine/unk_8466600.gbapal");
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u32 gUnknown_8466620[] = INCBIN_U32("graphics/slot_machine/unk_8466620.4bpp.lz");
|
static const u32 gUnknown_8466620[] = INCBIN_U32("graphics/slot_machine/unk_8466620.4bpp.lz");
|
||||||
static const u32 gUnknown_8466998[] = INCBIN_U32("graphics/slot_machine/unk_8466998.bin.lz");
|
static const u32 gUnknown_8466998[] = INCBIN_U32("graphics/slot_machine/unk_8466998.bin.lz");
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u32 gUnknown_8466620[] = INCBIN_U32("graphics/slot_machine/unk_lg_8465f00.4bpp.lz");
|
||||||
|
static const u32 gUnknown_8466998[] = INCBIN_U32("graphics/slot_machine/unk_lg_8466278.bin.lz");
|
||||||
|
#endif
|
||||||
|
|
||||||
static const struct BgTemplate gUnknown_8466B10[] = {
|
static const struct BgTemplate gUnknown_8466B10[] = {
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -405,37 +405,65 @@ static u8 *ExpandPlaceholder_RivalName(void)
|
|||||||
|
|
||||||
static u8 *ExpandPlaceholder_Version(void)
|
static u8 *ExpandPlaceholder_Version(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Ruby;
|
return gExpandedPlaceholder_Ruby;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Sapphire;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Magma(void)
|
static u8 *ExpandPlaceholder_Magma(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Magma;
|
return gExpandedPlaceholder_Magma;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Aqua;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Aqua(void)
|
static u8 *ExpandPlaceholder_Aqua(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Aqua;
|
return gExpandedPlaceholder_Aqua;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Magma;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Maxie(void)
|
static u8 *ExpandPlaceholder_Maxie(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Maxie;
|
return gExpandedPlaceholder_Maxie;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Archie;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Archie(void)
|
static u8 *ExpandPlaceholder_Archie(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Archie;
|
return gExpandedPlaceholder_Archie;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Maxie;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Groudon(void)
|
static u8 *ExpandPlaceholder_Groudon(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Groudon;
|
return gExpandedPlaceholder_Groudon;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Kyogre;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *ExpandPlaceholder_Kyogre(void)
|
static u8 *ExpandPlaceholder_Kyogre(void)
|
||||||
{
|
{
|
||||||
|
#if defined(FIRERED)
|
||||||
return gExpandedPlaceholder_Kyogre;
|
return gExpandedPlaceholder_Kyogre;
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
return gExpandedPlaceholder_Groudon;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *GetExpandedPlaceholder(u32 id)
|
u8 *GetExpandedPlaceholder(u32 id)
|
||||||
|
|||||||
@@ -75,13 +75,23 @@ static void SpriteCallback_Slash(struct Sprite * sprite);
|
|||||||
|
|
||||||
// bg3
|
// bg3
|
||||||
static const u8 sBorderBgTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz");
|
static const u8 sBorderBgTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz");
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u8 sBorderBgMap[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz");
|
static const u8 sBorderBgMap[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz");
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u8 sBorderBgMap[] = INCBIN_U8("data/graphics/title_screen/lg_border_bg.bin.lz");
|
||||||
|
#endif
|
||||||
|
|
||||||
//sprites
|
//sprites
|
||||||
static const u8 sSlashSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz");
|
static const u32 sSlashSpriteTiles[] = INCBIN_U32("data/graphics/title_screen/unk_83bf64c.4bpp.lz");
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u16 sSlashSpritePals[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal");
|
static const u16 sSlashSpritePals[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal");
|
||||||
static const u8 sFireSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz");
|
static const u32 sFireSpriteTiles[] = INCBIN_U32("data/graphics/title_screen/unk_83bf79c.4bpp.lz");
|
||||||
static const u8 sBlankFireSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz");
|
static const u32 sBlankFireSpriteTiles[] = INCBIN_U32("data/graphics/title_screen/unk_83bfa14.4bpp.lz");
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const u16 sSlashSpritePals[] = INCBIN_U16("data/graphics/title_screen/unk_lg_83bf764.gbapal");
|
||||||
|
static const u32 sLeafSpriteTiles[] = INCBIN_U32("data/graphics/title_screen/unk_lg_83bf784.4bpp.lz");
|
||||||
|
static const u32 sBlankLeafSpriteTiles[] = INCBIN_U32("data/graphics/title_screen/unk_lg_83bf89c.4bpp.lz");
|
||||||
|
#endif
|
||||||
|
|
||||||
static const struct OamData sOamData_FlameOrLeaf = {
|
static const struct OamData sOamData_FlameOrLeaf = {
|
||||||
.objMode = ST_OAM_OBJ_NORMAL,
|
.objMode = ST_OAM_OBJ_NORMAL,
|
||||||
@@ -92,6 +102,7 @@ static const struct OamData sOamData_FlameOrLeaf = {
|
|||||||
.paletteNum = 0
|
.paletteNum = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const union AnimCmd sSpriteAnims_FlameOrLeaf_0[] = {
|
static const union AnimCmd sSpriteAnims_FlameOrLeaf_0[] = {
|
||||||
ANIMCMD_FRAME(0x00, 3),
|
ANIMCMD_FRAME(0x00, 3),
|
||||||
ANIMCMD_FRAME(0x04, 6),
|
ANIMCMD_FRAME(0x04, 6),
|
||||||
@@ -119,6 +130,27 @@ static const union AnimCmd *const sSpriteAnimTable_FlameOrLeaf[] = {
|
|||||||
sSpriteAnims_FlameOrLeaf_1
|
sSpriteAnims_FlameOrLeaf_1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const union AnimCmd sSpriteAnims_FlameOrLeaf_0[] = {
|
||||||
|
ANIMCMD_FRAME(0x00, 8),
|
||||||
|
ANIMCMD_FRAME(0x04, 8),
|
||||||
|
ANIMCMD_FRAME(0x08, 8),
|
||||||
|
ANIMCMD_FRAME(0x0c, 8),
|
||||||
|
ANIMCMD_FRAME(0x10, 8),
|
||||||
|
ANIMCMD_FRAME(0x14, 8),
|
||||||
|
ANIMCMD_FRAME(0x18, 8),
|
||||||
|
ANIMCMD_FRAME(0x1c, 8),
|
||||||
|
ANIMCMD_FRAME(0x20, 8),
|
||||||
|
ANIMCMD_FRAME(0x24, 8),
|
||||||
|
ANIMCMD_FRAME(0x28, 8),
|
||||||
|
ANIMCMD_JUMP(0)
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd *const sSpriteAnimTable_FlameOrLeaf[] = {
|
||||||
|
sSpriteAnims_FlameOrLeaf_0
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = {
|
static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = {
|
||||||
.tileTag = 0,
|
.tileTag = 0,
|
||||||
.paletteTag = 0,
|
.paletteTag = 0,
|
||||||
@@ -129,6 +161,7 @@ static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = {
|
|||||||
.callback = SpriteCallbackDummy
|
.callback = SpriteCallbackDummy
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = {
|
static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = {
|
||||||
.tileTag = 1,
|
.tileTag = 1,
|
||||||
.paletteTag = 0,
|
.paletteTag = 0,
|
||||||
@@ -138,8 +171,25 @@ static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = {
|
|||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
.callback = SpriteCallbackDummy
|
.callback = SpriteCallbackDummy
|
||||||
};
|
};
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const struct OamData sOamData_LG_83BF950 = {
|
||||||
|
.shape = SPRITE_SHAPE(32x16),
|
||||||
|
.size = SPRITE_SIZE(32x16),
|
||||||
|
.priority = 3
|
||||||
|
};
|
||||||
|
|
||||||
static const struct OamData sOamData_UnknownTemptySprite = {
|
static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = {
|
||||||
|
.tileTag = 1,
|
||||||
|
.paletteTag = 0,
|
||||||
|
.oam = &sOamData_LG_83BF950,
|
||||||
|
.anims = gDummySpriteAnimTable,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
|
.callback = SpriteCallbackDummy
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static const struct OamData sOamData_UnknownEmptySprite = {
|
||||||
.objMode = ST_OAM_OBJ_NORMAL,
|
.objMode = ST_OAM_OBJ_NORMAL,
|
||||||
.shape = ST_OAM_V_RECTANGLE,
|
.shape = ST_OAM_V_RECTANGLE,
|
||||||
.size = ST_OAM_SIZE_3,
|
.size = ST_OAM_SIZE_3,
|
||||||
@@ -151,7 +201,7 @@ static const struct OamData sOamData_UnknownTemptySprite = {
|
|||||||
static const struct SpriteTemplate sUnknownEmptySprite = {
|
static const struct SpriteTemplate sUnknownEmptySprite = {
|
||||||
.tileTag = 2,
|
.tileTag = 2,
|
||||||
.paletteTag = 2,
|
.paletteTag = 2,
|
||||||
.oam = &sOamData_UnknownTemptySprite,
|
.oam = &sOamData_UnknownEmptySprite,
|
||||||
.anims = gDummySpriteAnimTable,
|
.anims = gDummySpriteAnimTable,
|
||||||
.images = NULL,
|
.images = NULL,
|
||||||
.affineAnims = gDummySpriteAffineAnimTable,
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
@@ -222,26 +272,36 @@ static void (*const sSceneFuncs[])(s16 * data) = {
|
|||||||
SetTitleScreenScene_Cry
|
SetTitleScreenScene_Cry
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const struct CompressedSpriteSheet sSpriteSheets[] = {
|
static const struct CompressedSpriteSheet sSpriteSheets[] = {
|
||||||
{(const void *)sFireSpriteTiles, 0x500, 0},
|
{sFireSpriteTiles, 0x500, 0},
|
||||||
{(const void *)sBlankFireSpriteTiles, 0x500, 1},
|
{sBlankFireSpriteTiles, 0x500, 1},
|
||||||
{(const void *)gGraphics_TitleScreen_BlankObjTiles, 0x400, 2},
|
{gGraphics_TitleScreen_BlankObjTiles, 0x400, 2},
|
||||||
{(const void *)sSlashSpriteTiles, 0x800, 3}
|
{sSlashSpriteTiles, 0x800, 3}
|
||||||
};
|
};
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
static const struct CompressedSpriteSheet sSpriteSheets[] = {
|
||||||
|
{sLeafSpriteTiles, 0x580, 0},
|
||||||
|
{sBlankLeafSpriteTiles, 0x100, 1},
|
||||||
|
{gGraphics_TitleScreen_BlankObjTiles, 0x400, 2},
|
||||||
|
{sSlashSpriteTiles, 0x800, 3}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const struct SpritePalette sSpritePals[] = {
|
static const struct SpritePalette sSpritePals[] = {
|
||||||
{sSlashSpritePals, 0},
|
{sSlashSpritePals, 0},
|
||||||
{gGraphics_TitleScreen_FirePals, 2},
|
{gGraphics_TitleScreen_FireOrLeafPals, 2},
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(FIRERED)
|
||||||
static const u8 gUnknown_83BFBD4[] = {
|
static const u8 gUnknown_83BFBD4[] = {
|
||||||
0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90
|
0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(LEAFGREEN)
|
#elif defined(LEAFGREEN)
|
||||||
static const u16 gUnknown_LG_83BFA10[] = {
|
static const u16 gUnknown_LG_83BFA10[] = {
|
||||||
50, 80, 110, 60, 90, 70, 100, 50
|
40, 80, 110, 60, 90, 70, 100, 50
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -270,12 +330,12 @@ void CB2_InitTitleScreen(void)
|
|||||||
sTitleScreenTimerTaskId = 0xFF;
|
sTitleScreenTimerTaskId = 0xFF;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
LoadPalette(gGraphics_TitleScreen_PokemonFireRedLogoPals, 0, 0x1A0);
|
LoadPalette(gGraphics_TitleScreen_GameTitleLogoPals, 0, 0x1A0);
|
||||||
DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_PokemonFireRedLogoTiles, 0, 0, 0);
|
DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_GameTitleLogoTiles, 0, 0, 0);
|
||||||
DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_PokemonFireRedLogoMap, 0, 0, 1);
|
DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_GameTitleLogoMap, 0, 0, 1);
|
||||||
LoadPalette(gGraphics_TitleScreen_CharizardPals, 0xD0, 0x20);
|
LoadPalette(gGraphics_TitleScreen_BoxArtMonPals, 0xD0, 0x20);
|
||||||
DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_CharizardTiles, 0, 0, 0);
|
DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_BoxArtMonTiles, 0, 0, 0);
|
||||||
DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_CharizardMap, 0, 0, 1);
|
DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_BoxArtMonMap, 0, 0, 1);
|
||||||
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20);
|
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20);
|
||||||
DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartTiles, 0, 0, 0);
|
DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartTiles, 0, 0, 0);
|
||||||
DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartMap, 0, 0, 1);
|
DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartMap, 0, 0, 1);
|
||||||
@@ -493,7 +553,7 @@ static void SetTitleScreenScene_FadeIn(s16 * data)
|
|||||||
BlendPalettes(r4, 0x10, RGB(30, 30, 31));
|
BlendPalettes(r4, 0x10, RGB(30, 30, 31));
|
||||||
BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31));
|
BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31));
|
||||||
ShowBg(0);
|
ShowBg(0);
|
||||||
CpuCopy16(gGraphics_TitleScreen_CharizardPals, gPlttBufferUnfaded + 0xD0, 0x20);
|
CpuCopy16(gGraphics_TitleScreen_BoxArtMonPals, gPlttBufferUnfaded + 0xD0, 0x20);
|
||||||
sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0);
|
sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0);
|
||||||
data[1]++;
|
data[1]++;
|
||||||
}
|
}
|
||||||
@@ -803,8 +863,8 @@ static void LoadMainTitleScreenPalsAndResetBgs(void)
|
|||||||
|
|
||||||
sub_8071898();
|
sub_8071898();
|
||||||
ResetPaletteFadeControl();
|
ResetPaletteFadeControl();
|
||||||
LoadPalette(gGraphics_TitleScreen_PokemonFireRedLogoPals, 0x00, 0x1A0);
|
LoadPalette(gGraphics_TitleScreen_GameTitleLogoPals, 0x00, 0x1A0);
|
||||||
LoadPalette(gGraphics_TitleScreen_CharizardPals, 0xD0, 0x20);
|
LoadPalette(gGraphics_TitleScreen_BoxArtMonPals, 0xD0, 0x20);
|
||||||
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20);
|
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20);
|
||||||
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xE0, 0x20);
|
LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xE0, 0x20);
|
||||||
ResetBgPositions();
|
ResetBgPositions();
|
||||||
@@ -909,35 +969,6 @@ static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool
|
|||||||
}
|
}
|
||||||
return FALSE;
|
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)
|
static void Task_FlameOrLeafSpawner(u8 taskId)
|
||||||
{
|
{
|
||||||
@@ -988,6 +1019,88 @@ static void Task_FlameOrLeafSpawner(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif defined(LEAFGREEN)
|
||||||
|
|
||||||
|
static void CreateFlameOrLeafSprite(s32 y0, s32 x1, s32 y1)
|
||||||
|
{
|
||||||
|
u8 spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State1, 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static 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]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_LG_8079844(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
u8 spriteId;
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, 0x100 + 0x28 * i, gUnknown_LG_83BFA10[i], 0xFF);
|
||||||
|
if (spriteId != MAX_SPRITES)
|
||||||
|
{
|
||||||
|
gSprites[spriteId].data[7] = i;
|
||||||
|
gSprites[spriteId].callback = SpriteCallback_LG_8079800;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Task_FlameOrLeafSpawner(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 * data = gTasks[taskId].data;
|
||||||
|
s32 rval;
|
||||||
|
s32 r6;
|
||||||
|
s32 r4;
|
||||||
|
s32 r0;
|
||||||
|
|
||||||
|
switch (data[0])
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sub_LG_8079844();
|
||||||
|
TitleScreen_srand(taskId, 3, 30840);
|
||||||
|
data[0]++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
data[1]++;
|
||||||
|
if (data[1] >= data[2])
|
||||||
|
{
|
||||||
|
data[1] = 0;
|
||||||
|
data[2] = (TitleScreen_rand(taskId, 3) % 6) + 6;
|
||||||
|
rval = TitleScreen_rand(taskId, 3) % 30;
|
||||||
|
r6 = 16;
|
||||||
|
if (rval >= 6)
|
||||||
|
{
|
||||||
|
r6 = 48;
|
||||||
|
if (rval < 12)
|
||||||
|
r6 = 24;
|
||||||
|
}
|
||||||
|
r4 = (TitleScreen_rand(taskId, 3) % 4) - 2;
|
||||||
|
r0 = (TitleScreen_rand(taskId, 3) % 88) + 32;
|
||||||
|
CreateFlameOrLeafSprite(r0, r6, r4);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //FRLG
|
||||||
|
|
||||||
static void TitleScreen_srand(u8 taskId, u8 field, u16 seed)
|
static void TitleScreen_srand(u8 taskId, u8 field, u16 seed)
|
||||||
{
|
{
|
||||||
SetWordTaskArg(taskId, field, seed);
|
SetWordTaskArg(taskId, field, seed);
|
||||||
@@ -1016,7 +1129,7 @@ static void SetPalOnOrCreateBlankSprite(bool32 mode)
|
|||||||
if (mode)
|
if (mode)
|
||||||
{
|
{
|
||||||
palIdx = IndexOfSpritePaletteTag(2);
|
palIdx = IndexOfSpritePaletteTag(2);
|
||||||
LoadPalette(gGraphics_TitleScreen_FirePals, palIdx * 16 + 0x100, 0x20);
|
LoadPalette(gGraphics_TitleScreen_FireOrLeafPals, palIdx * 16 + 0x100, 0x20);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
CreateBlankSprite();
|
CreateBlankSprite();
|
||||||
|
|||||||
@@ -528,7 +528,7 @@ static void Task_TrainerCard(u8 taskId)
|
|||||||
PutTrainerCardWindow(1);
|
PutTrainerCardWindow(1);
|
||||||
sTrainerCardDataPtr->var_7BCE = FALSE;
|
sTrainerCardDataPtr->var_7BCE = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JOY_NEW(A_BUTTON))
|
if (JOY_NEW(A_BUTTON))
|
||||||
{
|
{
|
||||||
HelpSystem_SetSomeVariable2(11);
|
HelpSystem_SetSomeVariable2(11);
|
||||||
@@ -748,13 +748,13 @@ static u8 GetTrainerStarCount(struct TrainerCard *trainerCard)
|
|||||||
|
|
||||||
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->caughtAllHoenn)
|
if (trainerCard->caughtAllHoenn)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->battleTowerStraightWins > 49)
|
if (trainerCard->battleTowerStraightWins > 49)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->hasAllPaintings)
|
if (trainerCard->hasAllPaintings)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
@@ -765,7 +765,7 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
|||||||
{
|
{
|
||||||
u32 playTime;
|
u32 playTime;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
trainerCard->gender = gSaveBlock2Ptr->playerGender;
|
trainerCard->gender = gSaveBlock2Ptr->playerGender;
|
||||||
trainerCard->playTimeHours = gSaveBlock2Ptr->playTimeHours;
|
trainerCard->playTimeHours = gSaveBlock2Ptr->playTimeHours;
|
||||||
trainerCard->playTimeMinutes = gSaveBlock2Ptr->playTimeMinutes;
|
trainerCard->playTimeMinutes = gSaveBlock2Ptr->playTimeMinutes;
|
||||||
@@ -793,12 +793,12 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
|||||||
trainerCard->linkBattleWins = GetCappedGameStat(GAME_STAT_LINK_BATTLE_WINS, 9999);
|
trainerCard->linkBattleWins = GetCappedGameStat(GAME_STAT_LINK_BATTLE_WINS, 9999);
|
||||||
trainerCard->linkBattleLosses = GetCappedGameStat(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
|
trainerCard->linkBattleLosses = GetCappedGameStat(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
|
||||||
trainerCard->pokemonTrades = GetCappedGameStat(GAME_STAT_POKEMON_TRADES, 0xFFFF);
|
trainerCard->pokemonTrades = GetCappedGameStat(GAME_STAT_POKEMON_TRADES, 0xFFFF);
|
||||||
|
|
||||||
trainerCard->battleTowerWins = 0;
|
trainerCard->battleTowerWins = 0;
|
||||||
trainerCard->battleTowerStraightWins = 0;
|
trainerCard->battleTowerStraightWins = 0;
|
||||||
trainerCard->contestsWithFriends = 0;
|
trainerCard->contestsWithFriends = 0;
|
||||||
trainerCard->pokeblocksWithFriends = 0;
|
trainerCard->pokeblocksWithFriends = 0;
|
||||||
|
|
||||||
trainerCard->hasAllPaintings = FALSE;
|
trainerCard->hasAllPaintings = FALSE;
|
||||||
|
|
||||||
trainerCard->money = GetMoney(&gSaveBlock1Ptr->money);
|
trainerCard->money = GetMoney(&gSaveBlock1Ptr->money);
|
||||||
@@ -817,10 +817,10 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
|||||||
trainerCard->stars = 0;
|
trainerCard->stars = 0;
|
||||||
if (trainerCard->hofDebutHours != 0 || (trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0))
|
if (trainerCard->hofDebutHours != 0 || (trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0))
|
||||||
trainerCard->stars = cardType;
|
trainerCard->stars = cardType;
|
||||||
|
|
||||||
if (HasAllKantoMons())
|
if (HasAllKantoMons())
|
||||||
trainerCard->stars++;
|
trainerCard->stars++;
|
||||||
|
|
||||||
if (HasAllMons())
|
if (HasAllMons())
|
||||||
trainerCard->stars++;
|
trainerCard->stars++;
|
||||||
}
|
}
|
||||||
@@ -829,46 +829,46 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
|||||||
void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
||||||
{
|
{
|
||||||
u8 id = 0;
|
u8 id = 0;
|
||||||
|
|
||||||
trainerCard->version = VERSION_FIRE_RED;
|
trainerCard->version = GAME_VERSION;
|
||||||
SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD);
|
SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD);
|
||||||
if (GetCardType() != CARD_TYPE_FRLG)
|
if (GetCardType() != CARD_TYPE_FRLG)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
trainerCard->stars = id;
|
trainerCard->stars = id;
|
||||||
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
||||||
trainerCard->stars = 1;
|
trainerCard->stars = 1;
|
||||||
|
|
||||||
trainerCard->caughtAllHoenn = HasAllKantoMons();
|
trainerCard->caughtAllHoenn = HasAllKantoMons();
|
||||||
trainerCard->hasAllMons = HasAllMons();
|
trainerCard->hasAllMons = HasAllMons();
|
||||||
trainerCard->berriesPicked = gSaveBlock2Ptr->berryPick.berriesPicked;
|
trainerCard->berriesPicked = gSaveBlock2Ptr->berryPick.berriesPicked;
|
||||||
trainerCard->jumpsInRow = gSaveBlock2Ptr->pokeJump.jumpsInRow;
|
trainerCard->jumpsInRow = gSaveBlock2Ptr->pokeJump.jumpsInRow;
|
||||||
|
|
||||||
trainerCard->berryCrushPoints = GetCappedGameStat(GAME_STAT_BERRY_CRUSH_POINTS, 0xFFFF);
|
trainerCard->berryCrushPoints = GetCappedGameStat(GAME_STAT_BERRY_CRUSH_POINTS, 0xFFFF);
|
||||||
trainerCard->unionRoomNum = GetCappedGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES, 0xFFFF);
|
trainerCard->unionRoomNum = GetCappedGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES, 0xFFFF);
|
||||||
trainerCard->var_4C = TRUE;
|
trainerCard->var_4C = TRUE;
|
||||||
|
|
||||||
if (trainerCard->caughtAllHoenn)
|
if (trainerCard->caughtAllHoenn)
|
||||||
trainerCard->stars++;
|
trainerCard->stars++;
|
||||||
|
|
||||||
if (trainerCard->hasAllMons)
|
if (trainerCard->hasAllMons)
|
||||||
trainerCard->stars++;
|
trainerCard->stars++;
|
||||||
|
|
||||||
if (trainerCard->berriesPicked >= 200 && trainerCard->jumpsInRow >= 200)
|
if (trainerCard->berriesPicked >= 200 && trainerCard->jumpsInRow >= 200)
|
||||||
trainerCard->stars++;
|
trainerCard->stars++;
|
||||||
|
|
||||||
id = ((u16)trainerCard->trainerId) % 8;
|
id = ((u16)trainerCard->trainerId) % 8;
|
||||||
if (trainerCard->gender == FEMALE)
|
if (trainerCard->gender == FEMALE)
|
||||||
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[1][id];
|
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[1][id];
|
||||||
else
|
else
|
||||||
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[0][id];
|
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[0][id];
|
||||||
|
|
||||||
trainerCard->var_50[0] = VarGet(VAR_HOF_BRAG_STATE);
|
trainerCard->var_50[0] = VarGet(VAR_HOF_BRAG_STATE);
|
||||||
trainerCard->var_50[1] = VarGet(VAR_EGG_BRAG_STATE);
|
trainerCard->var_50[1] = VarGet(VAR_EGG_BRAG_STATE);
|
||||||
trainerCard->var_50[2] = VarGet(VAR_LINK_WIN_BRAG_STATE);
|
trainerCard->var_50[2] = VarGet(VAR_LINK_WIN_BRAG_STATE);
|
||||||
|
|
||||||
trainerCard->var_4E = VarGet(VAR_TRAINER_CARD_MON_ICON_TINT_IDX);
|
trainerCard->var_4E = VarGet(VAR_TRAINER_CARD_MON_ICON_TINT_IDX);
|
||||||
|
|
||||||
trainerCard->monSpecies[0] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_1));
|
trainerCard->monSpecies[0] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_1));
|
||||||
trainerCard->monSpecies[1] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_2));
|
trainerCard->monSpecies[1] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_2));
|
||||||
trainerCard->monSpecies[2] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_3));
|
trainerCard->monSpecies[2] = MailSpeciesToIconSpecies(VarGet(VAR_TRAINER_CARD_MON_ICON_3));
|
||||||
@@ -881,7 +881,7 @@ static void SetDataFromTrainerCard(void)
|
|||||||
{
|
{
|
||||||
u32 badgeFlag;
|
u32 badgeFlag;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
sTrainerCardDataPtr->hasPokedex = FALSE;
|
sTrainerCardDataPtr->hasPokedex = FALSE;
|
||||||
sTrainerCardDataPtr->hasHofResult = FALSE;
|
sTrainerCardDataPtr->hasHofResult = FALSE;
|
||||||
sTrainerCardDataPtr->hasLinkResults = FALSE;
|
sTrainerCardDataPtr->hasLinkResults = FALSE;
|
||||||
@@ -889,19 +889,19 @@ static void SetDataFromTrainerCard(void)
|
|||||||
sTrainerCardDataPtr->var_E = FALSE;
|
sTrainerCardDataPtr->var_E = FALSE;
|
||||||
sTrainerCardDataPtr->var_F = FALSE;
|
sTrainerCardDataPtr->var_F = FALSE;
|
||||||
sTrainerCardDataPtr->hasTrades = FALSE;
|
sTrainerCardDataPtr->hasTrades = FALSE;
|
||||||
|
|
||||||
memset(&sTrainerCardDataPtr->hasBadge, FALSE, BADGE_COUNT);
|
memset(&sTrainerCardDataPtr->hasBadge, FALSE, BADGE_COUNT);
|
||||||
if (sTrainerCardDataPtr->trainerCard.hasPokedex)
|
if (sTrainerCardDataPtr->trainerCard.hasPokedex)
|
||||||
sTrainerCardDataPtr->hasPokedex++;
|
sTrainerCardDataPtr->hasPokedex++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.hofDebutHours != 0
|
if (sTrainerCardDataPtr->trainerCard.hofDebutHours != 0
|
||||||
|| sTrainerCardDataPtr->trainerCard.hofDebutMinutes != 0
|
|| sTrainerCardDataPtr->trainerCard.hofDebutMinutes != 0
|
||||||
|| sTrainerCardDataPtr->trainerCard.hofDebutSeconds != 0)
|
|| sTrainerCardDataPtr->trainerCard.hofDebutSeconds != 0)
|
||||||
sTrainerCardDataPtr->hasHofResult++;
|
sTrainerCardDataPtr->hasHofResult++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.linkBattleWins != 0 || sTrainerCardDataPtr->trainerCard.linkBattleLosses != 0)
|
if (sTrainerCardDataPtr->trainerCard.linkBattleWins != 0 || sTrainerCardDataPtr->trainerCard.linkBattleLosses != 0)
|
||||||
sTrainerCardDataPtr->hasLinkResults++;
|
sTrainerCardDataPtr->hasLinkResults++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.pokemonTrades != 0)
|
if (sTrainerCardDataPtr->trainerCard.pokemonTrades != 0)
|
||||||
sTrainerCardDataPtr->hasTrades++;
|
sTrainerCardDataPtr->hasTrades++;
|
||||||
|
|
||||||
@@ -937,7 +937,7 @@ static void sub_8089BD8(u16 arg0)
|
|||||||
|
|
||||||
if (quotient <= 4)
|
if (quotient <= 4)
|
||||||
quotient = 0;
|
quotient = 0;
|
||||||
|
|
||||||
sTrainerCardDataPtr->var_456 = quotient;
|
sTrainerCardDataPtr->var_456 = quotient;
|
||||||
SetGpuReg(REG_OFFSET_BLDY, sTrainerCardDataPtr->var_456);
|
SetGpuReg(REG_OFFSET_BLDY, sTrainerCardDataPtr->var_456);
|
||||||
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(sTrainerCardDataPtr->var_7BCC, 160 - sTrainerCardDataPtr->var_7BCC));
|
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(sTrainerCardDataPtr->var_7BCC, 160 - sTrainerCardDataPtr->var_7BCC));
|
||||||
@@ -1042,7 +1042,7 @@ static bool8 PrintAllOnCardPage1(void)
|
|||||||
sTrainerCardDataPtr->printState++;
|
sTrainerCardDataPtr->printState++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool8 PrintStringsOnCardPage2(void)
|
static bool8 PrintStringsOnCardPage2(void)
|
||||||
{
|
{
|
||||||
switch (sTrainerCardDataPtr->printState)
|
switch (sTrainerCardDataPtr->printState)
|
||||||
@@ -1093,7 +1093,7 @@ static void PrintNameOnCard(void)
|
|||||||
{
|
{
|
||||||
u8 buffer[2][32];
|
u8 buffer[2][32];
|
||||||
u8* txtPtr;
|
u8* txtPtr;
|
||||||
|
|
||||||
txtPtr = StringCopy(buffer[0], gText_TrainerCardName);
|
txtPtr = StringCopy(buffer[0], gText_TrainerCardName);
|
||||||
txtPtr = buffer[1];
|
txtPtr = buffer[1];
|
||||||
StringCopy(txtPtr, sTrainerCardDataPtr->trainerCard.playerName);
|
StringCopy(txtPtr, sTrainerCardDataPtr->trainerCard.playerName);
|
||||||
@@ -1101,12 +1101,12 @@ static void PrintNameOnCard(void)
|
|||||||
StringAppend(buffer[0], txtPtr);
|
StringAppend(buffer[0], txtPtr);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardPlayerNameXPositions[sTrainerCardDataPtr->cardType], sTrainerCardPlayerNameYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer[0]);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardPlayerNameXPositions[sTrainerCardDataPtr->cardType], sTrainerCardPlayerNameYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintIdOnCard(void)
|
static void PrintIdOnCard(void)
|
||||||
{
|
{
|
||||||
u8 buffer[32];
|
u8 buffer[32];
|
||||||
u8* txtPtr;
|
u8* txtPtr;
|
||||||
|
|
||||||
txtPtr = StringCopy(buffer, gText_TrainerCardIDNo);
|
txtPtr = StringCopy(buffer, gText_TrainerCardIDNo);
|
||||||
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
|
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardIdXPositions[sTrainerCardDataPtr->cardType], sTrainerCardIdYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardIdXPositions[sTrainerCardDataPtr->cardType], sTrainerCardIdYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
||||||
@@ -1146,7 +1146,7 @@ static void PrintPokedexOnCard(void)
|
|||||||
{
|
{
|
||||||
u8 buffer[10];
|
u8 buffer[10];
|
||||||
u8 x;
|
u8 x;
|
||||||
|
|
||||||
if (FlagGet(FLAG_SYS_POKEDEX_GET))
|
if (FlagGet(FLAG_SYS_POKEDEX_GET))
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.caughtMonsCount, 0, 3);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.caughtMonsCount, 0, 3);
|
||||||
@@ -1183,22 +1183,22 @@ static void PrintTimeOnCard(void)
|
|||||||
|
|
||||||
if (hours > 999)
|
if (hours > 999)
|
||||||
hours = 999;
|
hours = 999;
|
||||||
|
|
||||||
if (minutes > 59)
|
if (minutes > 59)
|
||||||
minutes = 59;
|
minutes = 59;
|
||||||
|
|
||||||
FillWindowPixelRect(1, PIXEL_FILL(0), sTrainerCardTimeHoursXPositions[sTrainerCardDataPtr->cardType], sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], 50, 12);
|
FillWindowPixelRect(1, PIXEL_FILL(0), sTrainerCardTimeHoursXPositions[sTrainerCardDataPtr->cardType], sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], 50, 12);
|
||||||
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], 20, 88, sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], 20, 88, sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
|
||||||
else
|
else
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], 16, 89, sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], 16, 89, sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(buffer, hours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
ConvertIntToDecimalStringN(buffer, hours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeHoursXPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeHoursXPositions[sTrainerCardDataPtr->cardType],
|
||||||
sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeHoursYPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeHoursYPositions[sTrainerCardDataPtr->cardType],
|
||||||
sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sTrainerCardTextColors[sTrainerCardDataPtr->var_7], TEXT_SPEED_FF, gText_Colon2);
|
sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sTrainerCardTextColors[sTrainerCardDataPtr->var_7], TEXT_SPEED_FF, gText_Colon2);
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(buffer, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(buffer, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeMinutesXPositions[sTrainerCardDataPtr->cardType], sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardTimeMinutesXPositions[sTrainerCardDataPtr->cardType], sTrainerCardTimeMinutesYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
||||||
}
|
}
|
||||||
@@ -1209,13 +1209,13 @@ static void PrintProfilePhraseOnCard(void)
|
|||||||
{
|
{
|
||||||
AddTextPrinterParameterized3(1, 2, 10, sTrainerCardProfilePhraseXPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, 2, 10, sTrainerCardProfilePhraseXPositions[sTrainerCardDataPtr->cardType],
|
||||||
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[0]);
|
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[0]);
|
||||||
|
|
||||||
AddTextPrinterParameterized3(1, 2, GetStringWidth(2, sTrainerCardDataPtr->var_19[0], 0) + 16, sTrainerCardProfilePhraseXPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, 2, GetStringWidth(2, sTrainerCardDataPtr->var_19[0], 0) + 16, sTrainerCardProfilePhraseXPositions[sTrainerCardDataPtr->cardType],
|
||||||
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[1]);
|
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[1]);
|
||||||
|
|
||||||
AddTextPrinterParameterized3(1, 2, 10, sTrainerCardProfilePhraseYPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, 2, 10, sTrainerCardProfilePhraseYPositions[sTrainerCardDataPtr->cardType],
|
||||||
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[2]);
|
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[2]);
|
||||||
|
|
||||||
AddTextPrinterParameterized3(1, 2, GetStringWidth(2, sTrainerCardDataPtr->var_19[2], 0) + 16, sTrainerCardProfilePhraseYPositions[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, 2, GetStringWidth(2, sTrainerCardDataPtr->var_19[2], 0) + 16, sTrainerCardProfilePhraseYPositions[sTrainerCardDataPtr->cardType],
|
||||||
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[3]);
|
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->var_19[3]);
|
||||||
}
|
}
|
||||||
@@ -1234,7 +1234,7 @@ static void PrintNameOnCard2(void)
|
|||||||
static void sub_808A4FC(void)
|
static void sub_808A4FC(void)
|
||||||
{
|
{
|
||||||
u8 x;
|
u8 x;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_FRLG)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_FRLG)
|
||||||
{
|
{
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sUnknown_83CD93C[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sUnknown_83CD93C[sTrainerCardDataPtr->cardType],
|
||||||
@@ -1243,7 +1243,7 @@ static void sub_808A4FC(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
x = sUnknown_83CD93C[sTrainerCardDataPtr->cardType] - GetStringWidth(sTrainerCardFontIds[1], sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], GetFontAttribute(sTrainerCardFontIds[1], FONTATTR_LETTER_SPACING));
|
x = sUnknown_83CD93C[sTrainerCardDataPtr->cardType] - GetStringWidth(sTrainerCardFontIds[1], sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], GetFontAttribute(sTrainerCardFontIds[1], FONTATTR_LETTER_SPACING));
|
||||||
|
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], x, sUnknown_83CD93E[sTrainerCardDataPtr->cardType],
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], x, sUnknown_83CD93E[sTrainerCardDataPtr->cardType],
|
||||||
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME]);
|
sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME]);
|
||||||
}
|
}
|
||||||
@@ -1253,7 +1253,7 @@ static void PrintHofTimeOnCard(void)
|
|||||||
{
|
{
|
||||||
u8 buffer[10];
|
u8 buffer[10];
|
||||||
u8* txtPtr;
|
u8* txtPtr;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->hasHofResult)
|
if (sTrainerCardDataPtr->hasHofResult)
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.hofDebutHours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.hofDebutHours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||||
@@ -1279,7 +1279,7 @@ static void PrintHofDebutStringOnCard(void)
|
|||||||
static void PrintLinkResultsNumsOnCard(void)
|
static void PrintLinkResultsNumsOnCard(void)
|
||||||
{
|
{
|
||||||
u8 buffer[30];
|
u8 buffer[30];
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->hasLinkResults)
|
if (sTrainerCardDataPtr->hasLinkResults)
|
||||||
{
|
{
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_RECORD], sLinkTrainerCardRecordStrings[sTrainerCardDataPtr->cardType]);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_RECORD], sLinkTrainerCardRecordStrings[sTrainerCardDataPtr->cardType]);
|
||||||
@@ -1378,7 +1378,6 @@ static void TrainerCard_PrintPokemonIconsOnCard(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void sub_808AB10(void)
|
static void sub_808AB10(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
@@ -1398,7 +1397,7 @@ static void sub_808AB10(void)
|
|||||||
TintPalette_SepiaTone(sTrainerCardDataPtr->monIconPals, 96);
|
TintPalette_SepiaTone(sTrainerCardDataPtr->monIconPals, 96);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadPalette(sTrainerCardDataPtr->monIconPals, 80, 192);
|
LoadPalette(sTrainerCardDataPtr->monIconPals, 80, 192);
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
@@ -1410,7 +1409,7 @@ static void sub_808ABE0(void)
|
|||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 buffer[4];
|
u8 buffer[4];
|
||||||
|
|
||||||
memcpy(buffer, sUnknown_83CD958, sizeof(sUnknown_83CD958));
|
memcpy(buffer, sUnknown_83CD958, sizeof(sUnknown_83CD958));
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_FRLG && sTrainerCardDataPtr->trainerCard.var_4C == 1)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_FRLG && sTrainerCardDataPtr->trainerCard.var_4C == 1)
|
||||||
{
|
{
|
||||||
@@ -1479,7 +1478,7 @@ static bool8 SetTrainerCardBgsAndPals(void)
|
|||||||
FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 32, 32);
|
FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 32, 32);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
sTrainerCardDataPtr->bgPalLoadState++;
|
sTrainerCardDataPtr->bgPalLoadState++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1499,7 +1498,7 @@ static void LoadTrainerCardTilemap2(const u16* ptr)
|
|||||||
dst[32 * i + j] = ptr[0];
|
dst[32 * i + j] = ptr[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyBgTilemapBufferToVram(2);
|
CopyBgTilemapBufferToVram(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1518,7 +1517,7 @@ static void LoadTrainerCardTilemap0(const u16* ptr)
|
|||||||
dst[32 * i + j] = ptr[0];
|
dst[32 * i + j] = ptr[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyBgTilemapBufferToVram(0);
|
CopyBgTilemapBufferToVram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1543,7 +1542,7 @@ static void TrainerCard_PrintStarsAndBadgesOnCard(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyBgTilemapBufferToVram(3);
|
CopyBgTilemapBufferToVram(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1556,13 +1555,13 @@ static void sub_808B090(void)
|
|||||||
FillBgTilemapBufferRect(3, 141, 26, 9, 1, 1, 1);
|
FillBgTilemapBufferRect(3, 141, 26, 9, 1, 1, 1);
|
||||||
FillBgTilemapBufferRect(3, 157, 26, 10, 1, 1, 1);
|
FillBgTilemapBufferRect(3, 157, 26, 10, 1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.berryCrushPoints)
|
if (sTrainerCardDataPtr->trainerCard.berryCrushPoints)
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 1);
|
FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 1);
|
||||||
FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 1);
|
FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.unionRoomNum)
|
if (sTrainerCardDataPtr->trainerCard.unionRoomNum)
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 1);
|
FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 1);
|
||||||
@@ -1577,7 +1576,7 @@ static void sub_808B090(void)
|
|||||||
FillBgTilemapBufferRect(3, 157, 26, 10, 1, 1, 0);
|
FillBgTilemapBufferRect(3, 157, 26, 10, 1, 1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyBgTilemapBufferToVram(3);
|
CopyBgTilemapBufferToVram(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1629,7 +1628,7 @@ static bool8 sub_808B254(struct Task* task)
|
|||||||
{
|
{
|
||||||
gScanlineEffectRegBuffers[1][i] = 0;
|
gScanlineEffectRegBuffers[1][i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1647,7 +1646,7 @@ static bool8 sub_808B294(struct Task* task)
|
|||||||
|
|
||||||
sTrainerCardDataPtr->var_7BCC = task->data[1];
|
sTrainerCardDataPtr->var_7BCC = task->data[1];
|
||||||
sub_8089BD8(task->data[1]);
|
sub_8089BD8(task->data[1]);
|
||||||
|
|
||||||
r7 = task->data[1];
|
r7 = task->data[1];
|
||||||
r9 = 160 - r7;
|
r9 = 160 - r7;
|
||||||
r4 = r9 - r7;
|
r4 = r9 - r7;
|
||||||
@@ -1663,7 +1662,7 @@ static bool8 sub_808B294(struct Task* task)
|
|||||||
{
|
{
|
||||||
gScanlineEffectRegBuffers[0][i] = -i;
|
gScanlineEffectRegBuffers[0][i] = -i;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; i < (s16)r9; i++)
|
for (; i < (s16)r9; i++)
|
||||||
{
|
{
|
||||||
var = r6 >> 16;
|
var = r6 >> 16;
|
||||||
@@ -1671,13 +1670,13 @@ static bool8 sub_808B294(struct Task* task)
|
|||||||
r5 -= r10;
|
r5 -= r10;
|
||||||
gScanlineEffectRegBuffers[0][i] = var;
|
gScanlineEffectRegBuffers[0][i] = var;
|
||||||
}
|
}
|
||||||
|
|
||||||
var = var_24 >> 16;
|
var = var_24 >> 16;
|
||||||
for (; i < 160; i++)
|
for (; i < 160; i++)
|
||||||
{
|
{
|
||||||
gScanlineEffectRegBuffers[0][i] = var;
|
gScanlineEffectRegBuffers[0][i] = var;
|
||||||
}
|
}
|
||||||
|
|
||||||
sTrainerCardDataPtr->allowDMACopy = TRUE;
|
sTrainerCardDataPtr->allowDMACopy = TRUE;
|
||||||
if (task->data[1] >= 77)
|
if (task->data[1] >= 77)
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -1749,7 +1748,7 @@ static bool8 sub_808B4D8(struct Task* task)
|
|||||||
LoadTrainerCardTilemap0(&sTrainerCardDataPtr->var_4BC);
|
LoadTrainerCardTilemap0(&sTrainerCardDataPtr->var_4BC);
|
||||||
TrainerCard_PrintStarsAndBadgesOnCard();
|
TrainerCard_PrintStarsAndBadgesOnCard();
|
||||||
}
|
}
|
||||||
|
|
||||||
PutTrainerCardWindow(1);
|
PutTrainerCardWindow(1);
|
||||||
sTrainerCardDataPtr->var_8 ^= 1;
|
sTrainerCardDataPtr->var_8 ^= 1;
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -1771,7 +1770,7 @@ static bool8 sub_808B540(struct Task* task)
|
|||||||
|
|
||||||
sTrainerCardDataPtr->var_7BCC = task->data[1];
|
sTrainerCardDataPtr->var_7BCC = task->data[1];
|
||||||
sub_8089BD8(task->data[1]);
|
sub_8089BD8(task->data[1]);
|
||||||
|
|
||||||
r7 = task->data[1];
|
r7 = task->data[1];
|
||||||
r9 = 160 - r7;
|
r9 = 160 - r7;
|
||||||
r4 = r9 - r7;
|
r4 = r9 - r7;
|
||||||
@@ -1795,13 +1794,13 @@ static bool8 sub_808B540(struct Task* task)
|
|||||||
r5 += r10;
|
r5 += r10;
|
||||||
gScanlineEffectRegBuffers[0][i] = var;
|
gScanlineEffectRegBuffers[0][i] = var;
|
||||||
}
|
}
|
||||||
|
|
||||||
var = var_24 >> 16;
|
var = var_24 >> 16;
|
||||||
for (; i < 160; i++)
|
for (; i < 160; i++)
|
||||||
{
|
{
|
||||||
gScanlineEffectRegBuffers[0][i] = var;
|
gScanlineEffectRegBuffers[0][i] = var;
|
||||||
}
|
}
|
||||||
|
|
||||||
sTrainerCardDataPtr->allowDMACopy = TRUE;
|
sTrainerCardDataPtr->allowDMACopy = TRUE;
|
||||||
if (task->data[1] <= 0)
|
if (task->data[1] <= 0)
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -1826,7 +1825,7 @@ void ShowPlayerTrainerCard(void (*callback)(void))
|
|||||||
sTrainerCardDataPtr->isLink = TRUE;
|
sTrainerCardDataPtr->isLink = TRUE;
|
||||||
else
|
else
|
||||||
sTrainerCardDataPtr->isLink = FALSE;
|
sTrainerCardDataPtr->isLink = FALSE;
|
||||||
|
|
||||||
sTrainerCardDataPtr->language = GAME_LANGUAGE;
|
sTrainerCardDataPtr->language = GAME_LANGUAGE;
|
||||||
TrainerCard_GenerateCardForLinkPlayer(&sTrainerCardDataPtr->trainerCard);
|
TrainerCard_GenerateCardForLinkPlayer(&sTrainerCardDataPtr->trainerCard);
|
||||||
SetMainCallback2(CB2_InitTrainerCard);
|
SetMainCallback2(CB2_InitTrainerCard);
|
||||||
@@ -1855,7 +1854,7 @@ static void sub_808B774(void)
|
|||||||
sTrainerCardDataPtr->cardType = CARD_TYPE_EMERALD;
|
sTrainerCardDataPtr->cardType = CARD_TYPE_EMERALD;
|
||||||
else
|
else
|
||||||
sTrainerCardDataPtr->cardType = CARD_TYPE_FRLG;
|
sTrainerCardDataPtr->cardType = CARD_TYPE_FRLG;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
CopyEasyChatWord(sTrainerCardDataPtr->var_19[i], sTrainerCardDataPtr->trainerCard.var_28[i]);
|
CopyEasyChatWord(sTrainerCardDataPtr->var_19[i], sTrainerCardDataPtr->trainerCard.var_28[i]);
|
||||||
@@ -1883,7 +1882,7 @@ static u8 GetCardType(void)
|
|||||||
static void sub_808B838(void)
|
static void sub_808B838(void)
|
||||||
{
|
{
|
||||||
u8 val = sLinkTrainerCardFrontPics[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender];
|
u8 val = sLinkTrainerCardFrontPics[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender];
|
||||||
|
|
||||||
if (InUnionRoom() == TRUE && gReceivedRemoteLinkPlayers == 1)
|
if (InUnionRoom() == TRUE && gReceivedRemoteLinkPlayers == 1)
|
||||||
{
|
{
|
||||||
val = sTrainerCardDataPtr->trainerCard.var_4F;
|
val = sTrainerCardDataPtr->trainerCard.var_4F;
|
||||||
@@ -1929,4 +1928,3 @@ static void Unref_InitTrainerCardLink2(void (*callback)(void))
|
|||||||
ShowTrainerCardInLink(CARD_TYPE_FRLG, callback);
|
ShowTrainerCardInLink(CARD_TYPE_FRLG, callback);
|
||||||
SetMainCallback2(CB2_InitTrainerCard);
|
SetMainCallback2(CB2_InitTrainerCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,13 @@ int main(int argc, char *argv[])
|
|||||||
return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
|
return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
env.add_callback("contains", 2, [](Arguments& args) {
|
||||||
|
string word = args.at(0)->get<string>();
|
||||||
|
string check = args.at(1)->get<string>();
|
||||||
|
|
||||||
|
return word.find(check) != std::string::npos;
|
||||||
|
});
|
||||||
|
|
||||||
env.add_callback("subtract", 2, [](Arguments& args) {
|
env.add_callback("subtract", 2, [](Arguments& args) {
|
||||||
int minuend = args.at(0)->get<int>();
|
int minuend = args.at(0)->get<int>();
|
||||||
int subtrahend = args.at(1)->get<int>();
|
int subtrahend = args.at(1)->get<int>();
|
||||||
|
|||||||