12 #include "../stdafx.h" 
   15 #include "../string_func.h" 
   16 #include "../strings_func.h" 
   18 #include "../safeguards.h" 
   32   char dummy_script[4096];
 
   33   char *dp = dummy_script;
 
   34   dp += 
seprintf(dp, 
lastof(dummy_script), 
"class Dummy%s extends %sInfo {\n", type, type);
 
   35   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetAuthor()      { return \"OpenTTD Developers Team\"; }\n");
 
   36   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetName()        { return \"Dummy%s\"; }\n", type);
 
   37   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetShortName()   { return \"DUMM\"; }\n");
 
   38   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetDescription() { return \"A Dummy %s that is loaded when your %s/ dir is empty\"; }\n", type, dir);
 
   39   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetVersion()     { return 1; }\n");
 
   40   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function GetDate()        { return \"2008-07-26\"; }\n");
 
   41   dp += 
seprintf(dp, 
lastof(dummy_script), 
"function CreateInstance() { return \"Dummy%s\"; }\n", type);
 
   42   dp += 
seprintf(dp, 
lastof(dummy_script), 
"} RegisterDummy%s(Dummy%s());\n", type, type);
 
   44   const SQChar *sq_dummy_script = dummy_script;
 
   49   if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, strlen(sq_dummy_script), 
"dummy", SQTrue))) {
 
   51     if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
 
   66   char error_message[1024];
 
   67   GetString(error_message, 
string, 
lastof(error_message));
 
   70   char safe_error_message[1024];
 
   71   char *q = safe_error_message;
 
   72   for (
const char *p = error_message; *p != 
'\0' && q < 
lastof(safe_error_message) - 2; p++, q++) {
 
   73     if (*p == 
'"' || *p == 
'\\') *q++ = 
'\\';
 
   79   char dummy_script[4096];
 
   80   char *dp = dummy_script;
 
   81   dp += 
seprintf(dp, 
lastof(dummy_script), 
"class Dummy%s extends %sController {\n  function Start()\n  {\n", type, type);
 
   86   char *p = safe_error_message;
 
   88     newline = strchr(p, 
'\n');
 
   89     if (newline != NULL) *newline = 
'\0';
 
   91     dp += 
seprintf(dp, 
lastof(dummy_script), 
"    %sLog.Error(\"%s\");\n", type, p);
 
   93   } 
while (newline != NULL);
 
  100   const SQChar *sq_dummy_script = dummy_script;
 
  103   sq_pushroottable(vm);
 
  104   if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, strlen(sq_dummy_script), 
"dummy", SQTrue))) {
 
  106     if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {