Author Topic: Having a DataBlock inherit the properties of another DataBlock using variables  (Read 1549 times)

Code: [Select]
for(%a = 0; %a < 100; %a++)
{
if(!isObject(%vehicleDataBlock[%a]))
{
datablock WheeledVehicleData(VPEditedVehicle : %vehicleDataBlock)
{
//filler until I'm ready to fill this space so I don't get an error
category = "Vehicles";
displayName = " ";

shapeFile   = "./carpet.dts";  //.dts File
emap        = true;
mass        = 200;
drag        = 1.7;
density     = 4;
};
VPEditedVehicle.setName(%vehicleDataBlock[%a]);

return;
}
}

So I'm trying to tell this datablock to inherit the properties of a datablock whose name is stored in the variable "%vehicleDataBlock" but it doesn't seem to like variables  there. I had the same problem with the name of the datablock as well but I got around that by putting
Code: [Select]
VPEditedVehicle.setName(%vehicleDataBlock[a]);after I created it. Unfortunately there is no such thing as "setInheritedDataBlock();"

Code: [Select]
eval("datablock WheeledVehicleData(VPEditedVehicle : " @ %vehicleDataBlock @ ") { ... }; ");
replace ... with contents

Code: [Select]
eval("datablock WheeledVehicleData(VPEditedVehicle : " @ %vehicleDataBlock @ ") { ... }; ");
replace ... with contents
Wow, that was so simple. How did I not think of that?
Thanks!

Wow, that was so simple. How did I not think of that?
Thanks!

I would recommend doing this:

Code: [Select]
%oldName = %vehicleDataBlock.getName();
%vehicleDataBlock.setName("VPInheritVehicle");

datablock WheeledVehicleData(VPEditedVehicle : VPInheritVehicle)
{
//stuff
};

%vehicleDataBlock.setName(%oldName);

I would recommend doing this:

Code: [Select]
%oldName = %vehicleDataBlock.getName();
%vehicleDataBlock.setName("VPInheritVehicle");

datablock WheeledVehicleData(VPEditedVehicle : VPInheritVehicle)
{
//stuff
};

%vehicleDataBlock.setName(%oldName);
Ooh that does look better. Thank you guys!

Or I believe you can even do this, may be wrong.

Code: [Select]
datablock WheeledVehicleData(VPEditedVehicle : (%name))
{
//stuff
}

Or I believe you can even do this, may be wrong.

Code: [Select]
datablock WheeledVehicleData(VPEditedVehicle : (%name))
{
//stuff
}

Can you really? This syntax is a joke sometimes.

Can you really? This syntax is a joke sometimes.
i honestly wouldn't be surprised if you could

pretty much everything can be handled as a bloody string in this language

Can you really? This syntax is a joke sometimes.
Actually I don't think so, just tried it and it didn't work.
I could've sworn I used it like that before, or something similar, my mistake.

i honestly wouldn't be surprised if you could

pretty much everything can be handled as a bloody string in this language
anything short of actual numbers being added togeth oh wait even they can

anything short of actual numbers being added togeth oh wait even they can



$o = new ScriptObject();
echo($o);
echo(($o) @ "foo".getID());


$_[" a"] = 0;
export("$_*", "config/temp.cs");
exec("config/temp.cs");


%foo = "bar"; eval("echo(%foo);");

$Foo = 0;
echo(foo SPC "foo");


function a() { if (0) return; %a = "foo"; }
echo(a());


return %a = %b = %c;


« Last Edit: December 06, 2013, 01:54:06 AM by Port »