Dynamic Tile Overlay (ZASM)
SubmittedDecember 14, 2016
ZoriaRPG
OVERLAYTILE** is a ZASM instruction that through to ZC 2.50.2, has had no ZScript equivalent. It functions in the same manner as CopyTile(), so it's easy to make a script that uses CopyTile(), ( ZASM: COPYTILE** ) and drop in the ZASM instruction OVERLAYTILE** to change from a copy process, to an overlay process.
The overlay works exactly as the similar command in the tile editor.
This package contains the ZASM ffc script, that you may import and use, an example quest, and an updated version of zscript.txt that includes details on the instruction.
Unzip the package OverlayTIle.zip and drop the file FFC_OverlayTIle.txt into your ZQuest path.
In ZQuest, go to Menu->Quest->Scripts->Import ASM FFC Script.
Select an empty slot.
Name the slot OverlayTile.
When prompted, select the file 'FFC_OverlayTile.txt' in the dialogue box.
ZC will parse it, and add it to your ffc table. From this point onward, you will be able to select it as normal when placing ffcs on the screen.
Place an ffc on a screen, set its script to 'OverlayTile', and set its combo data to something other than '0'.
Script Args:
D0, D1: Base and overlay tile of first overlay set. D0 is the main tile, and we will overlay D1 over it.
D2, D3: Second set.
D4, D5: Third set.
D6, D7: Fourth set.
If any value in these sets is '0', no overlay for that set will occur.
See the demo quest for an example use.
This ZASM file is intended as a stopgap method to access this feature, until a future ZC version includes an instruction (e.g. void OverlayTIle(int src, int dest) ) for ZScript to do this.
PUSHR d0
 PUSHR d1
 PUSHR d2
 PUSHR d3
 PUSHR d4
 PUSHR d5
 PUSHR d6
 PUSHR d7
 SETV d2,0
 SETR d3,REFFFC
 PUSHR d3
 SETR d4,SP
 SETR d6,d4
 ADDV d6,8
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,7
 LOADI d2,d6
 POP d3
 COMPAREV d2,0
 SETFALSE d2
 COMPAREV d3,0
 SETFALSE d3
 ADDR d2,d3
 COMPAREV d2,0.0002
 SETMORE d2
 COMPAREV d2,0
 GOTOTRUE 43
 PUSHR d4
 SETV d2,42
 PUSHR d2
 SETR d6,d4
 ADDV d6,8
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,7
 LOADI d2,d6
 PUSHR d2
 GOTO 154
 POP d4
 SETV d2,0
 SETR d6,d4
 ADDV d6,6
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,5
 LOADI d2,d6
 POP d3
 COMPAREV d2,0
 SETFALSE d2
 COMPAREV d3,0
 SETFALSE d3
 ADDR d2,d3
 COMPAREV d2,0.0002
 SETMORE d2
 COMPAREV d2,0
 GOTOTRUE 74
 PUSHR d4
 SETV d2,73
 PUSHR d2
 SETR d6,d4
 ADDV d6,6
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,5
 LOADI d2,d6
 PUSHR d2
 GOTO 154
 POP d4
 SETV d2,0
 SETR d6,d4
 ADDV d6,4
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,3
 LOADI d2,d6
 POP d3
 COMPAREV d2,0
 SETFALSE d2
 COMPAREV d3,0
 SETFALSE d3
 ADDR d2,d3
 COMPAREV d2,0.0002
 SETMORE d2
 COMPAREV d2,0
 GOTOTRUE 105
 PUSHR d4
 SETV d2,104
 PUSHR d2
 SETR d6,d4
 ADDV d6,4
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,3
 LOADI d2,d6
 PUSHR d2
 GOTO 154
 POP d4
 SETV d2,0
 SETR d6,d4
 ADDV d6,2
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,1
 LOADI d2,d6
 POP d3
 COMPAREV d2,0
 SETFALSE d2
 COMPAREV d3,0
 SETFALSE d3
 ADDR d2,d3
 COMPAREV d2,0.0002
 SETMORE d2
 COMPAREV d2,0
 GOTOTRUE 136
 PUSHR d4
 SETV d2,135
 PUSHR d2
 SETR d6,d4
 ADDV d6,2
 LOADI d2,d6
 PUSHR d2
 SETR d6,d4
 ADDV d6,1
 LOADI d2,d6
 PUSHR d2
 GOTO 154
 POP d4
 SETV d2,0
 PUSHR d4
 SETV d2,141
 PUSHR d2
 GOTO 152
 POP d4
 SETV d3,0
 POP d3
 POP d3
 POP d3
 POP d3
 POP d3
 POP d3
 POP d3
 POP d3
 QUIT
 POP d3
 QUIT
 POP d3
 POP d2
 OVERLAYTILERR d2,d3
 POP d3
 GOTOR d3
					












Review this entry
You must be logged in to post a comment.