Skip to content

Qualifier 296 fix + small Android support update#49

Open
EX0RCIST0N wants to merge 11 commits into
AITYunivers:2024-nebulafrom
EX0RCIST0N:2024-nebula
Open

Qualifier 296 fix + small Android support update#49
EX0RCIST0N wants to merge 11 commits into
AITYunivers:2024-nebulafrom
EX0RCIST0N:2024-nebula

Conversation

@EX0RCIST0N
Copy link
Copy Markdown
Contributor

  • Fixed qualifiers for Windows platform and build 296 (removed from Action.cs and Condition.cs because changes in ACEventBase.cs and ParameterObject.cs fixes it)
  • For Android - added .xapk reading, added unpacking videos if it was saved by Video Android extension (it won't add to Binary Files in the project)

- Fixed qualifiers for Windows platform and build 296 (removed from Action.cs and Condition.cs because changes in ACEventBase.cs and ParameterObject.cs fixes it)
- For Android - added .xapk reading, added unpacking videos if it was saved by Video Android extension (it won't add to Binary Files in the project)
Copy link
Copy Markdown
Owner

@AITYunivers AITYunivers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely not the strongest PR I've had to review.

Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/Parameters/ParameterObject.cs Outdated
Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/Parameters/ParameterObject.cs Outdated
{
bool exists = Parent?.FrameEvents?.Qualifiers.Where(q => q.ObjectInfo == ObjectInfo && q.Type == ObjectType).Any() == true;
if (!exists)
Parent?.FrameEvents?.Qualifiers.Add(new Qualifier() { ObjectInfo = ObjectInfo, Type = ObjectType });
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't do this what-so-ever. If you're going to be redoing the Qualifiers, move this into ObjectCommon, instead of copy pasting it everywhere. Especially considering how removing this from Conditions and Actions is a stupid idea, only like 5% of ACEs use ParameterObject, I dunno what compelled you to do this.

Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/Parameters/ParameterObject.cs Outdated

public ObjectInfo? GetObject()
{
// if Build >= 296, Windows and Fusion >= 2.5, has 0x8000 bit mask with qualifiers, return null
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not edit anything related to the Event Dumper, this is deprecated and just shouldn't be used regardless, I am ashamed of it.

Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/ACEventBase.cs Outdated
Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/ACEventBase.cs Outdated
Comment thread Nebula.Core/Data/Chunks/FrameChunks/Events/ACEventBase.cs Outdated
Comment thread Nebula.Core/FileReaders/APKFileReader.cs Outdated
Comment thread Nebula.Core/FileReaders/APKFileReader.cs Outdated
@EX0RCIST0N
Copy link
Copy Markdown
Contributor Author

EX0RCIST0N commented May 26, 2026

the thing about in ACEventBase.cs and ParameterObject is that for some actions and conditions it can't detect qualifier, even tho it's normally exists (0x8000 bit mask is of course doing this)
so i made these changes
without them, it will give KeyNotFoundException and when you'll launch project, it'll give and error and will just delete these events
so, this fix is for qualifiers as parameters

@EX0RCIST0N EX0RCIST0N requested a review from AITYunivers May 26, 2026 08:07
@AITYunivers
Copy link
Copy Markdown
Owner

You completely removed all the qualifier code, I'm unsure what the goal here was

@EX0RCIST0N
Copy link
Copy Markdown
Contributor Author

EX0RCIST0N commented May 26, 2026

You completely removed all the qualifier code, I'm unsure what the goal here was

the main goal is to fix qualifiers as parameters, everything else works.
from this:
image
to this:
image

@AITYunivers
Copy link
Copy Markdown
Owner

Yeah I get that part but you're completely ignoring how I said to implement it in my review.

moved it so it could still do the same thing, but also fix qualifiers as parameters in events
@AITYunivers
Copy link
Copy Markdown
Owner

Thats not even remotely what I meant by that 😭

@EX0RCIST0N
Copy link
Copy Markdown
Contributor Author

EX0RCIST0N commented May 28, 2026

Thats not even remotely what I meant by that 😭

But through this GetObject method it determines is it object or qualifier, and only there could be fixed
Any qualifiers with 0x8000 bit mask aren't getting added, so through this method i'm adding these qualifiers if it couldn't find any
The last commit with merging to one method is awful, i'll revert that

reverted changes with GetObject(), created 2 public static strings for getting qualifier's name in ObjectCommon and moved GetQualifierName method to ObjectCommon
these changes do the same thing as in previous commit
ACEventBase changes is useless, so i reverted it, but bit mask check is still needed or else any changes for qualifiers won't do anything
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

Successfully merging this pull request may close these issues.

2 participants