PDA

View Full Version : What are all the ZASM commands?



Nimono
12-03-2006, 06:04 PM
Like the title says. I want to get into scripting, but that's impossible if I don't know the commands I can use, BESIDES WAITFRAME AND VOID RUN(). Those are used in every script I see. How can I NOT know those? XD Also, a good explanation of those descriptions people place in their scripts would be nice. What's their purpose(s)? Thanks in advance!

Saffith
12-06-2006, 05:44 PM
void run()? Sounds like you want ZScript, not ZASM.
If you have no programming experience and want to learn to script, I'd say this post (http://armageddongames.net/showpost.php?p=1103251&postcount=6), followed by this one (http://www.armageddongames.net/showpost.php?p=1102818&postcount=4), would be a good place to start.

If you're really just looking for a list of functions and properties, though, those are here (http://www.armageddongames.net/showthread.php?t=93851).

Nimono
12-06-2006, 05:47 PM
One problem- According to the first post, that's only for those who can read a script and know what it does just by looking at the variables. Unfortunately, if you give me a random script, I wouldn't know what it did just by looking at it. O_o I don't really care whether I use ZScript or Zasm. I just want to be able to script so I can at least get one step closer to stop having to rely on others to get things for my quests. O_o

C-Dawg
12-06-2006, 06:14 PM
Maybe we sticky this, yes?

http://www.armageddongames.net/showthread.php?t=94699

ShadowTiger
12-07-2006, 12:02 PM
There are a *LOT* of things that we probably need to sticky. Personally, I think that enough people need to know *how* to script that having a forum devoted entirely to LEARNING how to script can have enough content to warrant its creation, while leaving the ZScript help forum to be a place not exactly to learn how to script, but to ensure that you're scripting correctly.

There isn't enough of a difference to really warrant it now, but there -will- be "How do you script!?" threads started here just as there are "I want the Roc's Feather" topics in the ZC Suggestions forum. People may as well have a place to go to find all the resources devoted on going from absolute coding n00b to someone who can at least work with the code to get into a mess with it. We all know that there is no small difference between the two.


So yeah, I want to see that stickied, much like every other thread that you've spoken up in, C, (Face it; you're damn creative with this stuff, and a great educator as well. I love reading your explanations. They're very precise and detailed without going overboard. :thumbsup: ) and I want to wait for other opinions on the matter before proceeding.

Revfan9
01-04-2007, 06:30 AM
Thanks to Snarwin for the list:


Commands:

SETV, //0x0000
SETR, //0x0001
ADDR, //0x0002
ADDV, //0x0003
SUBR, //0x0004
SUBV, //0x0005
MULTR, //0x0006
MULTV, //0x0007
DIVR, //0x0008
DIVV, //0x0009
WAITFRAME, //0x000A
GOTO, //0x000B
CHECKTRIG, //0x000C
WARP, //0x000D
COMPARER, //0x000E
COMPAREV, //0x000F
GOTOTRUE, //0x0010
GOTOFALSE, //0x0011
GOTOLESS, //0x0012
GOTOMORE, //0x0013
LOAD1, //0x0014
LOAD2, //0x0015
SETA1, //0x0016
SETA2, //0x0017
QUIT, //0x0018
SINR, //0x0019
SINV, //0x001A
COSR, //0x001B
COSV, //0x001C
TANR, //0x001D
TANV, //0x001E
MODR, //0x001F
MODV, //0x0020
ABSR, //0x0021
MINR, //0x0022
MINV, //0x0023
MAXR, //0x0024
MAXV, //0x0025
RNDR, //0x0026
RNDV, //0x0027
FACTORIAL, //0x0028
POWERR, //0x0029
POWERV, //0x002A
IPOWERR, //0x002B
IPOWERV, //0x002C
ANDR, //0x002D
ANDV, //0x002E
ORR, //0x002F
ORV, //0x0030
XORR, //0x0031
XORV, //0x0032
NANDR, //0x0033
NANDV, //0x0034
NORR, //0x0035
NORV, //0x0036
XNORR, //0x0037
XNORV, //0x0038
NOT, //0x0039
LSHIFTR, //0x003A
LSHIFTV, //0x003B
RSHIFTR, //0x003C
RSHIFTV, //0x003D
TRACER, //0x003E
TRACEV, //0x003F
TRACENL, //0x0040
DUMMYCOMMAND4, //0x0041
PUSHR, //0x0042
PUSHV, //0x0043
POP, //0x0044
ENQUEUER, //0x0045
ENQUEUEV, //0x0046
DEQUEUE, //0x0047
PLAYSOUNDR, //0x0048
PLAYSOUNDV, //0x0049
LOADWEAPONR, //0x004A
LOADWEAPONV, //0x004B
LOADITEMR, //0x004C
LOADITEMV, //0x004D
LOADNPCR, //0x004E
LOADNPCV, //0x004F
CREATEWEAPONR, //0x0050
CREATEWEAPONV, //0x0051
CREATEITEMR, //0x0052
CREATEITEMV, //0x0053
CREATENPCR, //0x0054
CREATENPCV, //0x0055
ignore everything after the commas

