Skip to content
ryobg edited this page Dec 14, 2021 · 5 revisions

This note-in-hurry is mostly to keep a track of various tasks related to the JC development.

Changing JC version

  1. Update appveyor.yml
  2. Update src\jcontainers\src\jcontainers_constants.h

Upgrading to new SKSE

A cut-down version of SKSE 64 is located at dep\skse64\skse64.7z.

A cut-down version of SKSE VR is located at dep\sksevr\sksevr.7z.

Unused files & folders like for previous version of Visual Studio or the SKSE Steam loader are ignored. Rest of the text below should be mirrored across SKSE VR and the common SKSE 64.

Compare the old vs the new SKSE filesystem tree. Compare the JC overrides vs the new SKSE incoming files.

Good idea is to clear all files from dep\skse64 and after updating the archive and restoring the custom JC content (with git checkout dep\skse64), just run tools\merge_skse64.bat again. This way all new changes coming from SKSE will be visible right-away and ready to use.

Few files, like the Studio project files were adapted to fit into JC, but most important changes which should carry over are two dep\skse64\src\skse64\PapyrusNativeFunctionDef*.inl files. They provide support for carrying over state information for callbacks.

Todo: Possible solution: provide separate map of callbacks to state?

Next thing is to fix the DEFINE_* hooks in src\jcontainers\src\skse\string.h. The constants are taken from dep\skse64\src\skse64\GameTypes.h and its StringCache definition.