Pokémon evolution data structure (Generation III): Difference between revisions
From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to navigationJump to search
No edit summary |
(Considering the padding as part of the struct instead of part of the array makes much more sense.) |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Data on the '''[[ | Data on the '''[[Evolution|evolution of Pokémon]]''' is stored as a series of 6-byte structures in [[Generation III]]. These structures must be aligned on a 4-byte boundary, and each Pokémon species has 5 such entries, for a total of 40 bytes per species. | ||
In all Generation III games, evolution data is situated between the Pokémon move list data pool and the actual Pokémon move list index; see [[Move list data structures in Generation III]] for a list of locations. | In all Generation III games, evolution data is situated between the Pokémon move list data pool and the actual Pokémon move list index; see [[Move list data structures in Generation III]] for a list of locations. | ||
Line 8: | Line 8: | ||
! Offset !! Size !! Type !! Notes | ! Offset !! Size !! Type !! Notes | ||
|- | |- | ||
| 0x00 || | | 0x00 || 8 || Substructure || First Substructure | ||
|- | |- | ||
| | | 0x08 || 8 || Substructure || Second Substructure | ||
|- | |- | ||
| | | 0x10 || 8 || Substructure || Third Substructure | ||
|- | |- | ||
| | | 0x18 || 8 || Substructure || Fourth Substructure | ||
|- | |- | ||
| 0x20 || 8 || Substructure || Fifth Substructure | |||
| 0x20 || | |||
|} | |} | ||
Line 36: | Line 26: | ||
| 0x00 || 2 || uint16_t | | 0x00 || 2 || uint16_t | ||
| Method of evolution - How this Pokémon will evolve. This can be one of the following values: | | Method of evolution - How this Pokémon will evolve. This can be one of the following values: | ||
* 0x0001 - Evolves by | * 0x0001 - Evolves by friendship without regards to time of day | ||
* 0x0002 - Evolves by | * 0x0002 - Evolves by friendship during the day | ||
* 0x0003 - Evolves by | * 0x0003 - Evolves by friendship at night | ||
* 0x0004 - Evolves by level up | * 0x0004 - Evolves by level up | ||
* 0x0005 - Evolves by trade without items | * 0x0005 - Evolves by trade without items | ||
* 0x0006 - Evolves by | * 0x0006 - Evolves by trading the Pokémon while holding an item | ||
* 0x0007 - Evolves by | * 0x0007 - Evolves by using an item on the Pokémon | ||
* 0x0008 - Evolves by level up, but only when Attack is greater than Defense | * 0x0008 - Evolves by level up, but only when Attack is greater than Defense | ||
* 0x0009 - Evolves by level up, but only when Attack is equal to Defense | * 0x0009 - Evolves by level up, but only when Attack is equal to Defense | ||
Line 53: | Line 43: | ||
|- | |- | ||
| 0x02 || 2 || uint16_t | | 0x02 || 2 || uint16_t | ||
| Parameter - The meaning of this is dependent on the method of evolution - the item, the level, etc. Not used and zeroed out where applicable. Note that the parameter is used for the beauty threshold, but is not used for | | Parameter - The meaning of this is dependent on the method of evolution - the item, the level, etc. Not used and zeroed out where applicable. Note that the parameter is used for the beauty threshold, but is not used for friendship thresholds. | ||
|- | |- | ||
| 0x04 || 2 || uint16_t || Target Pokémon - The Pokémon which this Pokémon will evolve to. See [[List of Pokémon by index number (Generation III)]] for a list of values. | | 0x04 || 2 || uint16_t || Target Pokémon - The Pokémon which this Pokémon will evolve to. See [[List of Pokémon by index number (Generation III)]] for a list of values. | ||
|- | |||
| 0x06 || 2 || uint16_t || Padding due to alignment. Zeroed out. | |||
|} | |} | ||
All unused entries will be entirely zeroed-out. | All unused entries will be entirely zeroed-out. | ||
{{data structure}} | {{data structure}}<br> | ||
{{Project Games notice|data structure}} | {{Project Games notice|data structure}} | ||
[[Category:Structures]] | [[Category:Structures]] |
Revision as of 00:51, 7 December 2016
Data on the evolution of Pokémon is stored as a series of 6-byte structures in Generation III. These structures must be aligned on a 4-byte boundary, and each Pokémon species has 5 such entries, for a total of 40 bytes per species.
In all Generation III games, evolution data is situated between the Pokémon move list data pool and the actual Pokémon move list index; see Move list data structures in Generation III for a list of locations.
Pokémon Evolution Data Structure
Each species has 5 substructures, as Eevee has 5 evolution options. The overall structure is laid out as follows:
Offset | Size | Type | Notes |
---|---|---|---|
0x00 | 8 | Substructure | First Substructure |
0x08 | 8 | Substructure | Second Substructure |
0x10 | 8 | Substructure | Third Substructure |
0x18 | 8 | Substructure | Fourth Substructure |
0x20 | 8 | Substructure | Fifth Substructure |
Pokémon Evolution Data Substructure
The 6-byte substructure is organized as follows:
Offset | Size | Type | Notes |
---|---|---|---|
0x00 | 2 | uint16_t | Method of evolution - How this Pokémon will evolve. This can be one of the following values:
|
0x02 | 2 | uint16_t | Parameter - The meaning of this is dependent on the method of evolution - the item, the level, etc. Not used and zeroed out where applicable. Note that the parameter is used for the beauty threshold, but is not used for friendship thresholds. |
0x04 | 2 | uint16_t | Target Pokémon - The Pokémon which this Pokémon will evolve to. See List of Pokémon by index number (Generation III) for a list of values. |
0x06 | 2 | uint16_t | Padding due to alignment. Zeroed out. |
All unused entries will be entirely zeroed-out.
|
This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games. |