Author Topic: Why is FSO reading the Rockeye table entry?  (Read 4391 times)

0 Members and 1 Guest are viewing this topic.

Offline Lepanto

  • 210
  • Believes in Truth
    • Skype
Why is FSO reading the Rockeye table entry?
So I'm working on my mod, and I get the following error (without a debug build):
Code: [Select]
dc-wep.tbm(line 2589):
Error: Required token = [#End] or [$Name:], found [+Tech Title:    XSTR("GTM MX-64 Rockeye", 3311)].

ntdll.dll! NtWaitForSingleObject + 12 bytes
KERNELBASE.dll! WaitForSingleObject + 18 bytes
fs2_open_3_7_2_RC1.exe! <no symbol>
fs2_open_3_7_2_RC1.exe! <no symbol>
fs2_open_3_7_2_RC1.exe! <no symbol>

I am positive that this line is nowhere to be found in my mod's weapons .tbm, but FSO blames my .tbm (dc-wep.tbm) for the error. After fiddling with the MediaVPs, I conclude that the only place where FSO could be reading this line from is the Rockeye's entry in the retail weapons.tbl, in Root_fs2.vp, but that doesn't match up with what FSO is telling me.

When I try to run the same mod with a debug build, I get the following error instead:

Code: [Select]
Assert: 0
File: parselo.cpp
Line: 277

ntdll.dll! NtWaitForSingleObject + 12 bytes
KERNELBASE.dll! WaitForSingleObject + 18 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! SCP_DumpStack + 354 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! WinAssert + 194 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! get_line_num + 123 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! error_display + 228 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! required_string_either + 225 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! parse_weaponstbl + 228 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! parse_modular_table + 267 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! weapon_init + 101 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! game_init + 1738 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! game_main + 519 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! WinMain + 330 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! __tmainCRTStartup + 358 bytes
fs2_open_3_7_2_RC1-DEBUG.exe! WinMainCRTStartup + 15 bytes
KERNEL32.DLL! BaseThreadInitThunk + 14 bytes
ntdll.dll! RtlInitializeExceptionChain + 133 bytes
ntdll.dll! RtlInitializeExceptionChain + 88 bytes

Does anyone have any clue what might be generating this error? I can live with debugging errors, if only the errors make sense! :P

[attachment deleted by an evil time traveler]
"We have now reached the point where every goon with a grievance, every bitter bigot, merely has to place the prefix, 'I know this is not politically correct, but...' in front of the usual string of insults in order to be not just safe from criticism, but actually a card, a lad, even a hero. Conversely, to talk about poverty and inequality, to draw attention to the reality that discrimination and injustice are still facts of life, is to commit the sin of political correctness. Anti-PC has become the latest cover for creeps. It is a godsend for every curmudgeon and crank, from fascists to the merely smug."
Finian O'Toole, The Irish Times, 5 May 1994

Blue Planet: The Battle Captains: Missions starring the Admirals of BP: WiH
Frontlines 2334+2335: T-V War campaign
GVB Ammit: Vasudan strike bomber
Player-Controlled Capship Modding Tutorial

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Why is FSO reading the Rockeye table entry?
Code: [Select]
Searching root pack 'C:\GOG Games\Freespace 2\SathMod.vp' ... 15 files
Searching root pack 'C:\GOG Games\Freespace 2\SLAnis.vp' ... 246 files

Tried killing these?

 

Offline Lepanto

  • 210
  • Believes in Truth
    • Skype
Re: Why is FSO reading the Rockeye table entry?
Code: [Select]
Searching root pack 'C:\GOG Games\Freespace 2\SathMod.vp' ... 15 files
Searching root pack 'C:\GOG Games\Freespace 2\SLAnis.vp' ... 246 files

Tried killing these?

Just tried, no luck.
"We have now reached the point where every goon with a grievance, every bitter bigot, merely has to place the prefix, 'I know this is not politically correct, but...' in front of the usual string of insults in order to be not just safe from criticism, but actually a card, a lad, even a hero. Conversely, to talk about poverty and inequality, to draw attention to the reality that discrimination and injustice are still facts of life, is to commit the sin of political correctness. Anti-PC has become the latest cover for creeps. It is a godsend for every curmudgeon and crank, from fascists to the merely smug."
Finian O'Toole, The Irish Times, 5 May 1994

Blue Planet: The Battle Captains: Missions starring the Admirals of BP: WiH
Frontlines 2334+2335: T-V War campaign
GVB Ammit: Vasudan strike bomber
Player-Controlled Capship Modding Tutorial

  

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Why is FSO reading the Rockeye table entry?
Can you post your tbm?
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 Lepanto

  • 210
  • Believes in Truth
    • Skype
Re: Why is FSO reading the Rockeye table entry?
Sure thing.

[attachment deleted by an evil time traveler]
"We have now reached the point where every goon with a grievance, every bitter bigot, merely has to place the prefix, 'I know this is not politically correct, but...' in front of the usual string of insults in order to be not just safe from criticism, but actually a card, a lad, even a hero. Conversely, to talk about poverty and inequality, to draw attention to the reality that discrimination and injustice are still facts of life, is to commit the sin of political correctness. Anti-PC has become the latest cover for creeps. It is a godsend for every curmudgeon and crank, from fascists to the merely smug."
Finian O'Toole, The Irish Times, 5 May 1994

Blue Planet: The Battle Captains: Missions starring the Admirals of BP: WiH
Frontlines 2334+2335: T-V War campaign
GVB Ammit: Vasudan strike bomber
Player-Controlled Capship Modding Tutorial

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Why is FSO reading the Rockeye table entry?
Hmm... well let's start with the obvious stuff.

Code: [Select]
WARNING: Unrecognized parameter in ai_profiles: $Default weapon select effect: OFF
WARNING: Unrecognized parameter in ai_profiles: $Default ship select effect: OFF

Those were moved to game_settings.tbl, iirc, so let's do that.

You're debug log is less than helpful in this case. I suspect that somewhere along the line, you have a small error in a table entry leading to a much larger parsing error. Essentially, I'm guessing that a line is messed up that doesn't really matter, but gets the whole weapons.tbl parser off by a line to where it's finally looking for an #End where it shouldn't.

Leading guess is a missing $end_multi_text.

EDIT: Iris in your tbm is missing it.
« Last Edit: May 27, 2014, 06:59:33 pm by mjn.mixael »
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 niffiwan

  • 211
  • Eluder Class
Re: Why is FSO reading the Rockeye table entry?
wow! Eagle-eyed Mjn!!!  :yes:

(or maybe it was your notepad++ syntax highlighting...)
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 Lepanto

  • 210
  • Believes in Truth
    • Skype
Re: Why is FSO reading the Rockeye table entry?
Hmm... well let's start with the obvious stuff.

Code: [Select]
WARNING: Unrecognized parameter in ai_profiles: $Default weapon select effect: OFF
WARNING: Unrecognized parameter in ai_profiles: $Default ship select effect: OFF

Those were moved to game_settings.tbl, iirc, so let's do that.

You're debug log is less than helpful in this case. I suspect that somewhere along the line, you have a small error in a table entry leading to a much larger parsing error. Essentially, I'm guessing that a line is messed up that doesn't really matter, but gets the whole weapons.tbl parser off by a line to where it's finally looking for an #End where it shouldn't.

Leading guess is a missing $end_multi_text.

EDIT: Iris in your tbm is missing it.

Thanks, that did it! I could've found that if I had looked more attentively, I know.
"We have now reached the point where every goon with a grievance, every bitter bigot, merely has to place the prefix, 'I know this is not politically correct, but...' in front of the usual string of insults in order to be not just safe from criticism, but actually a card, a lad, even a hero. Conversely, to talk about poverty and inequality, to draw attention to the reality that discrimination and injustice are still facts of life, is to commit the sin of political correctness. Anti-PC has become the latest cover for creeps. It is a godsend for every curmudgeon and crank, from fascists to the merely smug."
Finian O'Toole, The Irish Times, 5 May 1994

Blue Planet: The Battle Captains: Missions starring the Admirals of BP: WiH
Frontlines 2334+2335: T-V War campaign
GVB Ammit: Vasudan strike bomber
Player-Controlled Capship Modding Tutorial

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Why is FSO reading the Rockeye table entry?
Experience taught me where to look. The syntax highlighting made it really easy to scroll the tbm to find it. :)
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 Lepanto

  • 210
  • Believes in Truth
    • Skype
Re: Why is FSO reading the Rockeye table entry?
I'm familiar with those sorts of table errors. I just dunno how an error in one table can make FSO start reading another table entirely, and yet blame the first table for the error.
"We have now reached the point where every goon with a grievance, every bitter bigot, merely has to place the prefix, 'I know this is not politically correct, but...' in front of the usual string of insults in order to be not just safe from criticism, but actually a card, a lad, even a hero. Conversely, to talk about poverty and inequality, to draw attention to the reality that discrimination and injustice are still facts of life, is to commit the sin of political correctness. Anti-PC has become the latest cover for creeps. It is a godsend for every curmudgeon and crank, from fascists to the merely smug."
Finian O'Toole, The Irish Times, 5 May 1994

Blue Planet: The Battle Captains: Missions starring the Admirals of BP: WiH
Frontlines 2334+2335: T-V War campaign
GVB Ammit: Vasudan strike bomber
Player-Controlled Capship Modding Tutorial

 

Offline niffiwan

  • 211
  • Eluder Class
Re: Why is FSO reading the Rockeye table entry?
yeah, the handling of table errors isn't always modder-friendly. In this case, the error was completely irrelevant (probably leftover from a previous parse) and it was the last table reported as being parsed that was the problem.

(aside: I wonder if some sort of max read length check for parsing the tech description would be a good idea.  Or if not that, at least something a bit friendlier that says something like: "I was reading the +Tech Description for +Tech Title <BLAH> and I reached the end of the file! Did you miss an $end_multi_text?")
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 mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Why is FSO reading the Rockeye table entry?
(aside: I wonder if some sort of max read length check for parsing the tech description would be a good idea.  Or if not that, at least something a bit friendlier that says something like: "I was reading the +Tech Description for +Tech Title <BLAH> and I reached the end of the file! Did you miss an $end_multi_text?")

That would be much handier than the assert + random error. Though, you do learn with experience. This error, for example, led me in that direction because it mentioned the the right file in the error, but impossible line/entry in that file. (I'm under the impression that FSO essentially constructs a full weapons.tbl out of all the .tbms which leads to this sort of weirdness.)
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 The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Why is FSO reading the Rockeye table entry?
It's a bit weirder than that, but yeah. The error handling of $end_multi_text is something in desperate need of improval.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns