LoadLineCalibration / Convedit_Plus

Deus Ex conversations editor remake
GNU General Public License v3.0
6 stars 2 forks source link

Running out of memory when compiling with "ucc make" #7

Open VeganGreasel opened 2 months ago

VeganGreasel commented 2 months ago

I suddenly could not open my .con file in the original ConEdit, it was just stuck on "Loading Conversations...", so I kept going using ConEdit Plus, but now I can't compile the .con file.

This is the error form UCC:

01fc:err:virtual:allocate_virtual_memory out of memory for allocation, base (nil) size 66670000
Assertion failed: Ptr [File:..\..\Core\Inc\FMallocAnsi.h] [Line: 21]

History: FMallocAnsi::Malloc <- UEditorEngine::SafeExec <- (CONVERSATION IMPORT FILE=Conversations\Mission16.con) <- FScriptCompiler::ProcessCompilerDirective <- Directiv
e <- FScriptCompiler::CompileDeclaration <- FScriptCompiler::CompileStatement <- FirstPass <- TryCompile <- FScriptCompiler::CompileScript <- (Class MachineGod.Conversati
onImport, Pass 0, Line 3) <- MakeScript <- MakeScript <- DoScripts <- UEditorEngine::MakeScripts <- UMakeCommandlet::Main

Exiting due to error

To reproduce, download this .con file, make any change and save it. Then try to compile with UCC.

VeganGreasel commented 2 months ago

I've found the culprit! If a TransferObject event doesn't have the "on fail jump to" event set (this is possible in OG ConEdit), the file is buggered. Setting that label fixes this problem.

LoadLineCalibration commented 1 month ago

Unfortunately, this is a known bug, if file has been saved in ConEditPlus, OG ConEdit will hang on loading such file. But conversations will work fine in game though. This is due to some "unknown" fields in .con file format. The UCC compiler ignores these "Unknown" fields, but OG ConEdit does not.

I've checked the file you linked, there is one interesting detail. The "Transfer Object" contains "JeffreySmith" actor, which is missing in the table. How did you managed to do that? I thought this is impossible.

VeganGreasel commented 1 month ago

Yeah, that was a name I abandoned in favour of another one. I changed the BindName in the actor table, and the Transfer Object event didn't catch on to that.

LoadLineCalibration commented 1 month ago

Thanks, I will try to fix that.