earlton / stargate-invasion

Automatically exported from code.google.com/p/stargate-invasion
0 stars 1 forks source link

PlayerOrbitBodyInfo.cpp(170): assert! [squad != 0] #118

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run the mod in the diplomacy developer exe
2. While running the game, you will receive an endless stream of the same 
"assert" - 
c:\projects\Perforce\SinsDiplomacy\main\CodeSource\GS\Player\PlayerOrbitBodyInfo
.cpp(170): assert! [squad != 0]

What version of the product are you using? On what operating system?
SGI Dip 1.21 on 2008R2

ADDITIONAL INFORMATION:

I know that JTaylor has looked into this problem before based on this thread - 
http://forums.sinsofasolarempire.com/402373

For once I write to do more than point out a bug - I think I know the fix.

The number of unique Squads defined for a Frigate must be equal or greater than 
its number of max command points.  Meaning, if you want a Frigate to have 3 
command points, then you need to define at least 3 unique Squads for that 
Frigate.  If you want 4 (eg, Zephyr and other Frigate carriers), then you need 
to define 4 unique Squad types.  Once you get above 4 command points (eg, 
Shipwrecked Frigates Aurora, Hive, & Excal), you are in the free and clear so 
long as there are 4 unique Squads defined for the Frigate.

Idea to prevent the assert:
(1) Create 2 new squad entities: SquadPlaceholder0 & SquadPlaceholder1
(2) Create 1 new research entity: RESEARCHSUBJECT_SQUADPLACEHOLDER
(3a) Make RESEARCHSUBJECT_SQUADPLACEHOLDER a research prerequisite of the 2 
squad entities above
(3b) DO NOT add the research entity to any of the Player% entities, so that no 
player will ever be able to build the placeholder squads
(4) List SquadPlaceholder0 & SquadPlaceholder1 as uniquely defined squads for 
Frigates wherever needed

I tested this idea already on the mod.  In the developer exe at 8x playing 
through over 20 auto updates (about 50-60 mins game time), I did not receive 
the assert once.

Feel free to email me if you need more information.

Original issue reported on code.google.com by Wayne.S....@gmail.com on 19 Jul 2011 at 11:55

GoogleCodeExporter commented 9 years ago

Original comment by jtaylor...@gmail.com on 25 Oct 2011 at 3:37