entity e;
float n;
n = 0;
+ order = 0;
for(e = cb; e.cbc_next; e = e.cbc_next)
{
while(e.cbc_next.cbc_func == func)
{
if(name == loaded_mutators[i])
return 1; // already added
- if(!loaded_mutators[i])
+ if (!(loaded_mutators[i]))
j = i;
}
if(j < 0)
// good
return 1;
}
- backtrace("WARNING: when adding mutator: adding failed\n");
- Mutator_Remove(func, name);
+
+ backtrace("WARNING: when adding mutator: adding failed, rolling back\n");
+
+ if(func(MUTATOR_ROLLING_BACK) != 0)
+ {
+ // baaaaad
+ error("WARNING: when adding mutator: rolling back failed");
+ }
return 0;
}
void Mutator_Remove(float(float) func, string name)