shithub: pokecrystal

Download patch

ref: d6dc9351e9876d96c4d471aa1da9b722bbae1c9e
parent: fecc5c339adf8d4c2939364e49e4ba5c46f207ba
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Thu Dec 14 19:48:59 EST 2017

Start documenting effect commands

--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -1,7 +1,7 @@
 	dw 0 ; padding
 
 BattleCommandPointers: ; 3fd28
-; entries correspond to constants/effect_command_constants.asm
+; entries correspond to macros/scripts/effect_commands.asm
 	dw BattleCommand_CheckTurn ; 34084
 	dw BattleCommand_CheckObedience ; 343db
 	dw BattleCommand_UsedMoveText ; 34541
--- a/constants.asm
+++ b/constants.asm
@@ -7,7 +7,6 @@
 INCLUDE "constants/pokemon_constants.asm"
 INCLUDE "constants/type_constants.asm"
 INCLUDE "constants/move_constants.asm"
-INCLUDE "constants/effect_command_constants.asm"
 INCLUDE "constants/battle_constants.asm"
 INCLUDE "constants/map_dimension_constants.asm"
 INCLUDE "constants/map_constants.asm"
--- a/constants/effect_command_constants.asm
+++ /dev/null
@@ -1,186 +1,0 @@
-command: macro
-	enum \1_command
-\1 equs "db \1_command"
-endm
-
-; BattleCommandPointers indexes (see battle/effect_commands.asm)
-	enum_start 1
-	command checkturn               ; 01
-	command checkobedience          ; 02
-	command usedmovetext            ; 03
-	command doturn                  ; 04
-	command critical                ; 05
-	command damagestats             ; 06
-	command stab                    ; 07
-	command damagevariation         ; 08
-	command checkhit                ; 09
-	command lowersub                ; 0a
-	command hittargetnosub          ; 0b
-	command raisesub                ; 0c
-	command failuretext             ; 0d
-	command checkfaint              ; 0e
-	command criticaltext            ; 0f
-	command supereffectivetext      ; 10
-	command checkdestinybond        ; 11
-	command buildopponentrage       ; 12
-	command poisontarget            ; 13
-	command sleeptarget             ; 14
-	command draintarget             ; 15
-	command eatdream                ; 16
-	command burntarget              ; 17
-	command freezetarget            ; 18
-	command paralyzetarget          ; 19
-	command selfdestruct            ; 1a
-	command mirrormove              ; 1b
-	command statup                  ; 1c
-	command statdown                ; 1d
-	command payday                  ; 1e
-	command conversion              ; 1f
-	command resetstats              ; 20
-	command storeenergy             ; 21
-	command unleashenergy           ; 22
-	command forceswitch             ; 23
-	command endloop                 ; 24
-	command flinchtarget            ; 25
-	command ohko                    ; 26
-	command recoil                  ; 27
-	command mist                    ; 28
-	command focusenergy             ; 29
-	command confuse                 ; 2a
-	command confusetarget           ; 2b
-	command heal                    ; 2c
-	command transform               ; 2d
-	command screen                  ; 2e
-	command poison                  ; 2f
-	command paralyze                ; 30
-	command substitute              ; 31
-	command rechargenextturn        ; 32
-	command mimic                   ; 33
-	command metronome               ; 34
-	command leechseed               ; 35
-	command splash                  ; 36
-	command disable                 ; 37
-	command cleartext               ; 38
-	command charge                  ; 39
-	command checkcharge             ; 3a
-	command traptarget              ; 3b
-	command effect0x3c              ; 3c
-	command rampage                 ; 3d
-	command checkrampage            ; 3e
-	command constantdamage          ; 3f
-	command counter                 ; 40
-	command encore                  ; 41
-	command painsplit               ; 42
-	command snore                   ; 43
-	command conversion2             ; 44
-	command lockon                  ; 45
-	command sketch                  ; 46
-	command defrostopponent         ; 47
-	command sleeptalk               ; 48
-	command destinybond             ; 49
-	command spite                   ; 4a
-	command falseswipe              ; 4b
-	command healbell                ; 4c
-	command kingsrock               ; 4d
-	command triplekick              ; 4e
-	command kickcounter             ; 4f
-	command thief                   ; 50
-	command arenatrap               ; 51
-	command nightmare               ; 52
-	command defrost                 ; 53
-	command curse                   ; 54
-	command protect                 ; 55
-	command spikes                  ; 56
-	command foresight               ; 57
-	command perishsong              ; 58
-	command startsandstorm          ; 59
-	command endure                  ; 5a
-	command checkcurl               ; 5b
-	command rolloutpower            ; 5c
-	command effect0x5d              ; 5d
-	command furycutter              ; 5e
-	command attract                 ; 5f
-	command happinesspower          ; 60
-	command present                 ; 61
-	command damagecalc              ; 62
-	command frustrationpower        ; 63
-	command safeguard               ; 64
-	command checksafeguard          ; 65
-	command getmagnitude            ; 66
-	command batonpass               ; 67
-	command pursuit                 ; 68
-	command clearhazards            ; 69
-	command healmorn                ; 6a
-	command healday                 ; 6b
-	command healnite                ; 6c
-	command hiddenpower             ; 6d
-	command startrain               ; 6e
-	command startsun                ; 6f
-	command attackup                ; 70
-	command defenseup               ; 71
-	command speedup                 ; 72
-	command specialattackup         ; 73
-	command specialdefenseup        ; 74
-	command accuracyup              ; 75
-	command evasionup               ; 76
-	command attackup2               ; 77
-	command defenseup2              ; 78
-	command speedup2                ; 79
-	command specialattackup2        ; 7a
-	command specialdefenseup2       ; 7b
-	command accuracyup2             ; 7c
-	command evasionup2              ; 7d
-	command attackdown              ; 7e
-	command defensedown             ; 7f
-	command speeddown               ; 80
-	command specialattackdown       ; 81
-	command specialdefensedown      ; 82
-	command accuracydown            ; 83
-	command evasiondown             ; 84
-	command attackdown2             ; 85
-	command defensedown2            ; 86
-	command speeddown2              ; 87
-	command specialattackdown2      ; 88
-	command specialdefensedown2     ; 89
-	command accuracydown2           ; 8a
-	command evasiondown2            ; 8b
-	command statupmessage           ; 8c
-	command statdownmessage         ; 8d
-	command statupfailtext          ; 8e
-	command statdownfailtext        ; 8f
-	command effectchance            ; 90
-	command statdownanim            ; 91
-	command statupanim              ; 92
-	command switchturn              ; 93
-	command fakeout                 ; 94
-	command bellydrum               ; 95
-	command psychup                 ; 96
-	command rage                    ; 97
-	command doubleflyingdamage      ; 98
-	command doubleundergrounddamage ; 99
-	command mirrorcoat              ; 9a
-	command checkfuturesight        ; 9b
-	command futuresight             ; 9c
-	command doubleminimizedamage    ; 9d
-	command skipsuncharge           ; 9e
-	command thunderaccuracy         ; 9f
-	command teleport                ; a0
-	command beatup                  ; a1
-	command ragedamage              ; a2
-	command resettypematchup        ; a3
-	command allstatsup              ; a4
-	command effect0xa5              ; a5
-	command raisesubnoanim          ; a6
-	command lowersubnoanim          ; a7
-	command effect0xa8              ; a8
-	command clearmissdamage         ; a9
-	command movedelay               ; aa
-	command hittarget               ; ab
-	command tristatuschance         ; ac
-	command supereffectivelooptext  ; ad
-	command startloop               ; ae
-	command curl                    ; af
-
-	enum_start -1, -1
-	command endmove
-	command endturn
--- /dev/null
+++ b/docs/effect_commands.md
@@ -1,0 +1,358 @@
+# Effect Commands
+
+Defined in [macros/scripts/effect_commands.asm](/macros/scripts/effect_commands.asm) and [battle/effect_command_pointers.asm:BattleCommandPointers](/battle/effect_command_pointers.asm).
+
+
+## `$01`: `checkturn`
+
+## `$02`: `checkobedience`
+
+## `$03`: `usedmovetext`
+
+## `$04`: `doturn`
+
+## `$05`: `critical`
+
+## `$06`: `damagestats`
+
+## `$07`: `stab`
+
+## `$08`: `damagevariation`
+
+## `$09`: `checkhit`
+
+## `$0A`: `lowersub`
+
+## `$0B`: `hittargetnosub`
+
+## `$0C`: `raisesub`
+
+## `$0D`: `failuretext`
+
+## `$0E`: `checkfaint`
+
+## `$0F`: `criticaltext`
+
+## `$10`: `supereffectivetext`
+
+## `$11`: `checkdestinybond`
+
+## `$12`: `buildopponentrage`
+
+## `$13`: `poisontarget`
+
+## `$14`: `sleeptarget`
+
+## `$15`: `draintarget`
+
+## `$16`: `eatdream`
+
+## `$17`: `burntarget`
+
+## `$18`: `freezetarget`
+
+## `$19`: `paralyzetarget`
+
+## `$1A`: `selfdestruct`
+
+## `$1B`: `mirrormove`
+
+## `$1C`: `statup`
+
+## `$1D`: `statdown`
+
+## `$1E`: `payday`
+
+## `$1F`: `conversion`
+
+## `$20`: `resetstats`
+
+## `$21`: `storeenergy`
+
+## `$22`: `unleashenergy`
+
+## `$23`: `forceswitch`
+
+## `$24`: `endloop`
+
+## `$25`: `flinchtarget`
+
+## `$26`: `ohko`
+
+## `$27`: `recoil`
+
+## `$28`: `mist`
+
+## `$29`: `focusenergy`
+
+## `$2A`: `confuse`
+
+## `$2B`: `confusetarget`
+
+## `$2C`: `heal`
+
+## `$2D`: `transform`
+
+## `$2E`: `screen`
+
+## `$2F`: `poison`
+
+## `$30`: `paralyze`
+
+## `$31`: `substitute`
+
+## `$32`: `rechargenextturn`
+
+## `$33`: `mimic`
+
+## `$34`: `metronome`
+
+## `$35`: `leechseed`
+
+## `$36`: `splash`
+
+## `$37`: `disable`
+
+## `$38`: `cleartext`
+
+## `$39`: `charge`
+
+## `$3A`: `checkcharge`
+
+## `$3B`: `traptarget`
+
+## `$3C`: `effect0x3c`
+
+## `$3D`: `rampage`
+
+## `$3E`: `checkrampage`
+
+## `$3F`: `constantdamage`
+
+## `$40`: `counter`
+
+## `$41`: `encore`
+
+## `$42`: `painsplit`
+
+## `$43`: `snore`
+
+## `$44`: `conversion2`
+
+## `$45`: `lockon`
+
+## `$46`: `sketch`
+
+## `$47`: `defrostopponent`
+
+## `$48`: `sleeptalk`
+
+## `$49`: `destinybond`
+
+## `$4A`: `spite`
+
+## `$4B`: `falseswipe`
+
+## `$4C`: `healbell`
+
+## `$4D`: `kingsrock`
+
+## `$4E`: `triplekick`
+
+## `$4F`: `kickcounter`
+
+## `$50`: `thief`
+
+## `$51`: `arenatrap`
+
+## `$52`: `nightmare`
+
+## `$53`: `defrost`
+
+## `$54`: `curse`
+
+## `$55`: `protect`
+
+## `$56`: `spikes`
+
+## `$57`: `foresight`
+
+## `$58`: `perishsong`
+
+## `$59`: `startsandstorm`
+
+## `$5A`: `endure`
+
+## `$5B`: `checkcurl`
+
+## `$5C`: `rolloutpower`
+
+## `$5D`: `effect0x5d`
+
+## `$5E`: `furycutter`
+
+## `$5F`: `attract`
+
+## `$60`: `happinesspower`
+
+## `$61`: `present`
+
+## `$62`: `damagecalc`
+
+## `$63`: `frustrationpower`
+
+## `$64`: `safeguard`
+
+## `$65`: `checksafeguard`
+
+## `$66`: `getmagnitude`
+
+## `$67`: `batonpass`
+
+## `$68`: `pursuit`
+
+## `$69`: `clearhazards`
+
+## `$6A`: `healmorn`
+
+## `$6B`: `healday`
+
+## `$6C`: `healnite`
+
+## `$6D`: `hiddenpower`
+
+## `$6E`: `startrain`
+
+## `$6F`: `startsun`
+
+## `$70`: `attackup`
+
+## `$71`: `defenseup`
+
+## `$72`: `speedup`
+
+## `$73`: `specialattackup`
+
+## `$74`: `specialdefenseup`
+
+## `$75`: `accuracyup`
+
+## `$76`: `evasionup`
+
+## `$77`: `attackup2`
+
+## `$78`: `defenseup2`
+
+## `$79`: `speedup2`
+
+## `$7A`: `specialattackup2`
+
+## `$7B`: `specialdefenseup2`
+
+## `$7C`: `accuracyup2`
+
+## `$7D`: `evasionup2`
+
+## `$7E`: `attackdown`
+
+## `$7F`: `defensedown`
+
+## `$80`: `speeddown`
+
+## `$81`: `specialattackdown`
+
+## `$82`: `specialdefensedown`
+
+## `$83`: `accuracydown`
+
+## `$84`: `evasiondown`
+
+## `$85`: `attackdown2`
+
+## `$86`: `defensedown2`
+
+## `$87`: `speeddown2`
+
+## `$88`: `specialattackdown2`
+
+## `$89`: `specialdefensedown2`
+
+## `$8A`: `accuracydown2`
+
+## `$8B`: `evasiondown2`
+
+## `$8C`: `statupmessage`
+
+## `$8D`: `statdownmessage`
+
+## `$8E`: `statupfailtext`
+
+## `$8F`: `statdownfailtext`
+
+## `$90`: `effectchance`
+
+## `$91`: `statdownanim`
+
+## `$92`: `statupanim`
+
+## `$93`: `switchturn`
+
+## `$94`: `fakeout`
+
+## `$95`: `bellydrum`
+
+## `$96`: `psychup`
+
+## `$97`: `rage`
+
+## `$98`: `doubleflyingdamage`
+
+## `$99`: `doubleundergrounddamage`
+
+## `$9A`: `mirrorcoat`
+
+## `$9B`: `checkfuturesight`
+
+## `$9C`: `futuresight`
+
+## `$9D`: `doubleminimizedamage`
+
+## `$9E`: `skipsuncharge`
+
+## `$9F`: `thunderaccuracy`
+
+## `$A0`: `teleport`
+
+## `$A1`: `beatup`
+
+## `$A2`: `ragedamage`
+
+## `$A3`: `resettypematchup`
+
+## `$A4`: `allstatsup`
+
+## `$A5`: `effect0xa5`
+
+## `$A6`: `raisesubnoanim`
+
+## `$A7`: `lowersubnoanim`
+
+## `$A8`: `effect0xa8`
+
+## `$A9`: `clearmissdamage`
+
+## `$AA`: `movedelay`
+
+## `$AB`: `hittarget`
+
+## `$AC`: `tristatuschance`
+
+## `$AD`: `supereffectivelooptext`
+
+## `$AE`: `startloop`
+
+## `$AF`: `curl`
+
+## `$FF`: `endmove`
+
+## `$00`: `endturn`
--- a/macros.asm
+++ b/macros.asm
@@ -14,6 +14,7 @@
 INCLUDE "macros/scripts/event.asm"
 INCLUDE "macros/scripts/text.asm"
 INCLUDE "macros/scripts/movement.asm"
