View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002307 | FSSCP | nebulas | public | 2010-09-11 14:23 | 2011-09-25 07:49 |
| Reporter | Axem | Assigned To | The_E | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 3.6.12 | ||||
| Summary | 0002307: set-object-position in a nebula will make poofs vanish for a bit | ||||
| Description | Originally 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. | ||||
| Tags | No tags attached. | ||||
|
2010-09-11 14:23
|
|
|
|
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. |
|
|
This can also be easily seen in a campaign like Transcend. Any updates on this? It'd be awesome to get it solved. |
|
|
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:
|
|
|
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. |
|
|
Patch committed to trunk in rev 7801 |
| 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 |