Post tutorial Report RSS FIX: GtkRadiant crashes on opening a map from NetRadiant

When you try to open a map created in NetRadiant in GtkRadiant it's quite common that GtkRadiant crashes in the process. This is a small tutorial/debug process on how to overcome that issue.

Posted by on - Basic Mapping/Technical

GtkRadiant crashes on map opening


When you try to open a map created in NetRadiant in GtkRadiant it's quite common that GtkRadiant crashes in the process. This is a small tutorial/debug process on how to overcome that issue.

GtkRadiant 1.6.4
I tried to open the map in GtkRadiant 1.6.4. Radiant crashed after opening, importing, loading the map as prefab, without console log

GtkRadiant 1.5.0
I downloaded version 1.5.0 to check whether this occurs also in earlier versions. Map opening process failed, but at least the program remained stable. The console gave me following error message:

.\patch.cpp:186 assertion failure: patch too wide ----------------  Stacktrace is disabled in release-builds ---------------- 15731:2: parse error at '(': expected ')' brush 1635: parse error entity 0: parse error

Text-editor
I opened .map file in the text-editor and searched for brush 1635

// brush 1635 { patchDef2 { tech1soc_mat/mat5c ( 23 3 0 0 0 ) ( ( ( 5064 2000 1104 0 0 ) ( 5064 2000 1128 0 -0.1875 ) ( 5072 2000 1144 0 -0.3272542357 ) ) ( ( 5064 1648 1104 2.75 0 ) ( 5064 1648 1128 2.75 -0.1875 ) ( 5072 1648 1144 2.75 -0.3272542357 ) ) ( ( 5064 1472 1104 4.125 0 ) ( 5064 1472 1128 4.125 -0.1875 ) ( 5072 1488 1144 4.125 -0.3272542357 ) ) ( ( 5104 1432 1104 4.5669417381 0 ) ( 5104 1432 1128 4.5669417381 -0.1875 ) ( 5112 1448 1144 4.5669417381 -0.3272542357 ) ) ( ( 5136 1400 1104 4.9204950333 0 ) ( 5136 1400 1128 4.9204950333 -0.1875 ) ( 5144 1416 1144 4.9204950333 -0.3272542357 ) ) ( ( 5176 1400 1104 5.2329950333 0 ) ( 5176 1400 1128 5.2329950333 -0.1875 ) ( 5176 1416 1144 5.2329950333 -0.3272542357 ) ) ( ( 5224 1400 1104 5.6079950333 0 ) ( 5224 1400 1128 5.6079950333 -0.1875 ) ( 5224 1416 1144 5.6079950333 -0.3272542357 ) ) ( ( 5256 1408 1104 5.8656892776 0 ) ( 5256 1408 1128 5.8656892776 -0.1875 ) ( 5256 1424 1144 5.8656892776 -0.3272542357 ) ) ( ( 5288 1416 1104 6.123383522 0 ) ( 5288 1416 1128 6.123383522 -0.1875 ) ( 5288 1432 1144 6.123383522 -0.3272542357 ) ) ( ( 5320 1440 1104 6.435883522 0 ) ( 5320 1440 1128 6.435883522 -0.1875 ) ( 5320 1456 1144 6.435883522 -0.3272542357 ) ) ( ( 5352 1464 1104 6.748383522 0 ) ( 5352 1464 1128 6.748383522 -0.1875 ) ( 5352 1480 1144 6.748383522 -0.3272542357 ) ) ( ( 5416 1464 1104 7.248383522 0 ) ( 5416 1464 1128 7.248383522 -0.1875 ) ( 5416 1480 1144 7.248383522 -0.3272542357 ) ) ( ( 5480 1464 1104 7.748383522 0 ) ( 5480 1464 1128 7.748383522 -0.1875 ) ( 5480 1480 1144 7.748383522 -0.3272542357 ) ) ( ( 5512 1440 1104 8.060883522 0 ) ( 5512 1440 1128 8.060883522 -0.1875 ) ( 5512 1456 1144 8.060883522 -0.3272542357 ) ) ( ( 5544 1416 1104 8.373383522 0 ) ( 5544 1416 1128 8.373383522 -0.1875 ) ( 5544 1432 1144 8.373383522 -0.3272542357 ) ) ( ( 5576 1408 1104 8.6310777664 0 ) ( 5576 1408 1128 8.6310777664 -0.1875 ) ( 5576 1424 1144 8.6310777664 -0.3272542357 ) ) ( ( 5608 1400 1104 8.8887720108 0 ) ( 5608 1400 1128 8.8887720108 -0.1875 ) ( 5608 1416 1144 8.8887720108 -0.3272542357 ) ) ( ( 5656 1400 1104 9.2637720108 0 ) ( 5656 1400 1128 9.2637720108 -0.1875 ) ( 5656 1416 1144 9.2637720108 -0.3272542357 ) ) ( ( 5696 1400 1104 9.5762720108 0 ) ( 5696 1400 1128 9.5762720108 -0.1875 ) ( 5688 1416 1144 9.5762720108 -0.3272542357 ) ) ( ( 5728 1432 1104 9.9298248291 0 ) ( 5728 1432 1128 9.9298248291 -0.1875 ) ( 5720 1448 1144 9.9298248291 -0.3272542357 ) ) ( ( 5768 1472 1104 10.3717670441 0 ) ( 5768 1472 1128 10.3717670441 -0.1875 ) ( 5760 1488 1144 10.3717670441 -0.3272542357 ) ) ( ( 5768 1648 1104 11.7467670441 0 ) ( 5768 1648 1128 11.7467670441 -0.1875 ) ( 5760 1648 1144 11.7467670441 -0.3272542357 ) ) ( ( 5768 2000 1104 14.4967670441 0 ) ( 5768 2000 1128 14.4967670441 -0.1875 ) ( 5760 2000 1144 14.4967670441 -0.3272542357 ) ) ) } }

