diff options
| -rw-r--r-- | main.asm | 223 | 
1 files changed, 215 insertions, 8 deletions
| @@ -18472,7 +18472,7 @@ LyingOldManSprite: ; 0x11340  INCBIN "baserom.gbc",$11380,$12953 - $11380  ; Predef 0x37 -StatusScreenInit: ; 0x12953 +StatusScreen: ; 0x12953      call LoadMonData      ld a, [$cc49]      cp $2 @@ -18563,14 +18563,14 @@ StatusScreenInit: ; 0x12953      ld a, $4b      call Predef      ld hl, $6a9d -    call $6a7e +    call .LoadString      ld d, h      ld e, l      FuncCoord 9,1      ld hl, Coord      call PlaceString ; Pokémon name      ld hl, $6a95 -    call $6a7e +    call .LoadString      ld d, h      ld e, l      FuncCoord 12,16 @@ -18592,9 +18592,23 @@ StatusScreenInit: ; 0x12953      pop af      ld [$ff00+$d7], a      ret -; 0x12a7e +.LoadString ; 0x12a7e +	ld a, [$cc49] +	add a +	ld c, a +	ld b, $0 +	add hl, bc +	ld a, [hli] +	ld h, [hl] +	ld l, a +	ld a, [$cc49] +	cp $3 +	ret z +	ld a, [W_WHICHPOKEMON] +	jp $3a7d +; 0x12a95 -INCBIN "baserom.gbc",$12a7e,$12aa5 - $12a7e +INCBIN "baserom.gbc",$12a95,$12aa5 - $12a95  Type1Text: ; 0x12aa5      db "TYPE1/", $4e @@ -18614,7 +18628,200 @@ StatusText:  OKText: ; 0x12ac4      db "OK@" -INCBIN "baserom.gbc",$12ac7,$12cd2 - $12ac7 +INCBIN "baserom.gbc",$12ac7,$12b57 - $12ac7 + +StatusScreen2: +	ld a, [$ff00+$d7] +	push af +	xor a +	ld [$ff00+$d7], a +	ld [$ff00+$ba], a +	ld bc, $0005 +	ld hl, $d0dc +	call $36e0 +	ld hl, $cfa0 +	ld de, $d0dc +	ld bc, $0004 +	call CopyData +	ld hl, $5b87 +	ld b, $e +	call Bankswitch +	FuncCoord 9,2 +	ld hl, Coord +	ld bc, $050a +	call ClearScreenArea ; Clear under name +	ld hl, $c3ef +	ld [hl], $78 +	FuncCoord 0,8 +	ld hl, Coord +	ld b, $8 +	ld c, $12 +	call TextBoxBorder ; Draw move container +	FuncCoord 2,9 +	ld hl, Coord +	ld de, $d0e1 +	call PlaceString ; Print moves +	ld a, [$cd6c] +	inc a +	ld c, a +	ld a, $4 +	sub c +	ld b, a ; Number of moves ? +	FuncCoord 11,10 +	ld hl, Coord +	ld de, $0028 +	ld a, $72 +	call $6ccb ; Print "PP" +	ld a, b +	and a +	jr z, .InitPP ; 0x12bb3 $6 +	ld c, a +	ld a, $e3 +	call $6ccb ; Fill the rest with -- +.InitPP ; 12bbb +	ld hl, $cfa0 +	FuncCoord 14,10 +	ld de, Coord +	ld b, $0 +.PrintPP ; 12bc3 +	ld a, [hli] +	and a +	jr z, .PPDone ; 0x12bc5 $4a +	push bc +	push hl +	push de +	ld hl, W_CURMENUITEMID +	ld a, [hl] +	push af +	ld a, b +	ld [hl], a +	push hl +	ld hl, $6677 +	ld b, $3 +	call Bankswitch +	pop hl +	pop af +	ld [hl], a +	pop de +	pop hl +	push hl +	ld bc, $0014 +	add hl, bc +	ld a, [hl] +	and $3f +	ld [$cd71], a +	ld h, d +	ld l, e +	push hl +	ld de, $cd71 +	ld bc, $0102 +	call PrintNumber +	ld a, "/" +	ld [hli], a +	ld de, $d11e +	ld bc, $0102 +	call PrintNumber +	pop hl +	ld de, $0028 +	add hl, de +	ld d, h +	ld e, l +	pop hl +	pop bc +	inc b +	ld a, b +	cp $4 +	jr nz, .PrintPP ; 0x12c0f $b2 +.PPDone +    FuncCoord 9,3 +	ld hl, Coord +	ld de, EXPPointsText +	call PlaceString +	ld a, [$cfb9] ; level +	push af +	cp $64 +	jr z, .Level100 ; 0x12c20 $4 +	inc a +	ld [$cfb9], a ; Increase temporarily if not 100 +.Level100 +    FuncCoord 14,6 +	ld hl, Coord +	ld [hl], $70 ; 1-tile "to" +	inc hl +	inc hl +	call PrintLevel +	pop af +	ld [$cfb9], a +	ld de, $cfa6 +	FuncCoord 12,4 +	ld hl, Coord +	ld bc, $0307 +	call PrintNumber ; exp +	call .asm_12c86 +	ld de, $cfa6 +	FuncCoord 7,6 +	ld hl, Coord +	ld bc, $0307 +	call PrintNumber +	FuncCoord 9,0 +	ld hl, Coord +	call $6cc3 +	FuncCoord 9,1 +	ld hl, Coord +	call $6cc3 +	ld a, [$d0b8] +	ld [$d11e], a +	call GetMonName +	FuncCoord 9,1 +	ld hl, Coord +	call PlaceString +	ld a, $1 +	ld [$ff00+$ba], a +	call Delay3 +	call $3865 ; wait for button +	pop af +	ld [$ff00+$d7], a +	ld hl, $d72c +	res 1, [hl] +	ld a, $77 +	ld [$ff00+$24], a +	call GBPalWhiteOut +	jp ClearScreen +.asm_12c86 ; This does some magic with lvl/exp? +	ld a, [$cfb9] ; Load level +	cp $64 +	jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100 +	inc a +	ld d, a +	ld hl, $4f6a +	ld b, $16 +	call Bankswitch +	ld hl, $cfa8 +	ld a, [$ff00+$98] +	sub [hl] +	ld [hld], a +	ld a, [$ff00+$97] +	sbc [hl] +	ld [hld], a +	ld a, [$ff00+$96] +	sbc [hl] +	ld [hld], a +	ret +.asm_12ca7 +	ld hl, $cfa6 +	xor a +	ld [hli], a +	ld [hli], a +	ld [hl], a +	ret + +EXPPointsText: +    db "EXP POINTS", $4e +     +LevelUpText: +    db "LEVEL UP", $50 + +INCBIN "baserom.gbc",$12cc3,$12cd2 - $12cc3  ; [$D07D] = menu type / message ID  ; if less than $F0, it is a menu type @@ -49639,8 +49846,8 @@ PredefPointers: ; 7E79  	dbw $1E,$5869  	dbw $1C,$4B5D  	dbw $03,$4586 -	dbw $04,$6953 -	dbw $04,$6B57 +	dbw BANK(StatusScreen),StatusScreen ; 37 0x12953 +	dbw BANK(StatusScreen2),StatusScreen2 ; 38  	dbw $10,$50E2  	dbw $15,$690F  	dbw $10,$5010 | 
