summaryrefslogtreecommitdiff
path: root/include/constants
diff options
context:
space:
mode:
Diffstat (limited to 'include/constants')
-rw-r--r--include/constants/battle.h52
-rw-r--r--include/constants/battle_anim.h5
-rw-r--r--include/constants/battle_script_commands.h79
-rw-r--r--include/constants/flags.h67
-rw-r--r--include/constants/global.h6
-rw-r--r--include/constants/mevent.h15
-rw-r--r--include/constants/mystery_gift.h47
-rw-r--r--include/constants/vars.h18
8 files changed, 198 insertions, 91 deletions
diff --git a/include/constants/battle.h b/include/constants/battle.h
index f1ce757e7..2534ade4b 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -306,4 +306,56 @@
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
+#define CASTFORM_NORMAL 0
+#define CASTFORM_FIRE 1
+#define CASTFORM_WATER 2
+#define CASTFORM_ICE 3
+#define NUM_CASTFORM_FORMS 4
+#define CASTFORM_SUBSTITUTE (1 << 7)
+
+#define FLEE_ITEM 1
+#define FLEE_ABILITY 2
+
+#define B_WIN_TYPE_NORMAL 0
+#define B_WIN_TYPE_ARENA 1
+
+// Window Ids for gStandardBattleWindowTemplates / gBattleArenaWindowTemplates
+#define B_WIN_MSG 0
+#define B_WIN_ACTION_PROMPT 1 // "What will {x} do?"
+#define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu
+#define B_WIN_MOVE_NAME_1 3 // Top left
+#define B_WIN_MOVE_NAME_2 4 // Top right
+#define B_WIN_MOVE_NAME_3 5 // Bottom left
+#define B_WIN_MOVE_NAME_4 6 // Bottom right
+#define B_WIN_PP 7
+#define B_WIN_DUMMY 8
+#define B_WIN_PP_REMAINING 9
+#define B_WIN_MOVE_TYPE 10
+#define B_WIN_SWITCH_PROMPT 11 // "Switch which?"
+#define B_WIN_YESNO 12
+#define B_WIN_LEVEL_UP_BOX 13
+#define B_WIN_LEVEL_UP_BANNER 14
+#define B_WIN_VS_PLAYER 15
+#define B_WIN_VS_OPPONENT 16
+#define B_WIN_VS_MULTI_PLAYER_1 17
+#define B_WIN_VS_MULTI_PLAYER_2 18
+#define B_WIN_VS_MULTI_PLAYER_3 19
+#define B_WIN_VS_MULTI_PLAYER_4 20
+#define B_WIN_VS_OUTCOME_DRAW 21
+#define B_WIN_VS_OUTCOME_LEFT 22
+#define B_WIN_VS_OUTCOME_RIGHT 23
+
+// The following are duplicate id values for windows that Battle Arena uses differently.
+#define ARENA_WIN_PLAYER_NAME 15
+#define ARENA_WIN_VS 16
+#define ARENA_WIN_OPPONENT_NAME 17
+#define ARENA_WIN_MIND 18
+#define ARENA_WIN_SKILL 19
+#define ARENA_WIN_BODY 20
+#define ARENA_WIN_JUDGEMENT_TITLE 21
+#define ARENA_WIN_JUDGEMENT_TEXT 22
+
+// Flag for BattlePutTextOnWindow. Never set
+#define B_WIN_COPYTOVRAM (1 << 7)
+
#endif // GUARD_CONSTANTS_BATTLE_H
diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h
index 4622876cc..48de594e2 100644
--- a/include/constants/battle_anim.h
+++ b/include/constants/battle_anim.h
@@ -318,7 +318,7 @@
#define SOUND_PAN_TARGET 63
// move background ids
-#define BG_DARK_ 0 // the same as BG_DARK but is unused
+#define BG_NONE 0 // the same as BG_DARK but is unused
#define BG_DARK 1
#define BG_GHOST 2
#define BG_PSYCHIC 3
@@ -395,6 +395,9 @@
// Tasks with return values often assign them to gBattleAnimArgs[7].
#define ARG_RET_ID 7
+// For createsprite macro to use internally
+#define ANIMSPRITE_IS_TARGET (1 << 7)
+
// Trapping Wrap-like moves end turn animation.
#define TRAP_ANIM_BIND 0
#define TRAP_ANIM_WRAP 0
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index d5e3eb7bb..83aacf316 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -1,38 +1,51 @@
#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
-// Battle Scripting and BattleCommunication addresses
-#define sPAINSPLIT_HP gBattleScripting
-#define sBIDE_DMG gBattleScripting + 4
-#define sMULTIHIT_STRING gBattleScripting + 8
-#define sDMG_MULTIPLIER gBattleScripting + 0xE
-#define sTWOTURN_STRINGID gBattleScripting + 0xF
-#define sB_ANIM_ARG1 gBattleScripting + 0x10
-#define sB_ANIM_ARG2 gBattleScripting + 0x11
-#define sTRIPLE_KICK_POWER gBattleScripting + 0x12
-#define sMOVEEND_STATE gBattleScripting + 0x14
-#define sBATTLER_WITH_ABILITY gBattleScripting + 0x15
-#define sMULTIHIT_EFFECT gBattleScripting + 0x16
-#define sBATTLER gBattleScripting + 0x17
-#define sB_ANIM_TURN gBattleScripting + 0x18
-#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19
-#define sSTATCHANGER gBattleScripting + 0x1A
-#define sSTAT_ANIM_PLAYED gBattleScripting + 0x1B
-#define sGIVEEXP_STATE gBattleScripting + 0x1C
-#define sBATTLE_STYLE gBattleScripting + 0x1D
-#define sLVLBOX_STATE gBattleScripting + 0x1E
-#define sLEARNMOVE_STATE gBattleScripting + 0x1F
-#define sFIELD_20 gBattleScripting + 0x20
-#define sRESHOW_MAIN_STATE gBattleScripting + 0x21
-#define sRESHOW_HELPER_STATE gBattleScripting + 0x22
-#define sFIELD_23 gBattleScripting + 0x23
-#define sWINDOWS_TYPE gBattleScripting + 0x24
-#define sMULTIPLAYER_ID gBattleScripting + 0x25
-#define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26
+// The following correspond to the struct members of BattleScripting by adding their offset
+#define sPAINSPLIT_HP (gBattleScripting + 0x00) // painSplitHp
+#define sBIDE_DMG (gBattleScripting + 0x04) // bideDmg
+#define sMULTIHIT_STRING (gBattleScripting + 0x08) // multihitString
+#define sDMG_MULTIPLIER (gBattleScripting + 0x0E) // dmgMultiplier
+#define sTWOTURN_STRINGID (gBattleScripting + 0x0F) // twoTurnsMoveStringId
+#define sB_ANIM_ARG1 (gBattleScripting + 0x10) // animArg1
+#define sB_ANIM_ARG2 (gBattleScripting + 0x11) // animArg2
+#define sTRIPLE_KICK_POWER (gBattleScripting + 0x12) // tripleKickPower
+#define sMOVEEND_STATE (gBattleScripting + 0x14) // moveendState
+#define sBATTLER_WITH_ABILITY (gBattleScripting + 0x15) // battlerWithAbility
+#define sMULTIHIT_EFFECT (gBattleScripting + 0x16) // multihitMoveEffect
+#define sBATTLER (gBattleScripting + 0x17) // battler
+#define sB_ANIM_TURN (gBattleScripting + 0x18) // animTurn
+#define sB_ANIM_TARGETS_HIT (gBattleScripting + 0x19) // animTargetsHit
+#define sSTATCHANGER (gBattleScripting + 0x1A) // statChanger
+#define sSTAT_ANIM_PLAYED (gBattleScripting + 0x1B) // statAnimPlayed
+#define sGIVEEXP_STATE (gBattleScripting + 0x1C) // getexpState
+#define sBATTLE_STYLE (gBattleScripting + 0x1D) // battleStyle
+#define sLVLBOX_STATE (gBattleScripting + 0x1E) // drawlvlupboxState
+#define sLEARNMOVE_STATE (gBattleScripting + 0x1F) // learnMoveState
+#define sPURSUIT_DOUBLES_ATTACKER (gBattleScripting + 0x20) // pursuitDoublesAttacker
+#define sRESHOW_MAIN_STATE (gBattleScripting + 0x21) // reshowMainState
+#define sRESHOW_HELPER_STATE (gBattleScripting + 0x22) // reshowHelperState
+#define sLVLUP_HP (gBattleScripting + 0x23) // levelUpHP
+#define sWINDOWS_TYPE (gBattleScripting + 0x24) // windowsType
+#define sMULTIPLAYER_ID (gBattleScripting + 0x25) // multiplayerId
+#define sSPECIAL_TRAINER_BATTLE_TYPE (gBattleScripting + 0x26) // specialTrainerBattleType
-#define cEFFECT_CHOOSER gBattleCommunication + 3
-#define cMULTISTRING_CHOOSER gBattleCommunication + 5
-#define cMISS_TYPE gBattleCommunication + 6
+// Array entries for battle communication
+#define MULTIUSE_STATE 0
+#define CURSOR_POSITION 1
+#define TASK_ID 1 // task Id and cursor position share the same field
+#define SPRITES_INIT_STATE1 1 // shares the Id as well
+#define SPRITES_INIT_STATE2 2
+#define MOVE_EFFECT_BYTE 3
+#define ACTIONS_CONFIRMED_COUNT 4
+#define MULTISTRING_CHOOSER 5
+#define MISS_TYPE 6
+#define MSG_DISPLAY 7
+#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
+
+#define cEFFECT_CHOOSER (gBattleCommunication + MOVE_EFFECT_BYTE)
+#define cMULTISTRING_CHOOSER (gBattleCommunication + MULTISTRING_CHOOSER)
+#define cMISS_TYPE (gBattleCommunication + MISS_TYPE)
// Battle Script defines for getting the wanted battler
#define BS_TARGET 0
@@ -40,8 +53,8 @@
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
-#define BS_UNK_5 5
-#define BS_UNK_6 6
+#define BS_FAINTED_LINK_MULTIPLE_1 5
+#define BS_FAINTED_LINK_MULTIPLE_2 6
#define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
diff --git a/include/constants/flags.h b/include/constants/flags.h
index ef5a9a75e..793fe1135 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -338,23 +338,24 @@
#define FLAG_RECEIVED_AURORA_TICKET 0x13A
#define FLAG_RECEIVED_MYSTIC_TICKET 0x13B
#define FLAG_RECEIVED_OLD_SEA_MAP 0x13C
-#define FLAG_UNUSED_MYSTERY_GIFT_0x13D 0x13D
-#define FLAG_UNUSED_MYSTERY_GIFT_0x13E 0x13E
-#define FLAG_UNUSED_MYSTERY_GIFT_0x13F 0x13F
-#define FLAG_UNUSED_MYSTERY_GIFT_0x140 0x140
-#define FLAG_UNUSED_MYSTERY_GIFT_0x141 0x141
-#define FLAG_UNUSED_MYSTERY_GIFT_0x142 0x142
-#define FLAG_UNUSED_MYSTERY_GIFT_0x143 0x143
-#define FLAG_UNUSED_MYSTERY_GIFT_0x144 0x144
-#define FLAG_UNUSED_MYSTERY_GIFT_0x145 0x145
-#define FLAG_UNUSED_MYSTERY_GIFT_0x146 0x146
-#define FLAG_UNUSED_MYSTERY_GIFT_0x147 0x147
-#define FLAG_UNUSED_MYSTERY_GIFT_0x148 0x148
-#define FLAG_UNUSED_MYSTERY_GIFT_0x149 0x149
-#define FLAG_UNUSED_MYSTERY_GIFT_0x14A 0x14A
-#define FLAG_UNUSED_MYSTERY_GIFT_0x14B 0x14B
-#define FLAG_UNUSED_MYSTERY_GIFT_0x14C 0x14C
-#define FLAG_UNUSED_MYSTERY_GIFT_0x14D 0x14D
+#define FLAG_WONDER_CARD_UNUSED_1 0x13D // These Wonder Card flags are referenced but never set
+#define FLAG_WONDER_CARD_UNUSED_2 0x13E
+#define FLAG_WONDER_CARD_UNUSED_3 0x13F
+#define FLAG_WONDER_CARD_UNUSED_4 0x140
+#define FLAG_WONDER_CARD_UNUSED_5 0x141
+#define FLAG_WONDER_CARD_UNUSED_6 0x142
+#define FLAG_WONDER_CARD_UNUSED_7 0x143
+#define FLAG_WONDER_CARD_UNUSED_8 0x144
+#define FLAG_WONDER_CARD_UNUSED_9 0x145
+#define FLAG_WONDER_CARD_UNUSED_10 0x146
+#define FLAG_WONDER_CARD_UNUSED_11 0x147
+#define FLAG_WONDER_CARD_UNUSED_12 0x148
+#define FLAG_WONDER_CARD_UNUSED_13 0x149
+#define FLAG_WONDER_CARD_UNUSED_14 0x14A
+#define FLAG_WONDER_CARD_UNUSED_15 0x14B
+#define FLAG_WONDER_CARD_UNUSED_16 0x14C
+#define FLAG_WONDER_CARD_UNUSED_17 0x14D
+#define NUM_WONDER_CARD_FLAGS (1 + FLAG_WONDER_CARD_UNUSED_17 - FLAG_RECEIVED_AURORA_TICKET)
#define FLAG_MIRAGE_TOWER_VISIBLE 0x14E
#define FLAG_CHOSE_ROOT_FOSSIL 0x14F
@@ -518,22 +519,22 @@
#define FLAG_UNUSED_0x1E3 0x1E3 // Unused Flag
// Mystery Gift Flags (Unknown)
-#define FLAG_MYSTERY_EVENT_DONE 0x1E4
-#define FLAG_MYSTERY_EVENT_1 0x1E5
-#define FLAG_MYSTERY_EVENT_2 0x1E6
-#define FLAG_MYSTERY_EVENT_3 0x1E7
-#define FLAG_MYSTERY_EVENT_4 0x1E8
-#define FLAG_MYSTERY_EVENT_5 0x1E9
-#define FLAG_MYSTERY_EVENT_6 0x1EA
-#define FLAG_MYSTERY_EVENT_7 0x1EB
-#define FLAG_MYSTERY_EVENT_8 0x1EC
-#define FLAG_MYSTERY_EVENT_9 0x1ED
-#define FLAG_MYSTERY_EVENT_10 0x1EE
-#define FLAG_MYSTERY_EVENT_11 0x1EF
-#define FLAG_MYSTERY_EVENT_12 0x1F0
-#define FLAG_MYSTERY_EVENT_13 0x1F1
-#define FLAG_MYSTERY_EVENT_14 0x1F2
-#define FLAG_MYSTERY_EVENT_15 0x1F3
+#define FLAG_MYSTERY_GIFT_DONE 0x1E4
+#define FLAG_MYSTERY_GIFT_1 0x1E5
+#define FLAG_MYSTERY_GIFT_2 0x1E6
+#define FLAG_MYSTERY_GIFT_3 0x1E7
+#define FLAG_MYSTERY_GIFT_4 0x1E8
+#define FLAG_MYSTERY_GIFT_5 0x1E9
+#define FLAG_MYSTERY_GIFT_6 0x1EA
+#define FLAG_MYSTERY_GIFT_7 0x1EB
+#define FLAG_MYSTERY_GIFT_8 0x1EC
+#define FLAG_MYSTERY_GIFT_9 0x1ED
+#define FLAG_MYSTERY_GIFT_10 0x1EE
+#define FLAG_MYSTERY_GIFT_11 0x1EF
+#define FLAG_MYSTERY_GIFT_12 0x1F0
+#define FLAG_MYSTERY_GIFT_13 0x1F1
+#define FLAG_MYSTERY_GIFT_14 0x1F2
+#define FLAG_MYSTERY_GIFT_15 0x1F3
// Hidden Items
#define FLAG_HIDDEN_ITEMS_START 0x1F4
diff --git a/include/constants/global.h b/include/constants/global.h
index 3d5da0078..bd73d7999 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -87,6 +87,12 @@
#define MOVE_NAME_LENGTH 12
#define NUM_QUESTIONNAIRE_WORDS 4
#define QUIZ_QUESTION_LEN 9
+#define WONDER_CARD_TEXT_LENGTH 40
+#define WONDER_NEWS_TEXT_LENGTH 40
+#define WONDER_CARD_BODY_TEXT_LINES 4
+#define WONDER_NEWS_BODY_TEXT_LINES 10
+
+#define MAX_STAMP_CARD_STAMPS 7
#define MALE 0
#define FEMALE 1
diff --git a/include/constants/mevent.h b/include/constants/mevent.h
deleted file mode 100644
index 25bbcdf36..000000000
--- a/include/constants/mevent.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef GUARD_CONSTANTS_MEVENT_H
-#define GUARD_CONSTANTS_MEVENT_H
-
-// mevent2.c
-#define GET_NUM_STAMPS 0
-#define GET_MAX_STAMPS 1
-#define GET_CARD_BATTLES_WON 2
-
-#define GET_NUM_STAMPS_INTERNAL 3
-#define GET_MAX_STAMPS_INTERNAL 4
-#define GET_CARD_BATTLES_WON_INTERNAL 0
-
-#define REQUIRED_CARD_BATTLES 3
-
-#endif //GUARD_MEVENT_H
diff --git a/include/constants/mystery_gift.h b/include/constants/mystery_gift.h
new file mode 100644
index 000000000..8ff71c3aa
--- /dev/null
+++ b/include/constants/mystery_gift.h
@@ -0,0 +1,47 @@
+#ifndef GUARD_CONSTANTS_MYSTERY_GIFT_H
+#define GUARD_CONSTANTS_MYSTERY_GIFT_H
+
+#define GET_NUM_STAMPS 0
+#define GET_MAX_STAMPS 1
+#define GET_CARD_BATTLES_WON 2
+#define GET_CARD_BATTLES_LOST 3
+#define GET_CARD_NUM_TRADES 4
+
+#define CARD_STAT_BATTLES_WON 0
+#define CARD_STAT_BATTLES_LOST 1
+#define CARD_STAT_NUM_TRADES 2
+#define CARD_STAT_NUM_STAMPS 3
+#define CARD_STAT_MAX_STAMPS 4
+
+// Values for the type field of Wonder Card
+#define CARD_TYPE_GIFT 0 // Normal "Wonder Card"
+#define CARD_TYPE_STAMP 1 // "Stamp Card"
+#define CARD_TYPE_LINK_STAT 2 // Referred to as the "Battle Card", shows battle and trade stats
+#define CARD_TYPE_COUNT 3
+
+// Values for the sendType field of Wonder Card/News
+#define SEND_TYPE_DISALLOWED 0
+#define SEND_TYPE_ALLOWED 1
+#define SEND_TYPE_ALLOWED_ALWAYS 2
+
+// Return values for MysteryGift_CompareCardFlags, handled by gMysteryGiftServerScript_SendWonderCard
+#define HAS_NO_CARD 0
+#define HAS_SAME_CARD 1
+#define HAS_DIFF_CARD 2
+
+// The number of battles needed to be recorded on a Battle Card to win a prize
+#define REQUIRED_CARD_BATTLES 3
+
+// Stamps are 32 bits. The first 16 bits are the species
+// and the second 16 bits are a number (presumably an ID of some kind)
+#define STAMP_SPECIES 0
+#define STAMP_ID 1
+
+// Number of different types/colors of Wonder Card and News backgrounds
+#define NUM_WONDER_BGS 8
+
+#define MAX_WONDER_CARD_STAT 999
+
+#define WONDER_CARD_FLAG_OFFSET 1000
+
+#endif //GUARD_CONSTANTS_MYSTERY_GIFT_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 2cbe3e9b8..8128b6f32 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -60,7 +60,7 @@
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
-#define VAR_0x402E 0x402E
+#define VAR_WONDER_NEWS_COUNTER 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
@@ -237,14 +237,14 @@
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
-#define VAR_EVENT_PICHU_SLOT 0x40DD
-#define VAR_NEVER_READ_0x40DE 0x40DE // Var is written to, but never read
-#define VAR_NEVER_READ_0x40DF 0x40DF // Var is written to, but never read
-#define VAR_NEVER_READ_0x40E0 0x40E0 // Var is written to, but never read
-#define VAR_NEVER_READ_0x40E1 0x40E1 // Var is written to, but never read
-#define VAR_NEVER_READ_0x40E2 0x40E2 // Var is written to, but never read
-#define VAR_NEVER_READ_0x40E3 0x40E3 // Var is written to, but never read
-#define VAR_NEVER_READ_0x40E4 0x40E4 // var is written to, but never read
+#define VAR_GIFT_PICHU_SLOT 0x40DD
+#define VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read
+#define VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read
+#define VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read
+#define VAR_GIFT_UNUSED_4 0x40E1 // Var is written to, but never read
+#define VAR_GIFT_UNUSED_5 0x40E2 // Var is written to, but never read
+#define VAR_GIFT_UNUSED_6 0x40E3 // Var is written to, but never read
+#define VAR_GIFT_UNUSED_7 0x40E4 // var is written to, but never read
#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7