Turns out it is a patch that GtkRadiant can't display so I copied "brush 1633" which is a 'normal' patch

// brush 1633 { patchDef2 { tech1soc_trim/s128-02a ( 3 5 0 0 0 ) ( ( ( 5144 1552 1160 0 0 ) ( 5144 1584 1160 0 0.25 ) ( 5176 1584 1160 0 0.5 ) ( 5208 1584 1160 0 0.75 ) ( 5208 1552 1160 0 1 ) ) ( ( 5144 1552 1160 0.5 0 ) ( 5144 1552 1160 0.5 0.25 ) ( 5176 1552 1176 0.5 0.5 ) ( 5208 1552 1160 0.5 0.75 ) ( 5208 1552 1160 0.5 1 ) ) ( ( 5144 1552 1160 1 0 ) ( 5144 1520 1160 1 0.25 ) ( 5176 1520 1160 1 0.5 ) ( 5208 1520 1160 1 0.75 ) ( 5208 1552 1160 1 1 ) ) ) } }

GtkRadiant 1.5.0
I opened the modified mapfile again and received the following error:

.\patch.cpp:186 assertion failure: patch too wide ----------------  Stacktrace is disabled in release-builds ---------------- 15731:2: parse error at '(': expected ')' brush 1721: parse error entity 0: parse error 

Text-editor
Turns out to be the exact same problem

