Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CONT records in game data show blank FormEditorID #20

Closed
SteveTownsend opened this issue Jun 16, 2020 · 3 comments
Closed

CONT records in game data show blank FormEditorID #20

SteveTownsend opened this issue Jun 16, 2020 · 3 comments

Comments

@SteveTownsend
Copy link

SteveTownsend commented Jun 16, 2020

Maybe RE::TESObjectCONT needs an override for the virtual function GetFormEditorID()? Code that records the field value:

namespace FormUtils
{
	// this can be blank, e.g. "Elementary Destruction.esp" FormID 0x31617, Github issue #28
	inline std::string SafeGetFormEditorID(const RE::TESForm* form)
	{
		const char* edid(form->GetFormEditorID());
		if (edid)
			DBG_DMESSAGE("EditorID %s for form 0x%08x", edid, form->GetFormID());
		else
			DBG_DMESSAGE("EditorID null for form 0x%08x", form->GetFormID());
		return edid ? std::string(edid) : std::string();
	}
}

sample output, non-CONT records

J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {15344} (2020-06-16 09:02:45 AM) EditorID DLC2FreaSorrow for form 0x0403d2bb
J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {15344} (2020-06-16 09:02:45 AM) EditorID TC_ShoutAttack_Keyword for form 0x3e097ec4
J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {28476} (2020-06-16 09:20:40 AM) EditorID LocSetCave for form 0x000130ef

CONT records

J:\GitHub\SmartHarvestSE\dataCase.h(456): [VERBOSE] {28476} (2020-06-16 09:20:40 AM) Check Container 0x000fb9ca/Barrel/ for best match
J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {28476} (2020-06-16 09:20:40 AM) EditorID  for form 0x000fb9c9
J:\GitHub\SmartHarvestSE\dataCase.h(456): [VERBOSE] {28476} (2020-06-16 09:20:40 AM) Check Container 0x000fb9c9/Barrel/ for best match
J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {28476} (2020-06-16 09:20:40 AM) EditorID  for form 0x000f93dd
J:\GitHub\SmartHarvestSE\dataCase.h(456): [VERBOSE] {28476} (2020-06-16 09:20:40 AM) Check Container 0x000f93dd/Burial Urn/ for best match
J:\GitHub\SmartHarvestSE\utils.h(89): [DEBUG] {28476} (2020-06-16 09:20:40 AM) EditorID  for form 0x000f8478
@shadeMe
Copy link

shadeMe commented Jun 16, 2020

This could just be due to the fact that not all TESForm subclasses load their editorIDs in-game (unless something has changed between LE and SSE). You'll have to manually patch the form loading code to not skip the EDID subrecord (you'll need to also find a place to store them as the runtime definition of TESForm does not have a member variable to store the editor ID).

@Ryan-rsm-McKenzie
Copy link
Owner

These methods are implemented by Bethesda and the vtable definitions are simply stubs so the correct calls are generated. Declaring it as override won't magically make it work

@SteveTownsend
Copy link
Author

both answers makes sense, I'll have to find another way - thanks

alandtse referenced this issue in alandtse/CommonLibVR Sep 16, 2022
Sky set, force and reset weather
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants