Battle intro animation function

This commit is contained in:
PikalaxALT 2015-10-17 17:18:52 -04:00
parent da7849d800
commit f53d65c536
12 changed files with 727 additions and 642 deletions

View File

@ -5587,7 +5587,7 @@ Function3e4bc: ; 3e4bc
call GetPartyParamLocation call GetPartyParamLocation
.asm_3e4e2 .asm_3e4e2
ld de, wd25e ld de, wListMoves_MoveIndicesBuffer
ld bc, NUM_MOVES ld bc, NUM_MOVES
call CopyBytes call CopyBytes
xor a xor a
@ -8589,7 +8589,7 @@ Function3f607: ; 3f607
Function3f662: ; 3f662 Function3f662: ; 3f662
ld hl, EnemyMonMoves ld hl, EnemyMonMoves
ld de, wd25e ld de, wListMoves_MoveIndicesBuffer
ld b, NUM_MOVES ld b, NUM_MOVES
.loop .loop
ld a, [de] ld a, [de]

View File

@ -149,3 +149,10 @@ const_value = 1
const HAPPINESS_MASSAGE ; 12 const HAPPINESS_MASSAGE ; 12
const HAPPINESS_GAINLEVELATHOME ; 13 const HAPPINESS_GAINLEVELATHOME ; 13
const_def
const LINK_NULL
const LINK_TIMECAPSULE
const LINK_TRADECENTER
const LINK_COLOSSEUM
const LINK_MOBILE

View File

@ -2202,7 +2202,7 @@ Script_name: ; 0x97716
; memory (SingleByteParam) ; memory (SingleByteParam)
call GetScriptByte call GetScriptByte
ld [wcf61], a ld [wNamedObjectTypeBuffer], a
ContinueToGetName: ; 0x9771c ContinueToGetName: ; 0x9771c
call GetScriptByte call GetScriptByte
@ -2219,7 +2219,7 @@ Script_trainerclassname: ; 0x9772b
; memory (SingleByteParam) ; memory (SingleByteParam)
ld a, TRAINER_NAME ld a, TRAINER_NAME
ld [wcf61], a ld [wNamedObjectTypeBuffer], a
jr ContinueToGetName ; 0x97730 $ea jr ContinueToGetName ; 0x97730 $ea
; 0x97732 ; 0x97732

View File

@ -86,7 +86,7 @@ SpecialBuenaPrize: ; 8afd4
call Function8b0e2 call Function8b0e2
jr z, .asm_8b05f jr z, .asm_8b05f
ld [wcf75], a ld [wcf75], a
call GetBuenaPrize call Buena_getprize
ld a, [hl] ld a, [hl]
ld [wd265], a ld [wd265], a
call GetItemName call GetItemName
@ -95,7 +95,7 @@ SpecialBuenaPrize: ; 8afd4
call YesNoBox call YesNoBox
jr c, .asm_8afeb jr c, .asm_8afeb
ld a, [wcf75] ld a, [wcf75]
call GetBuenaPrize call Buena_getprize
inc hl inc hl
ld a, [hld] ld a, [hld]
ld c, a ld c, a
@ -205,7 +205,7 @@ Function8b09e: ; 8b09e
call GetMemTileCoord call GetMemTileCoord
ld bc, $0015 ld bc, $0015
add hl, bc add hl, bc
ld de, String_8b0ca ld de, .Points_string
call PlaceString call PlaceString
ld h, b ld h, b
ld l, c ld l, c
@ -219,7 +219,7 @@ Function8b09e: ; 8b09e
ret ret
; 8b0ca ; 8b0ca
String_8b0ca: .Points_string:
db "Points@" db "Points@"
; 8b0d1 ; 8b0d1
@ -230,19 +230,19 @@ MenuDataHeader_0x8b0d1: ; 0x8b0d1
; 8b0d6 ; 8b0d6
Function8b0d6: ; 8b0d6 Function8b0d6: ; 8b0d6
ld hl, MenuDataHeader_0x8b0dd ld hl, .menudataheader
call LoadMenuDataHeader call LoadMenuDataHeader
ret ret
; 8b0dd ; 8b0dd
MenuDataHeader_0x8b0dd: ; 0x8b0dd .menudataheader: ; 0x8b0dd
db $40 ; flags db $40 ; flags
db 00, 00 ; start coords db 00, 00 ; start coords
db 11, 17 ; end coords db 11, 17 ; end coords
; 8b0e2 ; 8b0e2
Function8b0e2: ; 8b0e2 Function8b0e2: ; 8b0e2
ld hl, MenuDataHeader_0x8b113 ld hl, .MenuDataHeader
call CopyMenuDataHeader call CopyMenuDataHeader
ld a, [MenuSelection] ld a, [MenuSelection]
ld [wcf88], a ld [wcf88], a
@ -268,45 +268,46 @@ Function8b0e2: ; 8b0e2
ret ret
; 8b113 ; 8b113
MenuDataHeader_0x8b113: ; 0x8b113 .MenuDataHeader: ; 0x8b113
db $40 ; flags db $40 ; flags
db 01, 01 ; start coords db 01, 01 ; start coords
db 09, 16 ; end coords db 09, 16 ; end coords
dw MenuData2_0x8b11c dw .MenuData2
db 1 ; default option db 1 ; default option
; 0x8b11b ; 0x8b11b
db 0 db 0
MenuData2_0x8b11c: ; 0x8b11c .MenuData2: ; 0x8b11c
db $10 ; flags db $10 ; flags
db 4 ; items db 4 ; items
db $d, $1 db $d, $1
dbw BANK(Unknown_8b129), Unknown_8b129 dba .indices
dbw BANK(BuenaPrizeItem), BuenaPrizeItem dba .prizeitem
dbw BANK(BuenaPrizePoints), BuenaPrizePoints dba .prizepoints
; 8b129 ; 8b129
Unknown_8b129: ; 8b129 .indices: ; 8b129
db 9 db 9
db 1, 2, 3, 4, 5, 6, 7, 8, 9, $ff db 1, 2, 3, 4, 5, 6, 7, 8, 9
db -1
; 8b134 ; 8b134
BuenaPrizeItem: ; 8b134 .prizeitem: ; 8b134
ld a, [MenuSelection] ld a, [MenuSelection]
call GetBuenaPrize call Buena_getprize
ld a, [hl] ld a, [hl]
push de push de
ld [wd265], a ld [wNamedObjectIndexBuffer], a
call GetItemName call GetItemName
pop hl pop hl
call PlaceString call PlaceString
ret ret
; 8b147 ; 8b147
BuenaPrizePoints: ; 8b147 .prizepoints: ; 8b147
ld a, [MenuSelection] ld a, [MenuSelection]
call GetBuenaPrize call Buena_getprize
inc hl inc hl
ld a, [hl] ld a, [hl]
ld c, "0" ld c, "0"
@ -315,9 +316,9 @@ BuenaPrizePoints: ; 8b147
ret ret
; 8b154 ; 8b154
GetBuenaPrize: ; 8b154 Buena_getprize: ; 8b154
dec a dec a
ld hl, BuenaPrizes ld hl, .prizes
ld b, 0 ld b, 0
ld c, a ld c, a
rept 2 rept 2
@ -326,7 +327,7 @@ endr
ret ret
; 8b15e ; 8b15e
BuenaPrizes: ; 8b15e .prizes: ; 8b15e
db ULTRA_BALL, 2 db ULTRA_BALL, 2
db FULL_RESTORE, 2 db FULL_RESTORE, 2
db NUGGET, 3 db NUGGET, 3

View File

@ -836,7 +836,7 @@ Function33c0:
; 33c3 ; 33c3
GetName:: ; 33c3 GetName:: ; 33c3
; Return name CurSpecies from name list wcf61 in StringBuffer1. ; Return name CurSpecies from name list wNamedObjectTypeBuffer in StringBuffer1.
ld a, [hROMBank] ld a, [hROMBank]
push af push af
@ -844,7 +844,7 @@ GetName:: ; 33c3
push bc push bc
push de push de
ld a, [wcf61] ld a, [wNamedObjectTypeBuffer]
cp PKMN_NAME cp PKMN_NAME
jr nz, .NotPokeName jr nz, .NotPokeName
@ -858,7 +858,7 @@ GetName:: ; 33c3
jr .done jr .done
.NotPokeName .NotPokeName
ld a, [wcf61] ld a, [wNamedObjectTypeBuffer]
dec a dec a
ld e, a ld e, a
ld d, 0 ld d, 0
@ -994,7 +994,7 @@ GetItemName:: ; 3468
ld [CurSpecies], a ld [CurSpecies], a
ld a, ITEM_NAME ld a, ITEM_NAME
ld [wcf61], a ld [wNamedObjectTypeBuffer], a
call GetName call GetName
jr .Copied jr .Copied
.TM .TM
@ -1123,7 +1123,7 @@ GetMoveName:: ; 34f8
push hl push hl
ld a, MOVE_NAME ld a, MOVE_NAME
ld [wcf61], a ld [wNamedObjectTypeBuffer], a
ld a, [wNamedObjectIndexBuffer] ; move id ld a, [wNamedObjectIndexBuffer] ; move id
ld [CurSpecies], a ld [CurSpecies], a
@ -1736,7 +1736,7 @@ PrintLevel:: ; 382d
; Print TempMonLevel at hl ; Print TempMonLevel at hl
ld a, [TempMonLevel] ld a, [TempMonLevel]
ld [hl], LV_CHAR ld [hl], "<LV>"
inc hl inc hl
; How many digits? ; How many digits?
@ -1752,7 +1752,7 @@ PrintLevel:: ; 382d
Function383d:: ; 383d Function383d:: ; 383d
; Print :L and all 3 digits ; Print :L and all 3 digits
ld [hl], LV_CHAR ld [hl], "<LV>"
inc hl inc hl
ld c, 3 ld c, 3
; 3842 ; 3842
@ -1766,7 +1766,7 @@ Function3842:: ; 3842
Function384d:: ; 384d Function384d:: ; 384d
ld hl, wd25e ld hl, wListMoves_MoveIndicesBuffer
ld c, a ld c, a
ld b, 0 ld b, 0
add hl, bc add hl, bc

View File

@ -131,9 +131,9 @@ YesNoBox:: ; 1dcf
PlaceYesNoBox:: ; 1dd2 PlaceYesNoBox:: ; 1dd2
jr _YesNoBox jr _YesNoBox
Function1dd4:: ; 1dd4 PlaceGenericTwoOptionBox:: ; 1dd4
call LoadMenuDataHeader call LoadMenuDataHeader
jr Function1dfe jr InterpretTwoOptionMenu
_YesNoBox:: ; 1dd9 _YesNoBox:: ; 1dd9
; Return nc (yes) or c (no). ; Return nc (yes) or c (no).
@ -141,13 +141,15 @@ _YesNoBox:: ; 1dd9
ld hl, YesNoMenuDataHeader ld hl, YesNoMenuDataHeader
call CopyMenuDataHeader call CopyMenuDataHeader
pop bc pop bc
; This seems to be an overflow prevention, but
; it was coded wrong.
ld a, b ld a, b
cp $e cp SCREEN_WIDTH - 6
jr nz, .asm_1de9 jr nz, .okay ; should this be "jr nc"?
ld a, $e ld a, SCREEN_WIDTH - 6
ld b, a ld b, a
.asm_1de9 .okay
ld a, b ld a, b
ld [wcf83], a ld [wcf83], a
add $5 add $5
@ -158,7 +160,7 @@ _YesNoBox:: ; 1dd9
ld [wcf84], a ld [wcf84], a
call Function1c00 call Function1c00
Function1dfe:: ; 1dfe InterpretTwoOptionMenu:: ; 1dfe
call InterpretMenu2 call InterpretMenu2
push af push af
ld c, $f ld c, $f

View File

@ -78,6 +78,13 @@ bigdw: MACRO ; big-endian word
dx 2, \1 dx 2, \1
ENDM ENDM
dba: MACRO ; dbw bank, address
dbw BANK(\1), \1
ENDM
dab: MACRO ; dwb address, bank
dwb \1, BANK(\1)
ENDM
lb: MACRO ; r, hi, lo lb: MACRO ; r, hi, lo
ld \1, (\2) << 8 + (\3) ld \1, (\2) << 8 + (\3)

View File