Variables...
{ "D", D(0), 8, 0 },
{ "A", A(0), 2, 0 },
{ "DATA", DATA, 0, 0 },
{ "FCSET", FCSET, 0, 0 },
{ "DELAY", DELAY, 0, 0 },
{ "FX", FX, 0, 0 },
{ "FY", FY, 0, 0 },
{ "XD", XD, 0, 0 },
{ "YD", YD, 0, 0 },
{ "XD2", XD2, 0, 0 },
{ "YD2", YD2, 0, 0 },
{ "FLAG", FLAG, 0, 0 },
{ "WIDTH", WIDTH, 0, 0 },
{ "HEIGHT", HEIGHT, 0, 0 },
{ "LINK", LINK, 0, 0 },
{ "COMBOD", COMBOD(0), 176, 3 },
{ "COMBOC", COMBOC(0), 176, 3 },
{ "COMBOF", COMBOF(0), 176, 3 },



{ "INPUTSENABLED", INPUTSENABLED, 0, 0 },
{ "FORCEDUP", FORCEDUP, 0, 0 },
{ "FORCEDDOWN", FORCEDDOWN, 0, 0 },
{ "FORCEDLEFT", FORCEDLEFT, 0, 0 },
{ "FORCEDRIGHT", FORCEDRIGHT, 0, 0 },
{ "FORCEDA", FORCEDA, 0, 0 },
{ "FORCEDB", FORCEDB, 0, 0 },
{ "FORCEDL", FORCEDL, 0, 0 },
{ "FORCEDR", FORCEDR, 0, 0 },
{ "LINKX", LINKX, 0, 0 },
{ "LINKY", LINKY, 0, 0 },
{ "LINKDIR", LINKDIR, 0, 0 },
{ "LINKHP", LINKHP, 0, 0 },
{ "LINKMP", LINKMP, 0, 0 },
{ "LINKMAXHP", LINKMAXHP, 0, 0 },
{ "LINKMAXMP", LINKMAXMP, 0, 0 },
{ "LINKACTION", LINKACTION, 0, 0 },


{ "WPNX", WPNX, 0, 0 },
{ "WPNY", WPNY, 0, 0 },
{ "WPNDIR", WPNDIR, 0, 0 },
{ "WPNSTEP", WPNSTEP, 0, 0 },
{ "WPNANGULAR", WPNANGULAR, 0, 0 },
{ "WPNANGLE", WPNANGLE, 0, 0 },
{ "WPNDRAWTYPE", WPNDRAWTYPE, 0, 0 },
{ "WPNPOWER", WPNPOWER, 0, 0 },
{ "WPNDEAD", WPNDEAD, 0, 0 },
{ "WPNID", WPNID, 0, 0 },
{ "WPNTILE", WPNTILE, 0, 0 },
{ "WPNCSET", WPNCSET, 0, 0 },
{ "WPNFLASHCSET", WPNFLASHCSET, 0, 0 },
{ "WPNFRAMES", WPNFRAMES, 0, 0 },
{ "WPNFRAME", WPNFRAME, 0, 0 },
{ "WPNASPEED", WPNASPEED, 0, 0 },
{ "WPNFLASH", WPNFLASH, 0, 0 },
{ "WPNFLIP", WPNFLIP, 0, 0 },
{ "WPNCOUNT", WPNCOUNT, 0, 0 },

