#include "Variables.h"
#include "SoundBaseGlobal.h"

namespace Engine {

bool Cmd_Set (const std::vector<std::string> args) {
	if (args.size() != 2) {
		CommandSetErrorString ("Usage: set <name> <value>\nSets variables <name> to value <value>.");
		return false;
	}

	// special variable sound_volume
	if (args[0] == "effects_volume") {
		SetEffectsVolume(atof(args[1].c_str()));

		return true;
	}
	// special variable music_volume
	if (args[0] == "music_volume") {
		SetMusicVolume(atof(args[1].c_str()));

		return true;
	}

	Variable *test = GetVariable (args[0]);
	if (test) {
		test->SetStringValue (args[1]);
		test->SetFloatValue (atof (args[1].c_str()));
		test->SetBoolValueFromString (args[1]);
		return true;
	}
	
	CommandSetErrorString ("Variable '" + args[0] +"' not found!");
	return false;
}

void Variables::OnRegisterCommands () {
	AddCommand ("set", Cmd_Set);
}

}