@ -1,126 +1,164 @@
charmap "@", $50 ; Control characters
charmap "<START>", $00
charmap "<PLAY_G>", $14 ; <PLAYER> + gender
charmap "<DAY>", $15
charmap "<LNBRK>", $22
charmap "<POKE>", $24
charmap "<RED>", $38
charmap "<GREEN>", $39
charmap "<ENEMY>", $3f
charmap "<MOM>", $49
charmap "<PKMN>", $4a
charmap "<NEXT>", $4e
charmap "<LINE>", $4f
charmap "#", $54 charmap "@", $50
charmap "№", $74 charmap "<PARA>", $51
charmap "…", $75 charmap "<PLAYER>", $52
charmap "┌", $79 charmap "<RIVAL>", $53
charmap "─", $7a charmap "#", $54
charmap "┐", $7b charmap "<CONT>", $55
charmap "│", $7c charmap "<......>", $56
charmap "└", $7d charmap "<DONE>", $57
charmap "┘", $7e charmap "<PROMPT>", $58
charmap " ", $7f charmap "<TARGET>", $59
charmap "", $6e charmap "<USER>", $5a
charmap "″", $6f charmap "<PC>", $5b
charmap "<TM>", $5c
charmap "<TRNER>", $5d
charmap "<ROCKET>", $5e
charmap "<DEXEND>", $5f
; Actual characters
charmap "", $6e
charmap "<LV>", $6e
charmap "″", $6f
charmap "A", $80 charmap "<PO>", $70
charmap "B", $81 charmap "<KE>", $71
charmap "C", $82 charmap "№", $74
charmap "D", $83 charmap "…", $75
charmap "E", $84
charmap "F", $85
charmap "G", $86
charmap "H", $87
charmap "I", $88
charmap "J", $89
charmap "K", $8a
charmap "L", $8b
charmap "M", $8c
charmap "N", $8d
charmap "O", $8e
charmap "P", $8f
charmap "Q", $90
charmap "R", $91
charmap "S", $92
charmap "T", $93
charmap "U", $94
charmap "V", $95
charmap "W", $96
charmap "X", $97
charmap "Y", $98
charmap "Z", $99
charmap "(", $9a charmap "┌", $79
charmap ")", $9b charmap "─", $7a
charmap ":", $9c charmap "┐", $7b
charmap ";", $9d charmap "│", $7c
charmap "[", $9e charmap "└", $7d
charmap "]", $9f charmap "┘", $7e
charmap " ", $7f
charmap "a", $a0 charmap "A", $80
charmap "b", $a1 charmap "B", $81
charmap "c", $a2 charmap "C", $82
charmap "d", $a3 charmap "D", $83
charmap "e", $a4 charmap "E", $84
charmap "f", $a5 charmap "F", $85
charmap "g", $a6 charmap "G", $86
charmap "h", $a7 charmap "H", $87
charmap "i", $a8 charmap "I", $88
charmap "j", $a9 charmap "J", $89
charmap "k", $aa charmap "K", $8a
charmap "l", $ab charmap "L", $8b
charmap "m", $ac charmap "M", $8c
charmap "n", $ad charmap "N", $8d
charmap "o", $ae charmap "O", $8e
charmap "p", $af charmap "P", $8f
charmap "q", $b0 charmap "Q", $90
charmap "r", $b1 charmap "R", $91
charmap "s", $b2 charmap "S", $92
charmap "t", $b3 charmap "T", $93
charmap "u", $b4 charmap "U", $94
charmap "v", $b5 charmap "V", $95
charmap "w", $b6 charmap "W", $96
charmap "x", $b7 charmap "X", $97
charmap "y", $b8 charmap "Y", $98
charmap "z", $b9 charmap "Z", $99
charmap "Ä", $c0 charmap "(", $9a
charmap "Ö", $c1 charmap ")", $9b
charmap "Ü", $c2 charmap ":", $9c
charmap "ä", $c3 charmap ";", $9d
charmap "ö", $c4 charmap "[", $9e
charmap "ü", $c5 charmap "]", $9f
charmap "'d", $d0 charmap "a", $a0
charmap "'l", $d1 charmap "b", $a1
charmap "'m", $d2 charmap "c", $a2
charmap "'r", $d3 charmap "d", $a3
charmap "'s", $d4 charmap "e", $a4
charmap "'t", $d5 charmap "f", $a5
charmap "'v", $d6 charmap "g", $a6
charmap "h", $a7
charmap "i", $a8
charmap "j", $a9
charmap "k", $aa
charmap "l", $ab
charmap "m", $ac
charmap "n", $ad
charmap "o", $ae
charmap "p", $af
charmap "q", $b0
charmap "r", $b1
charmap "s", $b2
charmap "t", $b3
charmap "u", $b4
charmap "v", $b5
charmap "w", $b6
charmap "x", $b7
charmap "y", $b8
charmap "z", $b9
charmap "'", $e0 charmap "Ä", $c0
charmap "-", $e3 charmap "Ö", $c1
charmap "Ü", $c2
charmap "ä", $c3
charmap "ö", $c4
charmap "ü", $c5
charmap "?", $e6 charmap "'d", $d0
charmap "!", $e7 charmap "'l", $d1
charmap ".", $e8 charmap "'m", $d2
charmap "&", $e9 charmap "'r", $d3
charmap "'s", $d4
charmap "'t", $d5
charmap "'v", $d6
charmap "é", $ea charmap "'", $e0
charmap "→", $eb charmap "<PK>", $e1
charmap "▷", $ec charmap "<MN>", $e2
charmap "▶", $ed charmap "-", $e3
charmap "▼", $ee
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
charmap "·", $f2
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
charmap "0", $f6 charmap "?", $e6
charmap "1", $f7 charmap "!", $e7
charmap "2", $f8 charmap ".", $e8
charmap "3", $f9 charmap "&", $e9
charmap "4", $fa
charmap "5", $fb charmap "é", $ea
charmap "6", $fc charmap "→", $eb
charmap "7", $fd charmap "▷", $ec
charmap "8", $fe charmap "▶", $ed
charmap "9", $ff charmap "▼", $ee
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
charmap "·", $f2
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
charmap "0", $f6
charmap "1", $f7
charmap "2", $f8
charmap "3", $f9
charmap "4", $fa
charmap "5", $fb
charmap "6", $fc
charmap "7", $fd
charmap "8", $fe
charmap "9", $ff
; Japanese, for those bits of text that
; were not translated to English.
charmap "ガ", $5 charmap "ガ", $5
charmap "ギ", $6 charmap "ギ", $6
@ -277,34 +315,3 @@
charmap "ー", $e3 charmap "ー", $e3
charmap "ァ", $e9 charmap "ァ", $e9
charmap "<PLAYER>", $52
charmap "<RIVAL>", $53
charmap "<RED>", $38
charmap "<GREEN>", $39
charmap "<TARGET>", $59
charmap "<USER>", $5a
charmap "<ENEMY>", $3f
charmap "<PKMN>", $4a
charmap "<PK>", $e1
charmap "<MN>", $e2
charmap "<PO>", $70
charmap "<KE>", $71
charmap "<MOM>", $49
charmap "<POKE>", $24
charmap "<PLAY_G>", $14 ; <PLAYER> + gender
charmap "<PARA>", $51
charmap "<LINE>", $4f
charmap "<NEXT>", $4e
charmap "<CONT>", $55
charmap "<DONE>", $57
charmap "<PROMPT>", $58
charmap "<DAY>", $15
charmap "<PC>", $5b
charmap "<TM>", $5c
charmap "<TRNER>", $5d
charmap "<ROCKET>", $5e
charmap "<......>", $56
charmap "<START>", $00
charmap "<DEXEND>", $5f
charmap "<LNBRK>", $22