{ "ITEMX", ITEMX, 0, 0 },
{ "ITEMY", ITEMY, 0, 0 },
{ "ITEMDRAWTYPE", ITEMDRAWTYPE, 0, 0 },
{ "ITEMID", ITEMID, 0, 0 },
{ "ITEMTILE", ITEMTILE, 0, 0 },
{ "ITEMCSET", ITEMCSET, 0, 0 },
{ "ITEMFLASHCSET", ITEMFLASHCSET, 0, 0 },
{ "ITEMFRAMES", ITEMFRAMES, 0, 0 },
{ "ITEMFRAME", ITEMFRAME, 0, 0 },
{ "ITEMASPEED", ITEMASPEED, 0, 0 },
{ "ITEMDELAY", ITEMDELAY, 0, 0 },
{ "ITEMFLASH", ITEMFLASH, 0, 0 },
{ "ITEMFLIP", ITEMFLIP, 0, 0 },
{ "ITEMCOUNT", ITEMCOUNT, 0, 0 },

{ "NPCX", NPCX, 0, 0 },
{ "NPCY", NPCY, 0, 0 },
{ "NPCDIR", NPCDIR, 0, 0 },
{ "NPCRATE", NPCRATE, 0, 0 },
{ "NPCFRAMERATE", NPCFRAMERATE, 0, 0 },
{ "NPCHALTRATE", NPCHALTRATE, 0, 0 },
{ "NPCDRAWTYPE", NPCDRAWTYPE, 0, 0 },
{ "NPCHP", NPCHP, 0, 0 },
{ "NPCID", NPCID, 0, 0 },
{ "NPCDP", NPCDP, 0, 0 },
{ "NPCWDP", NPCWDP, 0, 0 },
{ "NPCTILE", NPCTILE, 0, 0 },
{ "NPCENEMY", NPCENEMY, 0, 0 },
{ "NPCWEAPON", NPCWEAPON, 0, 0 },
{ "NPCITEMSET", NPCITEMSET, 0, 0 },
{ "NPCCSET", NPCCSET, 0, 0 },
{ "NPCBOSSPAL", NPCBOSSPAL, 0, 0 },
{ "NPCBGSFX", NPCBGSFX, 0, 0 },
{ "NPCCOUNT", NPCCOUNT, 0, 0 },
{ "SD", SD(0), 8, 0 },
{ "GD", GD(0), 256, 0 },

ShadowMancer
08-26-2007, 07:08 PM
Cool a full list of commands, just one problem what do they do?? ;)

It seems noone has posted in this section in ages, but recently I am getting interested in learning ZASM now that I have ZScript down pretty good. I know there are a few powerful functions in ZASM that allow you to do things not possible in ZScript but alas I don't even know where to begin. Hopefully there are still a couple ppl into ZASM who could teach me a thing or two.

DarkDragon
08-26-2007, 07:39 PM
Yes, ZASM is highly under-documented at the moment. It doesn't help that several functions and variables are unimplemented, deprecated, or missing.

One way to better understand ZASM is to look at the output produced by the ZScript compiler for (very simple) ZScripts.

ShadowMancer
08-26-2007, 08:10 PM
Cool thanks DD, one subject in peticular i am interested in is assigning custom varibles to specific enemies. I read something about this bieng possible in ZASM.
zscript mockup of what i mean

ene_1 = Screen->LoadNPC(1);
ene_1->user_varible = 1;

something to that effect (obviously ZASM syntax is very different but you get what i mean)

DarkDragon
08-26-2007, 08:43 PM
I don't think that's possible.
Enemies have quite a few special variables, but no script-accessible general-purpose ones.

Here's the latest list of ZASM functions and variables, for your reference:



