agidev.com
 Home | Intro | News | Games | Community | NAGI |  Articles  | Download | Links

Articles

AGI Command Reference

This is a tutorial for AGI Programming if you have any questions post them at http://www.agigames.com/site.php

Thanks to the Sarien team and to Nick Sonneveld for some info on the unknown commands.

Table of Contents

  1. ARITHMETIC COMMANDS
  2. COMMANDS TO LOAD AND UNLOAD RESOURCES
  3. PROGRAM CONTROL COMMANDS
  4. OBJECT CONTROL COMMANDS
  5. OBJECT DESCRIPTION COMMANDS
  6. OBJECT MOTION CONTROL COMMANDS
  7. INVENTORY ITEM MANAGEMENT COMMANDS
  8. PICTURE RESOURCE MANAGEMENT COMMANDS
  9. SOUND RESOURCE MANAGEMENT COMMANDS
  10. TEXT MANAGEMENT COMMANDS
  11. STRING MANAGEMENT COMMANDS
  12. INITIALIZATION COMMANDS
  13. MENU MANAGEMENT COMMANDS
  14. TEST COMMANDS
  15. OTHER COMMANDS
  16. UNKNOWN COMMANDS

I ARITHMETIC COMMANDS

Commands that operate on variables:

increment(n);

The value of the variable Var(n) is incremented by one, i.e.
Var(n) = Var(n)+1. If the value is already 255, it is left unchanged.

decrement(n);

The value of the variable Var(n) is decremented by one, i.e.
Var(n) = Var(n)-1. If the value is 0, it is left unchanged.

assign(n, m);

Variable Var(n) is assigned the value m, i.e. Var(n) = m

assignv(n, m);

Variable Var(n) is assigned the value of Var(m), i.e.
Var(n) = Var(m).

addn(n, m);

The value of variable Var(n) is incremented by m, i.e.
Var(n) = Var(n) + m.

addv(n, m);

The value of variable Var(n) is incremented by the value of Var(m), i.e. Var(n) = Var(n) + m.
[Now what happens in the above two commands on 8-bit overflow: does the result wrap over 0 or stays 255?
I.e. is 250 + 10 == 4 or 250 + 10 == 255?]

subn(n, m);

The value of Var(n) is decremented by m, I.e. Var(n) = Var(n) - m

subv(n, m);

The value of Var(n) is decremented by Var(m), i.e. Var(n) = Var(n) - Var(m).
[Again, what happens when the result must be negative: is
1 - 2 == 255 or 1 - 2 == 0?]

lindirectn(n, m);

Variable Var(i) where i is the value of Var(n) is assigned a value m, i.e. Var(Var(n)) = m.

lindirectv(n, m);

Variable Var(i) where i is the value of Var(n) is assigned the value of Var(m), i.e. Var(Var(n)) = Var(m).

rindirect(n, m);

Variable Var(n) is assigned the value of Var(i) where i is the value of Var(m), i.e. Var(n) = Var(Var(m)).

muln(n, m);

Variable Var(n) is multiplied by m, i.e. Var(n) = Var(n) * m.

mulv(n, m);

Variable Var(n) is multiplied by the value of Var(m), i.e.
Var(n) = Var(n) * Var(m).
[What happens on overflow?]

divn(n, m)

Variable Var(n) is divided by m, i.e. Var(n) = Var(n) / m.

divv(n, m)

Variable Var(n) is divided by the value of Var(m),
i.e. Var(n) = Var(n) / Var(m). [What happens on division by 0?]

random(n, m, k)

Variable Var(k) is assigned a random value in the range between n and m. Now let us consider the commands changing flag values. Remember that a flag can only have a value 0 or 1.

set(n)

flag(n) is set to 1.

set.v(n)

flag(i), where i is the value of var (n), is set to 1. i.e.
flag(var(n)) = 1.

reset(n)

flag(n) is set to 0.

reset.v(n)

flag(i), where i is the value of var (n), is set to 0, i.e.
flag(var(n)) = 0.

toggle(n)

flag(n) toggles its value.

toggle.v(n)

flag(i), where i is the value of var (n), i.e. flag(var(n)), toggles is value.

Page: [ 1 ] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16