Fix animation showing over inventory screen. Fix mini powder keg in combat.

This commit is contained in:
Martin Haye
2020-03-05 07:22:22 -08:00
parent db052ecf44
commit 74f81a89a5
2 changed files with 28 additions and 20 deletions

View File

@@ -537,6 +537,11 @@ end
def chooseShotNumber(pl, pWeapon)#0 def chooseShotNumber(pl, pWeapon)#0
byte i, nChoices, k byte i, nChoices, k
// Treat single-use weapons as having infinite ammo
if pWeapon->b_flags & WEAPON_FLAG_SINGLE_USE
pWeapon->b_clipCurrent = 99
fin
// Determine number of shot choices this weapon has // Determine number of shot choices this weapon has
nChoices = 0 nChoices = 0
pl->b_shotChoice = 0 pl->b_shotChoice = 0

View File

@@ -2132,20 +2132,21 @@ end
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
export def textureControl(flg)#0 export def textureControl(flg)#0
if !renderLoaded or !mapIs3D; return; fin
flipToPage1 flipToPage1
if flg and !texturesLoaded if flg <> texturesLoaded and renderLoaded and mapIs3D
_texControl(1) if flg
loadUtil3d _texControl(1)
showingLamp = (skyNum == 0 or skyNum == 8) loadUtil3d
elsif !flg and texturesLoaded showingLamp = (skyNum == 0 or skyNum == 8)
_texControl(0) else
if pModUtil3d _texControl(0)
mmgr(FREE_MEMORY, pModUtil3d) if pModUtil3d
pModUtil3d = NULL mmgr(FREE_MEMORY, pModUtil3d)
util3d = NULL pModUtil3d = NULL
util3d = NULL
fin
showingLamp = FALSE
fin fin
showingLamp = FALSE
fin fin
texturesLoaded = flg texturesLoaded = flg
end end
@@ -2573,12 +2574,14 @@ def showAnimFrame()#0
elsif curFullscreenImg elsif curFullscreenImg
blit(1, curFullscreenImg + 2, getScreenLine(0), 192, 40) // the +2 is to skip anim hdr offset blit(1, curFullscreenImg + 2, getScreenLine(0), 192, 40) // the +2 is to skip anim hdr offset
needRender = FALSE // suppress display of map for this frame needRender = FALSE // suppress display of map for this frame
elsif mapIs3D elsif texturesLoaded
if showingLamp and util3d; util3d=>util3d_nextLampFrame(); fin if mapIs3D
render($FF) // it's only animation, so do interrupt if a key is pressed if showingLamp and util3d; util3d=>util3d_nextLampFrame(); fin
if showingLamp and util3d; util3d=>util3d_nextLampFrame(); fin render($FF) // it's only animation, so do interrupt if a key is pressed
else if showingLamp and util3d; util3d=>util3d_nextLampFrame(); fin
render(0) // 2d map view else
render(0) // 2d map view
fin
fin fin
end end
@@ -2587,6 +2590,7 @@ end
def nextAnimFrame()#0 def nextAnimFrame()#0
word flags, param word flags, param
byte dir, randNum byte dir, randNum
if !anyAnims; return; fin if !anyAnims; return; fin
// Choose a new direction based on the flags. Do this the first time, and once every 3-7 frames. // Choose a new direction based on the flags. Do this the first time, and once every 3-7 frames.
@@ -2705,8 +2709,7 @@ def loadEngine(moduleNum)#1
if curEngine; fatal("dblEng"); fin if curEngine; fatal("dblEng"); fin
preEnginePortraitNum = curPortraitNum preEnginePortraitNum = curPortraitNum
clearPortrait() clearPortrait()
textureControl(FALSE) textureControl(FALSE) // also flips to page 1
flipToPage1()
mmgr(START_LOAD, 1) // code is in partition 1 mmgr(START_LOAD, 1) // code is in partition 1
curEngine = mmgr(QUEUE_LOAD, moduleNum<<8 | RES_TYPE_MODULE) curEngine = mmgr(QUEUE_LOAD, moduleNum<<8 | RES_TYPE_MODULE)
mmgr(FINISH_LOAD, 0) mmgr(FINISH_LOAD, 0)