X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fsandbox.qc;h=391e317423dffd4dd37e628effe9a988b452267f;hb=52ae1315c1851e595d12ffc13e2407dee0b24e5e;hp=e7f51aa887f7931445f0006452db6110a7e8928f;hpb=d9708336de4c01e81ea08bb205093b676b7cb882;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index e7f51aa88..391e31742 100644 --- a/qcsrc/server/mutators/sandbox.qc +++ b/qcsrc/server/mutators/sandbox.qc @@ -205,7 +205,7 @@ string port_string[MAX_STORAGE_ATTACHMENTS]; // fteqcc crashes if this isn't def string sandbox_ObjectPort_Save(entity e, float database) { // save object properties, and return them as a string - float i; + float i = 0; string s; entity head; @@ -268,6 +268,7 @@ string sandbox_ObjectPort_Save(entity e, float database) } // now apply the array to a simple string, with the ; symbol separating objects + s = ""; for(i = 0; i <= MAX_STORAGE_ATTACHMENTS; ++i) { if(port_string[i]) @@ -282,7 +283,7 @@ entity sandbox_ObjectPort_Load(string s, float database) { // load object properties, and spawn a new object with them float n, i; - entity e, parent; + entity e = world, parent = world; // separate objects between the ; symbols n = tokenizebyseparator(s, "; "); @@ -293,7 +294,7 @@ entity sandbox_ObjectPort_Load(string s, float database) for(i = 0; i < n; ++i) { float argv_num; - string tagname; + string tagname = string_null; argv_num = 0; tokenize_console(port_string[i]); e = sandbox_ObjectSpawn(database); @@ -744,13 +745,16 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) print_to(self, strcat("^2SANDBOX - INFO: ^7Object is owned by \"^7", e.netname, "^7\", created \"^3", e.message, "^7\", last edited \"^3", e.message2, "^7\"")); return TRUE; case "mesh": + s = ""; FOR_EACH_TAG(e) s = strcat(s, "^7\"^5", gettaginfo_name, "^7\", "); print_to(self, strcat("^2SANDBOX - INFO: ^7Object mesh is \"^3", e.model, "^7\" at animation frame ^3", ftos(e.frame), " ^7containing the following tags: ", s)); return TRUE; case "attachments": // this should show the same info as 'mesh' but for attachments + s = ""; entity head; + i = 0; for(head = world; (head = find(head, classname, "object")); ) { if(head.owner == e) @@ -794,10 +798,17 @@ MUTATOR_HOOKFUNCTION(sandbox_StartFrame) return TRUE; } +MUTATOR_HOOKFUNCTION(sandbox_SetModname) +{ + modname = "Sandbox"; + return TRUE; +} + MUTATOR_DEFINITION(sandbox) { MUTATOR_HOOK(SV_ParseClientCommand, sandbox_PlayerCommand, CBC_ORDER_ANY); MUTATOR_HOOK(SV_StartFrame, sandbox_StartFrame, CBC_ORDER_ANY); + MUTATOR_HOOK(SetModname, sandbox_SetModname, CBC_ORDER_ANY); MUTATOR_ONADD { @@ -806,6 +817,16 @@ MUTATOR_DEFINITION(sandbox) sandbox_Database_Load(); } + MUTATOR_ONROLLBACK_OR_REMOVE + { + // nothing to roll back + } + + MUTATOR_ONREMOVE + { + // nothing to remove + } + return FALSE; }