// Defines for the ASM operations
enum
{
SETV, //0x0000
SETR, //0x0001
ADDR, //0x0002
ADDV, //0x0003
SUBR, //0x0004
SUBV, //0x0005
MULTR, //0x0006
MULTV, //0x0007
DIVR, //0x0008
DIVV, //0x0009
WAITFRAME, //0x000A
GOTO, //0x000B
CHECKTRIG, //0x000C
WARP, //0x000D
COMPARER, //0x000E
COMPAREV, //0x000F
GOTOTRUE, //0x0010
GOTOFALSE, //0x0011
GOTOLESS, //0x0012
GOTOMORE, //0x0013
LOAD1, //0x0014
LOAD2, //0x0015
SETA1, //0x0016
SETA2, //0x0017
QUIT, //0x0018
SINR, //0x0019
SINV, //0x001A
COSR, //0x001B
COSV, //0x001C
TANR, //0x001D
TANV, //0x001E
MODR, //0x001F
MODV, //0x0020
ABSR, //0x0021
MINR, //0x0022
MINV, //0x0023
MAXR, //0x0024
MAXV, //0x0025
RNDR, //0x0026
RNDV, //0x0027
FACTORIAL, //0x0028
POWERR, //0x0029
POWERV, //0x002A
IPOWERR, //0x002B
IPOWERV, //0x002C
ANDR, //0x002D
ANDV, //0x002E
ORR, //0x002F
ORV, //0x0030
XORR, //0x0031
XORV, //0x0032
NANDR, //0x0033
NANDV, //0x0034
NORR, //0x0035
NORV, //0x0036
XNORR, //0x0037
XNORV, //0x0038
NOT, //0x0039
LSHIFTR, //0x003A
LSHIFTV, //0x003B
RSHIFTR, //0x003C
RSHIFTV, //0x003D
TRACER, //0x003E
TRACEV, //0x003F
TRACENL, //0x0040
LOOP, //0x0041
PUSHR, //0x0042
PUSHV, //0x0043
POP, //0x0044
ENQUEUER, //0x0045 //NOT IMPLEMENTED
ENQUEUEV, //0x0046 //NOT IMPLEMENTED
DEQUEUE, //0x0047 //NOT IMPLEMENTED
PLAYSOUNDR, //0x0048
PLAYSOUNDV, //0x0049
LOADWEAPONR, //0x004A
LOADWEAPONV, //0x004B
LOADITEMR, //0x004C //DEPRECATED
LOADITEMV, //0x004D //DEPRECATED
LOADNPCR, //0x004E
LOADNPCV, //0x004F
CREATELWEAPONR, //0x0050 //NOT IMPLEMENTED
CREATELWEAPONV, //0x0051 //NOT IMPLEMENTED
CREATEITEMR, //0x0052
CREATEITEMV, //0x0053
CREATENPCR, //0x0054
CREATENPCV, //0x0055
LOADI, //0x0056
STOREI, //0x0057
GOTOR, //0x0058
SQROOTV, //0x0059
SQROOTR, //0x005A
CREATEEWEAPONR, //0x005B //NOT IMPLEMENTED
CREATEEWEAPONV, //0x005C //NOT IMPLEMENTED
PITWARP, //0x005D
WARPR, //0x005E
PITWARPR, //0x005F
CLEARSPRITESR, //0x0060
CLEARSPRITESV, //0x0061
RECTR, //0x0062
CIRCLER, //0x0063
ARCR, //0x0064
ELLIPSER, //0x0065
LINER, //0x0066
PUTPIXELR, //0x0067
DRAWTILER, //0x0068
DRAWCOMBOR, //0x0069
ELLIPSE2, //0x006A
SPLINE, //0x006B
FLOODFILL, //0x006C
COMPOUNDR, //0x006D
COMPOUNDV, //0x006E
MSGSTRR, //0x006F
MSGSTRV, //0x0070
ISVALIDITEM, //0x0071
ISVALIDNPC, //0x0072

NUMCOMMANDS //0x0073
};

