mirror of
https://github.com/badvision/lawless-legends.git
synced 2025-01-31 12:30:01 +00:00
First recording made.
This commit is contained in:
parent
49ade7b345
commit
7a38fa534d
@ -1074,9 +1074,8 @@ def cursorWait(targetX, targetY)#1
|
|||||||
// Erase target if it's still showing
|
// Erase target if it's still showing
|
||||||
if targetX <> 9999 and targetOn; showTarget(targetX, targetY); fin
|
if targetX <> 9999 and targetOn; showTarget(targetX, targetY); fin
|
||||||
|
|
||||||
i = ^kbd
|
i = recordKey
|
||||||
^kbdStrobe
|
return charToUpper(i)
|
||||||
return charToUpper(i & $7F)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -120,10 +120,10 @@ def combatPause()#0
|
|||||||
// Check for speed-up / slow-down
|
// Check for speed-up / slow-down
|
||||||
key = ^kbd
|
key = ^kbd
|
||||||
if key == (11 + 128) or key == ('-'+128) // up-arrow or minus
|
if key == (11 + 128) or key == ('-'+128) // up-arrow or minus
|
||||||
^kbdStrobe
|
if !recordMode; ^kbdStrobe; fin
|
||||||
global=>w_combatPauseCt = max(100, global=>w_combatPauseCt - addPercent(global=>w_combatPauseCt, 20))
|
global=>w_combatPauseCt = max(100, global=>w_combatPauseCt - addPercent(global=>w_combatPauseCt, 20))
|
||||||
elsif key == (10 + 128) or key == ('+'+128) // down-arrow or plus
|
elsif key == (10 + 128) or key == ('+'+128) // down-arrow or plus
|
||||||
^kbdStrobe
|
if !recordMode; ^kbdStrobe; fin
|
||||||
global=>w_combatPauseCt = min(9999, global=>w_combatPauseCt + addPercent(global=>w_combatPauseCt, 20))
|
global=>w_combatPauseCt = min(9999, global=>w_combatPauseCt + addPercent(global=>w_combatPauseCt, 20))
|
||||||
fin
|
fin
|
||||||
end
|
end
|
||||||
@ -1052,7 +1052,7 @@ def startCombat(mapCode)#1
|
|||||||
|
|
||||||
// Clear keyboard stobe, because while wandering the map, the player may have
|
// Clear keyboard stobe, because while wandering the map, the player may have
|
||||||
// queued up movement keys, which are made obsolete by the surprise of combat.
|
// queued up movement keys, which are made obsolete by the surprise of combat.
|
||||||
^kbdStrobe
|
if !recordMode; ^kbdStrobe; fin
|
||||||
|
|
||||||
// Say who we're fighting
|
// Say who we're fighting
|
||||||
p = global=>p_enemyGroups
|
p = global=>p_enemyGroups
|
||||||
|
@ -102,6 +102,7 @@ import gamelib
|
|||||||
predef rawDisplayStr(str)#0
|
predef rawDisplayStr(str)#0
|
||||||
predef rdkey()#1
|
predef rdkey()#1
|
||||||
predef readAuxByte(ptr)#1
|
predef readAuxByte(ptr)#1
|
||||||
|
predef recordKey()#1
|
||||||
predef removeFromList(pList, toRemove)#0
|
predef removeFromList(pList, toRemove)#0
|
||||||
predef removeNamed(name, pList)#1
|
predef removeNamed(name, pList)#1
|
||||||
predef removePlayerFromParty(playerName)#0
|
predef removePlayerFromParty(playerName)#0
|
||||||
@ -164,6 +165,7 @@ import gamelib
|
|||||||
word pResourceIndex
|
word pResourceIndex
|
||||||
word pGlobalTileset
|
word pGlobalTileset
|
||||||
byte isFloppyVer
|
byte isFloppyVer
|
||||||
|
byte recordMode
|
||||||
|
|
||||||
/////////// Shared string constants //////////////
|
/////////// Shared string constants //////////////
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ export byte[] S_THEIR = "their"
|
|||||||
//word startTick = 0
|
//word startTick = 0
|
||||||
word lastTick = 0
|
word lastTick = 0
|
||||||
|
|
||||||
export byte recordMode = FALSE
|
export byte recordMode = 0
|
||||||
word recordSeed
|
word recordSeed
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -1071,6 +1071,21 @@ asm internal_rand16()#1
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Turn the printer on or off (assumes slot 1)
|
||||||
|
asm setPrinter(enable)#0
|
||||||
|
+asmPlasmNoRet 1
|
||||||
|
ldx #<ROM_cout
|
||||||
|
ldy #>ROM_cout
|
||||||
|
asl
|
||||||
|
beq +
|
||||||
|
ldx #0
|
||||||
|
ldy #$C1
|
||||||
|
+ stx cswl
|
||||||
|
sty cswh
|
||||||
|
rts
|
||||||
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Clear the text-mode screen, and put the text cursor at the top of it.
|
// Clear the text-mode screen, and put the text cursor at the top of it.
|
||||||
export asm textHome()#0
|
export asm textHome()#0
|
||||||
@ -1391,6 +1406,9 @@ export def getStringResponse()#1
|
|||||||
word p
|
word p
|
||||||
rawGetStr()
|
rawGetStr()
|
||||||
rawDisplayStr("\n") // so Outlaw user doesn't have to remember to make a newline
|
rawDisplayStr("\n") // so Outlaw user doesn't have to remember to make a newline
|
||||||
|
if recordMode
|
||||||
|
puts("STRING:"); puts($200); crout
|
||||||
|
fin
|
||||||
return mmgr(HEAP_INTERN, $200)
|
return mmgr(HEAP_INTERN, $200)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1520,6 +1538,35 @@ export def parseDec(str)#1
|
|||||||
return n
|
return n
|
||||||
end
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def recordChar(ch)#0
|
||||||
|
if ch < $20
|
||||||
|
printChar('^')
|
||||||
|
ch = ch + $40
|
||||||
|
fin
|
||||||
|
printChar(ch)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Used in record mode to print out a keystroke. Also handles caret -> ctrl translation during
|
||||||
|
// playback of recordings.
|
||||||
|
export def recordKey()#1
|
||||||
|
byte key
|
||||||
|
key = ^kbd & $7F
|
||||||
|
^kbdStrobe
|
||||||
|
if recordMode
|
||||||
|
if key == '^'
|
||||||
|
while ^kbd < 128; loop
|
||||||
|
key = (^kbd & $7F) - $40
|
||||||
|
^kbdStrobe
|
||||||
|
fin
|
||||||
|
puts("KEY:")
|
||||||
|
recordChar(key)
|
||||||
|
crout
|
||||||
|
fin
|
||||||
|
return key
|
||||||
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Get a keystroke and convert it to upper case
|
// Get a keystroke and convert it to upper case
|
||||||
export def getUpperKey()#1
|
export def getUpperKey()#1
|
||||||
@ -1551,9 +1598,8 @@ export def getUpperKey()#1
|
|||||||
// pause() will terminate on keypress, returning the count it did
|
// pause() will terminate on keypress, returning the count it did
|
||||||
*seed = *seed + pause(30000)
|
*seed = *seed + pause(30000)
|
||||||
loop
|
loop
|
||||||
key = ^kbd
|
key = recordKey
|
||||||
^kbdStrobe
|
return charToUpper(key)
|
||||||
return charToUpper(key & $7F)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -2409,6 +2455,16 @@ def advTime(hours, mins, secs)#0
|
|||||||
fin
|
fin
|
||||||
end
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def recordDisplay(str)#0
|
||||||
|
word i
|
||||||
|
puts("DISP:")
|
||||||
|
for i = 1 to ^str
|
||||||
|
recordChar(^(str + i))
|
||||||
|
next
|
||||||
|
crout
|
||||||
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Called by scripts to display a string. We set the flag noting that something has been
|
// Called by scripts to display a string. We set the flag noting that something has been
|
||||||
// displayed, then use an assembly routine to do the work.
|
// displayed, then use an assembly routine to do the work.
|
||||||
@ -2422,7 +2478,7 @@ export def _scriptDisplayStr(str)#0
|
|||||||
needRender = FALSE
|
needRender = FALSE
|
||||||
fin
|
fin
|
||||||
if textClearCountdown; clearTextWindow(); fin
|
if textClearCountdown; clearTextWindow(); fin
|
||||||
if recordMode; printf1("DISP: %s\n", str); fin
|
if recordMode; recordDisplay(str); fin
|
||||||
displayStr(str)
|
displayStr(str)
|
||||||
textDrawn = TRUE
|
textDrawn = TRUE
|
||||||
fin
|
fin
|
||||||
@ -3199,9 +3255,10 @@ def toggleGodMode()#1
|
|||||||
displayf1("gm:%d\n", global->b_godmode & 1)
|
displayf1("gm:%d\n", global->b_godmode & 1)
|
||||||
initCmds() // rebuild the command table with new commands
|
initCmds() // rebuild the command table with new commands
|
||||||
else
|
else
|
||||||
recordMode = !recordMode
|
recordMode = 1 - recordMode
|
||||||
if recordMode; recordSeed = 1; fin
|
if recordMode; recordSeed = 1; fin
|
||||||
displayf1("rm:%d\n", recordMode & 1)
|
setPrinter(recordMode)
|
||||||
|
displayf1("rm:%d\n", recordMode)
|
||||||
fin
|
fin
|
||||||
textDrawn = TRUE
|
textDrawn = TRUE
|
||||||
beep; beep
|
beep; beep
|
||||||
|
Loading…
x
Reference in New Issue
Block a user