![]() Unload gets called in CleanCGame_and_Allocs_Level_Game, initialising cgameapi, gameapi, CL_Shutdown after setting bool, CL_ClearState before memsetting cl stuff. Needless to say (auto)save(2) concommands call into it with ClearNotify for every split and NotifyMessage(0, some_typemap_localisation_stuff(some_global_typemap_ref_wrapped, "$g_saving_game"), 0) etc etc etc. Many things call into cgame api, like Com_Print you pass to game api (check for developer convar and NotifyMessage(0, str, 0)). CL_PrepRefresh (the only reference of "weapon.md2") calls it at the very beginning after an if. Sys_GetCGameAPI is similar to game counterpart, calls Init at the end. Run some sort of NET_Config esque function, allocate client_t of size 386360 (0x5E538), set global maxclients, return. Then call set_mp_convars again, then Init. Call Sys_GetGameApi, which calls PreInit at the end (also calls some function at some point which unloads global cgame api and cleans all allocations with tags above or equal 765, currently only Game and Level, I call it CleanCGame_and_Allocs_Level_Game). Set tick_second and tick_millisecond global values after. Now things start to differ: first it does some checks and sets on maxclients, numsplit, deathmatch and coop (looks similar to the original code after allocations but working on different cvars and separated into a function I called set_mp_convars), after that gets tickrate convar value and checks if ms value is integer, if not - warn the player and clamp it down (no less than 10, no more than 50), also try to clamp if value isn't 30, then set global tickrate value and update convar value if integer value changed. If dedicated is 1 - checks if coop is not 0 - sets deathmatch to one, then goes to set spawncount (calls to randk). I worked on the re-release, so if you guys have any questions or concerns give me a shout if there's something I forgot to document and I'll get you the info you need.Ĭan give my 2 cents on this too, haven't reverse'd that much (I focus on more of a recreation of kex), but SV_Init related stuff got changed slightly, SV_ChooseGamemode is not present as is - after cvar latched_string stuff and svs_init = true, engine checks values of deathmatch and coop variables, prioritising deathmatch over coop. You're welcome! I pushed to get the old mission pack sources GPL'd for you guys. The remaster really put Q2 into Q1 source port levels when it comes to map sizes and design, i see even the like of alkaline now on Q2, plus the Md5 support paired with md2 is really damn good. Plus, it seems that it is imperative now to reverse engineer Oblivion dll file off that linux dump file its based on the xbox 360 port of quake 2, kex engine just wraps the video and input and suchĪlso the old demos work but you see how the old behavior clashes with the new one. it is using the original engine, kex is just doing controller support and other stuff Since YQ2 need to stay compatible with Vanilla, it might be impossible to dully support Quake II Remaster.įortunately for you sponge answered that on quake discord, you can check with him there and and SVkaiser on twitter if it is to make it compatible with the old stuff It would be easier if they release their source code.Īnd there's the question how compatible Vanilla Quake II and Quake II Remastered are in terms of network protocol and mods. This might not be easy to implement so don't get your hopes too high. Including gamecode changes and alteration to the assets. ![]() However on very, very first look it seems like the changed a lot of things. Supporting the remastered game data would be nice. I myself am looking into separating the new expansion and Quake II 64 into separate PAK files, see if I can somehow get them working standalone. This could be a nice project for long winter nights. I'm currently moving to a new home and don't have much time. But with the extensible documentation (many thanks to Nightdive Studios, that's much better than just a source code dump!) it should be possible to implement the changes in YQ2 or maybe separate YQ2 Remastered branch. It won't "just work", because YQ2 doesn't support this new API version. It also has a new network protocol, version 2023. It also introduces a very thin "client game" module, akin to Quake III Arena's cgame module, to allow for extended modding opportunities that change previously hardcoded client behavior. ![]() The rerelease of Quake II uses a new version of the API to communicate between the server & the game module. I need to ponder if relicensing our versions is possible. Until now the addons were under the crappy SDK License, which wasn't really an open source license and made it impossible to distribute them together with the client. ![]() Even better is that they finally released the unaltered source code of the addons under GPL2. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |