Jump to content
ℹ️ Intermittent Download History issues ×

UnrealScript Ext for ModBuddy


TeamDragonpunk

Recommended Posts

  • Replies 100
  • Created
  • Last Reply

Top Posters In This Topic

Another scanner/parser bug report : "ref" keyword (which seems undocumented, and i didn't find any occurrences in EpicGame's UScript codebase ; maybe it's a Firaxis-specific addition ? ) makes the function definition using it not properly parsed (null nodes are created instead).


note : subsequent statements seem properly parsed afterward.



AFAIK this 'ref' keyword is only used in Helpers.uc ; X2EventManager.uc ; XComGameState_Unit.uc ; XComAISpawnManager.uc (all from XComGame package).



example from XCom 2 SDK\Development\SrcOrig\XComGame\Classes\Helpers.uc :


static native function bool IsUnitInRange(const ref XComGameState_Unit SourceUnit, const ref XComGameState_Unit TargetUnit,
float MinRange = 0.0f, float MaxRange = 0.0f, float MaxAngle = 360.0f);
Link to comment
Share on other sites

 

Another scanner/parser bug report : "ref" keyword (which seems undocumented, and i didn't find any occurrences in EpicGame's UScript codebase ; maybe it's a Firaxis-specific addition ? ) makes the function definition using it not properly parsed (null nodes are created instead).

note : subsequent statements seem properly parsed afterward.

AFAIK this 'ref' keyword is only used in Helpers.uc ; X2EventManager.uc ; XComGameState_Unit.uc ; XComAISpawnManager.uc (all from XComGame package).

example from XCom 2 SDK\Development\SrcOrig\XComGame\Classes\Helpers.uc :

static native function bool IsUnitInRange(const ref XComGameState_Unit SourceUnit, const ref XComGameState_Unit TargetUnit,
                                          float MinRange = 0.0f, float MaxRange = 0.0f, float MaxAngle = 360.0f);

 

Ok, Alex is looking into this. I mentioned that there was some custom XCOM 2 functionality that we'll have to specifically develop for. This is a good example. It does NOT look like we'll be able to fix the next comments issue. We are however, working on some debugger functionality.

Link to comment
Share on other sites

  • 2 weeks later...

It also doesn't seem to autocomplete for stuff up the chain.

 

So, if I extend Pawn, it doesn't know about the variables in class pawn for autocomplete/intellisense.

 

Alex is looking into this, but it's going to be tricky. The ext works by parsing the game source files when you start Modbuddy. He's going to look into extending the setting in Modbuddy to allow paths to folders with extra code. This may need to come from Firaxis. Have you tried putting your own mod files in the game source as a possible workaround?

Link to comment
Share on other sites

 

It also doesn't seem to autocomplete for stuff up the chain.

 

So, if I extend Pawn, it doesn't know about the variables in class pawn for autocomplete/intellisense.

 

Alex is looking into this, but it's going to be tricky. The ext works by parsing the game source files when you start Modbuddy. He's going to look into extending the setting in Modbuddy to allow paths to folders with extra code. This may need to come from Firaxis. Have you tried putting your own mod files in the game source as a possible workaround?

 

 

I think this functionality is now even more relevant with the LWS tuple and toolbox mods. I'll ask Alex if there is a way we can even build integration into extension.

Link to comment
Share on other sites

  • 3 weeks later...

 

Tested the new version, but i saw no changes.

I tried to create a default mod (XComGame's types completion worked for this project, no surprise) then opened an existing project (containing no SDK files) in the same ModBuddy instance, but no code-completion, nor "go to definition" (F12) for the same types.

(I also tried to open both projects in 2 IDE instances, same thing).

EDIT :

I take that back, apparently it was because i just renamed the old version without removing it from ".../XCOM 2 SDK\Binaries\Win32\ModBuddy\Extensions" folder.

I removed it, then tested to open my project containing ALL sdk .uc files, then open an empty project. Completion and go to definition works from all types from any sdk package (even those I never referenced before).

Conclusion : it works perfectly, thanks.

 

 

Quick Question... What was your process to open two projects and get this ext to work via the DOM sharing. I'm coming from Eclipse and having a harder time then I should. Are you opening two instances of ModBuddy or opening one project after another. I ask because it seems like it closes the first project, when you open the second.

Link to comment
Share on other sites

  • 3 weeks later...

All,

 

Alex has made some updates to the extension based on the latest SDK changes - updated the syntax recognizer to support new language features. I tested the new build and it's working great for me. It also reduces the number of parsing errors from 1500 to 70. As always, let me know if there are any issues, comments, concerns. We'll keep supporting this for the next 3 years.

Link to comment
Share on other sites

  • 2 weeks later...

Quick Question... What was your process to open two projects and get this ext to work via the DOM sharing. I'm coming from Eclipse and having a harder time then I should. Are you opening two instances of ModBuddy or opening one project after another. I ask because it seems like it closes the first project, when you open the second.

Sorry, I didn't come here for a while.

To open multiple projects with full completion, I made a "vanilla" project that reference every source files in SrcOrig sdk's folder.

Then for each instance of ModBuddy, I open this "vanilla" project first (so the extension build the DOM for the whole SDK), then I open the project I want to work with (eg: "MyModProject").

The "vanilla" project is indeed closed at this point, but I still have completion for the whole SDK while working with "MyModProject".

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...