heres a couple of "why the **** weren't they in lua to begin with" function i wrote for ship
ADE_VIRTVAR(WeaponEnergy, l_Ship, "number", "Current weapon energy reserves", "number", "Ship current weapon energy reserve level, or -1 if invalid")
{
object_h *objh;
float neweng = -1;
if(!ade_get_args(L, "o|f", l_Ship.GetPtr(&objh), &neweng))
return ade_set_error(L, "f", -1.0f);
if(!objh->IsValid())
return ade_set_error(L, "f", -1.0f);
ship *shipp = &Ships[objh->objp->instance];
if(ADE_SETTING_VAR && neweng > -1)
shipp->weapon_energy = neweng;
return ade_set_args(L, "f", shipp->weapon_energy);
}
ADE_VIRTVAR(WeaponEnergyMax, l_Ship, "number", "Maximum weapon energy", "number", "Ship maximum weapon energy reserve level, or -1 if invalid")
{
object_h *objh;
float neweng = -1;
if(!ade_get_args(L, "o|f", l_Ship.GetPtr(&objh), &neweng))
return ade_set_error(L, "f", -1.0f);
if(!objh->IsValid())
return ade_set_error(L, "f", -1.0f);
ship_info *sip = &Ship_info[Ships[objh->objp->instance].ship_info_index];
if(ADE_SETTING_VAR && neweng > -1)
sip->max_weapon_reserve = neweng;
return ade_set_args(L, "f", sip->max_weapon_reserve);
}
ive tested them and they work fine