From 04b171b90c5779acbcc7c1a0e6b6aa03f09a9667 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 3 Jan 2026 11:55:52 +0100 Subject: [PATCH] player: added placeholder weapon drawing --- src/map.s | 2 + src/player.s | 56 +++++++++++++++++++++++++-- tiles/bank8800.inc | 96 +++++++++++++++++++++++----------------------- 3 files changed, 103 insertions(+), 51 deletions(-) diff --git a/src/map.s b/src/map.s index b2df2c6..75e191d 100644 --- 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 diff --git a/src/player.s b/src/player.s index 18b8e19..4473a8c 100644 --- a/src/player.s +++ b/src/player.s @@ -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 diff --git a/tiles/bank8800.inc b/tiles/bank8800.inc index a18710f..6939633 100644 --- a/tiles/bank8800.inc +++ b/tiles/bank8800.inc @@ -245,6 +245,15 @@ .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 @@ -253,15 +262,6 @@ .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 @@ -398,15 +398,6 @@ .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 @@ -415,15 +406,7 @@ .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 @@ -440,7 +423,7 @@ .chr 00000000 .chr 00000000 .chr 00000000 -; tile 26 +; tile 25 .chr 00000000 .chr 00000000 .chr 00000000 @@ -457,7 +440,7 @@ .chr 00000000 .chr 00000000 .chr 00000000 -; tile 27 +; tile 26 .chr 00000000 .chr 00000000 .chr 00000000 @@ -474,7 +457,7 @@ .chr 00000000 .chr 00000000 .chr 00000000 -; tile 28 +; tile 27 .chr 00000000 .chr 00000000 .chr 00000000 @@ -491,7 +474,7 @@ .chr 00000000 .chr 00000000 .chr 00000000 -; tile 29 +; tile 28 .chr 00000000 .chr 00000000 .chr 00000000 @@ -508,7 +491,11 @@ .chr 00000000 .chr 00000000 .chr 00000000 -; tile 30 +; tile 29 +.chr 00001111 +.chr 00001111 +.chr 00001111 +.chr 00001111 .chr 00000000 .chr 00000000 .chr 00000000 @@ -521,24 +508,37 @@ .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 -- 2.30.2