View Issue Details

IDProjectCategoryView StatusLast Update
0001023FSSCPscriptingpublic2008-03-13 05:53
ReporterRansom Arceihn Assigned ToGoober5000  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionnot fixable 
Fixed in Version3.6.10 
Summary0001023: Ships unresponsive to SEXPs after intrasystem warp
DescriptionAny ships warped out using WMC's intrasystem warp scripting won't be affected by certain SEXPs after warping back in, nor will they deliver any of their messages. Oddly, some SEXPs work and some don't. This is demonstrated in the attached mission.
TagsNo tags attached.

Activities

2006-08-07 18:15

 

warptest.fs2 (5,081 bytes)

Goober5000

2006-08-07 21:16

administrator   ~0006388

Which work and which don't? The mission isn't very clear, from just looking at it.

Ransom Arceihn

2006-08-07 21:53

reporter   ~0006389

Self-destruct works, the others don't.

WMCoolmon

2006-08-17 07:23

developer   ~0006464

Ten to one this is because most SEXPs check the departed list for entries on the ship-to-be-affected and automatically fail if they find one...and one of the functions of the in-system warpout is to add that departure line. I figured that mission designers would rather have it be ambiguous as far as whether a ship was really gone or not, for dramatic reasons, so I went ahead and used the same entry.

So at the moment...I'm aware of this. :P At the very least, the departure line can probably be removed and make most of those SEXPs work, but of course that would change the result of certain SEXPs (ie is-ship-departed).

Goober5000

2006-08-18 12:55

administrator   ~0006473

IMHO the whole "limbo" system is inherently flawed for precisely this reason. After thinking this over for a while, I've come to the conclusion that there's no good way around this that doesn't involve completely re-engineering the code.

I'm inclined to recommend removing the limbo code and advising people to just go with the duplicate ship method.

WMCoolmon

2006-08-18 19:40

developer   ~0006477

Is there a SEXP to copy all of an existing ship's data to another ship with a different name? I agree that with this development, the new code is probably going to be a major pain to get working completely satisfactorily, but I don't think it should require 20-some SEXPs per intrasystem warp for copying damage et cetera.

Goober5000

2006-08-18 20:39

administrator   ~0006478

There is not, but that is an excellent idea. It would solve this problem and it would be useful for many other things as well. I'm sure we could find some way to eventually tie it into persistent variables or Karajorma's team loadout code. :)

If you don't get to it before then, I will try to code up that sexp this weekend. I need to fix the change-ship-class sexp anyway (which will require similar copying of ship data) so this will be a good excuse.

Ransom Arceihn

2006-09-05 15:31

reporter   ~0006551

I realise this is a late reply, but it seems to me that it'd be more useful from a mission design point of view to leave the limbo code in. Even if it didn't add the departure line on warp out, it'd still be immensely useful and far less fiddly than using a duplicate ship.

I'm assuming there's no way to simply remove the departure line with the in-system warpin?

Goober5000

2006-09-05 16:52

administrator   ~0006552

From my point of view, both as a mission designer and as a coder, adding the limbo code creates far more problems than it solves. As a mission designer, there's nothing that limbo adds that a copy-ship-data sexp won't also add; and as a coder, the limbo code creates a lot of ugly holes in the code.

Even X-Wing and TIE Fighter, which had ships departing and arriving all the time, didn't do this. They used different ships that displayed the same name.

I forgot I had offered to finish this, though. :) Assigning to me. I'll see if I can get that sexp coded this week.

Ransom Arceihn

2006-09-05 17:13

reporter   ~0006554

I would've thought X-Wing and TIE Fighter would have had a less hackish method of duplicating ship names, though.

Goober5000

2006-09-05 17:45

administrator   ~0006555

It's not hackish. It's very robust. There's no doubt about what's going on, and if you need to determine what the individual ships are doing, you can just disable the alternate name.

Ransom Arceihn

2006-09-05 18:21

reporter   ~0006556

We're talking about the method where you stick a character the FS2 font can't display in the duplicate ship's name, right?

It certainly works, and I'm not going to push for a cleaner way of doing things if it's more trouble than it's worth, but I'm not sure how you can say exploiting an oversight in the game's font isn't hackish.

Goober5000

2006-09-05 20:36

administrator   ~0006558

I'm referring to the general principle of displaying two different ships with the same name. Obviously adding a special character isn't ideal, but we could probably easily add an +Alt Name equivalent for the ship name.

Goober5000

2007-04-11 07:28

administrator   ~0007958

I'll resolve this bug as soon as I finish the ship-copy sexp.

Goober5000

2008-03-13 05:53

administrator   ~0008956

Sexp added; bug resolved.

Issue History

Date Modified Username Field Change
2006-08-07 18:15 Ransom Arceihn New Issue
2006-08-07 18:15 Ransom Arceihn File Added: warptest.fs2
2006-08-07 21:16 Goober5000 Note Added: 0006388
2006-08-07 21:53 Ransom Arceihn Note Added: 0006389
2006-08-17 07:23 WMCoolmon Note Added: 0006464
2006-08-18 12:55 Goober5000 Note Added: 0006473
2006-08-18 19:40 WMCoolmon Note Added: 0006477
2006-08-18 20:39 Goober5000 Note Added: 0006478
2006-09-05 15:31 Ransom Arceihn Note Added: 0006551
2006-09-05 16:52 Goober5000 Note Added: 0006552
2006-09-05 16:52 Goober5000 Assigned To WMCoolmon => Goober5000
2006-09-05 17:13 Ransom Arceihn Note Added: 0006554
2006-09-05 17:45 Goober5000 Note Added: 0006555
2006-09-05 18:21 Ransom Arceihn Note Added: 0006556
2006-09-05 20:36 Goober5000 Note Added: 0006558
2007-04-11 07:28 Goober5000 Note Added: 0007958
2008-03-13 05:53 Goober5000 Note Added: 0008956
2008-03-13 05:53 Goober5000 Status assigned => resolved
2008-03-13 05:53 Goober5000 Resolution open => not fixable
2008-03-13 05:53 Goober5000 Fixed in Version => 3.6.10