#define D(n) ((0x0000)+(n))
#define A(n) ((0x0008)+(n))
#define DATA 0x000A
#define FCSET 0x000B
#define DELAY 0x000C
#define FX 0x000D
#define FY 0x000E
#define XD 0x000F
#define YD 0x0010
#define XD2 0x0011
#define YD2 0x0012
#define FLAG 0x0013
#define WIDTH 0x0014
#define HEIGHT 0x0015
#define LINK 0x0016
#define COMBOD(n) ((0x0017)+((n)*3))
#define COMBOC(n) ((0x0018)+((n)*3))
#define COMBOF(n) ((0x0019)+((n)*3))

//0x00227-0X022F aren't used?
//n=0-175, so if n=175, then ((0x0019)+((n)*3))=0x00226
#define INPUTSTART 0x0227
#define INPUTUP 0x0228
#define INPUTDOWN 0x0229
#define INPUTLEFT 0x022A
#define INPUTRIGHT 0x022B
#define INPUTA 0x022C
#define INPUTB 0x022D
#define INPUTL 0x022E
#define INPUTR 0x022F

#define LINKX 0x0230
#define LINKY 0x0231
#define LINKDIR 0x0232
#define LINKHP 0x0233
#define LINKMP 0x0234
#define LINKMAXHP 0x0235
#define LINKMAXMP 0x0236
#define LINKACTION 0x0237
#define LINKITEMD 0x0238
#define LINKZ 0x0239
#define LINKJUMP 0x023A
#define LINKSWORDJINX 0x023B
#define LINKITEMJINX 0x023C
#define LINKCHARGED 0x023D
//0x023E-0x0258 are reserved for future Link variables
#define LINKHELD 0x023E
#define UNUSED15 0x023F
#define UNUSED16 0x0240
#define UNUSED17 0x0241
#define UNUSED18 0x0242
#define UNUSED19 0x0243
#define UNUSED20 0x0244
#define UNUSED21 0x0245
#define UNUSED22 0x0246
#define UNUSED23 0x0247
#define UNUSED24 0x0248
#define UNUSED25 0x0249
#define UNUSED26 0x024A
#define UNUSED27 0x024B
#define UNUSED28 0x024C
#define UNUSED29 0x024D
#define UNUSED30 0x024E
#define UNUSED31 0x024F
#define UNUSED32 0x0250
#define UNUSED33 0x0251
#define UNUSED34 0x0252
#define UNUSED35 0x0253
#define UNUSED36 0x0254
#define UNUSED37 0x0255
#define UNUSED38 0x0256
#define UNUSED39 0x0257
#define UNUSED40 0x0258

#define LWPNX 0x0259
#define LWPNY 0x025A
#define LWPNDIR 0x025B
#define LWPNSTEP 0x025C
#define LWPNANGULAR 0x025D
#define LWPNANGLE 0x025E
#define LWPNDRAWTYPE 0x025F
#define LWPNPOWER 0x0260
#define LWPNDEAD 0x0261
#define LWPNID 0x0262
#define LWPNTILE 0x0263
#define LWPNCSET 0x0264
#define LWPNFLASHCSET 0x0265
#define LWPNFRAMES 0x0266
#define LWPNFRAME 0x0267
#define LWPNASPEED 0x0268
#define LWPNFLASH 0x0269
#define LWPNFLIP 0x026A
#define LWPNCOUNT 0x026B
#define LWPNEXTEND 0x026C
#define LWPNOTILE 0x026D
#define LWPNOCSET 0x026E
#define LWPNZ 0x026F
#define LWPNJUMP 0x0270
//0x0271-0x028B are reserved for future weapon variables
#define UNUSED46 0x0271
#define UNUSED47 0x0272
#define UNUSED48 0x0273
#define UNUSED49 0x0274
#define UNUSED50 0x0275
#define UNUSED51 0x0276
#define UNUSED52 0x0277
#define UNUSED53 0x0278
#define UNUSED54 0x0279
#define UNUSED55 0x027A
#define UNUSED56 0x027B
#define UNUSED57 0x027C
#define UNUSED58 0x027D
#define UNUSED59 0x027E
#define UNUSED60 0x027F
#define UNUSED61 0x0280
#define UNUSED62 0x0281
#define UNUSED63 0x0282
#define UNUSED64 0x0283
#define UNUSED65 0x0284
#define UNUSED66 0x0285
#define UNUSED67 0x0286
#define UNUSED68 0x0287
#define UNUSED69 0x0288
#define UNUSED70 0x0289
#define UNUSED71 0x028A
#define UNUSED72 0x028B

