Difference between revisions of "Type chart data structure in Generation III"

From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to: navigation, search
m (SnorlaxMonster moved page Type Chart data structure in Generation III to Type chart data structure in Generation III without leaving a redirect)
Line 1: Line 1:
The [[type]] chart in the [[Generation III]] Pokémon games are stored in a 336 byte data structure. The data structure consists of a number of 112 3-byte entries:
+
==Specs==
  +
The [[type]] chart in the [[Generation III]] Pokémon games are stored in a 336 byte data structure. The data structure consists of a number of 112 3-byte entries, all of which use the following format:
  +
  +
{| align="center" style="border: 1px solid #88a; background: #f8f8ff; padding: 0.5em;" cellspacing="3"
  +
|-
  +
! style="text-align: center; background: #ccf;" | '''Base Stats''' || colspan="2" style="text-align: center; background: #ccf;" | Data whose names are marked with an asterisk (*) have more information below the table.
  +
|-
  +
| Name || Type || Description
  +
|-
  +
| [[Type|Attacking Type]]* || byte || The type of the move being used.
  +
|-
  +
| Defending Type* || byte || The type of the Pokémon being attacked.
  +
|-
  +
| [[Damage_modification#Type_effectiveness|Effectiveness]]* || byte || Used to determine the Damage multiplier.
  +
|}
  +
  +
==Notes==
  +
===Types===
  +
  +
Types are enumerated like this:
   
 
{|
 
{|
! Offset !! Type !! Notes
 
 
|-
 
|-
| 0x00 || uint8_t || Attacking Type
+
| 00. {{t|Normal}}
  +
| 01. {{t|Fighting}}
  +
| 02. {{t|Flying}}
  +
| 03. {{t|Poison}}
  +
| 04. {{t|Ground}}
  +
| 05. {{t|Rock}}
 
|-
 
|-
| 0x01 || uint8_t || Defending Type
+
| 06. {{t|Bug}}
  +
| 07. {{t|Ghost}}
  +
| 08. {{t|Steel}}
  +
| 09. {{t|???}}
  +
| 10. {{t|Fire}}
  +
| 11. {{t|Water}}
 
|-
 
|-
| 0x02 || uint8_t || Damage Multiplier - the value 10 represents normal damage, 20 double damage, 5 half damage, 0 no damage.
+
| 12. {{t|Grass}}
  +
| 13. {{t|Electric}}
  +
| 14. {{t|Psychic}}
  +
| 15. {{t|Ice}}
  +
| 16. {{t|Dragon}}
  +
| 17. {{t|Dark}}
 
|}
 
|}
   
There are two notable entries of note: there are two special entries, which have the damage multipliers set to 0. The first special entry has attacking and defending types 0xFE, and the second special entry has attacking and defending types 0xFF. The latter must be the last three bytes in the data structure, while the former must appear exactly once somewhere in the data structure. Regular type chart entries placed between the two special entries do not apply when {{m|Foresight}} and {{m|Odor Sleuth}} is in play (in normal gameplay, the entries in this sections of the {{t|Ghost}}-type immunities to {{t|Normal}}- and {{t|Fighting}}-type attacks).
+
===Effectiveness===
  +
{|style="border: 1px solid #88a; padding: 0.5em;" cellspacing="9"
  +
|00
  +
|Totally ineffective, such as {{t|Electric}} on {{t|Ground}}.
  +
|-
  +
|05
  +
|Not very effective, such as {{t|Water}} on {{t|Grass}}.
  +
|-
  +
|14
  +
|Supereffective, such as {{t|Ice}} on {{t|Dragon}}
  +
|}
  +
  +
Normally effective attacks, such as {{t|Fighting}} on {{t|Poison}} are not listed in the table.
  +
  +
===Foresight and Odor Sleuth===
  +
  +
Near the end of the data structure, there are three bytes that signal the end of the normal part of the table - FE FE 00. There are only two entries after this, and they are {{t|Fighting}} and {{t|Normal}} on {{t|Ghost}}, respectively.
  +
  +
However, this area of the table is unique in that all entries in it are ignored after {{m|Foresight}} or {{m|Odor Sleuth}} is used, simply reverting to normal damage.
  +
  +
The end of the table is marked with FF FF 00.
   
 
{{data structure}}<br>
 
{{data structure}}<br>

Revision as of 04:11, 21 June 2013

Specs

The type chart in the Generation III Pokémon games are stored in a 336 byte data structure. The data structure consists of a number of 112 3-byte entries, all of which use the following format:

Base Stats Data whose names are marked with an asterisk (*) have more information below the table.
Name Type Description
Attacking Type* byte The type of the move being used.
Defending Type* byte The type of the Pokémon being attacked.
Effectiveness* byte Used to determine the Damage multiplier.

Notes

Types

Types are enumerated like this:

00. Normal 01. Fighting 02. Flying 03. Poison 04. Ground 05. Rock
06. Bug 07. Ghost 08. Steel 09. ??? 10. Fire 11. Water
12. Grass 13. Electric 14. Psychic 15. Ice 16. Dragon 17. Dark

Effectiveness

00 Totally ineffective, such as Electric on Ground.
05 Not very effective, such as Water on Grass.
14 Supereffective, such as Ice on Dragon

Normally effective attacks, such as Fighting on Poison are not listed in the table.

Foresight and Odor Sleuth

Near the end of the data structure, there are three bytes that signal the end of the normal part of the table - FE FE 00. There are only two entries after this, and they are Fighting and Normal on Ghost, respectively.

However, this area of the table is unique in that all entries in it are ignored after Foresight or Odor Sleuth is used, simply reverting to normal damage.

The end of the table is marked with FF FF 00.


Data structure in the Pokémon games
Generation I Pokémon data structurePokémon base stats data structureSave data structureCharacter encoding
Generation II Pokémon data structurePokémon base stats data structureTrainer data structureSave data structureCharacter encoding
Generation III Pokémon data structurePokémon data substructuresPokémon base stats data structureMove data structure
Contest data structureContest move data structureItem data structurePokédex data structureBattle Frontier data structures
Trainer Tower data structuresPokémon evolution data structureType Chart data structureSave data structureCharacter encoding
Generation IV Pokémon data structureSave data structure

Project Games logo.png This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games.