pop hl
@nota:
+ input_just BTNB
+ jr z, @notb REL
+
+ ; gain 1 hp
+ ld a, 1
+ ; make sure we do not mess with hl
+ push hl
+ ; hl = player_x right now
+ inc hl
+ inc hl ; hl = player_hp
+ call player_gain_resource
+ ; call for UI redraw
+ ld a, UI_REDRAW_HP
+ ld [ui_flags], a
+ pop hl
+
+@notb:
+
; drawing
; sotre x in e
; [hl]: pointer to selected resource
; a : the amount to add
player_gain_resource:
+ ld b, a ; b = to add
+ ld a, [hl+] ; a = current resource. hl = max
+ cp a, [hl] ; a = max resource
+ ; skip if already at max
+ jp z, @skip
+
+ ; add new value
+ add a, b
+ cp a, [hl]
+ jp c, @no_overflow
+
+ ld a, [hl] ; a = amx
+
+@no_overflow:
+ ; store value
+ dec hl ; hl = current resource
+ ld [hl], a
+@skip:
ret