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

GroundEffects. #87

Open
gratural opened this issue Jun 7, 2021 · 1 comment
Open

GroundEffects. #87

gratural opened this issue Jun 7, 2021 · 1 comment

Comments

@gratural
Copy link

gratural commented Jun 7, 2021

Good day!
Last week i been working with scripted Noggit and 010 and now i have few remarks about working with groundeffects.
It can be useful for groundeffect editor implementation by this request.

Groundeffect layer (for each chunk) are stored in two huge bitmasks (in array or struct, as you like):

  • UINT32 unk[4] in fact it is array[8] of UINT16 contained all cells for current chunk. Where each UINT16 - is left-to-right bitmask contained 8 two-bit values, that is MCLY textureLayer entry ID (can be only one of: 00 | 01 | 10 | 11)
  • UINT32 predTex and UINT32 noEffectDoodad is actualy same 64 bit variable. Where each bit - flag (0 or 1) for each grid cell of current chunk. If be set to 1 - there will hide all groundeffects in this cell ingame (like on roads and under M2's or WMO's).
  • Each grid cell can contain only one groundeffect layerID.
  • On new map generation predTex and noEffectDoodad must be reset to 0. For each chunk.
  • Empty glades without groudeffect still be anyway. I guess this can be patched in client exe.

Черканите, если все ну совсем нечитаемо. А то я учил шайсн немецкий. :(

Map
Mask

**UPD. ZIP archive contains updated 010 ADT template and Noggit LUA script for groundEffects placing (require 0.0.3 LUA fork).
ADT.zip

@bloerwald
Copy link
Contributor

Thank you very much for the explanation and the neat images, but I’m not sure how to tell you, but.. yes, this is known. Noggit already writes the low resolution layer mask l, but not the second one (since there is no way to edit it, thus we just copy the input). It is also documented on the wiki. I don’t know whether your information is from there or whether you did all the reversing on your own. I hope it isn’t the latter.

I’m not sure how to act on the issue.

I do feel like the pictures you made are very useful for documentation. I would love adding them to the wiki. Do you have the second one without reference to the old (wrong) variable names, so that one can adopt it to the wiki naming? That would be a great addition there!

As for what noggit can do: sadly I don’t think there is much that can be done. If the low-quality-texture-map is broken, we need to fix that, but I haven’t seen a reproduction of how to break that yet. The “no doodads here” mask doesn’t make sense to implement until full editing is implemented. I’m on mobile so couldn’t check your attached scripts but I’m not sure how it could correctly implement editing with the current API? After all the no-doodads-here stuff isn’t exposed even?

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

2 participants