This change exposed a bug in the UI update code. UI updats need to draw
tiles which should actually happen in vblank.
UI updates where they are now should simply schedule a vblank update in
the future.
; constants
#define DD_TIME 90
-#define DD_D0_TILE 0x10
-#define DD_CROSS_TILE 0x20
+#define DD_D0_TILE 0x90
+#define DD_CROSS_TILE 0xA0
; b/c: y/x tile
; a: dice display flags/0
; d16: roll to display
+ ; preserves flags
dice_display_set:
; set flags
ld a, [dd_flags]
ld b, DD_D0_TILE
ld a, [d16]
add a, b ; d0 + roll value of d16
- ld a, [dd_d16] ; tile to display
-
+ ld [dd_d16], a ; tile to display
ret
dec a ; timer--
ld [dd_timer], a
+ ; display sprite
+ call load_scroll
+ call load_unit_obj
+
+
+ ; set y
+ ld a, [dd_y]
+ mul8 a
+ add a, OBJ_OFF_Y
+ sub a, b
+ ld [hl+], a
+
+ ; set x pos
+ ld a, [dd_x]
+ mul8 a
+ add a, OBJ_OFF_X
+ sub a, c
+ ld [hl+], a
+ ; set tile
+ ld a, [dd_d16]
+ ld [hl+], a
+
+ xor a, a
+ ld [hl], a
ret
ld d, a ; d = roll value
pop af ; a = init value
cp a, d
+ call nc, unit_dice_display_set
jr nc, @skip REL ; d < a
ld [unit_next_best_init], a
ld c, a ; c = x
ret
+ ; sets dice display at current unit's location
+ ; inputs:
+ ; hl: unit
+ ; preserves all registers
+unit_dice_display_set:
+ push_all
+
+ ld de, act_pos_y
+ add hl, de
+ ld a, [hl+]
+ ld b, a
+ ld a, [hl]
+ ld c, a ; b/c = y/x
+ ld a, 0 ; no flags
+ call dice_display_set
+
+ pop_all
+ ret
+
unit_demo_1:
st_def 0x00, unit_demo_1_init, st_unit_idle
act_def ACT_T_DEMO_1, 0, 2, 2, 0
call rand
call rand_save_srand
+ ; update some tiles asap!
+ ; TODO: move this to vblank handler
ld a, [draw_flags]
and a, DRAWF_UPDATE_UI
call nz, ui_draw
+
+ ; clear oam
+ call shadow_oam_clear
call ui_display_current_unit
+
+ call dice_display_update
+
ld hl, p0_units
call units_update
ld hl, p1_units
ret
update_unit_placement:
-
ld de, actor_player
call st_update
.chr 00000000
; tile 16
.chr 00333330
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 17
.chr 00333330
-.chr 03100003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03122223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 18
.chr 00333330
-.chr 03101003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 19
.chr 00333330
-.chr 03101013
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 20
.chr 00333330
-.chr 03101013
-.chr 03010003
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212223
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 21
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03000003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03222223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 22
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03100003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03122223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 23
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101003
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121223
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 24
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03000003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03222223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 25
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010003
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212223
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 26
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03000003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03222223
+.chr 03222223
.chr 00333330
; tile 27
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03100003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03122223
+.chr 03222223
.chr 00333330
; tile 28
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03101003
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03121223
+.chr 03222223
.chr 00333330
; tile 29
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03000003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03222223
.chr 00333330
; tile 30
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010003
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212223
.chr 00333330
; tile 31
.chr 00333330
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
-.chr 03101013
-.chr 03010103
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
+.chr 03121213
+.chr 03212123
.chr 00333330
; tile 32
.chr 20000002