View Issue Details

IDProjectCategoryView StatusLast Update
0002307FSSCPnebulaspublic2011-09-25 07:49
ReporterAxem Assigned ToThe_E  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.6.12 
Summary0002307: set-object-position in a nebula will make poofs vanish for a bit
DescriptionOriginally reported here: http://www.hard-light.net/forums/index.php?topic=71304.msg1413140#msg1413140

I was able to reproduce it (see attached mission). It looks like the player/camera gets moved past where the poofs get generated and it takes the game a bit to render new ones.

You can work around this by resetting the nebula with mission-set-nebula 0 then mission-set-nebula 1. Still it'd be good not to have to do that.
TagsNo tags attached.

Activities

2010-09-11 14:23

 

nebulatest.fs2 (5,761 bytes)

Axem

2010-09-11 14:24

reporter   ~0012352

Forgot to mention, press 1 in the mission to send the player far away next to a Hecate. The poofs should be gone at first when you are sent there.

CommanderDJ

2010-10-12 10:59

developer   ~0012408

This can also be easily seen in a campaign like Transcend. Any updates on this? It'd be awesome to get it solved.

CommanderDJ

2011-04-29 03:29

developer   ~0012671

Just did a little more comprehensive testing on this using r7151. The issue isn't noticeable over small distances (less than a thousand metres). It is very momentary at distances of about 5000 metres, and at distances of 10000 and 15000 metres it lasts for over a second. Moving your ship immediately after the set-position sexp seems to speed up the poof regeneration.

2011-09-25 06:43

 

mantis_2307.patch (911 bytes)   
Index: code/parse/sexp.cpp
===================================================================
--- code/parse/sexp.cpp	(revision 7798)
+++ code/parse/sexp.cpp	(working copy)
@@ -6546,6 +6546,17 @@
 	// retime all collision checks so they're performed
 	obj_all_collisions_retime();
 
+	//CommanderDJ: if the thing being moved is a player and this is a nebula mission, regenerate the nebula
+	
+	//I also wanted to check if the player has moved further than his inner neb cube radius,
+	//but couldn't figure out a way to access neb2_detail::cube_inner.
+	//if it can be done, just put it in the second half of the comparison below and add the line to the if statement
+
+	//&& (vm_vec_dist(&oswpt.objp->pos, &target_vec) >= (inner cube radius here)
+
+	if((oswpt.objp == Player_obj) && (The_mission.flags & MISSION_FLAG_FULLNEB))
+		neb2_eye_changed();
+
 	switch (oswpt.type)
 	{
 		case OSWPT_TYPE_TEAM:
mantis_2307.patch (911 bytes)   

CommanderDJ

2011-09-25 06:44

developer   ~0012856

Patch uploaded. It adds a check to the set-object-position SEXP, so that if the mission is a nebula mission and the thing being moved is a player, the player's local nebula is regenerated. Additional info in the comments.

The_E

2011-09-25 07:49

administrator   ~0012857

Patch committed to trunk in rev 7801

Issue History

Date Modified Username Field Change
2010-09-11 14:23 Axem New Issue
2010-09-11 14:23 Axem File Added: nebulatest.fs2
2010-09-11 14:24 Axem Note Added: 0012352
2010-10-12 10:59 CommanderDJ Note Added: 0012408
2011-04-29 03:29 CommanderDJ Note Added: 0012671
2011-09-25 06:43 CommanderDJ File Added: mantis_2307.patch
2011-09-25 06:44 CommanderDJ Note Added: 0012856
2011-09-25 07:49 The_E Note Added: 0012857
2011-09-25 07:49 The_E Status new => resolved
2011-09-25 07:49 The_E Resolution open => fixed
2011-09-25 07:49 The_E Assigned To => The_E