View Issue Details

IDProjectCategoryView StatusLast Update
0001657FSSCPgameplaypublic2008-04-30 12:37
Reporterblowfish Assigned ToBackslash  
PrioritynormalSeveritytweakReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.6.9 
Fixed in Version3.6.10 
Summary0001657: Turrets still fire while ship is exploding
DescriptionOK, let me just explain something. Capital ships explode in two stages, right? The first stage is where they sit there with explosions erupting all over their hull. The second stage is where the hull splits and the two halves move apart, there are lots of fireworks, etc. The problem is that turrets still fire during stage 2. This looks weird after the mesh splits because they appear to be firing from nowhere (looks especially weird with beams). I really think this should be fixed. The easiest way is just to stop all of the turrets firing when stage 2 starts, the more complicated (and not necessarily better) method would be to have the turrets' firepoints follow the halves of the exploding mesh until the explosion engulfs the firepoints, at which time they would stop firing.
TagsNo tags attached.

Activities

Wanderer

2008-04-29 00:01

developer   ~0009264

On SP side you could probably just trigger same effect as 'lock all turrets' sexp does - patch included - which seems to do the trick in most cases.. As for MP.. dunno.. And also it does have a slight chance of altering existing game balance.

2008-04-29 00:01

 

wip_ship_nosplit_turret.patch (829 bytes)   
Index: ship/ship.cpp
===================================================================
--- ship/ship.cpp	(revision 4609)
+++ ship/ship.cpp	(working copy)
@@ -7940,6 +7940,20 @@
 
 		if ( timestamp_elapsed(shipp->really_final_death_time))	{
 
+			// Copied from lock all turrets sexp
+			// Locks all turrets on ship that is about to split.
+			ship_subsys *subsys;
+			subsys = GET_FIRST(&shipp->subsys_list);
+			while ( subsys != END_OF_LIST(&shipp->subsys_list) ) 
+			{
+			// just mark all turrets as locked
+				if (subsys->system_info->type == SUBSYSTEM_TURRET) 
+				{
+					subsys->weapons.flags |= SW_FLAG_TURRET_LOCK;
+                }
+				subsys = GET_NEXT(subsys);
+			}
+
 			//mprintf(( "Ship really dying!!\n" ));
 			// do large_ship_split and explosion
 			if ( shipp->large_ship_blowup_index >= 0 )	{

blowfish

2008-04-29 00:49

reporter   ~0009266

True, but it looks really weird.

Backslash

2008-04-30 12:37

developer   ~0009280

Committed :-)

This is a great idea and patch, you two. A long time ago, _argv[-1] suggested we stop the turrets at stage 1, while the ship goes through the death roll/eruption. While that looked 'better', it affected balance with particularly big ships like the Colossus. This way, it doesn't affect balance by more than a fraction of a second (and really, who would design their mission around such?!), and it gets rid of the silly beam firing out of nowhere effect.

Issue History

Date Modified Username Field Change
2008-04-08 02:55 blowfish New Issue
2008-04-29 00:01 Wanderer Note Added: 0009264
2008-04-29 00:01 Wanderer File Added: wip_ship_nosplit_turret.patch
2008-04-29 00:49 blowfish Note Added: 0009266
2008-04-30 11:32 Backslash Status new => assigned
2008-04-30 11:32 Backslash Assigned To => Backslash
2008-04-30 12:37 Backslash Status assigned => resolved
2008-04-30 12:37 Backslash Fixed in Version => 3.6.10
2008-04-30 12:37 Backslash Resolution open => fixed
2008-04-30 12:37 Backslash Note Added: 0009280