mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-10-02 00:54:48 +00:00
Fixed latent animation bug introduced by PF - when advancing anim ptr, need to get both bytes of offset before changing ptr.
This commit is contained in:
parent
8cd36fad17
commit
1ce5b2b0a0
@ -2787,6 +2787,7 @@ advSingleAnim:
|
||||
rts
|
||||
.dbgout +crout
|
||||
+waitKey
|
||||
bit $c050
|
||||
sta setAuxRd
|
||||
sta setAuxWr
|
||||
rts
|
||||
@ -2828,12 +2829,14 @@ applyPatch:
|
||||
; loop to skip patches until we find the right one
|
||||
- dec reqLen ; it starts at 1, which means first patch.
|
||||
beq +
|
||||
ldy #1
|
||||
ldy #0
|
||||
lda (pSrc),y ; low byte of patch len
|
||||
pha
|
||||
iny
|
||||
lda (pSrc),y ; hi byte of patch len
|
||||
inx ; -> pSrc+1
|
||||
jsr .ptradd ; skip by # pages in patch
|
||||
dey
|
||||
lda (pSrc),y ; low byte of patch len
|
||||
pla ; get lo byte of len back
|
||||
jsr .srcadd ; skip pSrc past last partial page in patch
|
||||
jmp -
|
||||
+ !if DEBUG = 2 { jsr .dbgC2 }
|
||||
|
@ -65,6 +65,7 @@ import gamelib
|
||||
predef initPlayerXP(player)#0
|
||||
predef loadFrameImg(img)#0
|
||||
predef loadMainFrameImg()#0
|
||||
predef lookupResourcePart(sectionNum, resourceNum)#1
|
||||
predef makeModifier(name, value)#1
|
||||
predef max(a, b)#1
|
||||
predef memcpy(pSrc, pDst, len)#0
|
||||
|
@ -82,7 +82,7 @@ byte inScript = FALSE
|
||||
|
||||
export word skyNum = 9
|
||||
export word groundNum = 10
|
||||
export byte portraitNum = 1
|
||||
export byte portraitNum = 46
|
||||
|
||||
word triggerOriginX, triggerOriginY
|
||||
word triggerTbl
|
||||
@ -1361,7 +1361,7 @@ end
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Look up the partition for a resource.
|
||||
// sectioNum: 1=map2d, 2=map3d, 3=portrait
|
||||
def lookupResourcePart(sectionNum, resourceNum)#1
|
||||
export def lookupResourcePart(sectionNum, resourceNum)#1
|
||||
word ptr
|
||||
byte n
|
||||
|
||||
@ -1381,7 +1381,8 @@ def lookupResourcePart(sectionNum, resourceNum)#1
|
||||
if curMapPartition > 0; return curMapPartition; fin
|
||||
return 2
|
||||
fin
|
||||
if n < 1 or n > 20; fatal("lkupFail2"); fin
|
||||
printf1("n=%d\n", n)
|
||||
if n < 0 or n > 20; fatal("lkupFail2"); fin
|
||||
return n
|
||||
end
|
||||
|
||||
@ -1415,9 +1416,9 @@ def printVersion()#0
|
||||
crout()
|
||||
^$24 = 25
|
||||
puts("V ")
|
||||
setWindow(183, 192, 168, 254)
|
||||
setWindow(183, 192, 161, 261)
|
||||
clearWindow()
|
||||
setWindow(183, 192, 175, 245)
|
||||
setWindow(183, 192, 168, 252)
|
||||
rawDisplayStr("^YV ")
|
||||
p = pResourceIndex
|
||||
len = readAuxByte(p)
|
||||
@ -2237,7 +2238,8 @@ export def setPortrait(portraitNum)#0
|
||||
|
||||
// Load the portrait image and display it
|
||||
part = lookupResourcePart(3, portraitNum)
|
||||
if part > 1; part = curMapPartition; fin // Look on disk 1 or current disk only
|
||||
// Commented out below, because it prevents cycling thru all portraits (in god mode)
|
||||
// NO: if part > 1; part = curMapPartition; fin // Look on disk 1 or current disk only
|
||||
mmgr(START_LOAD, part)
|
||||
curPortrait = auxMmgr(QUEUE_LOAD, portraitNum<<8 | RES_TYPE_PORTRAIT)
|
||||
curPortraitNum = portraitNum
|
||||
|
@ -78,16 +78,24 @@ end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
def nextPortrait()#1
|
||||
portraitNum = portraitNum + 1
|
||||
if portraitNum > PO_LAST; portraitNum = 1; fin
|
||||
while TRUE
|
||||
portraitNum = portraitNum + 1
|
||||
if portraitNum > PO_LAST; portraitNum = 1; fin
|
||||
printf1("portrait %d\n", portraitNum)
|
||||
if lookupResourcePart(3, portraitNum); break; fin
|
||||
loop
|
||||
setPortrait(portraitNum)
|
||||
return 0
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
def prevPortrait()#1
|
||||
portraitNum = portraitNum - 1
|
||||
if portraitNum < 1; portraitNum = PO_LAST; fin
|
||||
while TRUE
|
||||
portraitNum = portraitNum - 1
|
||||
if portraitNum < 1; portraitNum = PO_LAST; fin
|
||||
printf1("portrait %d\n", portraitNum)
|
||||
if lookupResourcePart(3, portraitNum); break; fin
|
||||
loop
|
||||
setPortrait(portraitNum)
|
||||
return 0
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user