#define ITEMX 0x028C
#define ITEMY 0x028D
#define ITEMDRAWTYPE 0x028E
#define ITEMID 0x028F
#define ITEMTILE 0x0290
#define ITEMCSET 0x0291
#define ITEMFLASHCSET 0x0292
#define ITEMFRAMES 0x0293
#define ITEMFRAME 0x0294
#define ITEMASPEED 0x0295
#define ITEMDELAY 0x0296
#define ITEMFLASH 0x0297
#define ITEMFLIP 0x0298
#define ITEMCOUNT 0x0299
#define ICLASSFAMILY 0x029A
#define ICLASSFAMTYPE 0x029B
#define ICLASSSETGAME 0x029C
#define ICLASSAMOUNT 0x029D
#define ICLASSSETMAX 0x029E
#define ICLASSMAX 0x029F
#define ICLASSCOUNTER 0x02A0
#define ITEMEXTEND 0x02A1
#define ITEMZ 0x02A2
#define ITEMJUMP 0x02A3

//0x02A4-0x02B9 are reserved for future item variables
#define UNUSED83 0x02A4
#define UNUSED84 0x02A5
#define UNUSED85 0x02A6
#define UNUSED86 0x02A7
#define UNUSED87 0x02A8
#define UNUSED88 0x02A9
#define UNUSED89 0x02AA
#define UNUSED90 0x02AB
#define UNUSED91 0x02AC
#define UNUSED92 0x02AD
#define UNUSED93 0x02AE
#define UNUSED94 0x02AF
#define UNUSED95 0x02B0
#define UNUSED96 0x02B1
#define UNUSED97 0x02B2
#define UNUSED98 0x02B3
#define UNUSED99 0x02B4
#define UNUSED100 0x02B5
#define UNUSED101 0x02B6
#define UNUSED102 0x02B7
#define UNUSED103 0x02B8
#define UNUSED104 0x02B9

#define NPCX 0x02BA
#define NPCY 0x02BB
#define NPCDIR 0x02BC
#define NPCRATE 0x02BD
#define NPCFRAMERATE 0x02BE
#define NPCHALTRATE 0x02BF
#define NPCDRAWTYPE 0x02C0
#define NPCHP 0x02C1
#define NPCID 0x02C2
#define NPCDP 0x02C3
#define NPCWDP 0x02C4
#define NPCTILE 0x02C5
#define NPCENEMY 0x02C6
#define NPCWEAPON 0x02C7
#define NPCITEMSET 0x02C8
#define NPCCSET 0x02C9
#define NPCBOSSPAL 0x02CA
#define NPCBGSFX 0x02CB
#define NPCCOUNT 0x02CC
#define NPCEXTEND 0x02CD
#define NPCZ 0x02CE
#define NPCJUMP 0x02CF
#define NPCSTEP 0x02D0
//0x02D1-0x02EB are reserved for future NPC variables
#define UNUSED109 0x02D1
#define UNUSED110 0x02D2
#define UNUSED111 0x02D3
#define UNUSED112 0x02D4
#define UNUSED113 0x02D5
#define UNUSED114 0x02D6
#define UNUSED115 0x02D7
#define UNUSED116 0x02D8
#define UNUSED117 0x02D9
#define UNUSED118 0x02DA
#define UNUSED119 0x02DB
#define UNUSED120 0x02DC
#define UNUSED121 0x02DD
#define UNUSED122 0x02DE
#define UNUSED123 0x02DF
#define UNUSED124 0x02E0
#define UNUSED125 0x02E1
#define UNUSED126 0x02E2
#define UNUSED127 0x02E3
#define UNUSED128 0x02E4
#define UNUSED129 0x02E5
#define UNUSED130 0x02E6
#define UNUSED131 0x02E7
#define UNUSED132 0x02E8
#define UNUSED133 0x02E9
#define UNUSED134 0x02EA
#define UNUSED135 0x02EB
//I'm stealing this one for the stack pointer -DD
#define SP 0x02EC

