Comments (8)
Some sort of initialize function would also need to exist, so as to feed in the Scanner.Module.BaseAddress ptr, so the updated offsets can be calculated.
from ffxivclientstructs.
ffs. how many times am i going to login and do stuff with my work account. you'd think i'd have noticed.
from ffxivclientstructs.
Can delete it and repost if you want.
from ffxivclientstructs.
Anyway.
vtbl addresses dont need to be in the code. You just read them from the current object. This allows polymorphism to actually work.
Function signatures I haven't really thought about. One option is to store them in a header file as actual C++ function signatures then use something like CppSharp's parser to read them during codegen.
It should be possible to use a static initializer to store the game's base address when the dll loads, unless I'm mistaken.
from ffxivclientstructs.
C#9 has [ModuleInitializer]
Prior to that, Fody has ModuleInit
Or the option of a static constructor on something potentially.
from ffxivclientstructs.
Been thinking, generating and stuffing offsets in code is handy dandy, but requires rebuilding every patch. What if it gets generated, but packs data.yml
with the dll. If out of date (since ffxiv.ver is in the file now) reach out to github, pull down a new data, if good, update the offsets. Won't be able to generate anything that's new or not, but at the very least it'll have good offsets.
from ffxivclientstructs.
proof of concept: https://github.com/daemitus/FFXIVClientStructs/tree/sourcegen
Pretty sure it forces the TFM to netstandard2.0, which should? leave us compatible with net472. Haven't tried loading it into XL though. I can't find it again, but I swear some Msft doc said netstandard2.0 was on par with net45.
from ffxivclientstructs.
re: Linking original structs to generated data.
- 1: some stupid getter function on a static class. boo
- 2: extension class adding a getter to each struct. maybe
- 3: weave them into each class with something (fody?). My favorite idea, requires adding another thing onto the dependency stack though. Source generators are purely additive, afaik it wouldn't be possible to add to an existing object this way.
from ffxivclientstructs.
Related Issues (20)
- AgentMap reports incorrect CurrentOffsetX and CurrentOffsetY values HOT 4
- AtkTextNode.SetText string overloads set a pointer to stack in AtkTextNode HOT 8
- Status fields StackCount and Param are actually one field
- Consider switching from source generator to generated-and-committed code HOT 1
- Request for information
- Future Work HOT 1
- Help with a error I can't solve HOT 2
- FateManager doesn't work.
- Versioning HOT 3
- Clarity on Acceptable Contributions
- Some structs are missing from header files HOT 3
- Data structure for spearfishing
- Support KR FFXIV HOT 1
- ffxiv_sigmaker.py needs ruemel.yaml HOT 1
- Patch 6.5 - ConfigOption enum off by one HOT 2
- RaycastHit offsets need adjustments
- ffxiv_idarename.py generating a lot of errors with latest FFXIV version HOT 4
- Update ffxiv-exdgetters.py to use EXDSchema
- CExporter: Does not detect fields exceeding struct size
- [Bug] `PulseActionBarSlot` Crashed the game!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffxivclientstructs.