示例#1
0
void LoadSongs(void)
{
	debug(D_NORMAL, "loading game music %s\n", CDOGS_GAME_MUSIC_DIR);
	LoadSongList(&gGameSongs, CDOGS_GAME_MUSIC_DIR);
	debug(D_NORMAL, "loading menu music %s\n", CDOGS_MENU_MUSIC_DIR);
	LoadSongList(&gMenuSongs, CDOGS_MENU_MUSIC_DIR);
}
示例#2
0
Program::Program()
{
    Error = Osu.getError();

    LoadSongList();

    PlayingThread = new std::thread(Program::checkForPlaying, this);

    PlayManagerCloser = nullptr;
}
示例#3
0
文件: mission.cpp 项目: paud/d2x-xl
//loads the specfied mission from the mission list.
//BuildMissionList() must have been called.
//Returns true if mission loaded ok, else false.
int LoadMission (int nMission)
{
	CFILE		cf;
	char		szFolder [FILENAME_LEN] = {'\0'}, szFile [FILENAME_LEN] = {'\0'};
	int		i, bFoundHogFile = 0;

gameData.missions.nEnhancedMission = 0;
if (nMission == gameData.missions.nD1BuiltinMission) {
	CFUseD1HogFile ("descent.hog");
	switch (gameData.missions.nD1BuiltinHogSize) {
	default:
		Int3(); // fall through
	case D1_MISSION_HOGSIZE:
	case D1_10_MISSION_HOGSIZE:
	case D1_15_MISSION_HOGSIZE:
	case D1_3DFX_MISSION_HOGSIZE:
	case D1_MAC_MISSION_HOGSIZE:
	case D1_OEM_MISSION_HOGSIZE:
	case D1_OEM_10_MISSION_HOGSIZE:
	case D1_SHAREWARE_MISSION_HOGSIZE:
	case D1_SHAREWARE_10_MISSION_HOGSIZE:
	case D1_MAC_SHARE_MISSION_HOGSIZE:
		return load_mission_d1(nMission);
		break;
		}
	}

if (nMission == gameData.missions.nBuiltinMission) {
	switch (gameData.missions.nBuiltinHogSize) {
	case SHAREWARE_MISSION_HOGSIZE:
	case MAC_SHARE_MISSION_HOGSIZE:
		return load_mission_shareware(nMission);
		break;
	case OEM_MISSION_HOGSIZE:
		return load_mission_oem(nMission);
		break;
	default:
		Int3(); // fall through
	case FULL_MISSION_HOGSIZE:
	case FULL_10_MISSION_HOGSIZE:
	case MAC_FULL_MISSION_HOGSIZE:
		// continue on... (use d2.mn2 from tHogFile)
		break;
		}
	}
gameData.missions.nCurrentMission = nMission;
#if TRACE
con_printf (CON_VERBOSE, "Loading mission %d\n", nMission);
#endif
	//read mission from file
switch (gameData.missions.list [nMission].location) {
	case ML_MISSIONDIR:
	case ML_ALTHOGDIR:
		strcpy (szFolder, gameFolders.szMissionDirs [gameData.missions.list [nMission].location]);
		break;
	case ML_CDROM:
		sprintf (szFolder, "%s/", CDROM_dir);
		break;
	default:
		Int3();							//fall through
	case ML_CURDIR:
		*szFolder = '\0';
		break;
	case ML_MSNROOTDIR:
		sprintf (szFolder, "%s%s", gameFolders.szMissionDir, *gameFolders.szMissionDir ? "/" : "");
		break;
	case ML_DATADIR:
		sprintf (szFolder, "%s%s", gameFolders.szDataDir, *gameFolders.szDataDir ? "/" : "");
		break;
	}
sprintf (szFile, "%s%s", 
			gameData.missions.list [nMission].filename,
			(gameData.missions.list [nMission].nDescentVersion == 2) ? ".mn2" : ".msn");
strlwr (szFile);
if (!CFOpen (&cf, szFile, szFolder, "rb", 0)) {
	gameData.missions.nCurrentMission = -1;
	return 0;		//error!
	}
i = ParseMissionFile (&cf);
CFClose(&cf);
if (!i) {
	gameData.missions.nCurrentMission = -1;
	ExecMessageBox (TXT_ERROR, NULL, 1, TXT_OK, TXT_MSNFILE_ERROR);
	return 0;
	}
//for non-builtin missions, load HOG
CFUseAltHogFile ("");
if (!strcmp (gameData.missions.list [nMission].filename, gameData.missions.szBuiltinMissionFilename)) 
	bFoundHogFile = 1;
else {
	sprintf (szFile, "%s%s.hog", szFolder, gameData.missions.list [nMission].filename);
	strlwr (szFile);
	bFoundHogFile = CFUseAltHogFile (szFile);
	if (bFoundHogFile) {
		// for Descent 1 missions, load descent.hog
		if ((gameData.missions.list [nMission].nDescentVersion == 1) && 
			 strcmp (gameData.missions.list [nMission].filename, "descent"))
			if (!CFUseD1HogFile ("descent.hog"))
				Warning (TXT_NO_HOG);
		}
	else {
		sprintf (szFile, "%s%s%s", 
					szFolder,
					gameData.missions.list [nMission].filename,
					(gameData.missions.list [nMission].nDescentVersion == 2) ? ".rl2" : ".rdl");
		strlwr (szFile);
		bFoundHogFile = CFUseAltHogFile (szFile);
		if (bFoundHogFile) {
			strcpy (gameData.missions.szLevelNames [0], gameHogFiles.AltHogFiles.files [0].name);
			gameData.missions.nLastLevel = 1;
			}
		else {
			sprintf (szFile, "%s%s", szFolder, gameData.missions.szLevelNames [0]);
			strlwr (szFile);
			bFoundHogFile = CFUseAltHogFile (szFile);
			}
		}
	}
//init vars
if (!bFoundHogFile || (gameData.missions.nLastLevel <= 0)) {
	gameData.missions.nCurrentMission = -1;		//no valid mission loaded
	return 0;
	}
gameStates.app.szCurrentMissionFile = gameData.missions.list [gameData.missions.nCurrentMission].filename;
gameStates.app.szCurrentMission = gameData.missions.list [gameData.missions.nCurrentMission].szMissionName;
LoadSongList (szFile);
return 1;
}