Config: Add "execName" to specify ini and rgssad filenames
This commit is contained in:
		
							parent
							
								
									531441d4e3
								
							
						
					
					
						commit
						7393f7e951
					
				
					 4 changed files with 24 additions and 9 deletions
				
			
		| 
						 | 
					@ -256,6 +256,19 @@
 | 
				
			||||||
# SE.sourceCount=6
 | 
					# SE.sourceCount=6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The Windows game executable name minus ".exe". By default
 | 
				
			||||||
 | 
					# this is "Game", but some developers manually rename it.
 | 
				
			||||||
 | 
					# mkxp needs this name because both the .ini (game
 | 
				
			||||||
 | 
					# configuration) and .rgssad (encrypted data archive) must
 | 
				
			||||||
 | 
					# carry the same name minus their extension, and we cannot
 | 
				
			||||||
 | 
					# guess the executable's name.
 | 
				
			||||||
 | 
					# You could just as well rename them both to "Game.ini" and
 | 
				
			||||||
 | 
					# "Game.rgssad", but specifying the executable name here
 | 
				
			||||||
 | 
					# is a tiny bit less intrusive.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# execName=Game
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Give a hint on which language the game title as
 | 
					# Give a hint on which language the game title as
 | 
				
			||||||
# specified in the Game.ini is, useful if the encoding
 | 
					# specified in the Game.ini is, useful if the encoding
 | 
				
			||||||
# is being falsely detected. Relevant only if mkxp was
 | 
					# is being falsely detected. Relevant only if mkxp was
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -167,6 +167,7 @@ void Config::read(int argc, char *argv[])
 | 
				
			||||||
	PO_DESC(dataPathOrg, std::string, "") \
 | 
						PO_DESC(dataPathOrg, std::string, "") \
 | 
				
			||||||
	PO_DESC(dataPathApp, std::string, "") \
 | 
						PO_DESC(dataPathApp, std::string, "") \
 | 
				
			||||||
	PO_DESC(iconPath, std::string, "") \
 | 
						PO_DESC(iconPath, std::string, "") \
 | 
				
			||||||
 | 
						PO_DESC(execName, std::string, "Game") \
 | 
				
			||||||
	PO_DESC(titleLanguage, std::string, "") \
 | 
						PO_DESC(titleLanguage, std::string, "") \
 | 
				
			||||||
	PO_DESC(midi.soundFont, std::string, "") \
 | 
						PO_DESC(midi.soundFont, std::string, "") \
 | 
				
			||||||
	PO_DESC(midi.chorus, bool, false) \
 | 
						PO_DESC(midi.chorus, bool, false) \
 | 
				
			||||||
| 
						 | 
					@ -286,7 +287,8 @@ void Config::readGameINI()
 | 
				
			||||||
	        ;
 | 
						        ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	po::variables_map vm;
 | 
						po::variables_map vm;
 | 
				
			||||||
	SDLRWStream iniFile("Game.ini", "r");
 | 
						std::string iniFilename = execName + ".ini";
 | 
				
			||||||
 | 
						SDLRWStream iniFile(iniFilename.c_str(), "r");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (iniFile)
 | 
						if (iniFile)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -297,12 +299,12 @@ void Config::readGameINI()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		catch (po::error &error)
 | 
							catch (po::error &error)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Debug() << "Game.ini:" << error.what();
 | 
								Debug() << iniFilename + ":" << error.what();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		Debug() << "FAILED to open Game.ini";
 | 
							Debug() << "FAILED to open" << iniFilename;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	GUARD_ALL( game.title = vm["Game.Title"].as<std::string>(); );
 | 
						GUARD_ALL( game.title = vm["Game.Title"].as<std::string>(); );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,6 +102,7 @@ struct Config
 | 
				
			||||||
	std::string dataPathApp;
 | 
						std::string dataPathApp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	std::string iconPath;
 | 
						std::string iconPath;
 | 
				
			||||||
 | 
						std::string execName;
 | 
				
			||||||
	std::string titleLanguage;
 | 
						std::string titleLanguage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct
 | 
						struct
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,14 +46,14 @@ SharedState *SharedState::instance = 0;
 | 
				
			||||||
int SharedState::rgssVersion = 0;
 | 
					int SharedState::rgssVersion = 0;
 | 
				
			||||||
static GlobalIBO *_globalIBO = 0;
 | 
					static GlobalIBO *_globalIBO = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char *defGameArchive()
 | 
					static const char *gameArchExt()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (rgssVer == 1)
 | 
						if (rgssVer == 1)
 | 
				
			||||||
		return "Game.rgssad";
 | 
							return ".rgssad";
 | 
				
			||||||
	else if (rgssVer == 2)
 | 
						else if (rgssVer == 2)
 | 
				
			||||||
		return "Game.rgss2a";
 | 
							return ".rgss2a";
 | 
				
			||||||
	else if (rgssVer == 3)
 | 
						else if (rgssVer == 3)
 | 
				
			||||||
		return "Game.rgss3a";
 | 
							return ".rgss3a";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	assert(!"unreachable");
 | 
						assert(!"unreachable");
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
| 
						 | 
					@ -116,8 +116,7 @@ struct SharedStatePrivate
 | 
				
			||||||
		if (gl.ReleaseShaderCompiler)
 | 
							if (gl.ReleaseShaderCompiler)
 | 
				
			||||||
			gl.ReleaseShaderCompiler();
 | 
								gl.ReleaseShaderCompiler();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// FIXME find out correct archive filename
 | 
							std::string archPath = config.execName + gameArchExt();
 | 
				
			||||||
		std::string archPath = defGameArchive();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Check if a game archive exists */
 | 
							/* Check if a game archive exists */
 | 
				
			||||||
		FILE *tmp = fopen(archPath.c_str(), "rb");
 | 
							FILE *tmp = fopen(archPath.c_str(), "rb");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue