}
sq_pushroottable(global_vm);
- if(sqstd_register_bloblib(global_vm) < 0)
+ if(SQ_FAILED(sqstd_register_bloblib(global_vm)))
throw SquirrelError(global_vm, "Couldn't register blob lib");
- if(sqstd_register_mathlib(global_vm) < 0)
+ if(SQ_FAILED(sqstd_register_mathlib(global_vm)))
throw SquirrelError(global_vm, "Couldn't register math lib");
- if(sqstd_register_stringlib(global_vm) < 0)
+ if(SQ_FAILED(sqstd_register_stringlib(global_vm)))
throw SquirrelError(global_vm, "Couldn't register string lib");
+
+ // remove rand and srand calls from sqstdmath, we'll provide our own
+ sq_pushstring(global_vm, "srand", -1);
+ sq_deleteslot(global_vm, -2, SQFalse);
+ sq_pushstring(global_vm, "rand", -1);
+ sq_deleteslot(global_vm, -2, SQFalse);
+
// register supertux API
register_supertux_wrapper(global_vm);
// TODO remove this at some point... it shoud just be functions not an object
expose_object(global_vm, -1, new Scripting::Level(), "Level", true);
- expose_object(global_vm, -1, &systemRandom, "RandomGenerator", false);
sq_pop(global_vm, 1);
#endif
}
-std::string squirrel2string(HSQUIRRELVM v, int i)
+std::string squirrel2string(HSQUIRRELVM v, SQInteger i)
{
std::ostringstream os;
switch(sq_gettype(v, i))
break;
}
case OT_INTEGER: {
- int val;
+ SQInteger val;
sq_getinteger(v, i, &val);
os << val;
break;
}
case OT_FLOAT: {
- float val;
+ SQFloat val;
sq_getfloat(v, i, &val);
os << val;
break;
}
case OT_STRING: {
- const char* val;
+ const SQChar* val;
sq_getstring(v, i, &val);
os << "\"" << val << "\"";
break;
printf("null");
break;
case OT_INTEGER: {
- int val;
+ SQInteger val;
sq_getinteger(v, i, &val);
- printf("integer (%d)", val);
+ printf("integer (%d)", static_cast<int> (val));
break;
}
case OT_FLOAT: {
- float val;
+ SQFloat val;
sq_getfloat(v, i, &val);
printf("float (%f)", val);
break;
}
case OT_STRING: {
- const char* val;
+ const SQChar* val;
sq_getstring(v, i, &val);
printf("string (%s)", val);
break;
{
compile_script(vm, in, sourcename);
- int oldtop = sq_gettop(vm);
+ SQInteger oldtop = sq_gettop(vm);
try {
sq_pushroottable(vm);