+INCLUDE "macros/scripts/effect_commands.asm"
 INCLUDE "macros/scripts/move_anim.asm"
 INCLUDE "macros/scripts/trade_anim.asm"
 INCLUDE "macros/scripts/gfx_anim.asm"
--- /dev/null
+++ b/macros/scripts/effect_commands.asm
@@ -1,0 +1,186 @@
+command: macro
+	enum \1_command
+\1 equs "db \1_command"
+endm
+
+; BattleCommandPointers indexes (see battle/effect_commands.asm)
+	enum_start 1
+	command checkturn               ; 01
+	command checkobedience          ; 02
+	command usedmovetext            ; 03
+	command doturn                  ; 04
+	command critical                ; 05
+	command damagestats             ; 06
+	command stab                    ; 07
+	command damagevariation         ; 08
+	command checkhit                ; 09
+	command lowersub                ; 0a
+	command hittargetnosub          ; 0b
+	command raisesub                ; 0c
+	command failuretext             ; 0d
+	command checkfaint              ; 0e
+	command criticaltext            ; 0f
+	command supereffectivetext      ; 10
+	command checkdestinybond        ; 11
+	command buildopponentrage       ; 12
+	command poisontarget            ; 13
+	command sleeptarget             ; 14
+	command draintarget             ; 15
+	command eatdream                ; 16
+	command burntarget              ; 17
+	command freezetarget            ; 18
+	command paralyzetarget          ; 19
+	command selfdestruct            ; 1a
+	command mirrormove              ; 1b
+	command statup                  ; 1c
+	command statdown                ; 1d
+	command payday                  ; 1e
+	command conversion              ; 1f
+	command resetstats              ; 20
+	command storeenergy             ; 21
+	command unleashenergy           ; 22
+	command forceswitch             ; 23
+	command endloop                 ; 24
+	command flinchtarget            ; 25
+	command ohko                    ; 26
+	command recoil                  ; 27
+	command mist                    ; 28
+	command focusenergy             ; 29
+	command confuse                 ; 2a
+	command confusetarget           ; 2b
+	command heal                    ; 2c
+	command transform               ; 2d
+	command screen                  ; 2e
+	command poison                  ; 2f
+	command paralyze                ; 30
+	command substitute              ; 31
+	command rechargenextturn        ; 32
+	command mimic                   ; 33
+	command metronome               ; 34
+	command leechseed               ; 35
+	command splash                  ; 36
+	command disable                 ; 37
+	command cleartext               ; 38
+	command charge                  ; 39
+	command checkcharge             ; 3a
+	command traptarget              ; 3b
+	command effect0x3c              ; 3c
+	command rampage                 ; 3d
+	command checkrampage            ; 3e
+	command constantdamage          ; 3f
+	command counter                 ; 40
+	command encore                  ; 41
+	command painsplit               ; 42
+	command snore                   ; 43
+	command conversion2             ; 44
+	command lockon                  ; 45
+	command sketch                  ; 46
+	command defrostopponent         ; 47
+	command sleeptalk               ; 48
+	command destinybond             ; 49
+	command spite                   ; 4a
+	command falseswipe              ; 4b
+	command healbell                ; 4c
+	command kingsrock               ; 4d
+	command triplekick              ; 4e
+	command kickcounter             ; 4f
+	command thief                   ; 50
+	command arenatrap               ; 51
+	command nightmare               ; 52
+	command defrost                 ; 53
+	command curse                   ; 54
+	command protect                 ; 55
+	command spikes                  ; 56
+	command foresight               ; 57
+	command perishsong              ; 58
+	command startsandstorm          ; 59
+	command endure                  ; 5a
+	command checkcurl               ; 5b
+	command rolloutpower            ; 5c
+	command effect0x5d              ; 5d
+	command furycutter              ; 5e
+	command attract                 ; 5f
+	command happinesspower          ; 60
+	command present                 ; 61
+	command damagecalc              ; 62
+	command frustrationpower        ; 63
+	command safeguard               ; 64
+	command checksafeguard          ; 65
+	command getmagnitude            ; 66
+	command batonpass               ; 67
+	command pursuit                 ; 68
+	command clearhazards            ; 69
+	command healmorn                ; 6a
+	command healday                 ; 6b
+	command healnite                ; 6c
+	command hiddenpower             ; 6d
+	command startrain               ; 6e
+	command startsun                ; 6f
+	command attackup                ; 70
+	command defenseup               ; 71
+	command speedup                 ; 72
+	command specialattackup         ; 73
+	command specialdefenseup        ; 74
+	command accuracyup              ; 75
+	command evasionup               ; 76
+	command attackup2               ; 77
+	command defenseup2              ; 78
+	command speedup2                ; 79
+	command specialattackup2        ; 7a
+	command specialdefenseup2       ; 7b
+	command accuracyup2             ; 7c
+	command evasionup2              ; 7d
+	command attackdown              ; 7e
+	command defensedown             ; 7f
+	command speeddown               ; 80
+	command specialattackdown       ; 81
+	command specialdefensedown      ; 82
+	command accuracydown            ; 83
+	command evasiondown             ; 84
+	command attackdown2             ; 85
+	command defensedown2            ; 86
+	command speeddown2              ; 87
+	command specialattackdown2      ; 88
+	command specialdefensedown2     ; 89
+	command accuracydown2           ; 8a
+	command evasiondown2            ; 8b
+	command statupmessage           ; 8c
+	command statdownmessage         ; 8d
+	command statupfailtext          ; 8e
+	command statdownfailtext        ; 8f
+	command effectchance            ; 90
+	command statdownanim            ; 91
+	command statupanim              ; 92
+	command switchturn              ; 93
+	command fakeout                 ; 94
+	command bellydrum               ; 95
+	command psychup                 ; 96
+	command rage                    ; 97
+	command doubleflyingdamage      ; 98
+	command doubleundergrounddamage ; 99
+	command mirrorcoat              ; 9a
+	command checkfuturesight        ; 9b
+	command futuresight             ; 9c
+	command doubleminimizedamage    ; 9d
+	command skipsuncharge           ; 9e
+	command thunderaccuracy         ; 9f
+	command teleport                ; a0
+	command beatup                  ; a1
+	command ragedamage              ; a2
+	command resettypematchup        ; a3
+	command allstatsup              ; a4
+	command effect0xa5              ; a5
+	command raisesubnoanim          ; a6
+	command lowersubnoanim          ; a7
+	command effect0xa8              ; a8
+	command clearmissdamage         ; a9
+	command movedelay               ; aa
+	command hittarget               ; ab
+	command tristatuschance         ; ac
+	command supereffectivelooptext  ; ad
+	command startloop               ; ae
+	command curl                    ; af
+
+	enum_start -1, -1
+	command endmove
+	command endturn