#define SD(n) ((0x02ED)+(n))
#define GD(n) ((0x02F5)+(n))

// Defines for accessing gamedata
#define GAMECOUNTER(n) ((0x03F5)+((n)*3))
#define GAMEMCOUNTER(n) ((0x03F6)+((n)*3))
#define GAMEDCOUNTER(n) ((0x03F7)+((n)*3))
#define GAMEGENERIC(n) ((0x0455)+(n))
#define GAMEITEMS(n) ((0x0555)+(n))
#define GAMELITEMS(n) ((0x0655)+(n))
#define GAMELKEYS(n) ((0x0755)+(n))
#define GAMEDEATHS 0x0855
#define GAMECHEAT 0x0856
#define GAMETIME 0x0857
#define GAMEHASPLAYED 0x0858
#define GAMETIMEVALID 0x0859
#define GAMEGUYCOUNTD 0x085A
#define GAMEGUYCOUNT 0x085B
#define GAMECONTSCR 0x085C
#define GAMECONTDMAP 0x085D
#define GAMECOUNTERD 0x085E
#define GAMEMCOUNTERD 0x085F
#define GAMEDCOUNTERD 0x0860
#define GAMEGENERICD 0x0861
#define GAMEITEMSD 0x0862
#define GAMELITEMSD 0x0863
#define GAMELKEYSD 0x0864
#define GAMEMAPFLAG(n) ((0x0865)+(n))
#define GAMEMAPFLAGD 0x0885

#define CURSCR 0x0886
#define CURMAP 0x0887
#define CURDMAP 0x0888
#define COMBODD 0x0889
#define COMBOCD 0x088A
#define COMBOFD 0x088B
#define COMBOTD 0x088C
#define COMBOID 0x088D

#define REFITEMCLASS 0x088E
#define REFITEM 0x088F
#define REFFFC 0x0890
#define REFLWPN 0x0891
#define REFNPC 0x0892
#define REFLWPNCLASS 0x0893
#define REFNPCCLASS 0x0894
#define REFSUBSCREEN 0x0895
#define REFEWPN 0x0896
#define REFEWPNCLASS 0x0897

#define EWPNX 0x0898
#define EWPNY 0x0899
#define EWPNDIR 0x089A
#define EWPNSTEP 0x089B
#define EWPNANGULAR 0x089C
#define EWPNANGLE 0x089D
#define EWPNDRAWTYPE 0x089E
#define EWPNPOWER 0x089F
#define EWPNDEAD 0x08A0
#define EWPNID 0x08A1
#define EWPNTILE 0x08A2
#define EWPNCSET 0x08A3
#define EWPNFLASHCSET 0x08A4
#define EWPNFRAMES 0x08A5
#define EWPNFRAME 0x08A6
#define EWPNASPEED 0x08A7
#define EWPNFLASH 0x08A8
#define EWPNFLIP 0x08A9
#define EWPNCOUNT 0x08AA
#define EWPNEXTEND 0x08AB
#define EWPNOTILE 0x08AC
#define EWPNOCSET 0x08AD
#define EWPNZ 0x08AE
#define EWPNJUMP 0x08AF

#define SCRDOOR(n) ((0x08B0)+(n))
#define SCRDOORD 0x08B4

#define CURDSCR 0x08B5
//#define GETSTART 0x08B6

#define COMBOSD 0x08B7
#define GAMEMAPFLAGDD 0x08B8
#define SDD 0x08B9
#define SDDD 0x08BA
#define GDD 0x08BB

#define FFFLAGSD 0x08BC
#define FFCWIDTH 0x08BD
#define FFCHEIGHT 0x08BE
#define FFTWIDTH 0x08BF
#define FFTHEIGHT 0x08C0
#define FFLINK 0x08C1

#define GS(n) ((0x08C2)+(n))

#define WAVY 0x09C2
#define QUAKE 0x09C3

