player: added placeholder weapon drawing
authorLukas Krickl <lukas@krickl.dev>
Sat, 3 Jan 2026 10:55:52 +0000 (11:55 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sat, 3 Jan 2026 10:55:52 +0000 (11:55 +0100)
src/map.s
src/player.s
tiles/bank8800.inc

index b2df2c64e103801469182f4e3e83ca700d0759c8..75e191db19f380bd1d59592861622a27cf3d3236 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -254,6 +254,8 @@ map_full_draw_oam_clear:
        call shadow_oam_clear
        ; draw UI again
        call compass_draw
+       ; draw player again
+       call player_draw_weapon
        call next_vblank_wait
        ; dma empty oam 
        call OAMDMAFN
index 18b8e193bc777553fd95ef23dea32a156cb2ed3e..4473a8c33e02b6226dafb552cc3cfaef0ca7317c 100644 (file)
@@ -1,6 +1,12 @@
-#define PLAYER_CURSOR_L 0x88
-#define PLAYER_CURSOR_R 0x8A
-       
+
+#define PLAYER_PLACEHOLDER_WEAPON_0 0x9D
+#define PLAYER_PLACEHOLDER_WEAPON_1 0xBA
+#define PLAYER_PLACEHOLDER_WEAPON_2 0xBC
+#define PLAYER_PLACEHOLDER_WEAPON_3 0xBE
+#define PLAYER_PLACEHOLDER_WEAPON_4 0xBD
+#define PLAYER_PLACEHOLDER_WEAPON_5 0xBF
+
+
        ; table of direction to pick on right turn
 player_direction_turn_right:
        .db WEST ; SOUTH
@@ -71,6 +77,50 @@ player_update:
 
        call player_handle_move
 
+       call player_draw_weapon
+
+       ret
+
+#define PLAYER_WEAPON_Y 96
+#define PLAYER_WEAPON_X 120
+
+       ; draws part of player weapon
+       ; inputs:
+       ;               $1: y offset
+       ;               $2: x offset
+       ;               $3: tile id
+       ;               hl: ptr to oam
+       ;       returns:
+       ;               hl: next oam
+#macro player_draw_weapon_part
+       ld a, PLAYER_WEAPON_Y + $1
+       ld [hl+], a
+       ld a, PLAYER_WEAPON_X + $2
+       ld [hl+], a
+       ld a, $3
+       ld [hl+], a
+       xor a, a
+       ld [hl+], a
+#endmacro
+
+       ; draws weapon spirte
+player_draw_weapon:
+       ; TODO: for now we just draw a placeholder
+       ld a, 8
+       call oamalloc
+       
+       player_draw_weapon_part 0, 0, PLAYER_PLACEHOLDER_WEAPON_0
+       player_draw_weapon_part 8, 0, PLAYER_PLACEHOLDER_WEAPON_1
+
+       player_draw_weapon_part 8, 8, PLAYER_PLACEHOLDER_WEAPON_0
+       player_draw_weapon_part 16, 8, PLAYER_PLACEHOLDER_WEAPON_1
+
+       player_draw_weapon_part 16, 16, PLAYER_PLACEHOLDER_WEAPON_2
+       player_draw_weapon_part 12, 24, PLAYER_PLACEHOLDER_WEAPON_3
+       
+       player_draw_weapon_part 24, 12, PLAYER_PLACEHOLDER_WEAPON_4
+       player_draw_weapon_part 24, 24, PLAYER_PLACEHOLDER_WEAPON_5
+
        ret
        
        ; player attack call
index a18710f388611435d14b24f69242cc98db6c5efd..69396339ce454bc40ff0e8b3d650f4769bef8f05 100644 (file)
 .chr 00000000
 .chr 00000000
 .chr 00000000
+.chr 11110000
+.chr 11110000
+.chr 11110000
+.chr 11110000
+.chr 11111111
+.chr 11111111
+.chr 11111111
+.chr 11111111
+; tile 15
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 15
-.chr 23000000
-.chr 32000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-.chr 10000000
-.chr 11000000
-.chr 01100000
-.chr 00110030
-.chr 00011330
-.chr 00003300
-.chr 00033010
-.chr 00000002
-; tile 24
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-; tile 25
+; tile 24
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 26
+; tile 25
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 27
+; tile 26
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 28
+; tile 27
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 29
+; tile 28
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-; tile 30
+; tile 29
+.chr 00001111
+.chr 00001111
+.chr 00001111
+.chr 00001111
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
+; tile 30
+.chr 11113333
+.chr 11113333
+.chr 11113333
+.chr 11113333
+.chr 33333333
+.chr 33333333
+.chr 33333333
+.chr 33333333
+.chr 33333333
+.chr 33333333
+.chr 33333333
+.chr 33333333
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 31
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 33330000
+.chr 11110000
+.chr 11110000
+.chr 11110000
+.chr 11110000
+.chr 00002222
+.chr 00002222
+.chr 00002222
+.chr 00002222