summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi@gmail.com>2018-05-29 19:35:36 -0400
committerRangi <remy.oukaour+rangi@gmail.com>2018-05-29 19:35:36 -0400
commitb9d4178dad95a396b3a7ca9e2bc5c4fc4b81630e (patch)
tree883456b5f2bd69d6c2484f74088f10882d42aea7
parent71cb56a73e53fd8cb30b2bbd944d866cb6717e48 (diff)
Start decoding trainer parties
-rw-r--r--constants.asm1
-rw-r--r--constants/trainer_data_constants.asm54
-rw-r--r--data/trainers/parties.asm17
-rw-r--r--main.asm4
4 files changed, 75 insertions, 1 deletions
diff --git a/constants.asm b/constants.asm
index 20b71d5..788d637 100644
--- a/constants.asm
+++ b/constants.asm
@@ -12,6 +12,7 @@ INCLUDE "constants/pokedex_constants.asm"
INCLUDE "constants/pokemon_data_constants.asm"
INCLUDE "constants/move_constants.asm"
INCLUDE "constants/item_constants.asm"
+INCLUDE "constants/trainer_data_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/serial_constants.asm"
diff --git a/constants/trainer_data_constants.asm b/constants/trainer_data_constants.asm
new file mode 100644
index 0000000..00c1c6c
--- /dev/null
+++ b/constants/trainer_data_constants.asm
@@ -0,0 +1,54 @@
+; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
+ const_def
+ const TRNATTR_ITEM1 ; 0
+ const TRNATTR_ITEM2 ; 1
+ const TRNATTR_BASEMONEY ; 2
+ const TRNATTR_AI_MOVE_WEIGHTS ; 3
+ const TRNATTR_AI2 ; 4
+ const TRNATTR_AI_ITEM_SWITCH ; 5
+ const TRNATTR_AI4 ; 6
+NUM_TRAINER_ATTRIBUTES EQU const_value
+
+; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
+; AIScoringPointers indexes (see engine/battle/ai/move.asm)
+ const_def
+ const NO_AI
+const_value = 0
+ shift_const AI_BASIC
+ shift_const AI_SETUP
+ shift_const AI_TYPES
+ shift_const AI_OFFENSIVE
+ shift_const AI_SMART
+ shift_const AI_OPPORTUNIST
+ shift_const AI_AGGRESSIVE
+ shift_const AI_CAUTIOUS
+ shift_const AI_STATUS
+ shift_const AI_RISKY
+ shift_const AI_10
+ shift_const AI_11
+ shift_const AI_12
+ shift_const AI_13
+ shift_const AI_14
+ shift_const AI_15
+
+; TRNATTR_AI_ITEM_SWITCH bit flags
+CONTEXT_USE_F EQU 6
+UNKNOWN_USE_F EQU 5
+ALWAYS_USE_F EQU 4
+SWITCH_SOMETIMES_F EQU 2
+SWITCH_RARELY_F EQU 1
+SWITCH_OFTEN_F EQU 0
+
+CONTEXT_USE EQU 1 << CONTEXT_USE_F
+UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
+ALWAYS_USE EQU 1 << ALWAYS_USE_F
+SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
+SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
+SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
+
+; TrainerTypes indexes (see engine/battle/read_trainer_party.asm)
+ const_def
+ const TRAINERTYPE_NORMAL
+ const TRAINERTYPE_MOVES
+ const TRAINERTYPE_ITEM
+ const TRAINERTYPE_ITEM_MOVES
diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm
new file mode 100644
index 0000000..fb7402d
--- /dev/null
+++ b/data/trainers/parties.asm
@@ -0,0 +1,17 @@
+; Trainer data structure:
+; - db "NAME@", TRAINERTYPE_* constant
+; - 1 to 6 Pokémon:
+; * for TRAINERTYPE_NORMAL: db level, species
+; * for TRAINERTYPE_ITEM: db level, species, item
+; * for TRAINERTYPE_MOVES: db level, species, 4 moves
+; * for TRAINERTYPE_ITEM_MOVES: db level, species, item, 4 moves
+; - db -1 ; end
+
+
+; TODO: decode data from the beginning
+SECTION "Trainer Parties TEMPORARY 1", ROMX[$51BF],BANK[$E]
+
+ ; BUG CATCHER BOY JUNICHI
+ db "じゅんいち@", TRAINERTYPE_ITEM_MOVES
+ db 7, DEX_PARAS, ITEM_NONE, MOVE_STUN_SPORE, MOVE_LEECH_LIFE, MOVE_NONE, MOVE_NONE
+ db -1 ; end
diff --git a/main.asm b/main.asm
index 8c789f3..7e58761 100644
--- a/main.asm
+++ b/main.asm
@@ -10,7 +10,7 @@ SECTION "Predef pointers", ROMX[$62B0],BANK[$01]
INCLUDE "engine/predef.asm"
SECTION "Font GFX", ROMX[$4362], BANK[$3e]
- INCBIN "gfx/font.1bpp"
+ INCBIN "gfx/font.1bpp"
SECTION "Main Menu Definition", ROMX[$5418], BANK[$01]
MainMenuHeader:
@@ -41,6 +41,8 @@ INCLUDE "data/moves/tmhm_moves.asm"
SECTION "Type Matchups", ROMX[$506D],BANK[$0D]
INCLUDE "data/types/type_matchups.asm"
+INCLUDE "data/trainers/parties.asm"
+
SECTION "Alphabetical Pokedex Order", ROMX[$4943],BANK[$10]
INCLUDE "data/pokemon/dex_order_alpha.asm"