Author Topic: [WIP] FS1 Upgrade  (Read 19596 times)

0 Members and 1 Guest are viewing this topic.

Offline Trivial Psychic

  • 212
  • Snoop Junkie
Double Post.

I've strung the first chapter into a mini-campaign, complete with my first attempt at a loop integration, but I've still got a few changes and tests to run.
The Trivial Psychic Strikes Again!

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
So I tried loading up the first chapter through the campaign screen, and as it begins to load the first mission (1st training) and it quickly dies with the following error message:

Error: Argument count is illegal.

In sexpression: ( cond )
(Error appears to be: cond)
File: missionparse.cpp
Line: 5762

ntdll.dll! ZwWaitForSingleObject + 10 bytes
KERNELBASE.dll! WaitForSingleObjectEx + 156 bytes
fs2_open_3_8_0_RC1_x64_SSE2-FASTDBG.exe! <no symbol>
kernel32.dll! BaseThreadInitThunk + 13 bytes
ntdll.dll! RtlUserThreadStart + 33 bytes
The Trivial Psychic Strikes Again!

 

Offline niffiwan

  • 211
  • Eluder Class
Where have you got "cond" in the mission file? Pretty sure that's not a valid sexp.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
I loaded up the mission in text editor and did a search for "cond" but it only came up as part of "secondary" with no additional instances.
The Trivial Psychic Strikes Again!

 

Offline Axem

  • 211
Could you post the sexp with secondary in it? Or the whole mission if possible.

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
While I was out later today, it hit me that perhaps it wasn't complaining about the mission file, but rather the campaign file, and sure enough, there is the use of "comp" for every mission in the line.  Oddly enough, when I use the supplied port campaign file, it gives no complaints.  I even copied pretty much everything line by line for the first missions and it still gives the error.  I may have to troubleshoot a few more approaches and see how I can get around this.

EDIT:

Well, troubleshooting attempt No.1 failed.  I tried a more straightforward adjustment of a fresh copy of the Port's campaign file, just adding in the loop.  It seems that the campaign editor erases a lot of the commented lines designed to activate the higher res mainhalls when later FSO builds are used.  It also seems to randomly add loop flags and change position of the repeat lines prompting error messages.  Has anyone else encountered this?

My next troubleshoot attempt is to create a new campaign file from scratch.
« Last Edit: April 29, 2017, 06:01:59 pm by Trivial Psychic »
The Trivial Psychic Strikes Again!

 

Offline AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
While I was out later today, it hit me that perhaps it wasn't complaining about the mission file, but rather the campaign file, and sure enough, there is the use of "comp" for every mission in the line.  Oddly enough, when I use the supplied port campaign file, it gives no complaints.  I even copied pretty much everything line by line for the first missions and it still gives the error.  I may have to troubleshoot a few more approaches and see how I can get around this.

EDIT:

Well, troubleshooting attempt No.1 failed.  I tried a more straightforward adjustment of a fresh copy of the Port's campaign file, just adding in the loop.  It seems that the campaign editor erases a lot of the commented lines designed to activate the higher res mainhalls when later FSO builds are used.  It also seems to randomly add loop flags and change position of the repeat lines prompting error messages.  Has anyone else encountered this?

My next troubleshoot attempt is to create a new campaign file from scratch.
Remove version-specific comments before you attempt editing it and see if it still screws up.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
Creating a new campaign file from scratch seems to have resolved the issue.  I'm currently doing a play-though of the first chapter and hope to have a release soon.  Given that I'm on vacation this week, it could be out QUITE soon.
The Trivial Psychic Strikes Again!

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
Well, I'm pretty much ready for Chapter 1 release, though this being my first release of anything other than a single mission, if anyone encounters anything buggy I'd appreciate some feedback.

Now, as I've never released anything like this, where does one go to get hosting.  My zip file is 80 MB.
The Trivial Psychic Strikes Again!

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Send me your file, I'll gladly host it for you.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
Thanks.  I made a few more adjustments tonight, so I'll give it another play-through tomorrow to see that everything is where I want it.

Do I include it as an IM attachment or something?
The Trivial Psychic Strikes Again!

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
There's all kinds of temporary file hosting places... Or use Dropbox or something.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
Well, I uploaded CH1 to Freespace Files, but as it was my first upload, I mistakenly uploaded it to the "Project - Campaigns - TC" root folder, as opposed to choosing the "FreeSpace Port" or "FS1 Campaigns" sub-folders of "Campaigns" where something like this should have gone.  Oops.

The Great War - Augmented - Chapter 1

Criticisms welcome.

Now, onward to Chapter 2!
The Trivial Psychic Strikes Again!

 
I'm not sure how, but I got a "this campaign is over" after Small Deadly Space. I don't think that's intended.

Speaking of, the Poseidon freighters in that mission act kinda... weird.

 

Offline Knoster

  • 20
I'm not sure how, but I got a "this campaign is over" after Small Deadly Space. I don't think that's intended.

