Good said.
One small thing:
Structs can be used as variables without pointers, but cannot be copied then:
Code:
typedef struct {
    var model;
    var damage;
    var animations;
} WEAPON;

WEAPON weapons[10]; // 10 Global weapons

void init()
{
    weapons[0].model = 1;
    weapons[0].damage = 35;
    weapons[0].animations = 2;
}

action enemy()
{
    WEAPON weapon;
    weapon.damage = 30;
    [...]
}



Visit my site: www.masterq32.de