sd:rogueima_i_mvp-4
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sd:rogueima_i_mvp-4 [2026/05/10 16:42] – appledog | sd:rogueima_i_mvp-4 [2026/05/10 16:47] (current) – appledog | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| * rogueima.asm: | * rogueima.asm: | ||
| - | * draw.asm: | + | * draw.asm: |
| - | * map.asm: | + | * map.asm: |
| * mon.asm: 99 | * mon.asm: 99 | ||
| * msg.asm: 166 | * msg.asm: 166 | ||
| - | * obj.asm: | + | * obj.asm: |
| * talk.asm: 166 | * talk.asm: 166 | ||
| * combat.asm: 149 | * combat.asm: 149 | ||
| Line 583: | Line 583: | ||
| CALL @draw_world | CALL @draw_world | ||
| CALL @draw_items | CALL @draw_items | ||
| - | CALL @draw_player | + | CALL @move_mon |
| CALL @draw_mobs | CALL @draw_mobs | ||
| + | CALL @draw_player | ||
| CALL @draw_stats | CALL @draw_stats | ||
| CALL @draw_msgs | CALL @draw_msgs | ||
| Line 591: | Line 592: | ||
| LDAH $50 ; VSTART | LDAH $50 ; VSTART | ||
| INT 0x18 | INT 0x18 | ||
| + | |||
| + | LDA [@player_hp] | ||
| + | CMP A, 0 | ||
| + | JZ @kill_player | ||
| RET | RET | ||
| Line 665: | Line 670: | ||
| RET | RET | ||
| + | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| + | ;; Draw all the monsters that are placed on the map. | ||
| + | ;; Filters on OBJ_TYPE == 2 (monster), skips items. | ||
| + | ;; | ||
| draw_mobs: | draw_mobs: | ||
| - | ; stub for now | + | |
| + | LDT [@disp_dim] | ||
| + | LDELM @OBJS_BASE | ||
| + | draw_mobs_loop: | ||
| + | LDELM [ELM] | ||
| + | CMP ELM, @OBJS_BASE | ||
| + | JZ @draw_mobs_done | ||
| + | |||
| + | LDI @OBJ_ID | ||
| + | LDA [ELM+I] | ||
| + | JZ @draw_mobs_loop | ||
| + | |||
| + | LDI @OBJ_TYPE | ||
| + | LDA [ELM+I] | ||
| + | CMP A, #2 ; OBJ_TYPE_MONSTER | ||
| + | JNZ @draw_mobs_loop | ||
| + | |||
| + | LDI @OBJ_X | ||
| + | LDX [ELM+I] | ||
| + | LDI @OBJ_Y | ||
| + | LDY [ELM+I] | ||
| + | |||
| + | ; --- Visibility: is (XL, YL) inside the viewport? --- | ||
| + | CMP XL, DL | ||
| + | JNC @draw_mobs_loop | ||
| + | MOV AL, DL | ||
| + | ADD AL, TL | ||
| + | CMP XL, AL | ||
| + | JC @draw_mobs_loop | ||
| + | |||
| + | CMP YL, DH | ||
| + | JNC @draw_mobs_loop | ||
| + | MOV AL, DH | ||
| + | ADD AL, TH | ||
| + | CMP YL, AL | ||
| + | JC @draw_mobs_loop | ||
| + | |||
| + | ; --- Map → screen --- | ||
| + | SUB XL, DL | ||
| + | ADD XL, #1 ; play_x_offset | ||
| + | SUB YL, DH | ||
| + | ADD YL, #1 ; play_y_offset | ||
| + | |||
| + | ; --- Draw --- | ||
| + | LDI @OBJ_VIS | ||
| + | LDBL [ELM+I] | ||
| + | LDAH $11 | ||
| + | INT $10 | ||
| + | JMP @draw_mobs_loop | ||
| + | draw_mobs_done: | ||
| RET | RET | ||
| Line 1630: | Line 1688: | ||
| LDA [ELM+I] | LDA [ELM+I] | ||
| JZ @draw_items_loop | JZ @draw_items_loop | ||
| + | |||
| + | LDI @OBJ_TYPE | ||
| + | LDA [ELM+I] | ||
| + | CMP A, #1 ; OBJ_TYPE_GOLD — this filter is the fix | ||
| + | JNZ @draw_items_loop | ||
| LDI @OBJ_X | LDI @OBJ_X | ||
| Line 1947: | Line 2010: | ||
| </ | </ | ||
| - | === combat.sda | + | == combat.sda |
| <codify armasm> | <codify armasm> | ||
| player_obj: | player_obj: | ||
sd/rogueima_i_mvp-4.1778431350.txt.gz · Last modified: by appledog
