View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004615 | The Dark Mod | Saving/Loading | public | 08.09.2017 18:21 | 21.02.2021 10:54 |
Reporter | duzenko | Assigned To | duzenko | ||
Priority | normal | Severity | normal | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | SVN | ||||
Target Version | TDM 2.06 | Fixed in Version | TDM 2.06 | ||
Summary | 0004615: Remote camera lost when saving\loading | ||||
Description | The engine supports a so called "remote camera subview" and even though it has not been used for a while Neons has expressed interest in using it in one of his maps. The first problem that I see with it is that it does not sustain the quick/load test. | ||||
Steps To Reproduce | 1. Start the attached map 2. See the remote camera 'kinda' working 3. Quick save 4. Load quick save 5. Camera is dead. | ||||
Tags | No tags attached. | ||||
Attached Files | camera.map (48,770 bytes)
Version 2 // entity 0 { "classname" "worldspawn" "editor_drMapPos1" "145.117 609.786 279.045" "editor_drMapAngle1" "-48 150.8 0" "editor_drMapPos2" "414.798 255.441 -264.933" "editor_drMapAngle2" "2.10002 84.5976 0" "editor_drMapPos3" "-749.97 -1606.21 -470.066" "editor_drMapAngle3" "-3.29998 6.59757 0" "editor_drMapPos4" "1014.05 -953.679 -556.857" "editor_drMapAngle4" "-10.2 355.498 0" "editor_drMapPos5" "987.599 3513.79 -319.877" "editor_drMapAngle5" "-61.1999 172.198 0" "editor_drMapPos6" "-1032.5 -2840 739.5" "editor_drMapAngle6" "-77.0999 175.798 0" "editor_drMapPos7" "952.822 285.005 1366.04" "editor_drMapAngle7" "-74.8 149.373 0" "editor_drMapPos8" "976 424 320" "editor_drMapAngle8" "-3 15.3467 0" "editor_drMapPos9" "409.146 547.464 392.83" "editor_drMapAngle9" "-16.8 284.947 0" "editor_drLastCameraPos" "485.899 -83.0592 10.0908" "editor_drLastCameraAngle" "-14.4 83.4 0" // primitive 0 { brushDef3 { ( 0 0 1 -136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -544 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 1 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 2 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 3 { brushDef3 { ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -544 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -72 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 1 64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 4 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 -72 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/cobblestones/blocks_mixedsize02_multicolour_dirty" 0 0 0 } } // primitive 5 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -16 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 6 { brushDef3 { ( 0 0 1 -354 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 48.3125 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -544 ) ( ( 0.0625 0 15.6875 ) ( 0 0.0625 17.90625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 17.90625 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 224 ) ( ( 0.0625 0 48.3125 ) ( 0 0.0625 17.90625 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 30.59375 ) ( 0 0.0625 17.90625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 346 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 78.6875 ) ) "textures/common/caulk" 0 0 0 } } // primitive 7 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 48.3125 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -552 ) ( ( 0.0625 0 15.6875 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 15.6875 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 30.59375 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 544 ) ( ( 0.0625 0 113.3125 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 8 { brushDef3 { ( 0 1 0 -544 ) ( ( 0.0625 0 15.6875 ) ( 0 0.0625 80.90625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 80.90625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 210 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 15.6875 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 224 ) ( ( 0.0625 0 47.8125 ) ( 0 0.0625 80.90625 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 30.59375 ) ( 0 0.0625 80.90625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 1 -218 ) ( ( 0.0625 0 33.40625 ) ( 0 0.0625 113.3125 ) ) "textures/common/caulk" 0 0 0 } } // primitive 9 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 110.53125 ) ( 0 0.0625 48.5 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 110.53125 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 110.53125 ) ( 0 0.0625 15.5 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 216 ) ( ( 0.0625 0 48.5 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 81.46875 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -224 ) ( ( 0.0625 0 78.5 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 10 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 34 ) ( 0 0.0625 113 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -544 ) ( ( 0.0625 0 15 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 34 ) ( 0 0.0625 15 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 224 ) ( ( 0.0625 0 113 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 168 ) ( ( 0.0625 0 30 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -176 ) ( ( 0.0625 0 34 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 11 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 34 ) ( 0 0.0625 40.5 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -544 ) ( ( 0.0625 0 23.5 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 34 ) ( 0 0.0625 23.5 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 224 ) ( ( 0.0625 0 40.5 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 304 ) ( ( 0.0625 0 30 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -312 ) ( ( 0.0625 0 34 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 12 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 38.90625 ) ( 0 0.0625 48.3125 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -464 ) ( ( 0.0625 0 15.6875 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 38.90625 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 38.90625 ) ( 0 0.0625 15.6875 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 25.09375 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 456 ) ( ( 0.0625 0 113.3125 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 13 { brushDef3 { ( 0 0 1 -346 ) ( ( 0.0625 0 41.40625 ) ( 0 0.0625 48.3125 ) ) "textures/common/caulk" 0 0 0 ( 0 1 0 -424 ) ( ( 0.0625 0 15.6875 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 1 0 0 -304 ) ( ( 0.0625 0 41.40625 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 0 -1 218 ) ( ( 0.0625 0 41.40625 ) ( 0 0.0625 15.6875 ) ) "textures/common/caulk" 0 0 0 ( -1 0 0 176 ) ( ( 0.0625 0 22.59375 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 ( 0 -1 0 416 ) ( ( 0.0625 0 113.3125 ) ( 0 0.0625 81.40625 ) ) "textures/common/caulk" 0 0 0 } } // primitive 14 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -544 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 352 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 15 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -552 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 544 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/cobblestones/blocks_mixedsize02_multicolour_dirty" 0 0 0 } } // primitive 16 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 344 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -352 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 17 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 184 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -344 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 136 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 18 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -544 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 384 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/cobblestones/cobblestones06_greenish_irregular" 0 0 0 ( -1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 19 { brushDef3 { ( 0 0 1 -128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 1 0 192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 1 0 0 -160 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( 0 -1 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 ( -1 0 0 128 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0 } } // primitive 20 { brushDef3 { ( 0 0 1 -16 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -48 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -544 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -32 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 40 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 472 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } } // entity 1 { "classname" "light" "name" "ambient_world" "_color" "0.07 0.07 0.07" "light_center" "0 0 0" "light_radius" "440 528 320" "nodiffuse" "0" "noshadows" "0" "nospecular" "0" "origin" "268 -292 104" "parallel" "0" "texture" "lights/ambientlightnfo" } // entity 2 { "classname" "info_player_start" "name" "info_player_start_1" "angle" "90" "origin" "32 -88 -64" } // entity 3 { "classname" "func_securitycamera" "name" "cam1" "angle" "0" "model" "models/darkmod/laboratory/bunsen_burner.ase" "origin" "-32 104 32" "spotLight" "1" } // entity 4 { "classname" "func_securitycamera" "name" "cam2" "angle" "270" "model" "models/darkmod/laboratory/bunsen_burner.ase" "origin" "96 104 32" } // entity 5 { "classname" "func_static" "name" "func_static_1" "model" "func_static_1" "origin" "32 -20 8" // primitive 0 { brushDef3 { ( 0 0 1 -32 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -32 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -32 ) ( ( 0.0078125 0 255.8125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 1 { brushDef3 { ( 0 1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -32 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -32 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 24 ) ( ( 0.0078125 0 255.8125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 2 { brushDef3 { ( 0 1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -32 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -32 ) ( ( 0.0078125 0 255.8125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 3 { brushDef3 { ( 0 1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -4 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -32 ) ( ( 0.0078125 0 255.8125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 4 { brushDef3 { ( 0 1 0 -4 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 2 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -24 ) ( ( 0.0078125 0 255.8125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0.375 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -24 ) ( ( 0.0078125 0 0.1875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } } // entity 6 { "classname" "func_static" "name" "func_static_2" "cameraTarget" "cam1" "model" "func_static_2" "origin" "32 -20 8" // primitive 0 { patchDef2 { "textures/darkmod/camera" ( 3 3 0 0 0 ) ( ( ( 56 -20 32 0 0 ) ( 56 -20 8 0 0.5 ) ( 56 -20 -16 0 1 ) ) ( ( 32 -20 32 0.5 0 ) ( 32 -20 8 0.5 0.5 ) ( 32 -20 -16 0.5 1 ) ) ( ( 8 -20 32 1 0 ) ( 8 -20 8 1 0.5 ) ( 8 -20 -16 1 1 ) ) ) } } } // entity 7 { "classname" "target_setkeyval" "name" "target_setkeyval_2" "keyval" "cameraTarget;cam1" "origin" "-40 -24 52" "target0" "func_static_2" } // entity 8 { "classname" "target_setkeyval" "name" "target_setkeyval_3" "keyval" "cameraTarget;cam2" "origin" "100 -24 52" "target0" "func_static_2" } // entity 9 { "classname" "atdm:mover_button" "name" "atdm_mover_button_1" "model" "atdm_mover_button_1" "origin" "4 -28 -20" "target0" "target_setkeyval_2" "translate" "0 1 0" // primitive 0 { brushDef3 { ( 0 0 1 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 0.375 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 1 0 -4 ) ( ( 0.015625 0 63.625 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 1 0 0 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 0 -1 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 63.625 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 -1 0 0 ) ( ( 0.015625 0 0.375 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( -1 0 0 -3 ) ( ( 0.015625 0 127.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 } } } // entity 10 { "classname" "atdm:mover_button" "name" "atdm_mover_button_2" "model" "atdm_mover_button_2" "origin" "60 -28 -20" "target0" "target_setkeyval_3" "translate" "0 1 0" // primitive 0 { brushDef3 { ( 0 0 1 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 127.5 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 1 0 -4 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 1 0 0 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 0 -1 -3 ) ( ( 0.015625 0 64.5 ) ( 0 0.015625 64.515625 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( 0 -1 0 0 ) ( ( 0.015625 0 127.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 ( -1 0 0 -3 ) ( ( 0.015625 0 127.5 ) ( 0 0.015625 0 ) ) "textures/darkmod/metal/flat/iron_rough" 0 0 0 } } } // entity 11 { "classname" "light" "name" "light_1" "_color" "0.208 0.208 0.208" "light_center" "0 0 0" "light_radius" "320 320 320" "nodiffuse" "0" "noshadows" "0" "nospecular" "0" "origin" "32 -152 104" "parallel" "0" } // entity 12 { "classname" "atdm:playertools_compass" "name" "CompassEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "185 505.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 13 { "classname" "atdm:playertools_lantern" "name" "LanternEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "197 505.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 14 { "classname" "atdm:playertools_spyglass" "name" "SpyglassEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "207 505.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 15 { "classname" "atdm:playertools_health_potion" "name" "HealthPotionsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "223 505.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 16 { "classname" "atdm:weapon_shortsword" "name" "SwordEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "295 407.5 277.5" "rotation" "0 1 0 -1 0 0 0 0 1" } // entity 17 { "classname" "atdm:weapon_blackjack" "name" "BlackjackEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "246.625 406.75 277.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 18 { "classname" "atdm:playertools_breath_potion" "name" "BreathPotionsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "235 505.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 19 { "classname" "atdm:playertools_flashbomb" "name" "FlashbombsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "187 407.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 20 { "classname" "atdm:ammo_broadhead" "name" "BroadheadsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "184 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 21 { "classname" "atdm:ammo_broadhead" "name" "BroadheadsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "184 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 22 { "classname" "atdm:ammo_broadhead" "name" "BroadheadsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "184 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 23 { "classname" "atdm:ammo_firearrow" "name" "FireArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "200 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 24 { "classname" "atdm:ammo_firearrow" "name" "FireArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "200 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 25 { "classname" "atdm:ammo_firearrow" "name" "FireArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "200 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 26 { "classname" "atdm:ammo_gasarrow" "name" "GasArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "216 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 27 { "classname" "atdm:ammo_gasarrow" "name" "GasArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "216 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 28 { "classname" "atdm:ammo_gasarrow" "name" "GasArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "216 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 29 { "classname" "atdm:ammo_mossarrow" "name" "MossArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "232 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 30 { "classname" "atdm:ammo_mossarrow" "name" "MossArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "232 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 31 { "classname" "atdm:ammo_mossarrow" "name" "MossArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "232 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 32 { "classname" "atdm:ammo_noisemaker" "name" "NoiseArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "248 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 33 { "classname" "atdm:ammo_noisemaker" "name" "NoiseArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "248 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 34 { "classname" "atdm:ammo_noisemaker" "name" "NoiseArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "248 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 35 { "classname" "atdm:ammo_ropearrow" "name" "RopeArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "264 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 36 { "classname" "atdm:ammo_ropearrow" "name" "RopeArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "264 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 37 { "classname" "atdm:ammo_ropearrow" "name" "RopeArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "264 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 38 { "classname" "atdm:ammo_waterarrow" "name" "WaterArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "296 328 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 39 { "classname" "atdm:ammo_waterarrow" "name" "WaterArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "296 280 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 40 { "classname" "atdm:ammo_waterarrow" "name" "WaterArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "296 232 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 41 { "classname" "atdm:weapon_blackjack" "name" "BlackjackHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "246.625 390.75 277.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 42 { "classname" "atdm:weapon_blackjack" "name" "BlackjackExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "246.625 374.75 277.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 43 { "classname" "atdm:weapon_shortsword" "name" "SwordHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "295 391.5 277.5" "rotation" "0 1 0 -1 0 0 0 0 1" } // entity 44 { "classname" "atdm:weapon_shortsword" "name" "SwordExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "295 375.5 277.5" "rotation" "0 1 0 -1 0 0 0 0 1" } // entity 45 { "classname" "atdm:playertools_compass" "name" "CompassHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "185 489.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 46 { "classname" "atdm:playertools_compass" "name" "CompassExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "origin" "185 473.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 47 { "classname" "atdm:playertools_lantern" "name" "LanternHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "197 489.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 48 { "classname" "atdm:playertools_lantern" "name" "LanternExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "origin" "197 473.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 49 { "classname" "atdm:playertools_spyglass" "name" "SpyglassHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "207 489.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 50 { "classname" "atdm:playertools_spyglass" "name" "SpyglassExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "origin" "207 473.5 326.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 51 { "classname" "atdm:playertools_flashbomb" "name" "FlashbombsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "187 391.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 52 { "classname" "atdm:playertools_flashbomb" "name" "FlashbombsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "187 375.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 53 { "classname" "atdm:playertools_health_potion" "name" "HealthPotionsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "223 489.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 54 { "classname" "atdm:playertools_health_potion" "name" "HealthPotionsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "223 473.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 55 { "classname" "atdm:playertools_breath_potion" "name" "BreathPotionsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "235 489.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 56 { "classname" "atdm:playertools_breath_potion" "name" "BreathPotionsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "235 473.5 301.5" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 57 { "classname" "atdm:playertools_lockpick_snake" "name" "LockpickSnakeEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "278 506 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 58 { "classname" "atdm:playertools_lockpick_triangle" "name" "LockpickTriangleEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "294 506 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 59 { "classname" "atdm:playertools_mine" "name" "MinesEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "218 408 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 60 { "classname" "atdm:playertools_holywater" "name" "HolyWatersEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "234 408 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 61 { "classname" "atdm:playertools_flashmine" "name" "FlashminesEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "202 408 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 62 { "classname" "atdm:playertools_lockpick_snake" "name" "LockpickSnakeHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "278 490 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 63 { "classname" "atdm:playertools_lockpick_snake" "name" "LockpickSnakeExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "origin" "278 474 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 64 { "classname" "atdm:playertools_lockpick_triangle" "name" "LockpickTriangleHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_map_start" "1" "origin" "294 490 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 65 { "classname" "atdm:playertools_lockpick_triangle" "name" "LockpickTriangleExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_map_start" "1" "origin" "294 474 298" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" } // entity 66 { "classname" "atdm:playertools_flashmine" "name" "FlashminesHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "202 392 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 67 { "classname" "atdm:playertools_flashmine" "name" "FlashminesExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "202 376 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 68 { "classname" "atdm:playertools_mine" "name" "MinesHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "218 392 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 69 { "classname" "atdm:playertools_mine" "name" "MinesExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "218 376 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 70 { "classname" "atdm:playertools_holywater" "name" "HolyWatersHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_count" "10" "inv_map_start" "1" "origin" "234 392 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 71 { "classname" "atdm:playertools_holywater" "name" "HolyWatersExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_count" "10" "inv_map_start" "1" "origin" "234 376 298" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 72 { "classname" "atdm:ammo_vinearrow" "name" "VineArrowsEasy" "diff_0_nospawn" "0" "diff_1_nospawn" "1" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "280 329 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 73 { "classname" "atdm:ammo_vinearrow" "name" "VineArrowsHard" "diff_0_nospawn" "1" "diff_1_nospawn" "0" "diff_2_nospawn" "1" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "280 281 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 74 { "classname" "atdm:ammo_vinearrow" "name" "VineArrowsExpert" "diff_0_nospawn" "1" "diff_1_nospawn" "1" "diff_2_nospawn" "0" "inv_ammo_amount" "30" "inv_map_start" "1" "inv_no_pickup_message" "1" "origin" "280 233 258" "rotation" "1 0 0 0 0 1 0 -1 0" } // entity 75 { "classname" "func_securitycamera" "name" "cam3" "angle" "90" "cameraTarget" "Cam3View" "model" "models/darkmod/laboratory/bunsen_burner.ase" "origin" "448 -296 32" "rotate" "0" "spotLight" "0" } // entity 76 { "classname" "func_static" "name" "func_static_3" "model" "models/darkmod/furniture/tables/dining_table_small01.lwo" "origin" "504 0 -46.509" "rotation" "1 0 0 0 1 0 0 0 1" } // entity 77 { "classname" "atdm:moveable_loot_religious_symbol" "name" "atdm_moveable_loot_religious_symbol_1" "origin" "504 -8 -23.8255" "rotation" "0 -1 0 1 0 0 0 0 1" } // entity 78 { "classname" "func_static" "name" "func_static_5" "model" "func_static_5" "origin" "124 -224 8" // primitive 0 { brushDef3 { ( 0 0 1 -20 ) ( ( 0 0.0078125 255.0625 ) ( -0.0078125 0 254.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -4 ) ( ( 0.0078125 0 1.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -20 ) ( ( 0.0078125 0 255.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -4 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -20 ) ( ( 0.0078125 0 0.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 12 ) ( ( 0 -0.0078125 255.0625 ) ( 0.0078125 0 1.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 1 { brushDef3 { ( 1 0 0 -4 ) ( ( 0.0078125 0 1.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -20 ) ( ( 0.0078125 0 255.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -20 ) ( ( 0 -0.0078125 255.0625 ) ( 0.0078125 0 1.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -4 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 0.0078125 255.0625 ) ( -0.0078125 0 254.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 12 ) ( ( 0.0078125 0 0.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 2 { brushDef3 { ( 1 0 0 -4 ) ( ( 0.0078125 0 1.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -20 ) ( ( 0 -0.0078125 255.0625 ) ( 0.0078125 0 1.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -4 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -20 ) ( ( 0.0078125 0 0.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -12 ) ( ( 0.0078125 0 255.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 12 ) ( ( 0 0.0078125 255.0625 ) ( -0.0078125 0 254.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 3 { brushDef3 { ( 1 0 0 -4 ) ( ( 0.0078125 0 1.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -4 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -20 ) ( ( 0.0078125 0 0.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 0.0078125 255.0625 ) ( -0.0078125 0 254.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -12 ) ( ( 0 -0.0078125 255.0625 ) ( 0.0078125 0 1.5 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 12 ) ( ( 0.0078125 0 255.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 4 { brushDef3 { ( 1 0 0 -4 ) ( ( 0.0078125 0 1.5625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 2 ) ( ( 0.0078125 0 254.4375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -12 ) ( ( 0.0078125 0 0.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 0.0078125 255.0625 ) ( -0.0078125 0 254.4375 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -12 ) ( ( 0 -0.0078125 255.0625 ) ( 0.0078125 0 1.875 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -12 ) ( ( 0.0078125 0 255.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } } // entity 79 { "classname" "light" "name" "light_2" "_color" "0.208 0.208 0.208" "light_center" "0 0 0" "light_radius" "320 320 320" "nodiffuse" "0" "noshadows" "0" "nospecular" "0" "origin" "448 -72 104" "parallel" "0" } // entity 80 { "classname" "func_static" "name" "func_static_4" "cameraTarget" "Cam3View" "model" "func_static_4" "origin" "124 -224 8" // primitive 0 { patchDef2 { "textures/darkmod/camera" ( 3 3 0 0 0 ) ( ( ( 124 -236 20 0 0 ) ( 124 -236 8 0 0.5 ) ( 124 -236 -3.999999999999999 0 1 ) ) ( ( 124 -224 20 0.5 0 ) ( 124 -224 8 0.5 0.5 ) ( 124 -224 -3.999999999999999 0.5 1 ) ) ( ( 124 -212 20 1 0 ) ( 124 -212 8 1 0.5 ) ( 124 -212 -3.999999999999999 1 1 ) ) ) } } } // entity 81 { "classname" "target_null" "name" "Cam3View" "angle" "90" "origin" "504 -52 -16" } // entity 82 { "classname" "func_securitycamera" "name" "cam4" "angle" "45" "model" "models/darkmod/laboratory/bunsen_burner.ase" "origin" "376 -136 32" "rotate" "0" "rotation" "0.707107 0.707107 0 -0.707107 0.707107 0 0 0 1" "spotLight" "0" } // entity 83 { "classname" "func_static" "name" "func_static_6" "model" "func_static_6" "origin" "164 -224 8" // primitive 0 { brushDef3 { ( 0 0 1 -20 ) ( ( 0 -0.0078125 1.3125 ) ( 0.0078125 0 2 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( -1 0 0 -4 ) ( ( 0.0078125 0 254 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -19.99999999999991 ) ( ( 0.0078125 0 1.3125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -4 ) ( ( 0.0078125 0 2 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -20.00000000000009 ) ( ( 0.0078125 0 254.6875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 12 ) ( ( 0 0.0078125 1.3125 ) ( -0.0078125 0 254 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 1 { brushDef3 { ( -1 0 0 -4 ) ( ( 0.0078125 0 254 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -19.99999999999991 ) ( ( 0.0078125 0 1.3125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -20 ) ( ( 0 0.0078125 1.3125 ) ( -0.0078125 0 254 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -4 ) ( ( 0.0078125 0 2 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 -0.0078125 1.3125 ) ( 0.0078125 0 2 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 11.99999999999991 ) ( ( 0.0078125 0 254.6875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 2 { brushDef3 { ( -1 0 0 -4 ) ( ( 0.0078125 0 254 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -20 ) ( ( 0 0.0078125 1.3125 ) ( -0.0078125 0 254 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -4 ) ( ( 0.0078125 0 2 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -20.00000000000009 ) ( ( 0.0078125 0 254.6875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -11.99999999999991 ) ( ( 0.0078125 0 1.3125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 12 ) ( ( 0 -0.0078125 1.3125 ) ( 0.0078125 0 2 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 3 { brushDef3 { ( -1 0 0 -4 ) ( ( 0.0078125 0 254 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 -4 ) ( ( 0.0078125 0 2 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -20.00000000000009 ) ( ( 0.0078125 0 254.6875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 -0.0078125 1.3125 ) ( 0.0078125 0 2 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -12 ) ( ( 0 0.0078125 1.3125 ) ( -0.0078125 0 254 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 12.00000000000009 ) ( ( 0.0078125 0 1.3125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } // primitive 4 { brushDef3 { ( -1 0 0 -4 ) ( ( 0.0078125 0 254.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 1 0 0 2 ) ( ( 0.0078125 0 1.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 -1 0 -12.00000000000009 ) ( ( 0.0078125 0 254.6875 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 1 -12 ) ( ( 0 -0.0078125 1.3125 ) ( 0.0078125 0 1.9375 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 0 -1 -12 ) ( ( 0 0.0078125 1.3125 ) ( -0.0078125 0 254.375 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 ( 0 1 0 -11.99999999999991 ) ( ( 0.0078125 0 1.3125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/metal/flat/copper_dirty_ns" 0 0 0 } } } // entity 84 { "classname" "func_static" "name" "func_static_7" "cameraTarget" "cam4" "model" "func_static_7" "origin" "164 -224 8" // primitive 0 { patchDef2 { "textures/darkmod/camera" ( 3 3 0 0 0 ) ( ( ( 164 -212.0000000000001 20 0 0 ) ( 164 -212.0000000000001 8 0 0.5 ) ( 164 -212.0000000000001 -3.999999999999999 0 1 ) ) ( ( 164 -224.0000000000001 20 0.5 0 ) ( 164 -224.0000000000001 8 0.5 0.5 ) ( 164 -224.0000000000001 -3.999999999999999 0.5 1 ) ) ( ( 164 -236.0000000000001 20 1 0 ) ( 164 -236.0000000000001 8 1 0.5 ) ( 164 -236.0000000000001 -3.999999999999999 1 1 ) ) ) } } } // entity 85 { "classname" "func_static" "name" "sign_text9" "gui" "guis/readables/sign_text_decals/sign_text_mac_humaine.gui" "gui_parm1" "Treasure" "model" "sign_text9" "noclipmodel" "1" "origin" "491.64 39.5 -7.5" // primitive 0 { patchDef3 { "textures/darkmod/decals/signs/decal_gui" ( 3 3 1 1 0 0 0 ) ( ( ( 473.5744482421881 39.57725585937487 0 0 0 ) ( 503.339154124541 39.57725585937487 0 0.5 3.06161713146292e-17 ) ( 565.5744482421881 39.57725585937487 0 1 6.123234262925839e-17 ) ) ( ( 473.5744482421881 39.57725585937487 -12.71739130434783 -3.06161713146292e-17 0.5 ) ( 503.339154124541 39.57725585937487 -12.71739130434783 0.5 0.5 ) ( 565.5744482421881 39.57725585937487 -12.71739130434783 1 0.5 ) ) ( ( 473.5744482421881 39.57725585937487 -39 -6.123234262925839e-17 1 ) ( 503.339154124541 39.57725585937487 -39 0.5 1 ) ( 565.5744482421881 39.57725585937487 -39 1 1 ) ) ) } } } | ||||
related to | 0005528 | resolved | Dragofer | Improvements to security cameras |
parent of | 0004939 | confirmed | duzenko | Wrong mirror reflection on model - bc_teatray |
related to | 0004296 | closed | duzenko | Glitch with remote render |
related to | 0004632 | closed | duzenko | Mirror is black: no reflection (Inn Business) |
related to | 0004667 | resolved | Mirrors are too bright | |
related to | 0005028 | closed | stgatilov | Crash on loading game in March of Rahena (EV_UpdateCameraTarget) |
Not all the children of this issue are yet resolved or closed. |
I was able to go as far as idEntity::Event_UpdateCameraTarget It seems to be called from the script subsystem (?) which I have no knowledge about. |
|
When loading the quick save idSecurityCamera::Restore is called, but idSecurityCamera::Spawn is not. Further debugging is blocked by missing stacktrace. |
|
Where's the attached map? | |
https://drive.google.com/file/d/0B-fuuLxkbWRZSnEwVmpfa0hjams/view?usp=sharing | |
The cameras are working after the loadgame. I can tell because they emit a beep every now and then (missing sound). The problem looks like it's in the func_static displaying the view. It needs to be kick-started. |
|
Camera view from the func_static is now kick-started after reloading. Working on the 4 missing camera sounds. Also, the camera doesn't stop moving when it spots the player. (I don't think it's spotting me and I have to walk through it. Once it spots me, the rest of what it's supposed to do looks okay.) |
|
Grabbed D3 security camera sounds to make sure the sound code worked. It does. Need to replace the sounds. Fixed a math statement that was bass-ackwards. Turned spotlight on and it doesn't look right. Need to find out what it's _supposed_ to look like. |
|
Not in svn yet? The way Neon wants it to work is static immovable camera, no need to react on anything. |
|
Not done yet. I'll look at the spawnargs to see if setting them a certain way gives Neon what he wants. If not, I'll add a spawnarg that tells the camera to not move and to not react to the player. Since the sounds are related to moving and reacting, the camera would emit no sounds, either. |
|
Needed to kickstart the remote camera after loading a savegame. Other changes: - Added “seePlayer” spawnarg, which can be turned off so the camera doesn’t care about seeing the player - Camera wasn't seeing the player when it should. - Added “rotate” spawnarg, which can be turned off for a stationary camera - Fixed a line of timing code having to do with the sweep time - Added the “camera gui” texture from Obs’ test pk4 - Added the 4 camera sounds. Used placeholder Doom3 sounds, and will replace them ASAP. - Kill spotlight when the camera is destroyed. TODO: - When the camera is killed, it screws up the display on the screen.The screen should just go black. - Replace Doom3 sounds. - Figure out why the display screen is flipped horizontally, and correct that. - When there are multiple cameras and screens, moving away from one screen can cause that screen to start displaying an image from a different, closer, camera. - Not sure I like the spotlight attached to the camera when it's in use. Rev. 7154: Entity.cpp SecurityCamera.cpp SecurityCamera.h Rev. 14933: func.def tdm_security_camera.mtr tdm_sfx_machinery.sndshd security_camera_activate.ogg security_camera_end.ogg security_camera_sight.ogg security_camera_moving.ogg |
|
Attached camera.map, which tests the camera changes. | |
Updated camera.map to include a block of text, to help with the horizontal flip problem. If you look at the two screens on the column to the player's right, both show the text flipped horizontally. It's easier to see the flip there than it is on the screen on the column straight ahead near the two scanning cameras. |
|
Copy of the framebuffer in the _scratch image is not flipped. If put this line in glprogs\oldStage.fs gl_FragColor.x = gl_TexCoord[0].x; Then red fills the remote camera from left to right instead of right to left as supposed to. How can we check the texture coordinates for this surface in the .map file? |
|
Multiple cameras in single frame. Try this modifier in the texture stage params: map cameraX where X is a unique number |
|
- checking texture coordinates: the display screens are set so that the texture fills the screen. Does that help? - I don't understand the "map cameraX" line. The texture is to be used on all screens, with whatever cameraTarget the patch it's used on is set to. |
|
'The way Neon wants it to work is static immovable camera, no need to react on anything.' -- In that case, I think a func_cameraview/idCameraView (if necessary with a func_static model) can do that. (There's also a func_camera_anim/idCameraAnim.) However, I for one am happy to see func_securitycamera being worked on. If the aim is to get a fully usable security camera then http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page-12#entry352597 has a note on bugs that may be useful. |
|
I attached dragofer's test map with his camera model. He made this 3 years ago. Note, again, that the display screen is flipped horizontally. The gui material he's using on the screen is identical to the one I committed to SVN. |
|
Got it working in svn commit 7165. Needs a separate (unique) map (texture) for each mirror and camera like this textures/darkmod/camera2 { ... { ... map "table" } } |
|
Please note that the following modifier has no effect now mirrorRenderMap 512 256 The mirror texture is resized automatically to fit the rect it takes on the screen. |
|
What does map "table" do? Is it named that because it's pointing at a table? |
|
No that's just a unique name so that rendered images from different views don't conflict. It can be any name, I used "table" to link it to the camera looking at the table. |
|
Are there any possible performance implications from the mirrorRenderMap auto-resize? I'm thinking of Arcturus's grass test map, where there's a big lake that blends in a fairly low-res reflective surface (mirrorRenderMap 128 128) and relies on distortion, etc. to keep it looking good. Does the auto-resize also apply to remoteRenderMap? |
|
remoteRenderMap is fixed size, assumed to be the camera "display resolution". mirrorRenderMap performance needs independent testing. It could theoretically be a problem if texture is resized every frame. |
|
Mirrors in "Caduceus of St Alban's" are all black in the latest SVN... | |
The one mirror I found in a bathroom uses this material: textures/washroom/mirror { discrete //translucent //twosided noshadows qer_editorimage textures/glass/mirror { blend gl_dst_color,gl_zero map textures/glass/mirror } solid mirror } |
|
Where is bathroom in "Caduceus of St Alban's"? The only kind of bathroom that I see in on the ground floor. http://i.piccy.info/i9/eb06d4332f08243eabde10dd2f7f930d/1506252007/670635/1182320/Bezymiannyi.jpg |
|
Strangely, I couldn't find any online images of them but I know there are at least two mirrors in rooms on this floor of the building: http://www.moddb.com/mods/the-dark-mod/images/the-caduceus-of-saint-alban2 |
|
I attached two savegames from the rooms where the mirrors are located. Saved with the latest SVN build. Extract into the fms/caduceus folder. |
|
textures/washroom/mirror fixed on the material level | |
Both mirrors still black. | |
Sorry. Try now (src svn) | |
Yay! Brilliant! Working again! | |
Skybox is broken in Caduceus with the latest revision 7174 | |
Fixed in assets svn 14964 |
|
Fixed skybox in water reflection | |
The Grass Demo map crashes on the latest build. Trying to get physics bounds for audio. |
|
Still crashing on the latest revision | |
Transferring to duzenko, since we're now out of the realm of the remote camera. | |
2.09 beta: Rev 16049 textures/washroom/mirror now has grime again |
|
The HOM check: if ( tr.viewDef->superView && tr.viewDef->superView->isSubview ) // 0004615 HOM effect - only draw mirrors from player's view and top-level subviews causes the skybox to render to reflections inside buildings. We either need to do a line-of-sight check to the skybox or revert this. Thoughts? |
|
Date Modified | Username | Field | Change |
---|---|---|---|
08.09.2017 18:21 | duzenko | New Issue | |
08.09.2017 18:21 | duzenko | Note Added: 0009183 | |
08.09.2017 18:27 | duzenko | Note Added: 0009184 | |
08.09.2017 18:27 | duzenko | Note Edited: 0009184 | |
17.09.2017 15:33 | grayman | Note Added: 0009270 | |
17.09.2017 18:23 | duzenko | Note Added: 0009273 | |
17.09.2017 20:25 | grayman | Note Added: 0009276 | |
17.09.2017 20:25 | grayman | Assigned To | => grayman |
17.09.2017 20:25 | grayman | Status | new => assigned |
17.09.2017 20:25 | grayman | Note Edited: 0009276 | |
17.09.2017 21:35 | grayman | Note Added: 0009280 | |
18.09.2017 02:02 | grayman | Note Added: 0009285 | |
18.09.2017 09:22 | duzenko | Note Added: 0009286 | |
18.09.2017 09:24 | duzenko | Note Edited: 0009286 | |
18.09.2017 12:45 | grayman | Note Added: 0009287 | |
19.09.2017 14:09 | grayman | Note Added: 0009298 | |
19.09.2017 14:12 | grayman | File Added: camera.map | |
19.09.2017 14:13 | grayman | Note Edited: 0009298 | |
19.09.2017 14:14 | grayman | Note Added: 0009299 | |
19.09.2017 20:58 | grayman | File Deleted: camera.map | |
19.09.2017 20:58 | grayman | File Added: camera.map | |
19.09.2017 21:00 | grayman | Note Added: 0009306 | |
19.09.2017 21:01 | grayman | Note Edited: 0009306 | |
19.09.2017 21:01 | grayman | Note Edited: 0009306 | |
20.09.2017 12:15 | duzenko | Note Added: 0009311 | |
20.09.2017 12:17 | duzenko | Note Added: 0009312 | |
20.09.2017 12:25 | grayman | Note Added: 0009313 | |
20.09.2017 14:59 | VanishedOne | Note Added: 0009314 | |
20.09.2017 15:24 | grayman | File Added: cameramodel.pk4 | |
20.09.2017 15:26 | grayman | Note Added: 0009315 | |
23.09.2017 11:56 | duzenko | Note Added: 0009328 | |
23.09.2017 11:58 | duzenko | Note Added: 0009329 | |
23.09.2017 12:14 | grayman | Note Added: 0009330 | |
23.09.2017 13:47 | duzenko | Note Added: 0009333 | |
23.09.2017 15:11 | VanishedOne | Note Added: 0009334 | |
23.09.2017 17:37 | duzenko | Note Added: 0009335 | |
24.09.2017 00:30 | nbohr1more | Note Added: 0009336 | |
24.09.2017 02:54 | grayman | Note Added: 0009337 | |
24.09.2017 11:20 | duzenko | Note Added: 0009338 | |
24.09.2017 14:08 | nbohr1more | Note Added: 0009339 | |
24.09.2017 15:03 | grayman | File Added: mirrors.zip | |
24.09.2017 15:05 | grayman | Note Added: 0009343 | |
24.09.2017 15:20 | duzenko | Note Added: 0009344 | |
24.09.2017 15:25 | grayman | Note Added: 0009345 | |
24.09.2017 18:23 | duzenko | Note Added: 0009347 | |
24.09.2017 18:32 | grayman | Note Added: 0009348 | |
27.09.2017 01:48 | nbohr1more | Note Added: 0009351 | |
27.09.2017 08:11 | duzenko | Note Added: 0009352 | |
27.09.2017 08:11 | duzenko | Note Edited: 0009352 | |
27.09.2017 11:13 | duzenko | Note Added: 0009353 | |
28.09.2017 00:40 | nbohr1more | Note Added: 0009355 | |
28.09.2017 11:39 | nbohr1more | Note Added: 0009361 | |
09.10.2017 21:42 | nbohr1more | Relationship added | related to 0004296 |
13.10.2017 23:56 | nbohr1more | Relationship added | related to 0004632 |
04.11.2017 13:40 | grayman | Note Added: 0009542 | |
04.11.2017 13:41 | grayman | Assigned To | grayman => duzenko |
14.11.2017 19:40 | VanishedOne | Relationship added | related to 0004667 |
02.12.2017 12:43 | duzenko | Status | assigned => resolved |
02.12.2017 12:43 | duzenko | Fixed in Version | => TDM 2.06 |
02.12.2017 12:43 | duzenko | Resolution | open => fixed |
21.04.2019 16:42 | stgatilov | Relationship added | related to 0005028 |
27.12.2020 12:57 | nbohr1more | Note Added: 0013296 | |
05.02.2021 16:23 | nbohr1more | Note Added: 0013652 | |
05.02.2021 16:51 | nbohr1more | Relationship added | parent of 0004939 |
21.02.2021 10:54 | Dragofer | Relationship added | related to 0005528 |