mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-12-28 01:29:30 +00:00
Fixed one sprite bug.
This commit is contained in:
parent
bbac1ea183
commit
c5182fb624
@ -73,10 +73,10 @@ var allSprites = [
|
|||||||
|
|
||||||
// Player attributes [ref BigBlue2_10]
|
// Player attributes [ref BigBlue2_10]
|
||||||
var player = {
|
var player = {
|
||||||
x : 1.5, // current x, y position
|
x : 4.2421875, // current x, y position
|
||||||
y : 3.5,
|
y : 6.4765625,
|
||||||
dir : 0, // the direction that the player is turning, either -1 for left or 1 for right.
|
dir : 0, // the direction that the player is turning, either -1 for left or 1 for right.
|
||||||
angleNum : 4, // the current angle of rotation
|
angleNum : 0xA, // the current angle of rotation
|
||||||
speed : 0, // is the playing moving forward (speed = 1) or backwards (speed = -1).
|
speed : 0, // is the playing moving forward (speed = 1) or backwards (speed = -1).
|
||||||
moveSpeed : 0.25, // how far (in map units) does the player move each step/update
|
moveSpeed : 0.25, // how far (in map units) does the player move each step/update
|
||||||
rotSpeed : 22.5 * Math.PI / 180, // how much does the player rotate each step/update (in radians)
|
rotSpeed : 22.5 * Math.PI / 180, // how much does the player rotate each step/update (in radians)
|
||||||
@ -85,7 +85,7 @@ var player = {
|
|||||||
|
|
||||||
var options = 0;
|
var options = 0;
|
||||||
|
|
||||||
var debugRay = 0; /* Debugging info printed about this ray num, or null for none */
|
var debugRay = 4; /* Debugging info printed about this ray num, or null for none */
|
||||||
|
|
||||||
var debugSprite = 0; /* Debugging info printed about this sprite, or null for none */
|
var debugSprite = 0; /* Debugging info printed about this sprite, or null for none */
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ start:
|
|||||||
; Conditional assembly flags
|
; Conditional assembly flags
|
||||||
DOUBLE_BUFFER = 1 ; whether to double-buffer
|
DOUBLE_BUFFER = 1 ; whether to double-buffer
|
||||||
DEBUG = 1 ; 1=some logging, 2=lots of logging
|
DEBUG = 1 ; 1=some logging, 2=lots of logging
|
||||||
|
DEBUG_COLUMN = -1
|
||||||
|
|
||||||
; Shared constants, zero page, buffer locations, etc.
|
; Shared constants, zero page, buffer locations, etc.
|
||||||
!source "render.i"
|
!source "render.i"
|
||||||
@ -28,6 +29,15 @@ DEBUG = 1 ; 1=some logging, 2=lots of logging
|
|||||||
MAX_SPRITES = 16 ; max # sprites visible at once
|
MAX_SPRITES = 16 ; max # sprites visible at once
|
||||||
NUM_COLS = 63
|
NUM_COLS = 63
|
||||||
|
|
||||||
|
; Starting position and dir. Eventually this will come from the map
|
||||||
|
;PLAYER_START_X = $180 ; 1.5
|
||||||
|
;PLAYER_START_Y = $380 ; 3.5
|
||||||
|
;PLAYER_START_DIR = 4
|
||||||
|
|
||||||
|
PLAYER_START_X = $43E ; 1.5
|
||||||
|
PLAYER_START_Y = $67A ; 3.5
|
||||||
|
PLAYER_START_DIR = $A
|
||||||
|
|
||||||
; Useful constants
|
; Useful constants
|
||||||
W_LOG_256 = $0800
|
W_LOG_256 = $0800
|
||||||
W_LOG_65536 = $1000
|
W_LOG_65536 = $1000
|
||||||
@ -533,6 +543,7 @@ castRay: !zone
|
|||||||
lda #$FF ; clamp large line heights to 255
|
lda #$FF ; clamp large line heights to 255
|
||||||
+ tay ; save the height in Y reg
|
+ tay ; save the height in Y reg
|
||||||
pla ; get the depth back
|
pla ; get the depth back
|
||||||
|
!if DEBUG { jsr .debugDepth }
|
||||||
jmp saveLink ; save final column data to link buffer
|
jmp saveLink ; save final column data to link buffer
|
||||||
|
|
||||||
!if DEBUG >= 2 {
|
!if DEBUG >= 2 {
|
||||||
@ -575,6 +586,18 @@ castRay: !zone
|
|||||||
+prA
|
+prA
|
||||||
+crout
|
+crout
|
||||||
rts
|
rts
|
||||||
|
.debugDepth:
|
||||||
|
pha
|
||||||
|
lda screenCol
|
||||||
|
cmp #4
|
||||||
|
bne +
|
||||||
|
+prStr : !text "depth for col4=",0
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
+prA
|
||||||
|
+crout
|
||||||
|
+ pla
|
||||||
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
@ -1099,8 +1122,8 @@ drawSprite: !zone
|
|||||||
; (can be used for further manipulation of the values there).
|
; (can be used for further manipulation of the values there).
|
||||||
;
|
;
|
||||||
saveLink: !zone
|
saveLink: !zone
|
||||||
sta tmp ; keep height for storing later
|
sta tmp ; keep depth for storing later
|
||||||
sty tmp+1 ; same with depth
|
sty tmp+1 ; same with height
|
||||||
ldx screenCol
|
ldx screenCol
|
||||||
ldy firstLink,x
|
ldy firstLink,x
|
||||||
bne .chk1
|
bne .chk1
|
||||||
@ -1119,9 +1142,10 @@ saveLink: !zone
|
|||||||
lda txNum
|
lda txNum
|
||||||
sta txNumBuf,x
|
sta txNumBuf,x
|
||||||
inc nextLink
|
inc nextLink
|
||||||
|
!if DEBUG { jsr .debugLink }
|
||||||
rts
|
rts
|
||||||
.chk1 ; does it need to be inserted before the existing first link?
|
.chk1 ; does it need to be inserted before the existing first link?
|
||||||
lda tmp+1
|
lda tmp
|
||||||
cmp depthBuf,y
|
cmp depthBuf,y
|
||||||
bcc .store
|
bcc .store
|
||||||
; advance to next link
|
; advance to next link
|
||||||
@ -1134,10 +1158,41 @@ saveLink: !zone
|
|||||||
sta linkBuf,x
|
sta linkBuf,x
|
||||||
bne .store2 ; always taken; also note: Y contains next link (0 for end of chain)
|
bne .store2 ; always taken; also note: Y contains next link (0 for end of chain)
|
||||||
.chk2 ; do we need to insert before this (non-first) link?
|
.chk2 ; do we need to insert before this (non-first) link?
|
||||||
lda tmp+1
|
lda tmp
|
||||||
cmp depthBuf,y
|
cmp depthBuf,y
|
||||||
bcc .insert ; found the right place
|
bcc .insert ; found the right place
|
||||||
bcs .next ; not the right place to insert, look at next link (always taken)
|
bcs .next ; not the right place to insert, look at next link (always taken)
|
||||||
|
!if DEBUG {
|
||||||
|
.debugLink:
|
||||||
|
lda screenCol
|
||||||
|
cmp #DEBUG_COLUMN
|
||||||
|
beq +
|
||||||
|
rts
|
||||||
|
+ txa
|
||||||
|
pha
|
||||||
|
+prStr : !text "Links for col ",0
|
||||||
|
+prByte screenCol
|
||||||
|
+prStr : !text ": ",0
|
||||||
|
ldx screenCol
|
||||||
|
ldy firstLink,x
|
||||||
|
.dlup +prStr : !text "[ht=",0
|
||||||
|
lda heightBuf,y
|
||||||
|
+prA
|
||||||
|
+prStr : !text "tx=",0
|
||||||
|
lda txNumBuf,y
|
||||||
|
+prA
|
||||||
|
+prStr : !text "dp=",0
|
||||||
|
lda depthBuf,y
|
||||||
|
+prA
|
||||||
|
+prStr : !text "] ",0
|
||||||
|
lda linkBuf,y
|
||||||
|
tay
|
||||||
|
bne .dlup
|
||||||
|
+crout
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
|
||||||
; Advance pLine to the next line on the hi-res screen
|
; Advance pLine to the next line on the hi-res screen
|
||||||
nextLine: !zone
|
nextLine: !zone
|
||||||
@ -1582,18 +1637,15 @@ expanderJmp:
|
|||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
; Establish the initial player position and direction [ref BigBlue3_10]
|
; Establish the initial player position and direction [ref BigBlue3_10]
|
||||||
setPlayerPos: !zone
|
setPlayerPos: !zone
|
||||||
; X=1.5
|
lda #>PLAYER_START_X
|
||||||
lda #1
|
|
||||||
sta playerX+1
|
sta playerX+1
|
||||||
lda #$80
|
lda #<PLAYER_START_X
|
||||||
sta playerX
|
sta playerX
|
||||||
; Y=3.5
|
lda #>PLAYER_START_Y
|
||||||
lda #3
|
|
||||||
sta playerY+1
|
sta playerY+1
|
||||||
lda #$80
|
lda #<PLAYER_START_Y
|
||||||
sta playerY
|
sta playerY
|
||||||
; direction=0
|
lda #PLAYER_START_DIR
|
||||||
lda #4
|
|
||||||
sta playerDir
|
sta playerDir
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user