958
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -1959,7 +1959,7 @@ Function100c74: ; 100c74
ld c, 8 ld c, 8
call TextBox call TextBox
ld hl, BattleMonMoves ld hl, BattleMonMoves
ld de, wd25e ld de, wListMoves_MoveIndicesBuffer
ld bc, NUM_MOVES ld bc, NUM_MOVES
call CopyBytes call CopyBytes
ld a, SCREEN_WIDTH * 2 ld a, SCREEN_WIDTH * 2

View File

@ -7,8 +7,10 @@ SECTION "SRAM Bank 0", SRAM [$a600], BANK [0]
s0_a600:: ds $11a s0_a600:: ds $11a
s0_a71a:: ds $11a s0_a71a:: ds $11a
s0_a834:: ds $1d7 s0_a834:: ds 1
s0_aa0b:: ds $1d7 s0_a835:: ds 10 * (PartyMon1StatsEnd - PartyMon1Item)
s0_aa0b:: ds 1
s0_aa0c:: ds 10 * (PartyMon1StatsEnd - PartyMon1Item)
sMysteryGiftItem:: ds 1 sMysteryGiftItem:: ds 1
s0_abe3:: ds 1 s0_abe3:: ds 1

View File

@ -1179,7 +1179,7 @@ MonType:: ; cf5f
CurSpecies:: ; cf60 CurSpecies:: ; cf60
ds 1 ds 1
wcf61:: ds 2 wNamedObjectTypeBuffer:: ds 2
wIntroSceneIndex:: wIntroSceneIndex::
wcf63:: ds 1 wcf63:: ds 1
wNrOfBeatenBattleTowerTrainers:: wNrOfBeatenBattleTowerTrainers::
@ -1594,7 +1594,8 @@ wd195:: ds 1
wd196:: ds 1 wd196:: ds 1
wd197:: ds 2 wd197:: ds 2
wd199:: ds 1 wd199:: ds 1
wPermission:: ds 3 wPermission:: ds 1
ds 2
; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles) ; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
MapHeader:: ; d19d MapHeader:: ; d19d
@ -1855,7 +1856,7 @@ CurDamage:: ; d256
ds 2 ds 2
wd25a:: ds 3 wd25a:: ds 3
wd25d:: ds 1 wd25d:: ds 1
wd25e:: ds 4 wListMoves_MoveIndicesBuffer:: ds 4
wd262:: ds 1 wd262:: ds 1
wd263:: ds 1 wd263:: ds 1
wd264:: ds 1 wd264:: ds 1