diff options
| -rw-r--r-- | gfx/pics/animation.asm | 1146 | ||||
| -rw-r--r-- | home.asm | 80 | ||||
| -rwxr-xr-x | home/mon_stats.asm | 91 | ||||
| -rw-r--r-- | wram.asm | 2 | 
4 files changed, 93 insertions, 1226 deletions
| diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm deleted file mode 100644 index 5470793e..00000000 --- a/gfx/pics/animation.asm +++ /dev/null @@ -1,1146 +0,0 @@ -; Pic animation arrangement. - - -AnimateMon_Slow_Normal: ; d0000 -	hlcoord 12, 0 -	ld a, [wBattleMode] -	cp WILD_BATTLE -	jr z, .wild -	ld e, ANIM_MON_SLOW -	ld d, $0 -	call AnimateFrontpic -	ret - -.wild -	ld e, ANIM_MON_NORMAL -	ld d, $0 -	call AnimateFrontpic -	ret -; d001a - -AnimateMon_Menu: ; d001a -	ld e, ANIM_MON_MENU -	ld d, $0 -	call AnimateFrontpic -	ret -; d0022 - -AnimateMon_Trade: ; d0022 -	ld e, ANIM_MON_TRADE -	ld d, $0 -	call AnimateFrontpic -	ret -; d002a - -AnimateMon_Evolve: ; d002a -	ld e, ANIM_MON_EVOLVE -	ld d, $0 -	call AnimateFrontpic -	ret -; d0032 - -AnimateMon_Hatch: ; d0032 -	ld e, ANIM_MON_HATCH -	ld d, $0 -	call AnimateFrontpic -	ret -; d003a - -AnimateMon_Unused: ; d003a -	ld e, ANIM_MON_UNUSED -	ld d, $0 -	call AnimateFrontpic -	ret -; d0042 - - -POKEANIM: MACRO -	rept _NARG - -; Workaround for a bug where macro args can't come after the start of a symbol -if !def(\1_POKEANIM) -\1_POKEANIM equs "PokeAnim_\1_" -endc - -	db (\1_POKEANIM - PokeAnim_SetupCommands) / 2 -	shift -	endr - -	db (PokeAnim_Finish_ - PokeAnim_SetupCommands) / 2 -ENDM - - -PokeAnims: ; d0042 -	dw .Slow -	dw .Normal -	dw .Menu -	dw .Trade -	dw .Evolve -	dw .Hatch -	dw .Unused ; same as .Menu -	dw .Egg1 -	dw .Egg2 - -.Slow:   POKEANIM StereoCry, Setup2, Play -.Normal: POKEANIM StereoCry, Setup, Play -.Menu:   POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Trade:  POKEANIM Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play -.Evolve: POKEANIM Extra, Play, SetWait, Wait, CryNoWait, Setup, Play -.Hatch:  POKEANIM Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Unused: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Egg1:   POKEANIM Setup, Play -.Egg2:   POKEANIM Extra, Play - - -AnimateFrontpic: ; d008e -	call AnimateMon_CheckIfPokemon -	ret c -	call LoadMonAnimation -.loop -	call SetUpPokeAnim -	push af -	callba HDMATransferTileMapToWRAMBank3 -	pop af -	jr nc, .loop -	ret -; d00a3 - -LoadMonAnimation: ; d00a3 -	push hl -	ld c, e -	ld b, 0 -	ld hl, PokeAnims -	add hl, bc -	add hl, bc -	ld a, [hli] -	ld b, [hl] -	ld c, a -	pop hl -	call PokeAnim_InitPicAttributes -	ret -; d00b4 - -SetUpPokeAnim: ; d00b4 -	ldh a, [rSVBK] -	push af -	ld a, $2 -	ldh [rSVBK], a -	ld a, [wPokeAnimSceneIndex] -	ld c, a -	ld b, 0 -	ld hl, wPokeAnimPointer -	ld a, [hli] -	ld h, [hl] -	ld l, a -	add hl, bc -	ld a, [hl] -	ld hl, PokeAnim_SetupCommands -	rst JumpTable -	ld a, [wPokeAnimSceneIndex] -	ld c, a -	pop af -	ldh [rSVBK], a -	ld a, c -	and $80 -	ret z -	scf -	ret -; d00da - -PokeAnim_SetupCommands: ; d00da -setup_command: macro -\1_: dw \1 -endm -	setup_command PokeAnim_Finish -	setup_command PokeAnim_BasePic -	setup_command PokeAnim_SetWait -	setup_command PokeAnim_Wait -	setup_command PokeAnim_Setup -	setup_command PokeAnim_Setup2 -	setup_command PokeAnim_Extra -	setup_command PokeAnim_Play -	setup_command PokeAnim_Play2 -	setup_command PokeAnim_Cry -	setup_command PokeAnim_CryNoWait -	setup_command PokeAnim_StereoCry -; d00f2 - -PokeAnim_SetWait: ; d00f2 -	ld a, 18 -	ld [wPokeAnimWaitCounter], a -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a - -PokeAnim_Wait: ; d00fe -	ld hl, wPokeAnimWaitCounter -	dec [hl] -	ret nz -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d010b - -PokeAnim_Setup: ; d010b -	ld c, FALSE -	ld b, 0 -	call PokeAnim_InitAnim -	call PokeAnim_SetVBank1 -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d011d - -PokeAnim_Setup2: ; d011d -	ld c, FALSE -	ld b, 4 -	call PokeAnim_InitAnim -	call PokeAnim_SetVBank1 -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d012f - -PokeAnim_Extra: ; d012f -	ld c, TRUE -	ld b, 0 -	call PokeAnim_InitAnim -	call PokeAnim_SetVBank1 -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0141 - -PokeAnim_Play: ; d0141 -	call PokeAnim_DoAnimScript -	ld a, [wPokeAnimJumptableIndex] -	bit 7, a -	ret z -	call PokeAnim_PlaceGraphic -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0155 - -PokeAnim_Play2: ; d0155 -	call PokeAnim_DoAnimScript -	ld a, [wPokeAnimJumptableIndex] -	bit 7, a -	ret z -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0166 - -PokeAnim_BasePic: ; d0166 -	call PokeAnim_DeinitFrames -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0171 - -PokeAnim_Finish: ; d0171 -	call PokeAnim_DeinitFrames -	ld hl, wPokeAnimSceneIndex -	set 7, [hl] -	ret -; d017a - -PokeAnim_Cry: ; d017a -	ld a, [wPokeAnimSpecies] -	call _PlayCry -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0188 - -PokeAnim_CryNoWait: ; d0188 -	ld a, [wPokeAnimSpecies] -	call PlayCry2 -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d0196 - -PokeAnim_StereoCry: ; d0196 -	ld a, $f -	ld [CryTracks], a -	ld a, [wPokeAnimSpecies] -	call PlayStereoCry2 -	ld a, [wPokeAnimSceneIndex] -	inc a -	ld [wPokeAnimSceneIndex], a -	ret -; d01a9 - -PokeAnim_DeinitFrames: ; d01a9 -	ldh a, [rSVBK] -	push af -	ld a, $2 -	ldh [rSVBK], a -	call PokeAnim_PlaceGraphic -	callba HDMATransferTileMapToWRAMBank3 -	call PokeAnim_SetVBank0 -	callba HDMATransferAttrMapToWRAMBank3 -	pop af -	ldh [rSVBK], a -	ret -; d01c6 - -AnimateMon_CheckIfPokemon: ; d01c6 -	ld a, [CurPartySpecies] -	cp EGG -	jr z, .fail -	call IsAPokemon -	jr c, .fail -	and a -	ret - -.fail -	scf -	ret -; d01d6 - -PokeAnim_InitPicAttributes: ; d01d6 -	ldh a, [rSVBK] -	push af -	ld a, $2 -	ldh [rSVBK], a - -	push bc -	push de -	push hl -	ld hl, wPokeAnimSceneIndex -	ld bc, wPokeAnimStructEnd - wPokeAnimSceneIndex -	xor a -	call ByteFill -	pop hl -	pop de -	pop bc - -; bc contains anim pointer -	ld a, c -	ld [wPokeAnimPointer], a -	ld a, b -	ld [wPokeAnimPointer + 1], a -; hl contains TileMap coords -	ld a, l -	ld [wPokeAnimCoord], a -	ld a, h -	ld [wPokeAnimCoord + 1], a -; d = start tile -	ld a, d -	ld [wPokeAnimGraphicStartTile], a - -	ld a, $1 -	ld hl, CurPartySpecies -	call GetFarWRAMByte -	ld [wPokeAnimSpecies], a - -	ld a, $1 -	ld hl, UnownLetter -	call GetFarWRAMByte -	ld [wPokeAnimUnownLetter], a - -	call PokeAnim_GetSpeciesOrUnown -	ld [wPokeAnimSpeciesOrUnown], a - -	call PokeAnim_GetFrontpicDims -	ld a, c -	ld [wPokeAnimFrontpicHeight], a - -	pop af -	ldh [rSVBK], a -	ret -; d0228 - -PokeAnim_InitAnim: ; d0228 -	ldh a, [rSVBK] -	push af -	ld a, $2 -	ldh [rSVBK], a -	push bc -	ld hl, wPokeAnimExtraFlag -	ld bc, wPokeAnimStructEnd - wPokeAnimExtraFlag -	xor a -	call ByteFill -	pop bc -	ld a, b -	ld [wPokeAnimSpeed], a -	ld a, c -	ld [wPokeAnimExtraFlag], a -	call GetMonAnimPointer -	call GetMonFramesPointer -	call GetMonBitmaskPointer -	pop af -	ldh [rSVBK], a -	ret -; d0250 - -PokeAnim_DoAnimScript: ; d0250 -	xor a -	ldh [hBGMapMode], a -.loop -	ld a, [wPokeAnimJumptableIndex] -	and $7f -	ld hl, .Jumptable -	rst JumpTable -	ret -; d025d - -.Jumptable: ; d025d -	dw .RunAnim -	dw .WaitAnim -; d0261 - -.RunAnim: ; d0261 -	call PokeAnim_GetPointer -	ld a, [wPokeAnimCommand] -	cp -1 -	jr z, PokeAnim_End -	cp -2 -	jr z, .SetRepeat -	cp -3 -	jr z, .DoRepeat -	call PokeAnim_GetFrame -	ld a, [wPokeAnimParameter] -	call PokeAnim_GetDuration -	ld [wPokeAnimWaitCounter], a -	call PokeAnim_StartWaitAnim -.WaitAnim: ; d0282 -	ld a, [wPokeAnimWaitCounter] -	dec a -	ld [wPokeAnimWaitCounter], a -	ret nz -	call PokeAnim_StopWaitAnim -	ret -; d028e - -.SetRepeat: ; d028e -	ld a, [wPokeAnimParameter] -	ld [wPokeAnimRepeatTimer], a -	jr .loop -; d0296 - -.DoRepeat: ; d0296 -	ld a, [wPokeAnimRepeatTimer] -	and a -	ret z -	dec a -	ld [wPokeAnimRepeatTimer], a -	ret z -	ld a, [wPokeAnimParameter] -	ld [wPokeAnimFrame], a -	jr .loop -; d02a8 - -PokeAnim_End: ; d02a8 -	ld hl, wPokeAnimJumptableIndex -	set 7, [hl] -	ret -; d02ae - -PokeAnim_GetDuration: ; d02ae -; a * (1 + [wPokeAnimSpeed] / 16) -	ld c, a -	ld b, $0 -	ld hl, 0 -	ld a, [wPokeAnimSpeed] -	call AddNTimes -	ld a, h -	swap a -	and $f0 -	ld h, a -	ld a, l -	swap a -	and $f -	or h -	add c -	ret -; d02c8 - -PokeAnim_GetFrame: ; d02c8 -	call PokeAnim_PlaceGraphic -	ld a, [wPokeAnimCommand] -	and a -	ret z -	call PokeAnim_GetBitmaskIndex -	push hl -	call PokeAnim_CopyBitmaskToBuffer -	pop hl -	call PokeAnim_ConvertAndApplyBitmask -	ret -; d02dc - -PokeAnim_StartWaitAnim: ; d02dc -	ld a, [wPokeAnimJumptableIndex] -	inc a -	ld [wPokeAnimJumptableIndex], a -	ret -; d02e4 - -PokeAnim_StopWaitAnim: ; d02e4 -	ld a, [wPokeAnimJumptableIndex] -	dec a -	ld [wPokeAnimJumptableIndex], a -	ret -; d02ec - -PokeAnim_IsUnown: ; d02ec -	ld a, [wPokeAnimSpecies] -	cp UNOWN -	ret -; d02f2 - -PokeAnim_IsEgg: ; d02f2 -	ld a, [wPokeAnimSpecies] -	cp EGG -	ret -; d02f8 - -PokeAnim_GetPointer: ; d02f8 -	push hl -	ld a, [wPokeAnimFrame] -	ld e, a -	ld d, $0 -	ld hl, wPokeAnimPointerAddr -	ld a, [hli] -	ld h, [hl] -	ld l, a -	add hl, de -	add hl, de -	ld a, [wPokeAnimPointerBank] -	call GetFarHalfword -	ld a, l -	ld [wPokeAnimCommand], a -	ld a, h -	ld [wPokeAnimParameter], a -	ld hl, wPokeAnimFrame -	inc [hl] -	pop hl -	ret -; d031b - -PokeAnim_GetBitmaskIndex: ; d031b -	ld a, [wPokeAnimCommand] -	dec a -	ld c, a -	ld b, $0 -	ld hl, wPokeAnimFramesAddr -	ld a, [hli] -	ld h, [hl] -	ld l, a -	add hl, bc -	add hl, bc -	ld a, [wPokeAnimFramesBank] -	call GetFarHalfword -	ld a, [wPokeAnimFramesBank] -	call GetFarByte -	ld [wPokeAnimCurBitmask], a -	inc hl -	ret -; d033b - -PokeAnim_CopyBitmaskToBuffer: ; d033b -	call .GetSize -	push bc -	ld hl, wPokeAnimBitmaskAddr -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ld a, [wPokeAnimCurBitmask] -	call AddNTimes -	pop bc -	ld de, wPokeAnimBitmaskBuffer -	ld a, [wPokeAnimBitmaskBank] -	call FarCopyBytes -	ret -; d0356 - -.GetSize: ; d0356 -	push hl -	ld a, [wPokeAnimFrontpicHeight] -	sub 5 ; to get a number 0, 1, or 2 -	ld c, a -	ld b, 0 -	ld hl, .Sizes -	add hl, bc -	ld c, [hl] -	ld b, 0 -	pop hl -	ret -; d0368 - -.Sizes: db 4, 5, 7 - -poke_anim_box: MACRO -y = 7 -rept \1 -x = 7 +- \1 -rept \1 -	db x + y -x = x + 1 -endr -y = y + 7 -endr -endm - -PokeAnim_ConvertAndApplyBitmask: ; d036b -	xor a -	ld [wPokeAnimBitmaskCurBit], a -	ld [wPokeAnimBitmaskCurRow], a -	ld [wPokeAnimBitmaskCurCol], a -.loop -	push hl -	call .IsCurBitSet -	pop hl -	ld a, b -	and a -	jr z, .next - -	ld a, [wPokeAnimFramesBank] -	call GetFarByte -	inc hl -	push hl -	call .ApplyFrame -	pop hl - -.next -	push hl -	call .NextBit -	pop hl -	jr nc, .loop -	ret -; d0392 - -.IsCurBitSet: ; d0392 -; which byte -	ld a, [wPokeAnimBitmaskCurBit] -	and $f8 -	rrca -	rrca -	rrca -	ld e, a -	ld d, 0 -	ld hl, wPokeAnimBitmaskBuffer -	add hl, de -	ld b, [hl] -; which bit -	ld a, [wPokeAnimBitmaskCurBit] -	and $7 -	jr z, .skip - -	ld c, a -	ld a, b -.loop2 -	rrca -	dec c -	jr nz, .loop2 -	ld b, a - -.skip -	xor a -	bit 0, b -	jr z, .finish -	ld a, 1 - -.finish -	ld b, a -	ld hl, wPokeAnimBitmaskCurBit -	inc [hl] -	ret -; d03bd - -.ApplyFrame: ; d03bd -	push af -	call .GetCoord -	pop af -	push hl -	call .GetTilemap -	ld hl, wPokeAnimGraphicStartTile -	add [hl] -	pop hl -	ld [hl], a -	ret -; d03cd - -.GetCoord: ; d03cd -	call .GetStartCoord -	ld a, [wPokeAnimBitmaskCurRow] -	ld bc, SCREEN_WIDTH -	call AddNTimes -	ld a, [wBoxAlignment] -	and a -	jr nz, .go -	ld a, [wPokeAnimBitmaskCurCol] -	ld e, a -	ld d, 0 -	add hl, de -	jr .skip2 - -.go -	ld a, [wPokeAnimBitmaskCurCol] -	ld e, a -	ld a, l -	sub e -	ld l, a -	ld a, h -	sbc 0 -	ld h, a - -.skip2 -	ret -; d03f4 - -; XXX -	db 6, 5, 4 - -.GetTilemap: ; d03f7 -	push af -	ld a, [wPokeAnimFrontpicHeight] -	cp 5 -	jr z, .check_add_24 -	cp 6 -	jr z, .check_add_13 -	pop af -	ret - -.check_add_24 -	pop af -	cp 5 * 5 -	jr nc, .add_24 -	push hl -	push de -	ld hl, ._5by5 -	ld e, a -	ld d, 0 -	add hl, de -	ld a, [hl] -	pop de -	pop hl -	ret - -.add_24 -	add 24 -	ret - -.check_add_13 -	pop af -	cp 6 * 6 -	jr nc, .add_13 -	push hl -	push de -	ld hl, ._6by6 -	ld e, a -	ld d, 0 -	add hl, de -	ld a, [hl] -	pop de -	pop hl -	ret - -.add_13 -	add 13 -	ret -; d042f - -._5by5: -	poke_anim_box 5 -	; db  9, 10, 11, 12, 13 -	; db 16, 17, 18, 19, 20 -	; db 23, 24, 25, 26, 27 -	; db 30, 31, 32, 33, 34 -	; db 37, 38, 39, 40, 41 - -._6by6: -	poke_anim_box 6 -	; db  8,  9, 10, 11, 12, 13 -	; db 15, 16, 17, 18, 19, 20 -	; db 22, 23, 24, 25, 26, 27 -	; db 29, 30, 31, 32, 33, 34 -	; db 36, 37, 38, 39, 40, 41 -	; db 43, 44, 45, 46, 47, 48 - - -.GetStartCoord: ; d046c -	ld hl, wPokeAnimCoord -	ld a, [hli] -	ld h, [hl] -	ld l, a - -	ld a, [wPokeAnimFrontpicHeight] -	ld de, 0 -	ld bc, 6 -	cp 7 -	jr z, .okay -	ld de, SCREEN_WIDTH + 1 -	ld bc, SCREEN_WIDTH + 5 -	cp 6 -	jr z, .okay -	ld de, 2 * SCREEN_WIDTH + 1 -	ld bc, 2 * SCREEN_WIDTH + 5 -.okay - -	ld a, [wBoxAlignment] -	and a -	jr nz, .add_bc -	add hl, de -	ret - -.add_bc -	add hl, bc -	ret -; d0499 - -.NextBit: ; d0499 -	ld a, [wPokeAnimBitmaskCurRow] -	inc a -	ld [wPokeAnimBitmaskCurRow], a -	ld c, a -	ld a, [wPokeAnimFrontpicHeight] -	cp c -	jr nz, .no_carry -	xor a -	ld [wPokeAnimBitmaskCurRow], a -	ld a, [wPokeAnimBitmaskCurCol] -	inc a -	ld [wPokeAnimBitmaskCurCol], a -	ld c, a -	ld a, [wPokeAnimFrontpicHeight] -	cp c -	jr nz, .no_carry -	scf -	ret - -.no_carry -	xor a -	ret -; d04bd - -PokeAnim_PlaceGraphic: ; d04bd -	call .ClearBox -	ld a, [wBoxAlignment] -	and a -	jr nz, .flipped -	ld de, 1 -	ld bc, 0 -	jr .okay - -.flipped -	ld de, -1 -	ld bc, 6 - -.okay -	ld hl, wPokeAnimCoord -	ld a, [hli] -	ld h, [hl] -	ld l, a -	add hl, bc -	ld c, 7 -	ld b, 7 -	ld a, [wPokeAnimGraphicStartTile] -.loop -	push bc -	push hl -	push de -	ld de, SCREEN_WIDTH -.loop2 -	ld [hl], a -	inc a -	add hl, de -	dec b -	jr nz, .loop2 -	pop de -	pop hl -	add hl, de -	pop bc -	dec c -	jr nz, .loop -	ret -; d04f6 - -.ClearBox: ; d04f6 -	ld hl, wPokeAnimCoord -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ld b, 7 -	ld c, 7 -	call ClearBox -	ret -; d0504 - -PokeAnim_SetVBank1: ; d0504 -	ldh a, [rSVBK] -	push af -	ld a, $2 -	ldh [rSVBK], a -	xor a -	ldh [hBGMapMode], a -	call .SetFlag -	callba HDMATransferAttrMapToWRAMBank3 -	pop af -	ldh [rSVBK], a -	ret -; d051b - -.SetFlag: ; d051b -	call PokeAnim_GetAttrMapCoord -	ld b, 7 -	ld c, 7 -	ld de, SCREEN_WIDTH -.row -	push bc -	push hl -.col -	ld a, [hl] -	or 8 -	ld [hl], a -	add hl, de -	dec c -	jr nz, .col -	pop hl -	inc hl -	pop bc -	dec b -	jr nz, .row -	ret -; d0536 - -PokeAnim_SetVBank0: ; d0536 -	call PokeAnim_GetAttrMapCoord -	ld b, 7 -	ld c, 7 -	ld de, SCREEN_WIDTH -.row -	push bc -	push hl -.col -	ld a, [hl] -	and $f7 -	ld [hl], a -	add hl, de -	dec c -	jr nz, .col -	pop hl -	inc hl -	pop bc -	dec b -	jr nz, .row -	ret -; d0551 - -PokeAnim_GetAttrMapCoord: ; d0551 -	ld hl, wPokeAnimCoord -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ld de, AttrMap - TileMap -	add hl, de -	ret -; d055c - -GetMonAnimPointer: ; d055c -	call PokeAnim_IsEgg -	jr z, .egg - -	ld c, BANK(UnownAnimations) -	ld hl, UnownAnimationPointers -	ld de, UnownAnimationExtraPointers -	call PokeAnim_IsUnown -	jr z, .unown -	ld c, BANK(PicAnimations) -	ld hl, AnimationPointers -	ld de, AnimationExtraPointers -.unown - -	ld a, [wPokeAnimExtraFlag] -	and a -	jr z, .extras -	ld h, d -	ld l, e -.extras - -	ld a, [wPokeAnimSpeciesOrUnown] -	dec a -	ld e, a -	ld d, 0 -	add hl, de -	add hl, de -	ld a, c -	ld [wPokeAnimPointerBank], a -	call GetFarHalfword -	ld a, l -	ld [wPokeAnimPointerAddr], a -	ld a, h -	ld [wPokeAnimPointerAddr + 1], a -	ret - -.egg -	ld hl, EggAnimation -	ld c, BANK(EggAnimation) -	ld a, [wPokeAnimExtraFlag] -	and a -	jr z, .extras_egg -	ld hl, EggAnimationExtra -	ld c, BANK(EggAnimationExtra) -.extras_egg - -	ld a, c -	ld [wPokeAnimPointerBank], a -	ld a, l -	ld [wPokeAnimPointerAddr], a -	ld a, h -	ld [wPokeAnimPointerAddr + 1], a -	ret -; d05b4 - -PokeAnim_GetFrontpicDims: ; d05b4 -	ldh a, [rSVBK] -	push af -	ld a, $1 -	ldh [rSVBK], a -	ld a, [CurPartySpecies] -	ld [CurSpecies], a -	call GetBaseData -	ld a, [BasePicSize] -	and $f -	ld c, a -	pop af -	ldh [rSVBK], a -	ret -; d05ce - -GetMonFramesPointer: ; d05ce -	call PokeAnim_IsEgg -	jr z, .egg - -	call PokeAnim_IsUnown -	ld b, BANK(UnownFramesPointers) -	ld c, BANK(UnownsFrames) -	ld hl, UnownFramesPointers -	jr z, .got_frames -	ld a, [wPokeAnimSpecies] -	cp CHIKORITA -	ld b, BANK(FramesPointers) -	ld c, BANK(KantoFrames) -	ld hl, FramesPointers -	jr c, .got_frames -	ld c, BANK(JohtoFrames) -.got_frames -	ld a, c -	ld [wPokeAnimFramesBank], a - -	ld a, [wPokeAnimSpeciesOrUnown] -	dec a -	ld e, a -	ld d, 0 -	add hl, de -	add hl, de -	ld a, b -	call GetFarHalfword -	ld a, l -	ld [wPokeAnimFramesAddr], a -	ld a, h -	ld [wPokeAnimFramesAddr + 1], a -	ret - -.egg -	ld hl, EggFrames -	ld c, BANK(EggFrames) -	ld a, c -	ld [wPokeAnimFramesBank], a -	ld a, l -	ld [wPokeAnimFramesAddr], a -	ld a, h -	ld [wPokeAnimFramesAddr + 1], a -	ret -; d061b - -GetMonBitmaskPointer: ; d061b -	call PokeAnim_IsEgg -	jr z, .egg - -	call PokeAnim_IsUnown -	ld a, BANK(UnownBitmasksPointers) -	ld hl, UnownBitmasksPointers -	jr z, .unown -	ld a, BANK(BitmasksPointers) -	ld hl, BitmasksPointers -.unown -	ld [wPokeAnimBitmaskBank], a - -	ld a, [wPokeAnimSpeciesOrUnown] -	dec a -	ld e, a -	ld d, 0 -	add hl, de -	add hl, de -	ld a, [wPokeAnimBitmaskBank] -	call GetFarHalfword -	ld a, l -	ld [wPokeAnimBitmaskAddr], a -	ld a, h -	ld [wPokeAnimBitmaskAddr + 1], a -	ret - -.egg -	ld c, BANK(EggBitmasks) -	ld hl, EggBitmasks -	ld a, c -	ld [wPokeAnimBitmaskBank], a -	ld a, l -	ld [wPokeAnimBitmaskAddr], a -	ld a, h -	ld [wPokeAnimBitmaskAddr + 1], a -	ret -; d065c - -PokeAnim_GetSpeciesOrUnown: ; d065c -	call PokeAnim_IsUnown -	jr z, .unown -	ld a, [wPokeAnimSpecies] -	ret - -.unown -	ld a, [wPokeAnimUnownLetter] -	ret -; d0669 - -Predef48: ; d0669 Predef 48 -	ld a, $1 -	ld [wBoxAlignment], a -HOF_AnimateFrontpic: ; d066e Predef 49 -	call AnimateMon_CheckIfPokemon -	jr c, .fail -	ld h, d -	ld l, e -	push bc -	push hl -	ld de, VTiles2 -	predef FrontpicPredef -	pop hl -	pop bc -	ld d, 0 -	ld e, c -	call AnimateFrontpic -	xor a -	ld [wBoxAlignment], a -	ret - -.fail -	xor a -	ld [wBoxAlignment], a -	inc a -	ld [CurPartySpecies], a -	ret -; d0695 @@ -260,85 +260,7 @@ INCLUDE "home/names.asm"  INCLUDE "home/scrolling_menu.asm"  INCLUDE "home/stone_queue.asm"  INCLUDE "home/trainers.asm" - -DrawBattleHPBar:: -	push hl -	push de -	push bc -	ld a, $60 -	ld [hli], a -	ld a, $61 -	ld [hli], a -	push hl -	ld a, $62 -.asm_3990 -	ld [hli], a -	dec d -	jr nz, .asm_3990 -	ld a, $6b -	add b -	ld [hl], a -	pop hl -	ld a, e -	and a -	jr nz, .asm_39a3 -	ld a, c -	and a -	jr z, .asm_39b6 -	ld e, $1 -.asm_39a3 -	ld a, e -	sub $8 -	jr c, .asm_39b2 -	ld e, a -	ld a, $6a -	ld [hli], a -	ld a, e -	and a -	jr z, .asm_39b6 -	jr .asm_39a3 - -.asm_39b2 -	ld a, $62 -	add e -	ld [hl], a -.asm_39b6 -	pop bc -	pop de -	pop hl -	ret - -PrepMonFrontpic:: -	ld a, $1 -	ld [wcf3b], a -PrepMonFrontpic_:: -	ld a, [wCurPartySpecies] -	and a -	jr z, .not_pokemon -	cp EGG -	jr z, .egg -	cp NUM_POKEMON + 1 -	jr nc, .not_pokemon -.egg -	push hl -	ld de, $9000 -	predef GetMonFrontpic -	pop hl -	xor a -	ldh [hGraphicStartTile], a -	lb bc, 7, 7 -	predef PlaceGraphic -	xor a -	ld [wcf3b], a -	ret - -.not_pokemon -	xor a -	ld [wcf3b], a -	inc a -	ld [wCurPartySpecies], a -	ret - +INCLUDE "home/mon_stats.asm"  INCLUDE "home/cry.asm"  PrintLevel:: ; 3a50 diff --git a/home/mon_stats.asm b/home/mon_stats.asm new file mode 100755 index 00000000..180ea533 --- /dev/null +++ b/home/mon_stats.asm @@ -0,0 +1,91 @@ +DrawBattleHPBar:: +; Draw an HP bar d tiles long at hl +; Fill it up to e pixels + +	push hl +	push de +	push bc + +; Place 'HP:' +	ld a, $60 +	ld [hli], a +	ld a, $61 +	ld [hli], a + +; Draw a template +	push hl +	ld a, $62 ; empty bar +.template +	ld [hli], a +	dec d +	jr nz, .template +	ld a, $6b ; bar end +	add b +	ld [hl], a +	pop hl + +; Safety check # pixels +	ld a, e +	and a +	jr nz, .fill +	ld a, c +	and a +	jr z, .done +	ld e, 1 + +.fill +; Keep drawing tiles until pixel length is reached +	ld a, e +	sub TILE_WIDTH +	jr c, .lastbar + +	ld e, a +	ld a, $6a ; full bar +	ld [hli], a +	ld a, e +	and a +	jr z, .done +	jr .fill + +.lastbar +	ld a, $62  ; empty bar +	add e      ; + e +	ld [hl], a + +.done +	pop bc +	pop de +	pop hl +	ret + +PrepMonFrontpic:: +	ld a, $1 +	ld [wcf3b], a + +_PrepMonFrontpic:: +	ld a, [wCurPartySpecies] +	and a +	jr z, .not_pokemon +	cp EGG +	jr z, .egg +	cp NUM_POKEMON + 1 +	jr nc, .not_pokemon +.egg +	push hl +	ld de, vTiles2 +	predef GetMonFrontpic +	pop hl +	xor a +	ldh [hGraphicStartTile], a +	lb bc, 7, 7 +	predef PlaceGraphic +	xor a +	ld [wcf3b], a +	ret + +.not_pokemon +	xor a +	ld [wcf3b], a +	inc a +	ld [wCurPartySpecies], a +	ret
\ No newline at end of file @@ -121,7 +121,7 @@ SECTION "WRAM", WRAM0  wLZAddress:: dw ; c2c2  wLZBank::    db ; c2c4 -wBoxAlignment:: db +wBoxAlignment:: db ; c2c5  wInputType::        db ; c2c6  wAutoInputAddress:: dw ; c2c7 | 
