Mounting multiple games: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 21: Line 21:
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(-320);
  filesystem->MountSteamContent(-320);
filesystem->MountSteamContent(-380);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(-240);
  filesystem->MountSteamContent(-240);
Line 34: Line 35:
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(-320);
  filesystem->MountSteamContent(-320);
filesystem->MountSteamContent(-380);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(-240);
  filesystem->MountSteamContent(-240);

Revision as of 07:45, 24 June 2008

The following short section of code allows you to mount additional files from the following games:

  • Counter Strike Source,
  • Hl2MP,
  • Episode 1,
  • Day of Defeat Source,
  • Half Life 2 (fixes),

This code will now fix bugs which may be featured with a game, also this allows you use the CS:S and DOD:S etc maps.. Though the info_player_*** will not work, you'll have to bind that to the original info_player_start which isn't hard.

Warning.pngWarning:Steam will allow the mod to run regardless of whether or not the user owns the game that you mount content for. If the game isn't owned the content will not be mounted, and error signs will appear everywhere instead! It's a good idea to make it VERY CLEAR to players what games are required if you use this trick.

Firstly for cdll_client_int.cpp (CLIENTSIDE)

Go to about line 622 (EP1) or line 710 (Orange box) - after the big list of conditions to return false in CHLClient::Init - and paste this:

	filesystem->AddSearchPath("hl2mp", "GAME");
	filesystem->AddSearchPath("hl2", "GAME");
	filesystem->AddSearchPath("episodic", "GAME");
	filesystem->AddSearchPath("dod", "GAME");
	filesystem->AddSearchPath("cstrike", "GAME");
	filesystem->MountSteamContent(-220);
	filesystem->MountSteamContent(-320);
	filesystem->MountSteamContent(-380);
	filesystem->MountSteamContent(-300);
	filesystem->MountSteamContent(-240);

Now open GameInterface.cpp (SERVERSIDE)

About line 551 (EP1) or line 567 (Orange box) - after the list of conditions to return false in CServerGameDLL::DLLInit - and paste this:

	filesystem->AddSearchPath("hl2mp", "GAME");
	filesystem->AddSearchPath("hl2", "GAME");
	filesystem->AddSearchPath("episodic", "GAME");
	filesystem->AddSearchPath("dod", "GAME");
	filesystem->AddSearchPath("cstrike", "GAME");
	filesystem->MountSteamContent(-220);
	filesystem->MountSteamContent(-320);
	filesystem->MountSteamContent(-380);
	filesystem->MountSteamContent(-300);
	filesystem->MountSteamContent(-240);

Compile or rebuild and run your game.

Note.pngNote:This now works in debug mode, you have to "negate" (Put a - sign in front of the number) the AppID (Thanks to Tony Sergi - Aka Omega for this fix :D)

Add Order

You can also select how the path should be added to the directory table, to affect the priority given to files of the same name:

filesystem->AddSearchPath("dod", "GAME", PATH_ADD_TO_TAIL); //Add to the Tail
filesystem->AddSearchPath("dod", "GAME", PATH_ADD_TO_HEAD); //Add to the Head

See also