| Summary |
Quake 2 includes some code intended to prevent Quake2 crashing when the programmers were working on it, when using save games. However, for a couple of reasons this code causes the error message "function pointers have moved" to sometimes be displayed when loading savegames, even though they havent really. This package includes DLLs which really should not give this error message. If you do get the error message, there is a new cvar called "error_on_ptrs_moved" which if set to 0 will override the message and so allow the savegame to load. I dont believe you should ever see the message with this version of the DLLs, and if you do then I believe its likely that a crash will occur. You may however see a warning on the console, stating that the DLL has been relocated - and give an InitGame address. This basically means that a version without my changes would have stated that function pointers have moved. If you want a technical explanation for why this happens, see the readme.
|
| Download and Installation |
There are 3 sub directories, one for standard Q2 and one for each of the mission packs. First of all backup the existing gamex86.dll in each of the directories in your Quake2 installation, and then copy in my DLLs into the appropriate directories in your Quake2 installation. Note that with these DLLs you will not be able to load savegames created with other DLLs. |
| Source Code |
Included are all the files edited to create the "function pointers have moved" cured DLLs. All code changes are marked with "ADJ fptrs", and apart from the project settings changes, are contained entirely within g_save.c. The only interesting code is in GetFunctionInStdBlock().
|