View Issue Details

IDProjectCategoryView StatusLast Update
0005109The Dark ModCodingpublic07.01.2020 20:11
Reportergrayman Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.08 
Target VersionTDM 2.08Fixed in VersionTDM 2.08 
Summary0005109: Problems with double sliding doors.
DescriptionJackFarmer discovered a problem where double sliding doors don't recognize that they were paired by a common visportal.

Code inspection shows that to form a pair, each door looks for a neighboring door based on each door's clipmodel: do they intersect, indicating nearness? Do they share the same portal?

The problem is that a sliding door's clipmodel (created by dmap) doesn't represent the size of the door. It's a much smaller box centered on the door's origin. When the neighboring door origins aren't close to one another, no intersection is found, and no double-door pairing is made. Dmap should probably be changed to use the size of the door as its clipmodel.

The workaround for sliding doors is to move the door origins nearer to each other so an intersection is noticed. This is done in the map.

Rotating double doors should be investigated to see why they work properly.
Steps To ReproduceUse the attached map.
Additional InformationThe attached map has 3 problems that need fixing:

1. Why does dmap create a clipmodel for a sliding door that's much smaller than the door?

2. Why does only one of the double doors open?

3. Why can't the AI find the place where he's supposed to stand to use the far switch? (He was successful with the near switch.)
TagsNo tags attached.
Attached Files
gm1.map (17,187 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_dr_stim_1000" "RotStop"
"editor_drLastCameraPos" "468.805 -195.986 143.816"
"editor_drLastCameraAngle" "-15.9 117.9 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -712 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -768 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 -520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -768 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/plaster/white_plaster01" 0 0 0
( 0 1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/plaster/white_plaster01" 0 0 0
( 1 0 0 -792 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/plaster/white_plaster01" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/plaster/white_plaster01" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/plaster/white_plaster01" 0 0 0
( -1 0 0 768 ) ( ( 0.0078125 0 -8 ) ( 0 0.0078125 -6 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -768 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -768 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 -520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 -256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 -264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 1 0 0 ) ( ( 0.00390625 0 510.78125 ) ( 0 0.00390625 128.375 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( -1 0 0 264 ) ( ( 0.0078125 0 2 ) ( 0 0.006944444496184587 2.444444417953491 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 1 0 0 -296 ) ( ( 0.0078125 0 14 ) ( 0 0.006944444496184587 2.444444417953491 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 0 1 -176 ) ( ( 0.00390625 0 3.25 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 -1 0 -512 ) ( ( 0.00390625 0 1.28125 ) ( 0 0.00390625 128.375 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 0 -1 32 ) ( ( 0.00390625 0 4 ) ( 0 0.00390625 125.90625 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
}
}
// primitive 7
{
brushDef3
{
( 0 1 0 -512 ) ( ( 0.00390625 0 510.78125 ) ( 0 0.00390625 256.25 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( -1 0 0 264 ) ( ( 0.0078125 0 2 ) ( 0 0.006944444496184587 2.444444417953491 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 1 0 0 -296 ) ( ( 0.0078125 0 14 ) ( 0 0.006944444496184587 2.444444417953491 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 0 1 -176 ) ( ( 0.00390625 0 130.25 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 -1 0 144 ) ( ( 0.00390625 0 1.21875 ) ( 0 0.00390625 128.375 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( 0 0 -1 32 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 125.90625 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
}
}
// primitive 8
{
brushDef3
{
( 0 0 1 -32 ) ( ( 0.00390625 0 248.875 ) ( 0 0.003720238571986556 3.005952835083008 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
( 0 1 0 -520 ) ( ( 0.001953125 0 255.3125 ) ( 0 0.001953125 0.1875 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
( 1 0 0 -784 ) ( ( 0.001953125 0 1.296875 ) ( 0 0.001953125 0.1875 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
( 0 0 -1 0 ) ( ( 0.00390625 0 3 ) ( 0 0.003720238571986556 126.8392868041992 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
( 0 -1 0 -512 ) ( ( -0.001953125 3.68642061321367e-10 255.46875 ) ( -2.949136768126692e-10 -0.002441406017169356 127.765625 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
( -1 0 0 -126 ) ( ( 0.00390625 0 252.91796875 ) ( 0 0.003720238571986556 0.357147216796875 ) ) "textures/darkmod/stone/flat/concrete_mildew_ns" 0 0 0
}
}
// primitive 9
{
brushDef3
{
( 0 0 1 -176 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 1 0 -128 ) ( ( 0.00390625 0 254.78125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 1 0 0 -296 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 0 -1 32 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 254.78125 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 -1 0 112 ) ( ( 0.00390625 0 1.21875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -1 0 0 256 ) ( ( 0.00390625 0 253 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -0.7071067690849304 -0.7071067690849304 0 265.8721618652344 ) ( ( 0.00390625 0 255.177978515625 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0.7071067690849304 -0.7071067690849304 0 -124.450798034668 ) ( ( 0.00390625 0 3.420607089996338 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
}
}
// primitive 10
{
brushDef3
{
( 0 0 1 -176 ) ( ( 0.00390625 0 3.4375 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 1 0 -16 ) ( ( 0.00390625 0 254.78125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 1 0 0 -296 ) ( ( 0.00390625 0 3.4375 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 0 -1 32 ) ( ( 0.00390625 0 3.4375 ) ( 0 0.00390625 254.78125 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 -1 0 0 ) ( ( 0.00390625 0 1.21875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -1 0 0 256 ) ( ( 0.00390625 0 252.5625 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -0.7071067690849304 0.7071067690849304 0 175.3624877929688 ) ( ( 0.00390625 0 253.4543914794922 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0.7071067690849304 0.7071067690849304 0 -214.9604644775391 ) ( ( 0.00390625 0 4.26424503326416 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
}
}
// primitive 11
{
brushDef3
{
( 0 0 1 -176 ) ( ( 0.00390625 0 2.25 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 1 0 -112 ) ( ( 0.00390625 0 254.03125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 1 0 0 -288 ) ( ( 0.00390625 0 2.25 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 0 -1 160 ) ( ( 0.00390625 0 2.25 ) ( 0 0.00390625 254.75 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 -1 0 16 ) ( ( 0.00390625 0 0.46875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -1 0 0 264 ) ( ( 0.00390625 0 251.9609375 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0.7071067690849304 0 -0.7071067690849304 -87.68124389648438 ) ( ( 0.00390625 0 3.3828125 ) ( 0 0.00390625 255.8895263671875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -0.7071067690849304 0 -0.7071067690849304 302.6416931152344 ) ( ( 0.00390625 0 253.6484375 ) ( 0 0.00390625 1.61308741569519 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
}
}
// primitive 12
{
brushDef3
{
( 0 0 1 -712 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.875 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 -512 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -296 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 176 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 -512 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( -1 0 0 256 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 13
{
brushDef3
{
( 0 0 1 -704 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.5 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 1 0 -144 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 1 0 0 -784 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 0 -1 16 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.875 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
( 0 -1 0 128 ) ( ( 0.0078125 0 14 ) ( 0 0.006944444496184587 2.444444417953491 ) ) "textures/darkmod/stone/brick/bricks_dark" 0 0 0
( -1 0 0 264 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/flat/stone_floor" 0 0 0
}
}
// primitive 14
{
brushDef3
{
( 0 0 1 -160 ) ( ( 0.0078125 0 127.609375 ) ( 0 0.0078125 0 ) ) "textures/common/nodraw" 0 0 0
( 0 1 0 -112 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/nodraw" 0 0 0
( 1 0 0 -276 ) ( ( 0.0078125 0 127.609375 ) ( 0 0.0078125 0 ) ) "textures/editor/visportal" 0 0 0
( 0 0 -1 32 ) ( ( 0.0078125 0 127.609375 ) ( 0 0.0078125 0 ) ) "textures/common/nodraw" 0 0 0
( 0 -1 0 16 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/common/nodraw" 0 0 0
( -1 0 0 275 ) ( ( 0.0078125 0 0.390625 ) ( 0 0.0078125 0 ) ) "textures/common/nodraw" 0 0 0
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "180.000000"
"origin" "541 -50 112"
}
// entity 2
{
"classname" "light"
"name" "light_1"
"light_center" "0 0 0"
"light_radius" "320 320 320"
"origin" "589 -50 190"
}
// entity 3
{
"classname" "light"
"name" "light_2"
"light_center" "0 0 0"
"light_radius" "320 320 320"
"origin" "587 -294 190"
}
// entity 4
{
"classname" "atdm:ai_inventor_scientist"
"name" "atdm_ai_inventor_scientist_1"
"def_head" "atdm:ai_head01_commoner_old"
"origin" "420 64 32.014"
"rotation" "1 0 0 0 1 0 0 0 1"
"target0" "path_corner_23"
"team" "0"
}
// entity 5
{
"classname" "atdm:mover_door_sliding"
"name" "NorthDoor"
"frobable" "0"
"model" "NorthDoor"
"origin" "276 66 96"
"snd_close" "nosound"
"snd_move" "tdm_heavy_stone_scratching01_loop"
"snd_open" "nosound"
"target0" "func_static_33"
"translate" "0 44 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -64 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 1 0 -46 ) ( ( 0.00390625 0 254.78125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 1 0 0 -4 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 0 -1 -64 ) ( ( 0.00390625 0 3 ) ( 0 0.00390625 254.78125 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 -1 0 -2 ) ( ( 0.00390625 0 1.21875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -1 0 0 -4 ) ( ( 0.00390625 0 253 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0.7071068040005102 -0.7071068040005102 0 -2.828154411601275 ) ( ( 0.00390625 0 3.420607089996338 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -0.7071068040005102 -0.7071068040005102 0 -2.826805924623898 ) ( ( 0.00390625 0 255.177978515625 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
}
}
}
// entity 6
{
"classname" "atdm:mover_door_sliding"
"name" "SouthDoor"
"frobable" "0"
"model" "SouthDoor"
"origin" "276 62 96"
"snd_close" "nosound"
"snd_move" "tdm_heavy_stone_scratching01_loop"
"snd_open" "nosound"
"translate" "0 -44 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -64 ) ( ( 0.00390625 0 3.1875 ) ( 0 0.00390625 1.21875 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 1 0 -2 ) ( ( 0.00390625 0 254.78125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 1 0 0 -4 ) ( ( 0.00390625 0 3.1875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 0 -1 -64 ) ( ( 0.00390625 0 3.1875 ) ( 0 0.00390625 254.78125 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0 -1 0 -46 ) ( ( 0.00390625 0 1.21875 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -1 0 0 -4 ) ( ( 0.00390625 0 252.8125 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( -0.7071068040005102 0.7071068040005102 0 -2.828672028610896 ) ( ( 0.00390625 0 253.4543914794922 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
( 0.7071068040005102 0.7071068040005102 0 -2.830020515588274 ) ( ( 0.00390625 0 4.956354141235352 ) ( 0 0.00390625 1.0625 ) ) "textures/darkmod/metal/detailed/gen_iron01_panel_dark" 0 0 0
}
}
}
// entity 7
{
"classname" "path_corner"
"name" "path_corner_5"
"frobable" "0"
"origin" "145.25 193.75 33.25"
}
// entity 8
{
"classname" "func_static"
"name" "lever_panel9"
"model" "models/darkmod/mechanical/switches/switch_rotate_backplate.ase"
"origin" "366.859 127.631 75.5"
"rotation" "1 0 0 0 1 0 0 0 1"
"skin" "-"
}
// entity 9
{
"classname" "atdm:mover_lever"
"name" "machine_lever9"
"model" "models/darkmod/mechanical/switches/switch_rotate_lever.ase"
"origin" "366.859 127.631 80.5"
"rotate" "0 0 45"
"rotation" "1 0 0 0 1 0 0 0 1"
"target0" "NorthDoor"
"target1" "SouthDoor"
}
// entity 10
{
"classname" "func_static"
"name" "lever_panel10"
"model" "models/darkmod/mechanical/switches/switch_rotate_backplate.ase"
"origin" "263.631 165.141 75.5"
"rotation" "0 -1 0 1 0 0 0 0 1"
"skin" "-"
}
// entity 11
{
"classname" "atdm:mover_lever"
"name" "machine_lever10"
"model" "models/darkmod/mechanical/switches/switch_rotate_lever.ase"
"origin" "263.631 165.141 80.5"
"rotate" "0 0 45"
"rotation" "0 -1 0 1 0 0 0 0 1"
"target0" "NorthDoor"
"target1" "SouthDoor"
}
// entity 12
{
"classname" "path_corner"
"name" "path_corner_23"
"angle" "85.000000"
"origin" "356 72 40"
"target0" "path_interact_1"
"target1" "path_corner_5"
}
// entity 13
{
"classname" "light"
"name" "light_3"
"light_center" "0 0 0"
"light_radius" "512 857 320"
"origin" "-147 302 190"
}
gm1.map (17,187 bytes)   

Activities

grayman

grayman

07.01.2020 18:35

viewer   ~0012113

Rotating double doors didn't work with switches. They work fine w/o switches.

Adding code and attaching test maps to cover the following scenarios:

1 - original map from JackFarmer (invalid with new code)
2 - sliding doors, north door uses switches
3 - rotating doors, north door uses switches
4 - rotating doors, no switches
5 - sliding doors, no switches
6 - rotating doors, south door uses switches
7 - sliding doors, south door uses switches
maps.zip (16,614 bytes)
grayman

grayman

07.01.2020 20:09

viewer   ~0012117

A couple problems fixed:

1. With double sliding and rotating door pairs, the pairing of the doors was not paid attention to when controllers were in use. Since we can’t have controllers targeting both doors (leads to only one door activating), if pathfinding gives the AI the door that isn’t targeted by the controllers, the code now switches to the other door, which is targeted by the controllers.

2. There’s a dmap bug that causes a sliding door to not provide the correct clipmodel box. This causes the sliding doors in a double door pair to not find each other during setup if the doors’ origins aren’t near each other. Rather than fixing dmap, the code now looks for doors that share the same visportal. If someone fixes dmap's clipmodel bug, it won't affect this new approach, which doesn't rely on clipmodels.

Rev 8515:

State.cpp
FrobDoor.h
FrobDoor.cpp

Issue History

Date Modified Username Field Change
06.01.2020 14:12 grayman New Issue
06.01.2020 14:12 grayman Status new => assigned
06.01.2020 14:12 grayman Assigned To => grayman
06.01.2020 14:12 grayman File Added: gm1.map
07.01.2020 18:35 grayman File Added: maps.zip
07.01.2020 18:35 grayman Note Added: 0012113
07.01.2020 20:09 grayman Note Added: 0012117
07.01.2020 20:11 grayman Status assigned => resolved
07.01.2020 20:11 grayman Resolution open => fixed
07.01.2020 20:11 grayman Fixed in Version => TDM 2.08
07.01.2020 20:11 grayman Description Updated
07.01.2020 20:11 grayman Additional Information Updated