Error Code List Wanted

dev.exe help needed

In dev.exe I'm seeing all sorts of errors pop up that I can skip, but is there a list somewhere of what the errors mean and more detail about what is causing them?  They get saved in a text file for viewing, but is there anything that explains what they mean and their cause?

Like:

c:\gs\gamma\03\CodeSource\GS\Render\EntityMeshRenderer.cpp(74): assert! [!mesh->GetData().HasAnyTextures()]
===========
c:\gs\gamma\03\CodeSource\Engine\Archive\TextFileArchive.cpp(183): assert! [*stringSrc == _T('"')]
===========
c:\gs\gamma\03\CodeSource\Engine\DataStructures\FixedVector.h(155): assert! [m_CurrentSize < MAX_SIZE]
===========
c:\gs\gamma\03\CodeSource\GS\Entity\Interfaces\IAbility.cpp(210): assert! [aiUseTargetCondition == AIUseTargetCondition::Invalid]
===========
c:\gs\gamma\03\CodeSource\GS\Entity\Interfaces\IBuff.cpp(1829): assert! [(instantAction.instantActionTriggerType == InstantActionTriggerType::AlwaysPerform) || (instantAction.instantActionTriggerType == InstantActionTriggerType::OnChance)]
===========
c:\gs\gamma\03\CodeSource\Engine\DataStructures\FixedArray.h(117): assert! [i >= 0]
===========
i > size

That last one is a royal thorn in my side atm.  My GalaxyScenarioDef file is 255Kb, has 437 planetItemType, 13 playerType, and 90 planetItemTemplate.

Are there any hardcodes for the GSDef file that I've run into without knowing it?

Please no "Why do you need so many of X, Y, or Z, what mod's it for... "  I need answers.  If you're Stardock/Ironclad, I have no problem send you a link to the Txt version if seeing it would help.

8,539 views 6 replies
Reply #1 Top

It would be easier to run the regular exe with error output enabled and it will show you which file and which line causes a problem in plain text. The dev exe isn't very good for that. You can toggle the showErrors TRUE in the user.setting.

But, some ideas glancing over these:

1) Looks like a problem with bad texturing. It looks like GetData().HasAnyTextures() would return true/false and it's checking this return. No idea what the function is actually looking at, though.

2) Looks like a missing string somewhere, it's checking if the pointer is pointing to a blank string.

3) Too generic to guess where it is. Comparing 2 variables and it doesn't like the result. But I don't think this is a result of anything of yours, it's looking into an .h (header) file which is supposed to be static and not likely to depend on anything you do.

4) One of your abilities has an invalid AIUseTargetCondition :P

5) You have a bad instantActionTriggerType, looks like it's making sure that it's either AlwaysPerform or OnChance, and yours is neither.

6) Worse than #3, but if I had to guess you messed up a counter somewhere. It looks like you have more objects than the counter specifies. Size would be the counter and i is generally a loop iterator which would be reading all the objects.

Reply #2 Top

I'll try the showError TRUE.

Might be the EMPTY template that's carried over from early SINS.  All it is is ""

 

Reply #3 Top

Star/Clad... is there an error code databank somewhere?

Reply #4 Top

If that's the only error message you're shown from the dev exe, then they are basic runtime failures.. it can only show you what line of actual code borked. Without access to the actual code and a debugger, there's no way to tell which files/lines/variables the code was referencing.

It's like knowing that some comparison failed, but not knowing what it was comparing because you have no context.

This isn't something IC can provide for the dev exe, but it is something you get with showErrors because it shows you the appropriate file, line, and what went wrong :P

Reply #5 Top

http://naesten.dyndns.org:8080/crawl-ref/source/html/fixedarray_8h_source.html

 

This page may shed some light on the operating protocols of the FixedArray.h file.

Apparently we have integers that return 0>= because they aren't properly referenced in the Engine or CodeSource. We are confusing the Sins.exe with modifications it cannot understand due to its limitations.

 

I did discover that giving capital ships more than 8 banks crashes the game (FRONT: 8; BACK: 8; LEFT: 8; RIGHT: 8)

I also discovered that I can push Titan weapon banks up to 16 with no problems. You just have to go into the Weapon listing and make sure that they do greater than 0.00000 damage on each side that got more target banks.

 

I've discovered that a lot of my Runtime errors have to do with Research that is not referenced to include specific effects. This causes crashing, Fixedarray.h(117) errors and Runtime errrors. Even adding files, if the wrong thing is in the wrong research department (e.g. Civilian Ship Armor under RESEARCHSUBJECT_TRUCE_AMONGST_ROGUES.entity to indicate that the Pirates are sharing attack data for Trade and Refinery vessels as part of the Truce, though it makes sense, causes Runtime errors and 0>=i errors). I was able to tinker with some things and in the CRAZY mod, which gives Pirate bases +250% and stacking +8000% Trade income bonuses with base 3 Civilian Structure slots (12 actually), and I tossed a Trade Income Bonus of 10.000 (1000%) in with Armor and Hull point increase on top of that and it worked for the Tech Rebels. FYI I am doing an endgame rebalance that puts many of the weapons of ALL factions over 1k damage and the armors of all the factions over 60 (Tec Loyalist in friendly territory gets over 100 on its Titan... they don't do so well attacking but in defending they are a true turtle faction). I'm trying to do faction-specific buffage before I teach myself how to put new technologies in for individual factions and have them *not* crash the game or become unusable.

 

Testing: RESEARCHSUBJECT_RESEARCHRATEINCREASE.entity

Changes:

Added to all factions (updated Research contents in all Player*.entity files), moved RESEARCHSUBJECT_POPULATIONCAPTERRANTECH0.entity to (1 , 1), still tier 0.

Contents changed:

BaseUpgradeTime 1.000000
PerLevelUpgradeTime 0.010000000000
BaseCost
credits 1.000000
metal 0.000000
crystal 1.000000
PerLevelCostIncrease
credits 1.000000
metal 1.000000
crystal 1.000000
Tier 0
onlyWorksIfTierLabsExist FALSE
MaxNumResearchLevels 20
priority 1.000000
researchBoolModifiers 0
researchFloatModifiers 2
researchModifier
modifierType "ResearchBuildRateAdjustment"
baseValue 1.000000
perLevelValue 1.500000
researchModifier
modifierType "ResearchCostAdjustment"
baseValue 0.000000
perLevelValue -0.100000

 

^^^^ The AI doesn't use that in early game (they sure do later on) and it works VERY well for testing new stuff and balancing endgame DPS ratings. I just wish I had an income modification that didn't make the AI stupidly overpowered.

 

The main reason this helps is that you get so far ahead of the AIs that when they Rush you they hit the rocky crags of a madly overpowered Capital Ship (first one free). With a total of 32 target banks and you doing free instant research to power it up (provided your tree has a minimum of 8 stacks per button for each upgrade that isn't Access), you get the time you need to build that new vessel or save up for whatever.

Reply #6 Top

By the way I am still brand new to this. I think that making games is fun but this is the first time that I have actually done any coding. I'm still in my first month of doing this sort of thing.

 

The link refers to the following in the Fixedarray.h Source file:

116  // ----- Size -----
117  bool empty() const { return data.empty(); }
118  int size() const { return data.size(); }
119  int width() const { return data.width(); }
120  int height() const { return data.height(); }
 
 
I just have no way of knowing, since the Developers refuse to respond with specifics, if this is the same Fixedarray file they used. Due to how the program has been behaving, however, I am convinced that it is exactly the same since most of the FixedArray errors have to do with entries of 0.0000 or something (empty, as in no data) being misreferenced and thus yielding [0 >= i]