Older XC_EditorAdds

User avatar
sektor2111
Godlike
Posts: 4898
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Older XC_EditorAdds

Post by sektor2111 » Sat Jul 25, 2020 6:57 pm

Bringing something at surface toward this Level Cleaner and MapGarbage for map's reachspecs finder - XCGE v24.

In certain map attempting to find the last reachSpec returned something as Start and End but their names were... "None" instead of another string. Here I believe it was a data corruption losing some objects from account. As result I had to adjust data returned by Trash Lord and to stop immediately if an actor exists referenced but is called None - lol, or indeed is None and only referenced doing damage when a code wants to work with it.

What was good ? By only opening such a map and applying XC Cleaner, then saving map and closing Editor, in next examination stage all lousy things have been vanished and crashes have been gone for good. I think I recommend for any final stage of any map such a cleaning task operated in a single session dedicated for this task. I'm not sure if a map having lousy things inside won't do damage sooner or later as long as screwed up objects sitting in memory with no purpose are only a charge and a mess.

The fact is that such maps with screwed things I see "Saved" by UGold227h which it's crashing itself during last reachSpec hunt because the None was not exactly None - only as a name "None" - definitely there was something referenced. After working at map's reachSpecs bytes, it looks like the XC Cleaner is a MUST DO after these UG227 patches right in UT ignoring how messed up is this Editor in original.

Introducing logs for map DM-300kB3ShaneBlast
Scanning in UT:

Code: Select all

...
ExpectingCrash: Bork at reachSpec 307
BreakingCycle: Attempt STOPPING reachSpecs Finder...
Reporting: ---------------------------------------------------
MaxNumFound: I found 307 reachspecs, from 0 to 306.
Then what was doing UGold here:

Code: Select all

SpecContent: ReachSpec 306 data:
Data: 		- Start       = InventorySpot279
Data: 		- End         = PathNode18
Data: 		- ReachFlags  = Walk=1
Data: 		- Distance    = 483

:  
Critical: UObject::ProcessEvent
Critical: (MapGarbage Transient.MapGarbage2, Function MapGarbage.MapGarbage.Build)
Critical: WDlgBrushBuilder::OnBuild
Critical: WButton::InterceptControlCommand
Critical: WM_HSCROLL
Critical: WWindow::WndProc
Critical: WWindow::StaticDlgProc
Critical: WWindow::WndProc
Critical: WWindow::StaticProc
Critical: DispatchMessage
Critical: 001D02D6 514
Critical: MessagePump
Critical: MainLoop
Exit: Executing UObject::StaticShutdownAfterError
Exit: UGalaxyAudioSubsystem::ShutdownAfterError
Exit: Executing UWindowsClient::ShutdownAfterError
Exit: UD3D9RenderDevice::ShutdownAfterError
Exit: Exiting.
And How does it looks like a cleaned and a more simple edit:
UT report:

Code: Select all

SpecContent: ReachSpec 174 data:
Data: 		- Start       = InventorySpot276
Data: 		- End         = InventorySpot277
Data: 		- ReachFlags  = Jump Walk=9
Data: 		- Distance    = 386

:  
MaxNumFound: I found 175 reachspecs, from 0 to 174.
it looks like a crystal - a jewel in all ways.

And then UGold227 has logged this:

Code: Select all

SpecContent: ReachSpec 174 data:
Data: 		- Start       = InventorySpot276
Data: 		- End         = InventorySpot277
Data: 		- ReachFlags  = Jump Walk=9
Data: 		- Distance    = 386

:  
MaxNumFound: I found 175 reachspecs, from 0 to 174.
Identical - but I won't save it again from here... It did not crash anymore with the cleaned map-file.

Buggie
Adept
Posts: 316
Joined: Sat Mar 21, 2020 5:32 am

Re: Older XC_EditorAdds

Post by Buggie » Wed Aug 19, 2020 11:14 pm

Look like little bit of topic but i not found any thread for MapGarbage itself.

In any case I have some ideas for MapGarbage.

1. If on map exists something subclass of Light (usually TriggerLight) with Tag = TriggerLight this is obviously mapper mistake.
Because can be simply removed or replaced with Light (depends from initial state of this Actor).
Because it only force dynamic light here, but can not be used without properly set tag.

I think this rules can be apply for other subclasses of Light if its need be manually toggled for any difference between Light.

Of course this must be warning. Because some mappers can use Tag TriggerLight, not mind about how this is idea is bad.

2. Another mistake something which fire Event Mover or AttachMover or any other name of subclass Mover. Which produce chaotic toggle movers on level because it is default tag.
This idea can be expanded to "warning on any event, which name is same as exists class". Or predefined list of names.
Last edited by Buggie on Thu Aug 20, 2020 7:03 am, edited 1 time in total.

User avatar
sektor2111
Godlike
Posts: 4898
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Older XC_EditorAdds

Post by sektor2111 » Thu Aug 20, 2020 6:50 am

Let's clarify a bit this stuff. Because elsewhere I can attach how many files I want and How I want because there I'm admin and I can show a lot of stuff without restrictions, I decided to drop everything right there:
https://hofgamingclan.com/forums/viewto ... f=34&t=326 and
https://hofgamingclan.com/forums/viewto ... f=34&t=331
Last August version is here - next one will be completed with an actor adjuster where Editor doesn't allow manual changes, sample InitialState of certain actors...
https://hofgamingclan.com/forums/viewto ... t=30#p3186

Working with PathsLinker samples
https://hofgamingclan.com/forums/viewto ... f=34&t=465

MapGarbage was aiming in the beginning of its existence a few common problems from maps, but right now has options including for finding navigation bugs - these can be fixed with PathsLinker in UGold227 or whatever assets capable to work with reachSpecs. I can even show a map where Bot support is hand made, from 2814 useless reachSpecs it was reduced to 116 reachSpecs and CTFGame is taking place out of issues.
https://hofgamingclan.com/forums/viewto ... 3238#p3236 - CTF-SPACEFUNNEL_rS116 is an evidence about what I'm saying. Amazingly this was done in Win-doze XP inside an User Account, machine firewall-ed, no animal has been murdered under any lift and no cooking explosion could be hear in the kitchen -> UT469 from 2020 cannot do what an UGold227 from 2012 is doing :mrgreen: .

Of course builder can be completed with hundreds of checks - the problem will come when we are surfing through options spending ages in builder's menu, at a moment I have to stop completing this builder and doing another one having as purpose triggering chains Events, Tags, etc. Each type must be separated because even in Editor UScript iterations boundary is showing up and it crashes, I don't get why Editor needs this clamp type but... Epic was Epic.

XC_EditorAdds from XCGE24 does a more simple navigation network in maps, easier to be corrected not like it was navigation in map CTF-SPACEFUNNEL - borked and overcrowded and having NO purpose. Anyway Paths over movers are a different story but for me here pathing was too easy...

Mental recall: XC_GE 21 has assets for pathing maps in Editor closer to original UT but... has range option and doing user-demanded connections where these are needed, including the option for using a custom InventorySpot, that can be educated with a SpecialCost and SpecialHandling codes where situation is requiring these.

Edit: A very great (if not perfect) would be a mix of these options having all these features:
- Range definition - auto-range from v24 does reachSpecs which I'm deleting later...;
- Custom InventorySpot Class - perhaps... not 100% needed but... why not ?;
- Custom Scout for probing spots;
- adding back forced connections Event -> Target Actor-Name not only Event->Tag;
- optional usage of air paths and pruned craps, umm... pruned paths;
- optional usage of VisNoReachPaths out of a major usage - okay, except my mutator FlyingWay mapping these as air routes in run-time only in XC servers.