// brush 1721 { patchDef2 { pdh_wall/bunker_top ( 23 3 0 0 0 ) ( ( ( 5064 2000 1048 0 0 ) ( 5064 2000 1076 0 -0.109375 ) ( 5064 2000 1104 0 -0.21875 ) ) ( ( 5064 1648 1048 1.375 0 ) ( 5064 1648 1076 1.375 -0.109375 ) ( 5064 1648 1104 1.375 -0.21875 ) ) ( ( 5064 1472 1048 2.0625 0 ) ( 5064 1472 1076 2.0625 -0.109375 ) ( 5064 1472 1104 2.0625 -0.21875 ) ) ( ( 5104 1432 1048 2.2834708691 0 ) ( 5104 1432 1076 2.2834708691 -0.109375 ) ( 5104 1432 1104 2.2834708691 -0.21875 ) ) ( ( 5136 1400 1048 2.4602475166 0 ) ( 5136 1400 1076 2.4602475166 -0.109375 ) ( 5136 1400 1104 2.4602475166 -0.21875 ) ) ( ( 5176 1400 1048 2.6164975166 0 ) ( 5176 1400 1076 2.6164975166 -0.109375 ) ( 5176 1400 1104 2.6164975166 -0.21875 ) ) ( ( 5224 1400 1048 2.8039975166 0 ) ( 5224 1400 1076 2.8039975166 -0.109375 ) ( 5224 1400 1104 2.8039975166 -0.21875 ) ) ( ( 5256 1408 1048 2.9328446388 0 ) ( 5256 1408 1076 2.9328446388 -0.109375 ) ( 5256 1408 1104 2.9328446388 -0.21875 ) ) ( ( 5288 1416 1048 3.061691761 0 ) ( 5288 1416 1076 3.061691761 -0.109375 ) ( 5288 1416 1104 3.061691761 -0.21875 ) ) ( ( 5320 1440 1056 3.2210359573 0 ) ( 5320 1440 1076 3.2210359573 -0.109375 ) ( 5320 1440 1104 3.2210359573 -0.21875 ) ) ( ( 5352 1464 1064 3.3803803921 0 ) ( 5352 1464 1076 3.3803803921 -0.109375 ) ( 5352 1464 1104 3.3803803921 -0.21875 ) ) ( ( 5416 1464 1064 3.6303803921 0 ) ( 5416 1464 1076 3.6303803921 -0.109375 ) ( 5416 1464 1104 3.6303803921 -0.21875 ) ) ( ( 5480 1464 1064 3.8803803921 0 ) ( 5480 1464 1076 3.8803803921 -0.109375 ) ( 5480 1464 1104 3.8803803921 -0.21875 ) ) ( ( 5512 1440 1056 4.0397248268 0 ) ( 5512 1440 1076 4.0397248268 -0.109375 ) ( 5512 1440 1104 4.0397248268 -0.21875 ) ) ( ( 5544 1416 1048 4.1990690231 0 ) ( 5544 1416 1076 4.1990690231 -0.109375 ) ( 5544 1416 1104 4.1990690231 -0.21875 ) ) ( ( 5576 1408 1048 4.3279161453 0 ) ( 5576 1408 1076 4.3279161453 -0.109375 ) ( 5576 1408 1104 4.3279161453 -0.21875 ) ) ( ( 5608 1400 1048 4.4567632675 0 ) ( 5608 1400 1076 4.4567632675 -0.109375 ) ( 5608 1400 1104 4.4567632675 -0.21875 ) ) ( ( 5656 1400 1048 4.6442632675 0 ) ( 5656 1400 1076 4.6442632675 -0.109375 ) ( 5656 1400 1104 4.6442632675 -0.21875 ) ) ( ( 5696 1400 1048 4.8005132675 0 ) ( 5696 1400 1076 4.8005132675 -0.109375 ) ( 5696 1400 1104 4.8005132675 -0.21875 ) ) ( ( 5728 1432 1048 4.9772896767 0 ) ( 5728 1432 1076 4.9772896767 -0.109375 ) ( 5728 1432 1104 4.9772896767 -0.21875 ) ) ( ( 5768 1472 1048 5.1982607841 0 ) ( 5768 1472 1076 5.1982607841 -0.109375 ) ( 5768 1472 1104 5.1982607841 -0.21875 ) ) ( ( 5768 1648 1048 5.8857607841 0 ) ( 5768 1648 1076 5.8857607841 -0.109375 ) ( 5768 1648 1104 5.8857607841 -0.21875 ) ) ( ( 5768 2000 1048 7.2607607841 0 ) ( 5768 2000 1076 7.2607607841 -0.109375 ) ( 5768 2000 1104 7.2607607841 -0.21875 ) ) ) } }  

NetRadiant
I opened the original map in NetRadiant. Filtered patches from the view. Selected everything and copied it in another NetRadiant file. Saved the map as
'mapname_nopatch'

GtkRadiant 1.5.0
Opened 'mapname_nopatch'. No error. Works like a charm.

GtkRadiant 1.6.4
Opened 'mapname_nopatch'. No error. Works like a charm.

Conclusion:

NetRadiant provides the possibility of creating patches with a size up to 31x31. Try splitting those patches in several smaller ones since GtkRadiant seems to struggle with them.

"Fix":

If you change the patches one by one, you might not know which patch you modified later-on. That could leave you with several "corrupted/duplicated" patches.

Step#1:

Rename you current map-file to 'mapname_backup' . Do that in the explorer and NOT in radiant as that might screw your targetnames etc. I've encountered that problem before!

Step#2:

Delete ALL patches from 'mapname' and save it

Step#3:

Rename'mapname' to 'mapname_nopatch'. Do that in the explorer and NOT in radiant as that might screw your targetnames etc. I've encountered that problem before!

Step#4:

Copy ALL patches from'mapname_backup' into a new mapfile and save it as 'mapname_patch'.

Step#4.1:

If you have patches with targetnames: Copy/Paste 'mapname_backup' in the explorer. Open 'mapname_backup_copy' in radiant. Hide everything except patches and select ALL of them. Unhide EVERYTHING and invert the selection (EDIT > INVERT SELECTION). Now hit delete and save. Go to explorer and rename 'mapname_backup_copy' to 'mapname_patch'

Step#5:

Check the 'mapname_patch' for "corrupted" patches like I did above and delete all "corrupted" patches.

Step#6:

Import 'mapname_patch' into 'mapname_nopatch' and replace missing patches

>> The problem in your case might be a completely different one. Just run a debug-process like I did above and check what GtkRadiant gives you as error messages. Please post here for future reference!!

Regards

original post @ splashdamage forums

Post comment Comments
Mateos
Mateos - - 501 comments

Nice idea to post it over here :) +1!

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: