Mounting multiple games: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Updated with orange box references)
No edit summary
Line 12: Line 12:
Go to about line 622 (EP1) or line 710 (Orange box beta) - after the big list of conditions to return false in CHLClient::Init - and paste this:
Go to about line 622 (EP1) or line 710 (Orange box beta) - after the big list of conditions to return false in CHLClient::Init - and paste this:


#ifndef DEBUG
  filesystem->AddSearchPath("hl2mp", "GAME");
  filesystem->AddSearchPath("hl2mp", "GAME");
  filesystem->AddSearchPath("hl2", "GAME");
  filesystem->AddSearchPath("hl2", "GAME");
Line 18: Line 17:
  filesystem->AddSearchPath("dod", "GAME");
  filesystem->AddSearchPath("dod", "GAME");
  filesystem->AddSearchPath("cstrike", "GAME");
  filesystem->AddSearchPath("cstrike", "GAME");
  filesystem->MountSteamContent(220);
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(320);
  filesystem->MountSteamContent(-320);
  filesystem->MountSteamContent(300);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(240);
  filesystem->MountSteamContent(-240);
#endif // DEBUG


Now open GameInterface.cpp (SERVERSIDE)
Now open GameInterface.cpp (SERVERSIDE)


About line 551 (EP1) or line 567 (Orange box beta) - after the list of conditions to return false in CServerGameDLL::DLLInit - and paste this:
About line 551 (EP1) or line 567 (Orange box beta) - after the list of conditions to return false in CServerGameDLL::DLLInit - and paste this:
#ifndef DEBUG
  filesystem->AddSearchPath("hl2mp", "GAME");
  filesystem->AddSearchPath("hl2mp", "GAME");
  filesystem->AddSearchPath("hl2", "GAME");
  filesystem->AddSearchPath("hl2", "GAME");
Line 34: Line 30:
  filesystem->AddSearchPath("dod", "GAME");
  filesystem->AddSearchPath("dod", "GAME");
  filesystem->AddSearchPath("cstrike", "GAME");
  filesystem->AddSearchPath("cstrike", "GAME");
  filesystem->MountSteamContent(220);
  filesystem->MountSteamContent(-220);
  filesystem->MountSteamContent(320);
  filesystem->MountSteamContent(-320);
  filesystem->MountSteamContent(300);
  filesystem->MountSteamContent(-300);
  filesystem->MountSteamContent(240);
  filesystem->MountSteamContent(-240);
#endif // DEBUG


Compile or rebuild and run your game.
Compile or rebuild and run your game.


{{warning|This will '''not''' work in ''debug mode'' if you are using a version of the source code prior to the [[Orange Box]] version. If you ''are'' using the Orange Box source code, you can remove the "#ifndef DEBUG" and "#endif" statements.}}
{{notice|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 ==
== 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:
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_TAIL); //Add to the Tail
filesystem->AddSearchPath("dod", "GAME", PATH_ADD_TO_HEAD); //Add to the Head


== See also ==
== See also ==

Revision as of 13:37, 2 April 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.

Firstly for cdll_client_int.cpp (CLIENTSIDE)

Go to about line 622 (EP1) or line 710 (Orange box beta) - 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(-300);
	filesystem->MountSteamContent(-240);

Now open GameInterface.cpp (SERVERSIDE)

About line 551 (EP1) or line 567 (Orange box beta) - 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(-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