-
-
Notifications
You must be signed in to change notification settings - Fork 82
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
Improvements for Duke Nukem Forever (2011) #85
base: master
Are you sure you want to change the base?
Conversation
I wonder if it's worth implementing a class/property flag remapper like what exists for UnrealScript opcodes. Then UELib can have its own internal representation of the flags that can be safely checked, instead of needing to manually remap and handle engine-specific flags (especially for cases where the same flag happens to be stored in a different bit compared to most implementations). Any thoughts on this? |
… notplaceable class flags
Looking good, I'll leave it open for now, as you are still pushing commits. |
Yes, see Unreal-Library/src/UnrealFlags.cs Line 78 in 205aece
I ran into this issue badly when supporting UE4 package flags, and implemented a way to abstract the unique flags for any particular game. It's only a matter of duplicating the efforts for all classes, or those with the most impact. |
I might attempt that in a separate PR later then, since it's probably out of scope for this one. The changes I have now should be the last of them, so feel free to merge the PR if it looks good. If you want to mess around with the DNF compiler yourself, I have a (heavily WIP) reconstructed SDK and UCC available here: https://github.com/DaZombieKiller/DukeForeverSDK (feel free to open a discussion there if you need help setting it up, I haven't written any documentation yet). |
Thanks, I'll merge this later, I plan to adjust some changes like 'IsCompilerGenerated' to generalize it for all games, e.g. generated delegates are expected to be prefixed with 'DELEGATE' |
var pointer(T)
instead ofvar pointer
syntaxdelegate<T>
fields are compiler-generated in DNF and cannot be defined in sourceFUNC_Delegate
is0x400000
in DNF0x20000000
isFUNC_DevExec
, it is often combined with0x200
which gives0x20000200
0x00800000
isCPF_Comment
and the syntax isvar T name ?("comment");