diff options
Diffstat (limited to 'include/pokemon.h')
-rw-r--r-- | include/pokemon.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/pokemon.h b/include/pokemon.h index 95af35e..dbf0d41 100644 --- a/include/pokemon.h +++ b/include/pokemon.h | |||
@@ -35,6 +35,13 @@ struct __attribute__((aligned(4))) PokemonIntermediate { | |||
35 | // while not uniformly random (amongst Pokémon), is included as a sort of | 35 | // while not uniformly random (amongst Pokémon), is included as a sort of |
36 | // "namespace", in that any Pokémon with matching PVs and IVs must also have | 36 | // "namespace", in that any Pokémon with matching PVs and IVs must also have |
37 | // the same OT, thus preventing collaboratively finding PV and IV collisions. | 37 | // the same OT, thus preventing collaboratively finding PV and IV collisions. |
38 | // there is one deterministic way that two Pokémon can have the same hash: | ||
39 | // when a Nincada evolves into a Ninjask and a Shedinja is generated, the | ||
40 | // Shedinja is guaranteed to have the same IVs and personality value as the | ||
41 | // Ninjask. we circumvent this by also including a boolean in the hash which | ||
42 | // is set to true if the Pokémon is a Shedinja, and false otherwise. this | ||
43 | // differentiates a Shedinja from the Ninjask it came from, but also allows | ||
44 | // the Ninjask to be associated with the Nincada it used to be. | ||
38 | u32 key[7]; | 45 | u32 key[7]; |
39 | 46 | ||
40 | u32 experience; | 47 | u32 experience; |