A series of errors and apparently i is greater than or equal to zero

I'm working on a new mod for Rebellion called Capital Identities which will feature among other things a "simple" buff computer, capable of data storage and addition, requiring about 60 files in all.  Due to the nature of buff computers, you kind of have to test everything at once so I don't have any idea which files are the cause, so if you guys could point me in the right direction as to what is causing these things, that'd be very much appreciated.

Error 1

Assert @ C:\Projects\P4\SinsRebellion\SteamPublicBeta\CodeSource\Engine/Archive/TextFileArchive.cpp(183)

*stringSrc == _T('"')

 

Error 2

Assert @ C:\Projects\P4\SinsRebellion\SteamPublicBeta\CodeSource\GS/Entity/Interfaces/IBuff.cpp(3096)

(instantAction.instantActionTriggerType == InstantActionTriggerType::AlwaysPerform) || (instantAction.instantActionTriggerType == InstantActionTriggerType::OnChance) || (instantAction.instantActionTriggerType == InstantActionTriggerType::OnCondition)

 

Error 3

Assert @ C:\Projects\P4\SinsRebellion\SteamPublicBeta\CodeSource\Engine/DataStructures/DynamicVector.h(172)

i >= 0

 

"Error" 4

<Minidump>

 

Here's the log file in case it helps..

D3D9 - ChangeDevice...
DeviceType.......... HAL
AdapterOrdinal.......0
AdapterFormat....... X8R8G8B8
BehaviorFlags....... HARDWARE_VERTEXPROCESSING
BackBufferSize..... 1024 x 768
BackBufferFormat.... A8R8G8B8
DepthStencilFormat.. D24X8 (Enabled)
MultiSampleType..... IDSMultisampleTwoSamples (Quality=0)
IsWindowed.......... 1
ChangeDevice Result. success
Setup:DataFileSystem
Added 4 Fixed Data File paths
> .\Rebellion
> .\Diplomacy
> .\Entrenchment
> .
Found 7 Available Mods in C:\Users\<myname>\Documents\My Games\Ironclad Games\Sins of a Solar Empire Rebellion\Mods-Rebellion v0.96
> Capital Identities
> Deliverance Capture Culture
> Ideal Combat Law
> Leo Assitance
> Proper Vasari
> Rebalanced Races
> Super Coronata
Found 0 Enabled Mods in C:\Users\<myname>\Documents\My Games\Ironclad Games\Sins of a Solar Empire Rebellion\Mods-Rebellion v0.96\EnabledMods.txt
Acquire (Keyboard) Failed...
Acquire (Mouse) Failed...
D3DXCreateEffect Error Buffer: C:\Program Files (x86)\Steam\steamapps\common\sins of a solar empire rebellion\PipelineEffect\Particle_MeshShadowed.fx(114,6): warning X3557: Loop only executes for 1 iteration(s), forcing loop to unroll

D3DXCreateEffect Error Buffer: C:\Program Files (x86)\Steam\steamapps\common\sins of a solar empire rebellion\PipelineEffect\GS_ShadowedAsteroid.fx(114,6): warning X3557: Loop only executes for 1 iteration(s), forcing loop to unroll

D3DXCreateEffect Error Buffer: C:\Program Files (x86)\Steam\steamapps\common\sins of a solar empire rebellion\PipelineEffect\GS_ShadowedShip.fx(206,6): warning X3557: Loop only executes for 1 iteration(s), forcing loop to unroll
C:\Program Files (x86)\Steam\steamapps\common\sins of a solar empire rebellion\PipelineEffect\GS_ShadowedShip.fx(208,7): warning X3557: Loop only executes for 1 iteration(s), forcing loop to unroll
C:\Program Files (x86)\Steam\steamapps\common\sins of a solar empire rebellion\PipelineEffect\GS_ShadowedShip.fx(208,7): warning X3557: Loop only executes for 1 iteration(s), forcing loop to unroll
C:\Pro

 

I've gotten the top two errors many times before though I don't know exactly what causes them.  I just know they don't crash anything.  I've never seen the third issue however which is what's actually causing the crash.

17,667 views 12 replies
Reply #1 Top

So..."i" does  equal "0".  I had always suspected that.

Reply #2 Top

