A Team Fortress mod on the Source Engine
Find a file
Ryan Liptak bc0ecefa32
Merge pull request #396 from BreakinBenny/patch-1
+grenade1 and +grenade2 leftovers
2024-01-01 16:35:16 -08:00
cl_dll +grenade1 and +grenade2 leftovers 2024-01-01 14:22:27 +01:00
common Merged in sdk update 2006-08-07 19:54:54 +00:00
devtools/bin Fixed shaders 2008-01-14 17:45:02 +00:00
dlls Make extra onbuild context backwards compatible 2022-12-13 19:22:28 -08:00
dx9ff/lib added a missing file and fixed some naming...this really isn't all that important 2007-02-04 09:43:23 +00:00
dx9sdk/lib added a missing file and fixed some naming...this really isn't all that important 2007-02-04 09:43:23 +00:00
external Add Lua/Luabind/boost licenses 2014-10-13 18:13:18 -07:00
ffshaders Merging SDK update 2006-12-30 16:00:38 +00:00
game_shared Some buildable and Lua changes 2022-12-13 19:12:48 -08:00
lib server building 2007-09-21 14:47:51 +00:00
lib-vc7 Merging SDK update 2006-12-30 16:00:38 +00:00
linux_ff update linux compiling to use updated vprojtomake that eats vc2005 projects: 2014-11-09 19:42:30 -07:00
materialsystem Remove all *-2003.vcproj files 2014-10-25 16:37:47 -07:00
mathlib Remove all *-2003.vcproj files 2014-10-25 16:37:47 -07:00
omnibot Cleanup: Remove IsBurning function 2016-08-20 19:36:09 +01:00
public first pass add assists to scoreboard 2016-08-20 14:41:19 -06:00
stats Removed a load of unused oldschool stats logging stuff 2009-07-30 23:08:28 +00:00
tier1 Remove all *-2003.vcproj files 2014-10-25 16:37:47 -07:00
utils Fix PostBuild.bat if FF is installed to a non-standard library folder 2023-05-22 01:44:23 -07:00
vgui2/controls Remove all *-2003.vcproj files 2014-10-25 16:37:47 -07:00
.gitignore Add basic .gitignore 2014-10-13 18:59:14 -07:00
Everything_SDK-2005.sln Merging SDK update 2006-12-30 16:00:38 +00:00
Game_Scratch-2005.sln Variable size flames functionality. Burn level 1 is now smaller flames than 2 and 3. cvars to control them: 2009-07-05 02:05:12 +00:00
LICENSE Add Source 1 SDK license and required thirdpartylegalnotices.txt 2014-10-13 19:07:30 -07:00
README.md Fix links to VC++ 2005 Express downloads (#387) 2021-05-11 00:20:06 -07:00
thirdpartylegalnotices.txt Add Source 1 SDK license and required thirdpartylegalnotices.txt 2014-10-13 19:07:30 -07:00

Fortress Forever

A Team Fortress mod on the Source Engine (Source SDK 2006)

Compiling

Fortress Forever must be compiled using Visual C++ 2005. The following instructions are an updated version of Microsoft's old Using Visual C++ 2005 Express Edition with the Microsoft Platform SDK guide

  1. Install Visual C++ 2005
  1. Install the Microsoft Platform SDK
  1. Configure Visual C++ 2005
  • Open Visual Studio C++ 2005 (it's suggested to right click -> Run as administrator)
  • Update VC++ Directories in the Projects and Solutions section of the Tools -> Options dialog box.
    • Add the paths to the appropriate subsection:
      • Executable files: C:\Program Files\Microsoft Platform SDK\Bin
      • Include files: C:\Program Files\Microsoft Platform SDK\Include
      • Library files: C:\Program Files\Microsoft Platform SDK\Lib
    • Note: Alternatively, you can update the Visual C++ Directories by modifying the VCProjectEngine.dll.express.config file located in the \vc\vcpackages subdirectory of the Visual C++ Express install location. Please make sure that you also delete the file vccomponents.dat located in the %USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0 directory if it exists before restarting Visual C++ Express Edition.
  • Update the corewin_express.vsprops file found in C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCProjectDefaults.
    • Edit corewin_express.vsprops in the text editor of your choice.
      • Change the string that reads: AdditionalDependencies="kernel32.lib" to AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
    • Note: You'll probably need to change the file permissions to be able to edit the corewin_express.vsprops file. To do so, right click corewin_express.vsprops and select Properties. Open the Security tab and click the Edit... button. Select the Users (computername\User) group and check Write in the Allow column, then click OK twice
  • Restart Visual C++ 2005
  1. Build Fortress Forever
  • Open Game_Scratch-2005.sln and run Build Solution
  • Note: The compiled .dlls will automatically get copied to <SteamDirectory>\SteamApps\common\Fortress Forever\FortressForever\bin

Addendum: Registering VC++ 2005 Express

The Microsoft registration servers for VC++ 2005 Express edition are no longer online, so the only way to register your copy is to edit the registry. Simply save the following text as register_vc.reg and run it:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VCExpress\8.0\Registration]
"Params"="487A8D4D0000000001000000010000009F6A4D0000000000"

Debugging

To start the game from within VS debugger, right click client_ff or server_ff project (whichever you are working on) and click properties. Navigate to the 'Debugging' section. Set command to the 'hl2.exe' in your fortress forever installation directory. On a default steam installation it will look like this:

  • command C:\Program Files (x86)\Steam\steamapps\common\Fortress Forever\hl2.exe
  • arguments: -game "FortressForever" -allowdebug -dev
  • working directory: C:\Program Files (x86)\Steam\steamapps\common\Fortress Forever\

(you will need to set this up for both client/server, or whatever you need to debug)

Now you can smack F5 to start the game with debugging ready to go. I recommend adding eg, +map ff_2fort to parameters save time. Here is an example with nonstandard steam path: example

Debugging an active session

  • Compile using the Debug FF configuration
  • Launch Fortress Forever (need to use the launch parameter -allowdebug in steam)
  • In Visual C++, go to Debug -> Attach to Process
  • Find hl2.exe in the list and click Attach

Debugging a crash log

  • Open the crash log (.dmp/.mdmp) in Visual C++ 2005
  • Go to Debug -> Start Debugging
    • Check the output window to see if symbols were successfully loaded for fortressforever\bin\server.dll and fortressforever\bin\client.dll. If not, you'll probably need to copy the dump file to a directory containing the correct .dll and .pdb files for the version of the game that the crash occurred on.
    • If the crash points to Disassembly, the crash log will likely not be of much use, as that usually means that the crash occurred somewhere in the Source engine code that we don't have access to. However, it's a good idea to check the Call Stack window to see if the crash originated in FF code.
  • Note: Crash logs can be found in the <SteamDirectory>/dumps directory, and will be named something like assert_hl2.exe_<datetime>_1.dmp