diff options
| author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-05 15:01:29 -0400 | 
|---|---|---|
| committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-05 15:12:29 -0400 | 
| commit | 155695cbfe35133bae1e6affae7f0a90457cfe9f (patch) | |
| tree | 1cb0e17d4a6cc3ad1a968332f76f74c25c55dbfe /engine | |
| parent | b30b14f3224e2e96b76ad5cba088eec601a72856 (diff) | |
Use constants for damage limits in CalculateDamage
Fixes #255
Diffstat (limited to 'engine')
| -rwxr-xr-x | engine/battle/core.asm | 62 | 
1 files changed, 34 insertions, 28 deletions
| diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f89dc781..935764aa 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -4485,37 +4485,42 @@ CalculateDamage:  	ld b, 4  	call Divide +; Update wCurDamage.  +; Capped at MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE: 999 - 2 = 997.  	ld hl, wDamage  	ld b, [hl]  	ld a, [hQuotient + 3]  	add b  	ld [hQuotient + 3], a -	jr nc, .asm_3dfd0 +	jr nc, .dont_cap_1  	ld a, [hQuotient + 2]  	inc a  	ld [hQuotient + 2], a  	and a -	jr z, .asm_3e004 +	jr z, .cap -.asm_3dfd0 +.dont_cap_1  	ld a, [hQuotient]  	ld b, a  	ld a, [hQuotient + 1]  	or a -	jr nz, .asm_3e004 +	jr nz, .cap  	ld a, [hQuotient + 2] -	cp 998 / $100 -	jr c, .asm_3dfe8 -	cp 998 / $100 + 1 -	jr nc, .asm_3e004 +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 +	jr c, .dont_cap_2 + +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 + 1 +	jr nc, .cap +  	ld a, [hQuotient + 3] -	cp 998 % $100 -	jr nc, .asm_3e004 +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) % $100 +	jr nc, .cap -.asm_3dfe8 +.dont_cap_2  	inc hl +  	ld a, [hQuotient + 3]  	ld b, [hl]  	add b @@ -4525,36 +4530,37 @@ CalculateDamage:  	ld b, [hl]  	adc b  	ld [hl], a -	jr c, .asm_3e004 +	jr c, .cap  	ld a, [hl] -	cp 998 / $100 -	jr c, .asm_3e00a -	cp 998 / $100 + 1 -	jr nc, .asm_3e004 +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 +	jr c, .dont_cap_3 + +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) / $100 + 1 +	jr nc, .cap +  	inc hl  	ld a, [hld] -	cp 998 % $100 -	jr c, .asm_3e00a +	cp (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) % $100 +	jr c, .dont_cap_3 -.asm_3e004 -; cap at 997 -	ld a, 997 / $100 +.cap +	ld a, (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) / $100  	ld [hli], a -	ld a, 997 % $100 +	ld a, (MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) % $100  	ld [hld], a -.asm_3e00a -; add 2 +.dont_cap_3 +; Add back MIN_NEUTRAL_DAMAGE (capping at 999).  	inc hl  	ld a, [hl] -	add 2 +	add MIN_NEUTRAL_DAMAGE  	ld [hld], a -	jr nc, .done +	jr nc, .dont_floor  	inc [hl] +.dont_floor -.done -; minimum damage is 1 +; Returns nz and nc.  	ld a, 1  	and a  	ret | 
