mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-09-28 20:54:46 +00:00
Took out temporary automap checking (but left it commented out in case we need it again later). Fixed story mode crash on disk-limited version. Added healing over time.
This commit is contained in:
parent
cd117aef7c
commit
7c911c34c3
@ -44,8 +44,9 @@ predef _startup()#1
|
||||
predef _saveGame()#1
|
||||
predef _loadGame()#1
|
||||
predef _newOrLoadGame(ask)#1
|
||||
predef _checkAutomap()#1 // TEMPORARY - FIXME FOO
|
||||
word[] funcTbl = @_startup, @_saveGame, @_loadGame, @_newOrLoadGame, @_checkAutomap
|
||||
//AUTOMAP_CHECK// predef _checkAutomap()#1
|
||||
word[] funcTbl = @_startup, @_saveGame, @_loadGame, @_newOrLoadGame
|
||||
//AUTOMAP_CHECK// word = @_checkAutomap
|
||||
|
||||
byte[] game1_filename = "GAME.1.SAVE"
|
||||
byte[] legendos_filename = "LEGENDOS.SYSTEM"
|
||||
@ -381,11 +382,11 @@ def checkMarks()#0
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// TEMPORARY FOR DISK MARK CHECKING - FIXME FOO
|
||||
def _checkAutomap()#1
|
||||
readDiskMarks; checkMarks
|
||||
return 0
|
||||
end
|
||||
// TEMPORARY FOR DISK MARK CHECKING
|
||||
//AUTOMAP_CHECK// def _checkAutomap()#1
|
||||
//AUTOMAP_CHECK// readDiskMarks; checkMarks
|
||||
//AUTOMAP_CHECK// return 0
|
||||
//AUTOMAP_CHECK// end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
def _saveGame()#1
|
||||
@ -393,7 +394,7 @@ def _saveGame()#1
|
||||
// (also does a CHECK_MEM to be sure we never save corrupted heap)
|
||||
heapCollect()
|
||||
|
||||
readDiskMarks; checkMarks // TEMPORARY - FIXME FOO
|
||||
//AUTOMAP_CHECK// readDiskMarks; checkMarks
|
||||
|
||||
// Copy data to main memory, and write it out.
|
||||
memcpy(HEAP_BOTTOM, LOAD_SAVE_BUF, HEAP_SIZE, 0) // LC to low mem
|
||||
@ -601,7 +602,7 @@ def clearDiskMarks()#0
|
||||
callProRWTS(RWTS_SEEK | RWTS_RDWRPART, NULL, NULL, HEAP_SIZE)
|
||||
callProRWTS(RWTS_WRITE | RWTS_RDWRPART, NULL, LOAD_SAVE_BUF, size+2)
|
||||
|
||||
_checkAutomap // FIXME FOO
|
||||
//AUTOMAP_CHECK// _checkAutomap
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -13,4 +13,4 @@ const diskops_startup = 0
|
||||
const diskops_saveGame = 2
|
||||
const diskops_loadGame = 4
|
||||
const diskops_newOrLoadGame = 6
|
||||
const diskops_checkAutomap = 8 // TEMPORARY - FIXME FOO
|
||||
//AUTOMAP_CHECK// const diskops_checkAutomap = 8
|
||||
|
@ -71,6 +71,7 @@ predef pause(count)#1
|
||||
predef printf1(str, arg1)#0
|
||||
predef printf2(str, arg1, arg2)#0
|
||||
predef playerDeath()#0
|
||||
predef setStat(player, statName, val)#0
|
||||
predef startGame(firstTime, ask)#0
|
||||
predef showAnimFrame()#0
|
||||
predef showParty()#0
|
||||
@ -1967,7 +1968,7 @@ end
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Load code and data, set up everything to display a 2D or 3D map
|
||||
def initMap(x, y, dir)#0
|
||||
word pDiskOps // TEMPORARY - FIXME FOO
|
||||
//AUTOMAP_CHECK// word pDiskOps
|
||||
|
||||
// If we have a renderer loaded, let it know to flush automap marks
|
||||
textureControl(FALSE)
|
||||
@ -1999,12 +2000,12 @@ def initMap(x, y, dir)#0
|
||||
mmgr(QUEUE_LOAD, CODE_TILE_ENGINE<<8 | RES_TYPE_CODE)
|
||||
fin
|
||||
pGlobalTileset = mmgr(QUEUE_LOAD, 1<<8 | RES_TYPE_TILESET) // even in 3d, need tiles for lamp/etc.
|
||||
pDiskOps = mmgr(QUEUE_LOAD, MOD_DISKOPS<<8 | RES_TYPE_MODULE) // TEMPORARY - FIXME FOO
|
||||
//AUTOMAP_CHECK// pDiskOps = mmgr(QUEUE_LOAD, MOD_DISKOPS<<8 | RES_TYPE_MODULE)
|
||||
mmgr(FINISH_LOAD, 0)
|
||||
if mapIs3D; loadUtil3d(); fin
|
||||
|
||||
pDiskOps()=>diskops_checkAutomap() // TEMPORARY - FIXME FOO
|
||||
mmgr(FREE_MEMORY, pDiskOps) // TEMPORARY - FIXME FOO
|
||||
//AUTOMAP_CHECK// pDiskOps()=>diskops_checkAutomap()
|
||||
//AUTOMAP_CHECK// mmgr(FREE_MEMORY, pDiskOps)
|
||||
|
||||
// Set up the command table
|
||||
initCmds() // must be after loading util3d
|
||||
@ -2130,7 +2131,8 @@ end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
def advTime(hours, mins, secs)#0
|
||||
byte redrawClock, runScript
|
||||
byte redrawClock, runScript, prevHour, add
|
||||
word player
|
||||
|
||||
if secs
|
||||
global->b_second = global->b_second + secs
|
||||
@ -2152,11 +2154,23 @@ def advTime(hours, mins, secs)#0
|
||||
|
||||
if hours
|
||||
redrawClock = TRUE
|
||||
prevHour = global->b_hour
|
||||
global->b_hour = global->b_hour + hours
|
||||
while global->b_hour >= 24
|
||||
global->b_hour = global->b_hour - 24
|
||||
loop
|
||||
runScript = TRUE
|
||||
|
||||
// Heal over time every 12 hours
|
||||
if (prevHour / 12) <> (global->b_hour / 12)
|
||||
player = global=>p_players
|
||||
while player
|
||||
add = (rand16 % player->b_stamina)/3
|
||||
setStat(player, @S_HEALTH, player=>w_health + add)
|
||||
player = player=>p_nextObj
|
||||
loop
|
||||
if needShowParty; showParty(); fin
|
||||
fin
|
||||
fin
|
||||
|
||||
if mapIs3D and redrawClock
|
||||
@ -2248,7 +2262,7 @@ export def moveInternal(facingDir, moveDir, beepOK, shouldAdvTime)#1
|
||||
// Advance time if requested
|
||||
if shouldAdvTime
|
||||
if mapIs3D
|
||||
for i = 0 to global->b_moveMode
|
||||
for i = 1 to global->b_moveMode
|
||||
advTime(CLOCK_ADV_3D_HOURS, CLOCK_ADV_3D_MINS, CLOCK_ADV_3D_SECS)
|
||||
next
|
||||
else
|
||||
@ -2397,7 +2411,7 @@ end
|
||||
export def queue_setMap(is3D, num, x, y, dir)#0
|
||||
byte part
|
||||
part = lookupResourcePart(is3d+1, num)
|
||||
if part > diskLimit
|
||||
if diskLimit and part > diskLimit
|
||||
clearWindow
|
||||
callGlobalFunc(GS_DISK_LIMIT, 1, 0, 0)
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user