I am looking at the makefile. And, I am guessing that this is the option: === ifndef BUILD_GAME_QVM BUILD_GAME_QVM = endif ===
What must I change so that dynamic libraries will be built instead of QVM? ---Furthermore, I attempted to change trap_AAS_PredictClientMovement() found in BotAimAtEnemy() to AAS_PredictClientMovement(). I got an external symbol error. Somebody directed me that dlls in windows cannot call functions found in the exe. To solve this, I moved BotAimAtEnemy() function into the exe. Anyway, to make a long story short. I have several questions: I am trying to move the botlib directory and sv_bot.c from quake3 project/solution to game project solution. But, I keep getting external symbol error(s) like this one: 1>sv_bot.obj : error LNK2019: 未解決の外部シンボル _GetBotLibAPI が関数 _SV_BotInitBotLib で参照されました。 1>..\..\build\quake3_release\ioquake3.exe : fatal error LNK1120: 外部参照 1 が未解決です。 I moved the declaration of SV_BotInitBotLib() from sv_init.c to botlib.h so that both the declaration and the definition of SV_BotInitBotLib() are inside game solution/project. Question1> Why am I getting that error even though both functions (GetBotLibAPI() and SV_BotInitBotLib()) are inside the game solution/project- same dll. Question2,3> I double click some files shown the MVS project/solution directory tree, such as game\Source File\botlib.h, and I get an error "Cannot open botlib.h". Why? Furthermore, I even was audacious and deleted botlib.h from MVS solution/project, and still the project compiled with no errors! Why? I would appreciate a helping hand on this. Thank you in advance! note: I am using MVS2008, WinXP ----- Original Message ---- From: LinuxManMikeC <linuxmanmi...@gmail.com> To: Primary ioquake3 Discussion/Development list <ioquake3@lists.ioquake.org> Sent: Fri, January 28, 2011 6:04:02 PM Subject: Re: [ioquake3] what are trap_ used for? And, is it ok not to use them? On Fri, Jan 28, 2011 at 12:52 AM, Yasir I. Al-Dosary - zgzg2020™ <yasiraldos...@yahoo.com> wrote: > I dont mean to sound unappreciative, but, I am simply asking the "how" and not > the "why. > Can anyone help me in linking the engine and the sdk into one binary? > There is already a compilation path in the makefile for compiling dynamic libraries instead of QVM bytecode. I'd start there. At that point, you can start modifying code to bypass trap_ function calls. If you really want to, then you could collapse the whole thing into a single binary, but then you loose a great deal of modability with no significant performance gain. Also, one reason for the QVM bytecode was to limit the functions available to modders, mitigating numerous vectors for malicious code. When distributing dynamically linked game code, the user is at risk of all kinds of malicious code that can directly access the system. However, in a QVM, the modder's only option is a small engine-specific API with no possible access to native functions, making mod distribution safer. _______________________________________________ ioquake3 mailing list ioquake3@lists.ioquake.org http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org By sending this message I agree to love ioquake3 and libsdl. _______________________________________________ ioquake3 mailing list ioquake3@lists.ioquake.org http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org By sending this message I agree to love ioquake3 and libsdl.