[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Scripting Problem
I have written a script to generate a number of events with certain
percentages of an 8 pattern activated i.e. 0 to 100% of units in the
eight pattern active. However when I run the script I notice the
software is only considering the first 2 or 3 events, I can tell from
which names are changed. Any adive on this code would be very much
appreciated.
The script requires a simple one layered 5x7 self projecting layer.
Tim.
class MakeEnv {
// Control Panel for Creating Events
public:
Environment* env;// environment to operate on
int n_events;// number of events to create per percent
void Make();// #BUTTON make the full environment
void MakeEvent(Event* ev, int idx, int percent);// make one event
(number idx)
void MakePattern(Pattern* pat, int percent); // make on pattern
MakeEnv();
};
MakeEnv::MakeEnv(){
env = .environments[0];
n_events = 5;
}
void MakeEnv::Make(){
env.events.Reset();
int i;
int percent;
env.events->New(100 * n_events,Event);
for(percent = 0; percent < 100; y++)
{
for(i = 0; i < n_events; i++)
{
MakeEvent(env->events[n_events * percent + i], n_events * percent
+ i,percent);
}
}
env.UpdateAllViews();
}
void MakeEnv::MakeEvent(Event* ev, int idx, int percent)
{
ev->name = "ev_" + idx + "_p_" + percent;
MakePattern(ev->patterns[0], percent);
}
void MakeEnv::MakePattern(Pattern* pat, int percent)
{
float_RArray eight =
"{0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,0.0}";
int x;
for(x = 0; x < 35; x++){
if((random() % 100) < percent)
{
pat.value[x] = eight[x];
} else {
pat.value[x] = 0.0;
}
}
}
MakeEnv mak;
EditObj(mak);