164 lines
1.9 KiB
NASM
164 lines
1.9 KiB
NASM
RedrawLoot:
|
|
JSL DrawLoot
|
|
|
|
; what we wrote over
|
|
SEP #$20
|
|
STZ.w $0210
|
|
RTL
|
|
|
|
FirstDrawLoot:
|
|
LDA.b #$FF
|
|
STA.w $0215
|
|
LDA.b #$80
|
|
STA.w $0216
|
|
STA.w $0218
|
|
LDA.l DRMode
|
|
BEQ +
|
|
LDA.w DungeonID
|
|
ASL A
|
|
TAX
|
|
LDA.l DungeonMapData.floor, X
|
|
STA.b $A4
|
|
+
|
|
|
|
; what we wrote over
|
|
LDA.b #$08
|
|
STA.b $17
|
|
|
|
DrawLoot:
|
|
LDA.b $07
|
|
STA.w $021B
|
|
|
|
LDA.l DRMode
|
|
BNE .skip
|
|
|
|
REP #$30
|
|
PHX : PHY
|
|
|
|
STZ.b $0E
|
|
|
|
LDX.w DungeonID
|
|
LDA.l DungeonMapRoomPointers, X
|
|
STA.b $72
|
|
|
|
SEP #$20
|
|
LDA.l DungeonMapFloorCountData, X
|
|
AND.b #$0F
|
|
CLC : ADC.w DungeonMapCurrentFloor
|
|
PHA
|
|
|
|
JSR DrawSingleFloorLoot
|
|
|
|
INC.b $0F
|
|
LDA.b #$80
|
|
STA.b $0E
|
|
PLA : DEC A
|
|
JSR DrawSingleFloorLoot
|
|
|
|
LDX.w GFXStripes
|
|
LDA.b #$FF
|
|
STA.w GFXStripes+$02, X
|
|
|
|
LDA.b #$01
|
|
STA.b NMISTRIPES
|
|
|
|
PLY : PLX
|
|
.skip
|
|
LDA.b #$00
|
|
RTL
|
|
|
|
DrawSingleFloorLoot:
|
|
REP #$20
|
|
AND.w #$00FF
|
|
ASL A
|
|
TAX
|
|
|
|
LDA.l DungeonMapFloorToDataOffset, X
|
|
CLC : ADC.w #$0018 ; get to end of floor
|
|
TAY
|
|
|
|
SEP #$20
|
|
LDA.b #$04
|
|
STA.b $06
|
|
|
|
LDA.b #$04
|
|
STA.b $07
|
|
|
|
.next_row
|
|
REP #$20
|
|
LDA.w GFXStripes
|
|
TAX
|
|
CLC : ADC.w #$0030
|
|
STA.w GFXStripes
|
|
|
|
SEP #$20
|
|
LDA.b $07
|
|
CLC : ADC.b $07
|
|
REP #$20
|
|
AND.w #$00FF
|
|
ASL #5
|
|
|
|
CLC : ADC.w #$1092
|
|
ADC.b $0E
|
|
XBA
|
|
STA.w GFXStripes+$02, X
|
|
CLC : ADC.w #$2000
|
|
STA.w GFXStripes+$1A, X
|
|
|
|
LDA.w #$1300
|
|
STA.w GFXStripes+$04, X
|
|
STA.w GFXStripes+$1C, X
|
|
|
|
TXA
|
|
CLC : ADC.w #$0016
|
|
TAX
|
|
|
|
.next_room
|
|
REP #$20
|
|
LDA.b ($72), Y ; get room id
|
|
PHY
|
|
|
|
AND.w #$00FF
|
|
CMP.w #$000F ; $0F = empty room
|
|
|
|
BNE .valid_room
|
|
LDA.w #$0000
|
|
BRA +
|
|
.valid_room
|
|
JSL CheckLoot
|
|
+
|
|
ASL A : ASL A : ASL A
|
|
|
|
TXY
|
|
TAX
|
|
|
|
LDA.l LootTypeIcons+0, X
|
|
STA.w GFXStripes+$00, Y
|
|
LDA.l LootTypeIcons+2, X
|
|
STA.w GFXStripes+$02, Y
|
|
LDA.l LootTypeIcons+4, X
|
|
STA.w GFXStripes+$18, Y
|
|
LDA.l LootTypeIcons+6, X
|
|
STA.w GFXStripes+$1A, Y
|
|
|
|
TYX
|
|
PLY
|
|
DEY : DEX #4
|
|
|
|
SEP #$20
|
|
DEC.b $06
|
|
BPL .next_room
|
|
|
|
DEC.b $07
|
|
BMI .done
|
|
|
|
LDA.b #$00
|
|
XBA
|
|
LDA.b #$04
|
|
STA.b $06
|
|
|
|
JMP .next_row
|
|
|
|
.done
|
|
RTS
|