Me too. Also, it seems like the Core VP file is corrupted or something.

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
You mean it dumped you to the mainhall and wouldn't proceed to any later missions?

What kind of odd behavior for the freighters are you referring to?  The only odd thing I recall was that they sorta scatter as they jump out, which I think is a side effect of wing behavior and larger ships.
The Trivial Psychic Strikes Again!

 

Offline 0rph3u5

  • 211
  • Oceans rise. Empires fall.
You mean it dumped you to the mainhall and wouldn't proceed to any later missions?

What kind of odd behavior for the freighters are you referring to?  The only odd thing I recall was that they sorta scatter as they jump out, which I think is a side effect of wing behavior and larger ships.

The campaign file in the download only goes to level 5 (sm1-03a) after which the game would do that. For reference:

Code: [Select]
$Name: FreeSpace:  Augmented
$Type: single
+Description:
 XSTR("The Original FreeSpace campaign, converted to the FreeSpace 2 engine by the FreeSpace Port team, featuring adjustments and additions by The Trivial Psychic", -1)
$end_multi_text
$Flags: 1


+Starting Ships: ( "GTF Apollo" )

+Starting Weapons: ( "ML-16 Laser"  "Disruptor"  "MX-50"  "Fury" )


$Mission: btm-01.fs2
+Flags: 0
+Main Hall: Galatea B
+Debriefing Persona Index: 1
+Formula: ( cond
   (
      ( is-previous-goal-true
         "btm-01.fs2"
         "Flight Training"
      )
      ( next-mission "btm-02.fs2" )
   )
   ( ( true ) ( next-mission "btm-01.fs2" ) )
)

+Level: 0
+Position: 0

$Mission: btm-02.fs2
+Flags: 0
+Main Hall: Galatea B
+Debriefing Persona Index: 1
+Formula: ( cond
   (
      ( is-previous-goal-true
         "btm-02.fs2"
         "Combat Training"
      )
      ( next-mission "btm-03.fs2" )
   )
   ( ( true ) ( next-mission "btm-02.fs2" ) )
)

+Level: 1
+Position: 0

$Mission: btm-03.fs2
+Flags: 0
+Main Hall: Galatea B
+Debriefing Persona Index: 1
+Formula: ( cond
   (
      ( is-previous-goal-true
         "btm-03.fs2"
         "Dogfight Training"
      )
      ( next-mission "sm1-01a.fs2" )
   )
   ( ( true ) ( next-mission "btm-03.fs2" ) )
)

+Level: 2
+Position: 0

$Mission: sm1-01a.fs2
+Flags: 0
+Main Hall: Galatea B
+Debriefing Persona Index: 1
+Formula: ( cond
   (
      ( is-previous-goal-true
         "sm1-01a.fs2"
         "Protect the Orff"
      )
      ( next-mission "sm1-02a.fs2" )
   )
   ( ( true ) ( next-mission "sm1-01a.fs2" ) )
)

+Level: 3
+Position: 0

$Mission: sm1-02a.fs2
+Flags: 0
+Main Hall: Galatea B
+Debriefing Persona Index: 1
+Formula: ( cond
   (
      ( is-previous-event-true
         "sm1-02a.fs2"
         "Stop dicking around"
      )
      ( next-mission "sm1-03a.fs2" )
   )
)

+Level: 4
+Position: 0

$Mission: sm1-03a.fs2
+Flags: 0
+Main Hall:

+Level: 5
+Position: 0

#End

I am currently looking into the Iotas/Poseidons: their change to waypoints and their departure does not trigger unless they dock with very specific containers, despite the fact that you defined alternative containers for them to dock.
If you disband the wing and give them individual orders the roation ballett should go away too - just use a when-argument to check if they docked one their containters.
« Last Edit: May 21, 2017, 05:08:23 pm by 0rph3u5 »
"As you sought to steal a kingdom for yourself, so must you do again, a thousand times over. For a theft, a true theft, must be practiced to be earned." - The terms of Nyrissa's curse, Pathfinder: Kingmaker

==================

"I am Curiosity, and I've always wondered what would become of you, here at the end of the world." - The Guide/The Curious Other, Othercide

"When you work with water, you have to know and respect it. When you labour to subdue it, you have to understand that one day it may rise up and turn all your labours into nothing. For what is water, which seeks to make all things level, which has no taste or colour of its own, but a liquid form of Nothing?" - Graham Swift, Waterland

"...because they are not Dragons."

 

Offline Trivial Psychic

  • 212
  • Snoop Junkie
I guess I need to add some "or" alternatives to the waypoint cues.  As for the campaign file, I'll take a look on my end.  I guess that's what I get for trying to post my first campaign (kinda) that late at night.  I was quite tired at the time.
The Trivial Psychic Strikes Again!

  

Offline Trivial Psychic

  • 212
  • Snoop Junkie
