Another weird one...
When I replace this falcon.ship file in mod_info (and all the associated skin/variant files mapped to that ship) the game fails to start with a nullpointer.
File being replaced that causes the crash.
Spoiler
{
"bounds": [
109.5,
29.5,
108.5,
11,
50,
11,
50,
-11,
110,
-10,
110.5,
-29,
4,
-66,
-0.5,
-74.5,
-43,
-74.5,
-79.5,
-42.5,
-81,
-11,
-68,
-7.5,
-68,
7.5,
-79,
11,
-78,
45,
-48,
89,
-30.5,
86.5,
-26,
72.5
],
"builtInMods": [
"dedicated_targeting_core"
, "warp_conduit" ],
"center": [
92,
85.5
],
"collisionRadius": 126.965546,
"engineSlots": [
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-81.5,
36
],
"style": "MIDLINE",
"width": 16
},
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-83,
25
],
"style": "MIDLINE",
"width": 16
},
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-84,
15
],
"style": "MIDLINE",
"width": 16
},
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-84,
-15
],
"style": "MIDLINE",
"width": 16
},
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-83.5,
-25.5
],
"style": "MIDLINE",
"width": 16
},
{
"angle": 180,
"contrailSize": 64,
"length": 80,
"location": [
-82.5,
-36
],
"style": "MIDLINE",
"width": 16
}
],
"height": 202,
"hullId": "falcon",
"hullName": "Falcon",
"hullSize": "CRUISER",
"shieldCenter": [
5.5,
-0
],
"shieldRadius": 128.549606,
"spriteName": "graphics/ships/rebalance/falcon/falcon_base.png",
"style": "MIDLINE",
"viewOffset": 0,
"weaponSlots": [
{
"angle": 0,
"arc": 5,
"id": "WS 001",
"locations": [
-33.5,
79
],
"mount": "HARDPOINT",
"size": "MEDIUM",
"type": "MISSILE"
},
{
"angle": 0,
"arc": 5,
"id": "WS 002",
"locations": [
33,
-47
],
"mount": "HARDPOINT",
"size": "SMALL",
"type": "MISSILE"
},
{
"angle": 155,
"arc": 190,
"id": "WS 003",
"locations": [
-60.5,
25
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": 205,
"arc": 190,
"id": "WS 004",
"locations": [
-60.5,
-25
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": -30.963757,
"arc": 207.219467,
"id": "WS0003",
"locations": [
56,
-20
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": 30.963757,
"arc": 207.219467,
"id": "WS0004",
"locations": [
56,
20
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": 0,
"arc": 360,
"id": "LB 1",
"locations": [
27.5,
44.5,
35,
38,
44.5,
37.5
],
"mount": "HIDDEN",
"size": "LARGE",
"type": "LAUNCH_BAY"
},
{
"angle": 0,
"arc": 360,
"id": "LB 2",
"locations": [
-36.5,
-69,
-22,
-70,
-9.5,
-69
],
"mount": "HIDDEN",
"size": "LARGE",
"type": "LAUNCH_BAY"
},
{
"angle": -90,
"arc": 159.984039,
"id": "WS0002",
"locations": [
-30.5,
-47.5
],
"mount": "TURRET",
"size": "SMALL",
"type": "UNIVERSAL"
},
{
"angle": 90,
"arc": 159.984039,
"id": "WS0005",
"locations": [
-30.5,
47.5
],
"mount": "TURRET",
"size": "SMALL",
"type": "UNIVERSAL"
},
{
"angle": -45,
"arc": 200.841431,
"id": "WS0010",
"locations": [
15,
-10
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": 45,
"arc": 200.841431,
"id": "WS0011",
"locations": [
15,
10
],
"mount": "TURRET",
"size": "SMALL",
"type": "BALLISTIC"
},
{
"angle": 0,
"arc": 6.025575,
"id": "WS0007",
"locations": [
43.5,
-0
],
"mount": "HARDPOINT",
"size": "LARGE",
"type": "HYBRID"
},
{
"angle": -60.945396,
"arc": 180,
"id": "WS0008",
"locations": [
-3.5,
-42.5
],
"mount": "TURRET",
"size": "SMALL",
"type": "UNIVERSAL"
},
{
"angle": 60.945396,
"arc": 180,
"id": "WS0009",
"locations": [
-3.5,
42.5
],
"mount": "TURRET",
"size": "SMALL",
"type": "UNIVERSAL"
},
{
"angle": -90,
"arc": 0,
"id": "WS0012",
"locations": [
-21.5,
-68
],
"mount": "HIDDEN",
"size": "SMALL",
"type": "SYSTEM"
},
{
"angle": 56.309933,
"arc": 0,
"id": "WS0013",
"locations": [
34.5,
44
],
"mount": "HIDDEN",
"size": "SMALL",
"type": "SYSTEM"
},
{
"angle": 0,
"arc": 5,
"id": "WS0001",
"locations": [
42,
-35
],
"mount": "HARDPOINT",
"size": "SMALL",
"type": "MISSILE"
}
],
"width": 184
}
It doesn't really give much indication where this is coming from, or at least where it seems to point to in the stack trace doesn't make sense to me. It seems to come from the falcon_p.skin file that was added in .9.
I don't see anything that would cause a nullpointer there unless "tech" does for some reason if the value is invalid. I would think that would just be for a string compare (so nullable) when choosing what variants to spawn.
I've made sure that these exist in their correct paths in the mod, and have their paths correct in the replace array in mod_info (minus hullmods):
For each variant other than the falcon_p_Strike, they would load correctly with the same ship file in .8
To ensure a proper control, the falcon_p_Strike variant was copied from an existing, vetted variant in .8 as well.
Am I missing variants or something? I can't figure out why it would throw a nullpointer only when being replaced. As long as the variants are also replaced and mapped to the same weapon mounts...