Error 1, you probably have a missing quotation mark.  It's a borked string.

 

Error 2 is a list of the valid action types you need to use for a periodic action.  You probably have one with OnDelay, which doesn't work.

 

Error 3 is a missing file.  Most of them are properly referenced and will tell you what file is either not referenced, or not found from the reference, but some of them don't.  What you've got is one of the unreferenced files that doesn't throw the message.  Causes are diverse, your count could be off in the manifest file, a typo in either the manifest file, referencing file, or the name itself, or you simply forgot to create the file or manifest entry entirely.

 

Error 4 is just the result of Error 3.  Bad references always crash when they trigger.

+1 Loading…
Reply #3 Top

Thanks for the help on the first two.  Found the string error within seconds and the onDelay within a couple minutes.

I'm not looking forward to searching through it for missing buffs though..  :S

 

Thanks for the help though.  :thumbsup:

Reply #4 Top

please, volt, what was the string.  I've got like 25k 27,146 lines and I've read through most and still have that damn error popping up.  I'm pretty careful about quote marks, but your find might help me out.

Reply #5 Top

Value "In the event of an emergency, the Dunov can eject it's cargo through it's hangar bays in relatively short order, allowing faster movement."

The second one was missing.

 

Honestly though, in your case, it's probably better to write a simple program to parse your file and output where they're missing.

Reply #6 Top

Are any modders familiar with Linux/Unix?

If so, it would be well worth using Cygwin which provides all the Unix-style text processing utils like grep, sed, awk on Windows.

It's far easier (once you're familiar with Cygwin) to write scripts using bash, the command shell interpreter, than DOS batch files.

Example 1, Finding missing trailing quotes in English.str (assumes the closing quote is the last char of the line):-

fgrep \" English.str | egrep -v '"$'

Example 2, count the number of strings in English.str, useful for checking that the NumStrings value is correct :-

fgrep StringInfo English.str | wc -l

 

 

Reply #7 Top

must be a rebellion thing...

will look into the cygwin thing

Reply #8 Top

NewHorizons, I'm not familiar with cygwin, but wc generally means word count.  How would this detect the number of strings?

Regardless, apparently, I've now got another language to learn this summer..

  1. Matlab (for my job)
  2. C++ libraries (have a class that requires me to know this in the fall; already know C at least)
  3. batch (because)
  4. AHK (because I'm lazy)
  5. cygwin (modding)

Also, I'm assuming that Zombie's plugin would probably handle this in some manner or other, but I don't use it so I wouldn't know (though probably will if/when he comes out with a Rebellion version).

Reply #9 Top

Quoting Volt_Cruelerz, reply 8
How would this detect the number of strings?

wc -l : count  lines (new line chars to be accurate)

wc -w : count words (default)

wc -c : count chars (bytes)

 

Cygwin is very useful, but it does have a couple idiosyncrasies

i) Drive prefix C:/ is replaced by /cygdrive/c/

   ie C:/Windows/System32 becomes /cygdrive/c/Windows/System32

   The cygpath [-w] command converts between native (C:) and /cygdrive/c/ paths

ii) Extensive use of Unix-style newline char (single 0x0a) instead of DOS 0x0a 0x0d newline pair.

   However, there are the dos2unix and unix2dos commands that convert text files between the two formats.

 

Reply #10 Top

lol oh..  I read the -l as a "dash pipe" instead of "dash el"  Nvm then.

Reply #11 Top

D'oh - curse of the font, they do look similar!;P

FWIW, ending a command with a pipe | would result in a hang as the shell is waiting for another command to read what was piped from the output of the command string.

Not many commands have a '-' option, the only one that springs to mind is the tar (tape archive) utility.

Reply #12 Top

I finally found the issue.  I had

TXT
entityType "PlanetModuleStandard"
minZoomDistanceMult 6.000000
ability:0 ""
ability:1 ""
ability:2 ""
ability:3 ""
ability:4 "AbilityAsteroidM"
... 

when I should have

 

TXT
entityType "PlanetModuleStandard"
minZoomDistanceMult 6.000000
ability:0 ""
ability:1 ""
ability:2 ""
ability:3 ""
ability:4 "AbilityIsAsteroidM"
...