So in one of the CH2 missions I'm working on, I have a couple of ships that use the hide-ship-name flag combined with the use of a callsign, then sexps to reverse these so that the ship appears to have one name, but once a certain trigger has occurred, it will switch to another name.  Unfortunately, the hidden ship name and callsign trick doesn't prevent the ship from appearing with its true name on an escort list, as well as showing the true name for friendly ships whose orders pertain to the ship in question.  For example, if the ship is named Quack and I use the hide name+callsign trick to make the player think its name is Woof, if I have friendly ships ordered to guard it, the listed orders will say "guard Quack".  I thought there might be an option to hide a ship's orders from the player, but I couldn't find one.  I've performed a few hacks to avoid these two issues, but I'd like to know if there is any way (outside of scripting) to do this?
The Trivial Psychic Strikes Again!

 

Offline 0rph3u5

  • 211
  • Oceans rise. Empires fall.
So in one of the CH2 missions I'm working on, I have a couple of ships that use the hide-ship-name flag combined with the use of a callsign, then sexps to reverse these so that the ship appears to have one name, but once a certain trigger has occurred, it will switch to another name.  Unfortunately, the hidden ship name and callsign trick doesn't prevent the ship from appearing with its true name on an escort list, as well as showing the true name for friendly ships whose orders pertain to the ship in question.  For example, if the ship is named Quack and I use the hide name+callsign trick to make the player think its name is Woof, if I have friendly ships ordered to guard it, the listed orders will say "guard Quack".  I thought there might be an option to hide a ship's orders from the player, but I couldn't find one.  I've performed a few hacks to avoid these two issues, but I'd like to know if there is any way (outside of scripting) to do this?

Do you need to use the "ai-guard" order? - If it is just that they will stay with the ship you can set the escort fighters on a "ai-waypoints"-order (not "ai-waypoints-once") and have the waypoints move with the ship.

Like this:
Code: [Select]
$Formula: ( every-time
   ( is-event-incomplete
      "begin deathroll vasa"
   )
   ( set-object-position
      "Drone 1:1"
      ( - ( get-object-x "Vasa" ) 180 )
      ( + ( get-object-y "Vasa" ) 425 )
      ( + ( get-object-z "Vasa" ) 900 )
   )
   ( set-object-position
      "Drone 1:2"
      ( - ( get-object-x "Vasa" ) 180 )
      ( - ( get-object-y "Vasa" ) 75 )
      ( + ( get-object-z "Vasa" ) 850 )
   )
   ( set-object-position
      "Drone 2:1"
      ( - ( get-object-x "Vasa" ) 70 )
      ( + ( get-object-y "Vasa" ) 500 )
      ( + ( get-object-z "Vasa" ) 900 )
   )
   ( set-object-position
      "Drone 2:2"
      ( - ( get-object-x "Vasa" ) 70 )
      ( + ( get-object-y "Vasa" ) 0 )
      ( + ( get-object-z "Vasa" ) 850 )
   )
   ( set-object-position
      "Drone 3:1"
      ( - ( get-object-x "Vasa" ) 525 )
      ( - ( get-object-y "Vasa" ) 275 )
      ( + ( get-object-z "Vasa" ) 900 )
   )
   ( set-object-position
      "Drone 3:2"
      ( - ( get-object-x "Vasa" ) 15 )
      ( - ( get-object-y "Vasa" ) 75 )
      ( + ( get-object-z "Vasa" ) 850 )
   )
   ( set-object-position
      "Drone 4:1"
      ( - ( get-object-x "Vasa" ) 525 )
      ( - ( get-object-y "Vasa" ) 375 )
      ( + ( get-object-z "Vasa" ) 900 )
   )
   ( set-object-position
      "Drone 4:2"
      ( - ( get-object-x "Vasa" ) 120 )
      ( - ( get-object-y "Vasa" ) 150 )
      ( + ( get-object-z "Vasa" ) 850 )
   )
)
+Name: keep drone wps at position
+Repeat Count: 1
+Interval: 1
Note: this example has a slight complication from other events in the mission. But if you keep your escort scenario simple it should work.

EDIT: Note 2: Unless it has changed in the last three years, fighters reset their waypoints everytime they switch to dynamic orders (e.g. are shot at) so you might want to keep the waypoints simple.
« Last Edit: May 25, 2017, 06:05:27 am by 0rph3u5 »
"As you sought to steal a kingdom for yourself, so must you do again, a thousand times over. For a theft, a true theft, must be practiced to be earned." - The terms of Nyrissa's curse, Pathfinder: Kingmaker

==================

"I am Curiosity, and I've always wondered what would become of you, here at the end of the world." - The Guide/The Curious Other, Othercide

"When you work with water, you have to know and respect it. When you labour to subdue it, you have to understand that one day it may rise up and turn all your labours into nothing. For what is water, which seeks to make all things level, which has no taste or colour of its own, but a liquid form of Nothing?" - Graham Swift, Waterland

"...because they are not Dragons."