View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003399 | The Dark Mod | Design/Coding | public | 08.05.2013 07:11 | 09.05.2013 15:08 |
Reporter | Obsttorte | Assigned To | grayman | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 1.08 | ||||
Target Version | TDM 2.00 | Fixed in Version | TDM 2.00 | ||
Summary | 0003399: Func_portals disable info_locationseperator entities. | ||||
Description | If you place a func_portal inside a visportal, that contains a info_locationseperator entity, too, the latter one will no longer work. This means that the map is not divided into zones at that VP. | ||||
Steps To Reproduce | Take a look at the testmap. Normally, when changin location, a text shows up in the console saying that you changed from one location to another. This don't happen with the func_portal placed. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
In the test map, the location_separator is spawned first, and correctly marks the portal as "BLOCKING", which means it's the boundary of a location. The func_portal is then spawned, and it marks the portal as "NON-BLOCKING", undoing the "BLOCKING" that had been set earlier. This erases the boundary condition. Fix forthcoming. |
|
When a func_portal is spawned after an info_locationseparator, and they’re both on the same portal, the func_portal undoes the location boundary marker on the portal. The ‘state’ on a portal is set up as a collection of bits that indicate whether the portal blocks the view, sound, etc. However, the routines that manipulate these bits don’t do so at the bit level, using bitwise operators. They simply write a complete ‘state’ to the portal, with no consideration for the bits they’re not interested in. Luckily, the boundary bit is used at the start of the mission to establish the extent of locations, and after that’s done, it doesn’t matter if an opening door clears the portal state, wiping out the boundary bit. Func_portals, however, can wipe out the boundary bit at spawn time, destroying the location zones. The solution is to have everyone who plays with these bits use bitwise operators, but for now, I’m restricting the solution to only having the func_portal do so. Changing all programs to use bitwise operations would require extensive testing, and since the boundary bit isn’t used after mission start, we’re probably not improving anything. Rev. 5751: Misc.cpp |
|
Date Modified | Username | Field | Change |
---|---|---|---|
08.05.2013 07:11 | Obsttorte | New Issue | |
08.05.2013 07:11 | Obsttorte | File Added: functest.map | |
09.05.2013 03:52 | grayman | Assigned To | => grayman |
09.05.2013 03:52 | grayman | Status | new => assigned |
09.05.2013 03:55 | grayman | Note Added: 0005377 | |
09.05.2013 15:08 | grayman | Note Added: 0005378 | |
09.05.2013 15:08 | grayman | Status | assigned => resolved |
09.05.2013 15:08 | grayman | Resolution | open => fixed |
09.05.2013 15:08 | grayman | Fixed in Version | => TDM 2.00 |
09.05.2013 15:08 | grayman | Target Version | => TDM 2.00 |