ShadowMancer
08-27-2007, 01:55 PM
Ah thankyou, yes I see just from a quick browse over the list of commands that there are many more varibles availble then there are in ZScript (Im sure most of them will find there way to zscript eventually but you devs got lots o' bugs to smash first :D )
Alright, now to the daunting task at hand forget everything I know about structured high level programming and venture deep into low-level command center. (should be fun)

DarkDragon
09-08-2007, 07:09 PM
Do let me know of any you find, as they should all have been implemented in ZScript by now (except for some technical ones like the REF variables, which are handled implicitly through pointers.)

Note also that the weapon variables are unimplemented and will be changed post-2.50.

ShadowMancer
09-08-2007, 10:57 PM
Looked through ZASM varible list, and here are my findings on what is not in ZScript



#define LINKCHARGED 0x023D
I don't think any of these are in zscript (Link/Enemy weapons? I know these are on hold last time I knew)
********************************************
#define LWPNX 0x0259
#define LWPNY 0x025A
#define LWPNDIR 0x025B
#define LWPNSTEP 0x025C
#define LWPNANGULAR 0x025D
#define LWPNANGLE 0x025E
#define LWPNDRAWTYPE 0x025F
#define LWPNPOWER 0x0260
#define LWPNDEAD 0x0261
#define LWPNID 0x0262
#define LWPNTILE 0x0263
#define LWPNCSET 0x0264
#define LWPNFLASHCSET 0x0265
#define LWPNFRAMES 0x0266
#define LWPNFRAME 0x0267
#define LWPNASPEED 0x0268
#define LWPNFLASH 0x0269
#define LWPNFLIP 0x026A
#define LWPNCOUNT 0x026B
#define LWPNEXTEND 0x026C
#define LWPNOTILE 0x026D
#define LWPNOCSET 0x026E
#define LWPNZ 0x026F
#define LWPNJUMP 0x0270
<><><><><><><><><><><><>
#define EWPNX 0x0898
#define EWPNY 0x0899
#define EWPNDIR 0x089A
#define EWPNSTEP 0x089B
#define EWPNANGULAR 0x089C
#define EWPNANGLE 0x089D
#define EWPNDRAWTYPE 0x089E
#define EWPNPOWER 0x089F
#define EWPNDEAD 0x08A0
#define EWPNID 0x08A1
#define EWPNTILE 0x08A2
#define EWPNCSET 0x08A3
#define EWPNFLASHCSET 0x08A4
#define EWPNFRAMES 0x08A5
#define EWPNFRAME 0x08A6
#define EWPNASPEED 0x08A7
#define EWPNFLASH 0x08A8
#define EWPNFLIP 0x08A9
#define EWPNCOUNT 0x08AA
#define EWPNEXTEND 0x08AB
#define EWPNOTILE 0x08AC
#define EWPNOCSET 0x08AD
#define EWPNZ 0x08AE
#define EWPNJUMP 0x08AF
***********************************************
#define ITEMID 0x028F
#define ITEMCOUNT 0x0299 (unless this is = int NumItems())
#define ITEMZ 0x02A2
#define ITEMJUMP 0x02A3 (i don't know what this would be for [upward velocity perhaps?])
#define NPCID 0x02C2 (been asking about this for awile)
#define NPCFRAMERATE 0x02BE (i dont' think zscript has this, something to do with animation perhaps?)
#define NPCENEMY 0x02C6 (unless it is = npc CreateNPC(int id))
#define NPCZ 0x02CE (this would be very useful)
#define NPCJUMP 0x02CF
#define GS(n) ((0x08C2)+(n)) (???)

* Finished adding ZASM variables WAVY and QUAKE. SETting these variables will activate either the 'underwater wave effect' or the 'earthquake effect' for awhile. ZScript commands are forthcoming
#define WAVY 0x09C2
#define QUAKE 0x09C3


That is all I can see right now
(btw, Is there by chance any varible to get the secret combos on the screen (ZASM/ZScript) [burn,arrow,bomb.boomarang,magic,sword,misc] Mabye post 2.5 if not?)