diff options
| -rw-r--r-- | src/core/application.cc | 39 | ||||
| -rw-r--r-- | src/core/application.h | 3 | 
2 files changed, 42 insertions, 0 deletions
| diff --git a/src/core/application.cc b/src/core/application.cc index f92a0fe..8234b8f 100644 --- a/src/core/application.cc +++ b/src/core/application.cc @@ -156,6 +156,7 @@ void Application::init(int count, char **arguments)  	// load configuration  	load_config(); +	load_autoexec();  	// load command line  	load_commandline(count, arguments); @@ -383,6 +384,44 @@ void Application::load_config()  	CommandBuffer::exec();  } +void Application::load_autoexec() +{ +	if (Cvar::sv_dedicated->value())	 +		return; + +	std::string filename(filesystem::writedir); +	filename.append("autoexec.cfg"); +	std::ifstream ifs(filename.c_str(), std::ifstream::in); + +	if (!ifs.is_open()) { +		con_warn << "Could not read " << filename << std::endl; + +		std::ofstream ofs(filename.c_str()); +	 +		if (!ofs.is_open()) { +			con_warn << "Could not write " << filename << std::endl; +			return; +		} +	 +		ofs << "# autoexec.cfg - osirion client custom settings" << std::endl; +		ofs << "# put your custom settings here" << std::endl; +		ofs.close(); + +		return; +	} else { + +		con_print << "  reading configuration from " << filename << std::endl; +	 +		char line[MAXCMDSIZE]; +		while (ifs.getline(line, MAXCMDSIZE-1)) { +			if (line[0] && line[0] != '#' && line[0] != ';') +				cmd() << line << '\n'; +		} +		 +		CommandBuffer::exec(); +	} +} +  void Application::load_commandline(int count, char **arguments)  {  	if (count < 2) diff --git a/src/core/application.h b/src/core/application.h index 8f69720..0e5c9c0 100644 --- a/src/core/application.h +++ b/src/core/application.h @@ -78,6 +78,9 @@ protected:  	/// load cvar config  	void load_config(); + +	/// load exra config +	void load_autoexec();  	/// save cvar config  	void save_config(); | 
