So, I tried ver 1.10a from Sourceforge SVN repository from tags and 0.2 release source code from gna - result is the same, but with less errors.
Then I tried following - took Glide and DirectX 7 SDK and wrote paths to their lib and inc files in VC 2008 - almost everything did compiled. Then I disabled definition of symbol /D "INC_GLIDE" and by hand manually commented out all source code, connected with Glide - it is often constants started with GR - possibly Glide Renderer. Now amount of errors reduced much more - only one file was full of references to Glide - it starts from 3dfx and ends on .h or .c - I don't remember which one exactly - but these files are few and errors point to it - so it can be easily found. So I deleted it from project. Now ivis02 successfully compiled!
Then I tried to compile full game - there are some references to dglide.h in game's source code, so I by hand commented out all its inclusions and then all source code parts, connected with it. They again are usually constants, started with GR, and they are placed in code, that looks like -
Code: Select all
if(pie_GetRenderEngine() == ENGINE_GLIDE)
{
...
}
so I commented out all this code. Now on the way of compilation stands only one file - afxres.h - it is not connected to Warzone, it is connected to VC 2008 itself - it is part of MFC - and as far, as I understood from internet forums - VC inserts this file in all resource files, even if they do not use MFC. So the easiest solution - is simply comment it out. And the last thing before the compilation is in the same .rc file - VC don't like string "LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK" - it says language is not integer or something like this - so the familiar way of fighting with VC - comment it out! Now compilation works fine
![Smile :-)](./images/smilies/icon_smile.gif)
.
But then the next barricade appears on the way - VC starts on linking stage complain on unresolved external symbol or link to unresolved external symbol -
Code: Select all
3>------ Построение начато: проект: Warzone, Конфигурация: Debug Win32 ------
3>Компоновка...
3>WinMain.obj : error LNK2001: неразрешенный внешний символ "_dbg_Assert"
...
3>AStar.obj : error LNK2001: неразрешенный внешний символ "_dbg_Assert"
3>WinMain.obj : error LNK2001: неразрешенный внешний символ "_dbg_AssertPosition"
...
3>AStar.obj : error LNK2001: неразрешенный внешний символ "_dbg_AssertPosition"
3>Visibility.obj : error LNK2001: неразрешенный внешний символ "_frameTime"
...
3>Effects.obj : error LNK2001: неразрешенный внешний символ "_frameTime"
3>Action.obj : error LNK2019: ссылка на неразрешенный внешний символ _trigIntSqrt в функции _actionTargetTurret
3>Move.obj : error LNK2001: неразрешенный внешний символ "_trigIntSqrt"
3>projectile.obj : error LNK2001: неразрешенный внешний символ "_trigIntSqrt"
3>Visibility.obj : error LNK2001: неразрешенный внешний символ "_dbg_printf"
...
3>CDSpan.obj : error LNK2001: неразрешенный внешний символ "_dbg_printf"
3>Selection.obj : error LNK2001: неразрешенный внешний символ "_memPointerValid"
...
3>CmdDroid.obj : error LNK2001: неразрешенный внешний символ "_memPointerValid"
3>Action.obj : error LNK2019: ссылка на неразрешенный внешний символ _audio_QueueTrackMinDelay в функции _actionUpdateDroid
3>Order.obj : error LNK2001: неразрешенный внешний символ "_audio_QueueTrackMinDelay"
3>seqDisp.obj : error LNK2001: неразрешенный внешний символ "_eventFireCallbackTrigger"
...
3>Display.obj : error LNK2001: неразрешенный внешний символ "_eventFireCallbackTrigger"
3>Target.obj : error LNK2001: неразрешенный внешний символ "_gameTime"
...
3>Combat.obj : error LNK2001: неразрешенный внешний символ "_gameTime"
...
3>Stats.obj : error LNK2001: неразрешенный внешний символ "_resGetData"
...
3>Init.obj : error LNK2001: неразрешенный внешний символ "_resGetData"
3>IntImage.obj : error LNK2001: неразрешенный внешний символ "_resGetData"
3>MapGrid.obj : error LNK2001: неразрешенный внешний символ "_heapCreate"
...
3>Group.obj : error LNK2001: неразрешенный внешний символ "_heapCreate"
3>Message.obj : error LNK2001: неразрешенный внешний символ "_heapSetCallPos"
...
3>Droid.obj : error LNK2001: неразрешенный внешний символ "_heapSetCallPos"
3>MapGrid.obj : error LNK2001: неразрешенный внешний символ "_heapDestroy"
...
3>Arrow.obj : error LNK2019: ссылка на неразрешенный внешний символ _heapDestroy в функции _arrowShutDown
3>AStar.obj : error LNK2001: неразрешенный внешний символ "_heapDestroy"
3>Formation.obj : error LNK2001: неразрешенный внешний символ "_heapDestroy"
3>Group.obj : error LNK2001: неразрешенный внешний символ "_heapDestroy"
3>Message.obj : error LNK2001: неразрешенный внешний символ "_heapAlloc"
...
3>Droid.obj : error LNK2001: неразрешенный внешний символ "_heapAlloc"
3>ObjMem.obj : error LNK2001: неразрешенный внешний символ "_heapFree"
...
3>Droid.obj : error LNK2001: неразрешенный внешний символ "_heapFree"
3>WinMain.obj : error LNK2019: ссылка на неразрешенный внешний символ _pie_SetFogStatus в функции _WinMain@16
3>Wrappers.obj : error LNK2001: неразрешенный внешний символ "_pie_SetFogStatus"
3>Texture.obj : error LNK2001: неразрешенный внешний символ "_memMalloc"
...
3>Effects.obj : error LNK2001: неразрешенный внешний символ "_memMalloc"
3>structure.obj : error LNK2001: неразрешенный внешний символ "_memFree"
...
3>Effects.obj : error LNK2001: неразрешенный внешний символ "_memFree"
3>AStar.obj : error LNK2019: ссылка на неразрешенный внешний символ _heapReset в функции _fpathHashReset
3>MapDisplay.obj : error LNK2001: неразрешенный внешний символ "_pie_MatEnd"
...
3>Component.obj : error LNK2001: неразрешенный внешний символ "_pie_MatEnd"
3>Effects.obj : error LNK2019: ссылка на неразрешенный внешний символ _pie_Draw3DShape в функции _addEffect
...
3>display3d.obj : error LNK2001: неразрешенный внешний символ "_pie_Draw3DShape"
3>projectile.obj : error LNK2019: ссылка на неразрешенный внешний символ _pie_MatRotX в функции _proj_SendProjectile
3>structure.obj : error LNK2001: неразрешенный внешний символ "_pie_MatRotX"
...
3>display3d.obj : error LNK2001: неразрешенный внешний символ "_pie_MatRotY"
3>MapDisplay.obj : error LNK2019: ссылка на неразрешенный внешний символ _psMatrix в функции _drawMapTile2
3>projectile.obj : error LNK2001: неразрешенный внешний символ "_psMatrix"
...
3>Component.obj : error LNK2001: неразрешенный внешний символ "_psMatrix"
...
3>WinMain.obj : error LNK2001: неразрешенный внешний символ "_dbg_ErrorBox"
...
3>Console.obj : error LNK2001: неразрешенный внешний символ "_dbg_ErrorBox"
3>structure.obj : error LNK2001: неразрешенный внешний символ "_dbg_ErrorPosition"
...
3>Console.obj : error LNK2001: неразрешенный внешний символ "_dbg_ErrorPosition"
3>Wrappers.obj : error LNK2001: неразрешенный внешний символ "_pie_Hardware"
...
3>Effects.obj : error LNK2001: неразрешенный внешний символ "_pie_Hardware"
... ... ...
3>ScriptExtern.obj : error LNK2019: ссылка на неразрешенный внешний символ _stackPop в функции _scrGenExternSet
3>ScriptFuncs.obj : error LNK2001: неразрешенный внешний символ "_stackPop"
3>ScriptFuncs.obj : error LNK2019: ссылка на неразрешенный внешний символ _widgSetButtonFlash в функции _scrFlashOn
3>ScriptFuncs.obj : error LNK2019: ссылка на неразрешенный внешний символ _widgClearButtonFlash в функции _scrFlashOff
3>ScriptObj.obj : error LNK2019: ссылка на неразрешенный внешний символ _sound_GetTrackHashName в функции _scrValDefSave
3>ScriptObj.obj : error LNK2019: ссылка на неразрешенный внешний символ _strresGetIDfromString в функции _scrValDefSave
3>ScriptObj.obj : error LNK2019: ссылка на неразрешенный внешний символ _audio_SetTrackValsHashName в функции _scrValDefLoad
3>ScriptObj.obj : error LNK2019: ссылка на неразрешенный внешний символ _audio_GetAvailableID в функции _scrValDefLoad
3>ScriptObj.obj : error LNK2019: ссылка на неразрешенный внешний символ _audio_GetTrackIDFromHash в функции _scrValDefLoad
3>ScriptTabs.obj : error LNK2001: неразрешенный внешний символ "_eventSetTraceLevel"
3>ScriptTabs.obj : error LNK2001: неразрешенный внешний символ "_eventSetTrigger"
3>ScriptTabs.obj : error LNK2001: неразрешенный внешний символ "_interpTraceOff"
3>ScriptTabs.obj : error LNK2001: неразрешенный внешний символ "_interpTraceOn"
3>ScriptTabs.obj : error LNK2019: ссылка на неразрешенный внешний символ _eventAddValueRelease в функции _scrTabInitialise
3>ScriptTabs.obj : error LNK2019: ссылка на неразрешенный внешний символ _eventAddValueCreate в функции _scrTabInitialise
3>ScriptTabs.obj : error LNK2019: ссылка на неразрешенный внешний символ _scriptSetTypeEquiv в функции _scrTabInitialise
...
3>WinMain.obj : error LNK2019: ссылка на неразрешенный внешний символ _blkInitialise в функции _WinMain@16
3>WinMain.obj : error LNK2019: ссылка на неразрешенный внешний символ _memInitialise в функции _WinMain@16
3>WinMain.obj : error LNK2019: ссылка на неразрешенный внешний символ _InitGlideDLL в функции _WinMain@16
3>WinMain.obj : error LNK2019: ссылка на неразрешенный внешний символ _pie_CheckForDX6 в функции _WinMain@16
3>Wrappers.obj : error LNK2019: ссылка на неразрешенный внешний символ _pie_ResetBackDrop в функции _initLoadingScreen
3>Wrappers.obj : error LNK2019: ссылка на неразрешенный внешний символ _resSetLoadCallback в функции _initLoadingScreen
it is partially in Russian - LNK2019 - it is link to unresolved external symbol - and LNK2001 - is unresolved external symbol. Amount of all unresolved external elements is 451. I understand problem now on linking stage - so I manually add projects of all game libs to Warzone solution, compile it with them, with little errors - everything compiled, after solving them. But then again the unresolved symbols. So I by hand wrote down paths to all game libs in VC 2008 libs directories. But still the same errors. So how to solve now them? How to resolve these external symbols?
By the way VC 2008 has option to compile project as C or as C++. It is accessible in Project Properties -> C/C++ -> Additional. if it is not changed it is set to C++ and project compiles fine, if it is manually set to C - also fine, but if it is set manually to C++ - project fails to compile. It seems if it is not set by hand VC automatically recognizes C or C++ files and compiles them accordingly. So for now I've set every project to "Compile as C". But either when I did not set this property at all or set it to C - the same unresolved symbol errors appear.