ofs | hex dump | ascii |
---|
0000 | 42 42 33 44 d0 29 00 00 01 00 00 00 42 52 55 53 2e 00 00 00 01 00 00 00 42 72 75 73 68 2e 30 30 | BB3D.)......BRUS........Brush.00 |
0020 | 31 00 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 01 00 00 00 00 00 00 00 ff ff | 1....?...?...?...?.............. |
0040 | ff ff 4e 4f 44 45 8e 29 00 00 64 74 72 61 63 6b 5f 73 74 00 00 00 00 00 00 00 00 bf 00 00 00 00 | ..NODE.)..dtrack_st............. |
0060 | 00 00 80 3f 00 00 80 3f 00 00 80 3f 69 21 a2 33 00 00 00 00 00 00 80 3f 00 00 00 00 4d 45 53 48 | ...?...?...?i!.3.......?....MESH |
0080 | 54 29 00 00 ff ff ff ff 56 52 54 53 0c 23 00 00 01 00 00 00 01 00 00 00 02 00 00 00 4d 88 a8 3e | T)......VRTS.#..............M..> |
00a0 | 28 b1 02 bd 9c b7 2f 3e 6a 03 35 bf 00 00 00 00 6a 03 35 3f 40 d6 23 3f a0 18 2b 3f 4d 88 a8 3e | (...../>j.5.....j.5?@.#?..+?M..> |
00c0 | 28 b1 02 bd 9c b7 2f be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 42 d6 23 3f 84 14 62 3f 4d 88 a8 3e | (...../.j.5.....j.5.B.#?..b?M..> |
00e0 | 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f 4d 88 a8 3e | >S.>../.(...(..?(.....>?..b?M..> |
0100 | 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f 4d 88 a8 3e | >S.>../>(...(..?(..?..>?..+?M..> |
0120 | 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f f6 af ec 3e | >S.>../>(...(..?(..?..>?..+?...> |
0140 | 3e 53 07 3e 9c b7 2f 3e 00 00 00 00 6a 03 35 3f 6a 03 35 3f 9b 72 53 3f a0 18 2b 3f f6 af ec 3e | >S.>../>....j.5?j.5?.rS?..+?...> |
0160 | 28 b1 02 bd 9c b7 2f 3e 00 00 00 00 00 00 00 00 00 00 80 3f 9a 72 53 3f d8 cf 10 3f 4d 88 a8 3e | (...../>...........?.rS?...?M..> |
0180 | 28 b1 02 bd 9c b7 2f 3e 6a 03 35 bf 00 00 00 00 6a 03 35 3f 07 1f 3e 3f d8 cf 10 3f 4d 88 a8 3e | (...../>j.5.....j.5?..>?...?M..> |
01a0 | 28 b1 02 bd 9c b7 2f be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 08 1f 3e 3f 4b 5d 7c 3f f6 af ec 3e | (...../.j.5.....j.5...>?K]|?...> |
01c0 | 28 b1 02 bd 9c b7 2f be 00 00 00 00 00 00 00 00 00 00 80 bf 9b 72 53 3f 4a 5d 7c 3f f6 af ec 3e | (...../..............rS?J]|?...> |
01e0 | 3e 53 07 3e 9c b7 2f be 00 00 00 00 6a 03 35 3f 6a 03 35 bf 9b 72 53 3f 84 14 62 3f 4d 88 a8 3e | >S.>../.....j.5?j.5..rS?..b?M..> |
0200 | 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f f6 af ec 3e | >S.>../.(...(..?(.....>?..b?...> |
0220 | 3e 53 07 3e 9c b7 2f be 00 00 00 00 6a 03 35 3f 6a 03 35 bf 9b 72 53 3f 84 14 62 3f f6 af ec 3e | >S.>../.....j.5?j.5..rS?..b?...> |
0240 | 3e 53 07 3e 9c b7 2f 3e 00 00 00 00 6a 03 35 3f 6a 03 35 3f 9b 72 53 3f a0 18 2b 3f 4d 88 a8 3e | >S.>../>....j.5?j.5?.rS?..+?M..> |
0260 | 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f 4d 88 a8 3e | >S.>../>(...(..?(..?..>?..+?M..> |
0280 | 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f b2 5d ff 3e | >S.>../.(...(..?(.....>?..b?.].> |
02a0 | 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf 2e b0 11 3f 2a f2 33 3f ad 5d ff 3e | ..u=.......>-..>..]....?*.3?.].> |
02c0 | 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 23 b0 11 3f c8 e0 9d 3d ad 5d ff 3e | ..u=...?...>-..>..]?#..?...=.].> |
02e0 | af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 6e ad 09 3f c8 e0 9d 3d b2 5d ff 3e | .G.=...?ke.>5a....b?n..?...=.].> |
0300 | af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf 7e ad 09 3f 2a f2 33 3f 8f 17 d3 3e | .G.=....ka.>5a....b.~..?*.3?...> |
0320 | 0b d7 23 3d f9 ff ff be 35 ad 9a be de d7 6e 3f 90 31 48 be fa c0 ae 3e 2e f2 33 3f 5f b7 f2 3e | ..#=....5.....n?.1H....>..3?_..> |
0340 | 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 89 8e c3 3e 2d f2 33 3f 5c b7 f2 3e | ..u=........-..>..]....>-.3?\..> |
0360 | 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f 80 8e c3 3e e8 e0 9d 3d 8a 17 d3 3e | ..u=...?....-..>..]?...>...=...> |
0380 | 0b d7 23 3d 04 00 00 3f 35 ad 9a be de d7 6e 3f 90 31 48 3e 09 c1 ae 3e f0 e0 9d 3d 8a 17 d3 3e | ..#=...?5.....n?.1H>...>...=...> |
03a0 | 0b d7 23 3d 04 00 00 3f 35 ad 9a be de d7 6e 3f 90 31 48 3e 64 b7 db 3e c0 ac 6d 3c 5c b7 f2 3e | ..#=...?5.....n?.1H>d..>..m<\..> |
03c0 | 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f fa 81 ef 3e 20 5f dd 3c ad 5d ff 3e | ..u=...?....-..>..]?...>._.<.].> |
03e0 | 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 99 6c f7 3e 20 5f dd 3c be 7e 0f 3f | ..u=...?...>-..>..]?.l.>._.<.~.? |
0400 | 0b d7 23 3d 04 00 00 3f 35 ad 9a 3e de d7 6e 3f 90 31 48 3e 96 9b 05 3f c0 ab 6d 3c be 7e 0f 3f | ..#=...?5..>..n?.1H>...?..m<.~.? |
0420 | 0b d7 23 3d 04 00 00 3f 35 ad 9a 3e de d7 6e 3f 90 31 48 3e ea 16 1c 3f d0 e0 9d 3d ad 5d ff 3e | ..#=...?5..>..n?.1H>...?...=.].> |
0440 | 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 23 b0 11 3f c8 e0 9d 3d b2 5d ff 3e | ..u=...?...>-..>..]?#..?...=.].> |
0460 | 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf 2e b0 11 3f 2a f2 33 3f c0 7e 0f 3f | ..u=.......>-..>..]....?*.3?.~.? |
0480 | 0b d7 23 3d fb ff ff be 35 ad 9a 3e de d7 6e 3f 90 31 48 be ea 16 1c 3f 29 f2 33 3f 5f b7 f2 3e | ..#=....5..>..n?.1H....?).3?_..> |
04a0 | 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 3e 82 ef 3e 51 c3 40 3f 8f 17 d3 3e | ..u=........-..>..].>..>Q.@?...> |
04c0 | 0b d7 23 3d f9 ff ff be 35 ad 9a be de d7 6e 3f 90 31 48 be b8 b7 db 3e 9a f7 43 3f c0 7e 0f 3f | ..#=....5.....n?.1H....>..C?.~.? |
04e0 | 0b d7 23 3d fb ff ff be 35 ad 9a 3e de d7 6e 3f 90 31 48 be b8 9b 05 3f 96 f7 43 3f b2 5d ff 3e | ..#=....5..>..n?.1H....?..C?.].> |
0500 | 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf e0 6c f7 3e 50 c3 40 3f b2 5d ff 3e | ..u=.......>-..>..]..l.>P.@?.].> |
0520 | af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf de 6c f7 3e 98 c0 38 3f 5f b7 f2 3e | .G.=....ka.>5a....b..l.>..8?_..> |
0540 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f 5f b7 f2 3e | .G.=....ka..5a....b.<..>..8?_..> |
0560 | 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 3e 82 ef 3e 51 c3 40 3f b2 5d ff 3e | ..u=........-..>..].>..>Q.@?.].> |
0580 | 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf e0 6c f7 3e 50 c3 40 3f 5f b7 f2 3e | ..u=.......>-..>..]..l.>P.@?_..> |
05a0 | 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 89 8e c3 3e 2d f2 33 3f 5f b7 f2 3e | ..u=........-..>..]....>-.3?_..> |
05c0 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf f4 93 d3 3e 2d f2 33 3f 5c b7 f2 3e | .G.=....ka..5a....b....>-.3?\..> |
05e0 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f e1 93 d3 3e d8 e0 9d 3d 5c b7 f2 3e | .G.=...?ka..5a....b?...>...=\..> |
0600 | 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f 80 8e c3 3e e8 e0 9d 3d ad 5d ff 3e | ..u=...?....-..>..]?...>...=.].> |
0620 | 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 99 6c f7 3e 20 5f dd 3c 5c b7 f2 3e | ..u=...?...>-..>..]?.l.>._.<\..> |
0640 | 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f fa 81 ef 3e 20 5f dd 3c 5c b7 f2 3e | ..u=...?....-..>..]?...>._.<\..> |
0660 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d ad 5d ff 3e | .G.=...?ka..5a....b?...>..n=.].> |
0680 | af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 9a 6c f7 3e f0 da 6e 3d b2 5d ff 3e | .G.=...?ke.>5a....b?.l.>..n=.].> |
06a0 | af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf 7e ad 09 3f 2a f2 33 3f ad 5d ff 3e | .G.=....ka.>5a....b.~..?*.3?.].> |
06c0 | af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 6e ad 09 3f c8 e0 9d 3d ca 96 07 3f | .G.=...?ke.>5a....b?n..?...=...? |
06e0 | 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 4c aa 04 3f e0 e0 9d 3d cd 96 07 3f | ...=...?<..?.k..,..?L..?...=...? |
0700 | 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 64 aa 04 3f 2a f2 33 3f 5c b7 f2 3e | ...=....<..?.k..,...d..?*.3?\..> |
0720 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f e1 93 d3 3e d8 e0 9d 3d 5f b7 f2 3e | .G.=...?ka..5a....b?...>...=_..> |
0740 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf f4 93 d3 3e 2d f2 33 3f 77 e7 e2 3e | .G.=....ka..5a....b....>-.3?w..> |
0760 | 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 3a 9a dd 3e 2c f2 33 3f 74 e7 e2 3e | ...=....<....k..,...:..>,.3?t..> |
0780 | 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 14 9a dd 3e e0 e0 9d 3d cd 96 07 3f | ...=...?<....k..,..?...>...=...? |
07a0 | 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 64 aa 04 3f 2a f2 33 3f ca 96 07 3f | ...=....<..?.k..,...d..?*.3?...? |
07c0 | 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 4c aa 04 3f e0 e0 9d 3d ca 96 07 3f | ...=...?<..?.k..,..?L..?...=...? |
07e0 | 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d cd 96 07 3f | )\.>...?(..?(..?(..?...?...=...? |
0800 | 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 74 e7 e2 3e | )\.>....(..?(..?(......?*.3?t..> |
0820 | 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 14 9a dd 3e e0 e0 9d 3d 77 e7 e2 3e | ...=...?<....k..,..?...>...=w..> |
0840 | 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 3a 9a dd 3e 2c f2 33 3f 77 e7 e2 3e | ...=....<....k..,...:..>,.3?w..> |
0860 | 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 74 e7 e2 3e | )\.>....(...(..?(......>,.3?t..> |
0880 | 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f | )\.>...?(...(..?(..?...>...=...? |
08a0 | 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d 74 e7 e2 3e | )\.>...?(..?(..?(..?...?...=t..> |
08c0 | 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d 77 e7 e2 3e | )\.>...?(...(..?(..?...>...=w..> |
08e0 | 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f cd 96 07 3f | )\.>....(...(..?(......>,.3?...? |
0900 | 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 5f b7 f2 3e | )\.>....(..?(..?(......?*.3?_..> |
0920 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f 77 e7 e2 3e | .G.=....ka..5a....b.<..>..8?w..> |
0940 | 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 77 e7 e2 3e | )\.>....(...(..?(......>,.3?w..> |
0960 | 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf f0 9c e5 3e 88 f3 37 3f cd 96 07 3f | ...=....<....k..,......>..7?...? |
0980 | 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f cd 96 07 3f | ...=....<..?.k..,......?..7?...? |
09a0 | 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 77 e7 e2 3e | )\.>....(..?(..?(......?*.3?w..> |
09c0 | 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 5f b7 f2 3e | )\.>....(...(..?(......>,.3?_..> |
09e0 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f b2 5d ff 3e | .G.=....ka..5a....b.<..>..8?.].> |
0a00 | af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf de 6c f7 3e 98 c0 38 3f cd 96 07 3f | .G.=....ka.>5a....b..l.>..8?...? |
0a20 | 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f 5f b7 f2 3e | ...=....<..?.k..,......?..7?_..> |
0a40 | af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f cd 96 07 3f | .G.=....ka..5a....b.<..>..8?...? |
0a60 | 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f 77 e7 e2 3e | ...=....<..?.k..,......?..7?w..> |
0a80 | 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 5c b7 f2 3e | )\.>....(...(..?(......>,.3?\..> |
0aa0 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d ca 96 07 3f | .G.=...?ka..5a....b?...>..n=...? |
0ac0 | 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d ad 5d ff 3e | ...=...?<..?.k..,..?...?..{=.].> |
0ae0 | af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 9a 6c f7 3e f0 da 6e 3d 74 e7 e2 3e | .G.=...?ke.>5a....b?.l.>..n=t..> |
0b00 | 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f | )\.>...?(...(..?(..?...>...=...? |
0b20 | 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d ca 96 07 3f | )\.>...?(..?(..?(..?...?...=...? |
0b40 | 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d 5c b7 f2 3e | ...=...?<..?.k..,..?...?..{=\..> |
0b60 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d 74 e7 e2 3e | .G.=...?ka..5a....b?...>..n=t..> |
0b80 | 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f b3 9c e5 3e 00 ac 7b 3d 74 e7 e2 3e | ...=...?<....k..,..?...>..{=t..> |
0ba0 | 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d 5c b7 f2 3e | )\.>...?(...(..?(..?...>...=\..> |
0bc0 | af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d 74 e7 e2 3e | .G.=...?ka..5a....b?...>..n=t..> |
0be0 | 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f | )\.>...?(...(..?(..?...>...=...? |
0c00 | 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d dc be 3d 3f | ...=...?<..?.k..,..?...?..{=..=? |
0c20 | 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e0 be 3d 3f | ..#=L...(..?(..?(....su?`..=..=? |
0c40 | 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d dc be 3d bf | ..#=.G..(..?(..?(..?.9b?...=..=. |
0c60 | 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f e6 be 3d bf | ..#=.G..(...(..?(..?.9b?..w?..=. |
0c80 | 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f e2 be 3d 3f | ..#=O...(...(..?(...zsu?..w?..=? |
0ca0 | fd d6 23 bc 4c b8 de be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 39 76 7d 3f 10 86 19 3d dc be 3d 3f | ..#.L...j.5?....j.5.9v}?...=..=? |
0cc0 | 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e6 be 3d bf | ..#=L...(..?(..?(....su?`..=..=. |
0ce0 | 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dd be 3d bf | ..#=O...(...(..?(...zsu?..w?..=. |
0d00 | fd d6 23 bc 53 b8 de be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 3b 76 7d 3f 92 16 77 3f dd be 3d bf | ..#.S...j.5.....j.5.;v}?..w?..=. |
0d20 | fd d6 23 bc 53 b8 de be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 78 73 75 3f 4d 19 7f 3f e6 be 3d bf | ..#.S...j.5.....j.5.xsu?M..?..=. |
0d40 | 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dc be 3d bf | ..#=O...(...(..?(...zsu?..w?..=. |
0d60 | 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f de be 3d bf | ..#=.G..(...(..?(..?.9b?..w?..=. |
0d80 | fd d6 23 bc af 47 a1 be 6a 03 35 bf 00 00 00 00 6a 03 35 3f c1 39 62 3f 44 19 7f 3f de be 3d bf | ..#..G..j.5.....j.5?.9b?D..?..=. |
0da0 | fd d6 23 bc af 47 a1 be 6a 03 35 bf 00 00 00 00 6a 03 35 3f 16 37 5a 3f 90 16 77 3f dc be 3d bf | ..#..G..j.5.....j.5?.7Z?..w?..=. |
0dc0 | 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f e0 be 3d 3f | ..#=.G..(...(..?(..?.9b?..w?..=? |
0de0 | 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d e5 be 3d 3f | ..#=.G..(..?(..?(..?.9b?...=..=? |
0e00 | fd d6 23 bc a7 47 a1 be 6a 03 35 3f 00 00 00 00 6a 03 35 3f 21 37 5a 3f d0 85 19 3d dc be 3d 3f | ..#..G..j.5?....j.5?!7Z?...=..=? |
0e20 | 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e2 be 3d 3f | ..#=L...(..?(..?(....su?`..=..=? |
0e40 | fd d6 23 bc 4c b8 de be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 8b 73 75 3f 00 db ca 3b e5 be 3d 3f | ..#.L...j.5?....j.5..su?...;..=? |
0e60 | fd d6 23 bc a7 47 a1 be 6a 03 35 3f 00 00 00 00 6a 03 35 3f e5 39 62 3f 00 d9 ca 3b e0 be 3d 3f | ..#..G..j.5?....j.5?.9b?...;..=? |
0e80 | 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d 97 39 40 bc | ..#=.G..(..?(..?(..?.9b?...=.9@. |
0ea0 | 96 44 38 40 f5 ff ff be 6a 03 35 bf 6a 03 35 bf 00 00 00 00 78 ca 27 3f 7c 27 23 3f 97 39 40 bc | .D8@....j.5.j.5.....x.'?|'#?.9@. |
0ec0 | f0 a6 39 40 f2 ff ff be 6a 03 35 bf 6a 03 35 3f 00 00 00 00 84 41 2b 3f 7a 27 23 3f e9 39 40 bc | ..9@....j.5.j.5?.....A+?z'#?.9@. |
0ee0 | f0 a6 39 40 06 00 00 3f 6a 03 35 bf 6a 03 35 3f 00 00 00 00 73 41 2b 3f c0 69 3c 3c e9 39 40 bc | ..9@...?j.5.j.5?....sA+?.i<<.9@. |
0f00 | 96 44 38 40 09 00 00 3f 6a 03 35 bf 6a 03 35 bf 00 00 00 00 5a ca 27 3f 80 69 3c 3c 77 38 40 3c | .D8@...?j.5.j.5.....Z.'?.i<<w8@< |
0f20 | 96 44 38 40 06 00 00 3f 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e5 7a 32 3f c0 69 3c 3c 77 38 40 3c | .D8@...?j.5?j.5......z2?.i<<w8@< |
0f40 | f0 a6 39 40 02 00 00 3f 6a 03 35 3f 6a 03 35 3f 00 00 00 00 d8 03 2f 3f 80 6a 3c 3c c9 38 40 3c | ..9@...?j.5?j.5?....../?.j<<.8@< |
0f60 | f0 a6 39 40 01 00 00 bf 6a 03 35 3f 6a 03 35 3f 00 00 00 00 e5 03 2f 3f 7e 27 23 3f c9 38 40 3c | ..9@....j.5?j.5?....../?~'#?.8@< |
0f80 | 96 44 38 40 f6 ff ff be 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e0 7a 32 3f 7a 27 23 3f 97 39 40 bc | .D8@....j.5?j.5......z2?z'#?.9@. |
0fa0 | 96 44 38 40 f5 ff ff be 6a 03 35 bf 6a 03 35 bf 00 00 00 00 47 3d 36 3f 7b 27 23 3f e9 39 40 bc | .D8@....j.5.j.5.....G=6?{'#?.9@. |
0fc0 | 96 44 38 40 09 00 00 3f 6a 03 35 bf 6a 03 35 bf 00 00 00 00 47 3d 36 3f 40 69 3c 3c 77 38 40 3c | .D8@...?j.5.j.5.....G=6?@i<<w8@< |
0fe0 | 96 44 38 40 06 00 00 3f 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e5 7a 32 3f c0 69 3c 3c c9 38 40 3c | .D8@...?j.5?j.5......z2?.i<<.8@< |
1000 | 96 44 38 40 f6 ff ff be 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e0 7a 32 3f 7a 27 23 3f 97 39 40 bc | .D8@....j.5?j.5......z2?z'#?.9@. |
1020 | f0 a6 39 40 f2 ff ff be 6a 03 35 bf 6a 03 35 3f 00 00 00 00 84 41 2b 3f 7a 27 23 3f c9 38 40 3c | ..9@....j.5.j.5?.....A+?z'#?.8@< |
1040 | f0 a6 39 40 01 00 00 bf 6a 03 35 3f 6a 03 35 3f 00 00 00 00 e5 03 2f 3f 7e 27 23 3f 77 38 40 3c | ..9@....j.5?j.5?....../?~'#?w8@< |
1060 | f0 a6 39 40 02 00 00 3f 6a 03 35 3f 6a 03 35 3f 00 00 00 00 d8 03 2f 3f 80 6a 3c 3c e9 39 40 bc | ..9@...?j.5?j.5?....../?.j<<.9@. |
1080 | f0 a6 39 40 06 00 00 3f 6a 03 35 bf 6a 03 35 3f 00 00 00 00 73 41 2b 3f c0 69 3c 3c b2 5d ff be | ..9@...?j.5.j.5?....sA+?.i<<.].. |
10a0 | 90 c2 75 3d f8 ff ff 3e 9e 11 cf be 2d 99 96 3e bb ad 5d 3f 2e b0 11 3f 2a f2 33 3f af 5d ff be | ..u=...>....-..>..]?...?*.3?.].. |
10c0 | 90 c2 75 3d 04 00 00 bf 9e 11 cf be 2d 99 96 3e bb ad 5d bf 23 b0 11 3f c8 e0 9d 3d af 5d ff be | ..u=........-..>..].#..?...=.].. |
10e0 | b0 47 e1 3d 04 00 00 bf 6b 65 b5 be 35 61 9a be c5 99 62 bf 6e ad 09 3f c8 e0 9d 3d b2 5d ff be | .G.=....ke..5a....b.n..?...=.].. |
1100 | b0 47 e1 3d f8 ff ff 3e 6b 61 b5 be 35 61 9a be c5 99 62 3f 7e ad 09 3f 2a f2 33 3f 8d 17 d3 be | .G.=...>ka..5a....b?~..?*.3?.... |
1120 | 08 d7 23 3d fb ff ff 3e 35 ad 9a 3e de d7 6e 3f 90 31 48 3e fa c0 ae 3e 2e f2 33 3f 5d b7 f2 be | ..#=...>5..>..n?.1H>...>..3?]... |
1140 | 90 c2 75 3d f7 ff ff 3e 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 89 8e c3 3e 2d f2 33 3f 5c b7 f2 be | ..u=...>...>-..>..]?...>-.3?\... |
1160 | 90 c2 75 3d 08 00 00 bf 9e 11 cf 3e 2d 99 96 3e bb af 5d bf 80 8e c3 3e e8 e0 9d 3d 8a 17 d3 be | ..u=.......>-..>..]....>...=.... |
1180 | 08 d7 23 3d 04 00 00 bf 35 ad 9a 3e de d7 6e 3f 90 31 48 be 09 c1 ae 3e f0 e0 9d 3d 8a 17 d3 be | ..#=....5..>..n?.1H....>...=.... |
11a0 | 08 d7 23 3d 04 00 00 bf 35 ad 9a 3e de d7 6e 3f 90 31 48 be 64 b7 db 3e c0 ac 6d 3c 5c b7 f2 be | ..#=....5..>..n?.1H.
if data.tcbs then
track_circuit_breaks = data.tcbs
end
if data.ts then
track_sections = data.ts
end
if data.signalass then
signal_assignments = data.signalass
end
if data.rs_locks then
advtrains.interlocking.route.rte_locks = data.rs_locks
end
if data.rs_callbacks then
advtrains.interlocking.route.rte_callbacks = data.rs_callbacks
end
if data.influence_points then
influence_points = data.influence_points
end
if data.npr_rails then
advtrains.interlocking.npr_rails = data.npr_rails
end
--COMPATIBILITY to Signal aspect format
-- TODO remove in time...
for pts,tcb in pairs(track_circuit_breaks) do
for connid, tcbs in ipairs(tcb) do
if tcbs.routes then
for _,route in ipairs(tcbs.routes) do
if route.aspect then
-- transform the signal aspect format
local asp = route.aspect
if type(asp.main) == "table" then
atwarn("Transforming route aspect of signal",pts,"/",connid,"")
if asp.main.free then
asp.main = asp.main.speed
else
asp.main = 0
end
if asp.dst.free then
asp.dst = asp.dst.speed
else
asp.dst = 0
end
asp.proceed_as_main = asp.shunt.proceed_as_main
asp.shunt = asp.shunt.free
-- Note: info table not transferred, it's not used right now
end
end
end
end
end
end
end
function ildb.save()
return {
tcbs = track_circuit_breaks,
ts=track_sections,
signalass = signal_assignments,
rs_locks = advtrains.interlocking.route.rte_locks,
rs_callbacks = advtrains.interlocking.route.rte_callbacks,
influence_points = influence_points,
npr_rails = advtrains.interlocking.npr_rails,
}
end | 1580 | 20 85 eb 3d 08 00 00 bf 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 14 9a dd 3e e0 e0 9d 3d cb 96 07 bf | ...=....<..?.k..,......>...=.... |
15a0 | 20 85 eb 3d fa ff ff 3e 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 64 aa 04 3f 2a f2 33 3f ca 96 07 bf | ...=...><....k..,..?d..?*.3?.... |
15c0 | 20 85 eb 3d 04 00 00 bf 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 4c aa 04 3f e0 e0 9d 3d ca 96 07 bf | ...=....<....k..,...L..?...=.... |
15e0 | 28 5c 0f 3e 04 00 00 bf 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f2 a8 00 3f e0 e0 9d 3d cb 96 07 bf | (\.>....(...(..?(......?...=.... |
1600 | 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 74 e7 e2 be | (\.>...>(...(..?(..?...?*.3?t... |
1620 | 20 85 eb 3d 08 00 00 bf 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 14 9a dd 3e e0 e0 9d 3d 75 e7 e2 be | ...=....<..?.k..,......>...=u... |
1640 | 20 85 eb 3d f7 ff ff 3e 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 3a 9a dd 3e 2c f2 33 3f 75 e7 e2 be | ...=...><..?.k..,..?:..>,.3?u... |
1660 | 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 74 e7 e2 be | (\.>...>(..?(..?(..?...>,.3?t... |
1680 | 28 5c 0f 3e 08 00 00 bf 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf b2 9c e5 3e d8 e0 9d 3d ca 96 07 bf | (\.>....(..?(..?(......>...=.... |
16a0 | 28 5c 0f 3e 04 00 00 bf 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f2 a8 00 3f e0 e0 9d 3d 74 e7 e2 be | (\.>....(...(..?(......?...=t... |
16c0 | 28 5c 0f 3e 08 00 00 bf 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf b2 9c e5 3e d8 e0 9d 3d 75 e7 e2 be | (\.>....(..?(..?(......>...=u... |
16e0 | 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f cb 96 07 bf | (\.>...>(..?(..?(..?...>,.3?.... |
1700 | 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 5d b7 f2 be | (\.>...>(...(..?(..?...?*.3?]... |
1720 | b0 47 e1 3d f7 ff ff 3e 6b 61 b5 3e 35 61 9a be c5 99 62 3f 3c 82 ef 3e 99 c0 38 3f 75 e7 e2 be | .G.=...>ka.>5a....b?<..>..8?u... |
1740 | 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 75 e7 e2 be | (\.>...>(..?(..?(..?...>,.3?u... |
1760 | 20 85 eb 3d f7 ff ff 3e 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f0 9c e5 3e 88 f3 37 3f cb 96 07 bf | ...=...><..?.k..,..?...>..7?.... |
1780 | 20 85 eb 3d fa ff ff 3e 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 15 a9 00 3f 86 f3 37 3f cb 96 07 bf | ...=...><....k..,..?...?..7?.... |
17a0 | 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 75 e7 e2 be | (\.>...>(...(..?(..?...?*.3?u... |
17c0 | 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 5d b7 f2 be | (\.>...>(..?(..?(..?...>,.3?]... |
17e0 |
Signal Assignments: reverse lookup of signals assigned to TCBs
signal_assignments = {
[<signal pts>] = <sigd>
}
]]
--
function ildb.create_tcb(pos)
local new_tcb = {
[1] = {},
[2] = {},
}
local pts = advtrains.roundfloorpts(pos)
if not track_circuit_breaks[pts] then
track_circuit_breaks[pts] = new_tcb
return true
else
return false
end
end
function ildb.get_tcb(pos)
local pts = advtrains.roundfloorpts(pos)
return track_circuit_breaks[pts]
end
function ildb.get_tcbs(sigd)
local tcb = ildb.get_tcb(sigd.p)
if not tcb then return nil end
return tcb[sigd.s]
end
function ildb.create_ts(sigd)
local tcbs = ildb.get_tcbs(sigd)
local id = advtrains.random_id()
while track_sections[id] do
id = advtrains.random_id()
end
track_sections[id] = {
name = "Section "..id,
tc_breaks = { sigd }
}
tcbs.ts_id = id
end
function ildb.get_ts(id)
return track_sections[id]
end
-- various helper functions handling sigd's
local sigd_equal = advtrains.interlocking.sigd_equal
local function insert_sigd_nodouble(list, sigd)
for idx, cmp in pairs(list) do
if sigd_equal(sigd, cmp) then
return
end
end
table.insert(list, sigd)
end
-- This function will actually handle the node that is in connid direction from the node at pos
-- so, this needs the conns of the node at pos, since these are already calculated
local function traverser(found_tcbs, pos, conns, connid, count, brk_when_found_n)
local adj_pos, adj_connid, conn_idx, nextrail_y, next_conns = advtrains.get_adjacent_rail(pos, conns, connid, advtrains.all_tracktypes)
if not adj_pos then
--atdebug("Traverser found end-of-track at",pos, connid)
return
end
-- look whether there is a TCB here
if #next_conns == 2 then --if not, don't even try!
local tcb = ildb.get_tcb(adj_pos)
if tcb then
-- done with this branch
--atdebug("Traverser found tcb at",adj_pos, adj_connid)
insert_sigd_nodouble(found_tcbs, {p=adj_pos, s=adj_connid})
return
end
end
-- recursion abort condition
if count > TRAVERSER_LIMIT then
--atdebug("Traverser hit counter at",adj_pos, adj_connid)
return true
end
-- continue traversing
local counter_hit = false
for nconnid, nconn in ipairs(next_conns) do
if adj_connid ~= nconnid then
counter_hit = counter_hit or traverser(fou cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f e1 be 3d 3f | ..#=.^@.(...(..?(...zsu?..w?..=? |
1d20 | fd d6 23 bc dc 5e 40 be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 39 76 7d 3f 10 86 19 3d db be 3d 3f | ..#..^@.j.5?....j.5.9v}?...=..=? |
1d40 | 0e d7 23 3d dc 5e 40 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e7 be 3d bf | ..#=.^@.(..?(..?(....su?`..=..=. |
1d60 | 0e d7 23 3d e2 5e 40 be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f de be 3d bf | ..#=.^@.(...(..?(...zsu?..w?..=. |
1d80 | fd d6 23 bc ea 5e 40 be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 3b 76 7d 3f 92 16 77 3f de be 3d bf | ..#..^@.j.5.....j.5.;v}?..w?..=. |
1da0 | fd d6 23 bc ea 5e 40 be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 78 73 75 3f 4d 19 7f 3f e7 be 3d bf | ..#..^@.j.5.....j.5.xsu?M..?..=. |
1dc0 | 0e d7 23 3d e2 5e 40 be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dd be 3d bf | ..#=.^@.(...(..?(...zsu?..w?..=. |
1de0 | 0e d7 23 3d 44 fb 8a bd 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f df be 3d bf | ..#=D...(...(..?(..?.9b?..w?..=. |
1e00 | fd d6 23 bc 44 fb 8a bd 6a 03 35 bf 00 00 00 00 6a 03 35 3f c1 39 62 3f 44 19 7f 3f df be 3d bf | ..#.D...j.5.....j.5?.9b?D..?..=. |
1e20 | fd d6 23 bc 44 fb 8a bd 6a 03 35 bf 00 00 00 00 6a 03 35 3f 16 37 5a 3f 90 16 77 3f dd be 3d bf | ..#.D...j.5.....j.5?.7Z?..w?..=. |
1e40 | 0e d7 23 3d 44 fb 8a bd 28 cd 13 bf 28 cd 13 3f 28 cd 1
for _, msigd in ipairs(mts.tc_breaks) do
local tcbs = ildb.get_tcbs(msigd)
if tcbs then
insert_sigd_nodouble(rts.tc_breaks, msigd)
tcbs.ts_id = root_id
end
advtrains.interlocking.show_tcb_marker(msigd.p)
end
-- done
track_sections[merge_id] = nil
end
local lntrans = { "A", "B" }
local function sigd_to_string(sigd)
return minetest.pos_to_string(sigd.p).." / "..lntrans[sigd.s]
end
-- Check for near TCBs and connect to their TS if they have one, and syncs their data.
function ildb.sync_tcb_neighbors(pos, connid)
local found_tcbs = { {p = pos, s = connid} }
local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
if not node_ok then
atwarn("update_tcb_neighbors but node is NOK: "..minetest.pos_to_string(pos))
return
end
--atdebug("Traversing from ",pos, connid)
local counter_hit = traverser(found_tcbs, pos, conns, connid, 0)
local ts_id
local list_eoi = {}
local list_ok = {}
local list_mismatch = {}
local ts_to_merge = {}
for idx, sigd in pairs(found_tcbs) do
local tcbs = ildb.get_tcbs(sigd)
if not tcbs.ts_id then
--atdebug("Sync: put",sigd_to_string(sigd),"into list_eoi")
table.insert(list_eoi, sigd)
elseif not ts_id and tcbs.ts_id then
if not ildb.get_ts(tcbs.ts_id) then
atwarn("Track section database is inconsistent, there's no TS with ID=",tcbs.ts_id)
tcbs.ts_id = nil
table.insert(list_eoi, sigd)
else
--atdebug("Sync: put",sigd_to_string(sigd),"into list_ok")
ts_id = tcbs.ts_id
table.insert(list_ok, sigd)
end
elseif ts_id and tcbs.ts_id and tcbs.ts_id ~= ts_id then
atwarn("Track section database is inconsistent, sections share track!")
atwarn("Merging",tcbs.ts_id,"into",ts_id,".")
table.insert(list_mismatch, sigd)
table.insert(ts_to_merge, tcbs.ts_id)
end
end
if ts_id then
local ts = ildb.get_ts(ts_id)
for _, sigd in ipairs(list_eoi) do
local tcbs = ildb.get_tcbs(sigd)
tcbs.ts_id = ts_id
table.insert(ts.tc_breaks, sigd)
advtrains.interlocking.show_tcb_marker(sigd.p)
end
for _, mts in ipairs(ts_to_merge) do
merge_ts(ts_id, mts)
end
end
end
function ildb.link_track_sections(merge_id, root_idend
function ildb.remove_from_interlocking(sigd)
local tcbs = ildb.get_tcbs(sigd)
if not ildb.may_modify_tcbs(tcbs) then return false end
if tcbs.ts_id then
local tsid = tcbs.ts_id
local ts = ildb.get_ts(tsid)
if not ts then
tcbs.ts_id = nil
return true
end
-- remove entry from the list
local idx = 1
while idx <= #ts.tc_breaks do
local cmp = ts.tc_breaks[idx]
if sigd_equal(sigd, cmp) then
table.remove(ts.tc_breaks, idx)
else
idx = idx + 1
end
end
tcbs.ts_id = nil
--ildb.sync_tcb_neighbors(sigd.p, sigd.s)
if #ts.tc_breaks == 0 then
track_sections[tsid] = nil
end
end
advtrains.interlocking.show_tcb_marker(sigd.p)
if tcbs.signal then
return false
end
return true
end
function ildb.remove_tcb(pos)
local pts = advtrains.roundfloorpts(pos)
if not track_circuit_breaks[pts] then
return true --FIX: not an error, because tcb is already removed
end
for connid=1,2 do
if not ildb.remove_from_interlocking({p=pos, s=connid}) then
return false
end
end
track_circuit_breaks[pts] = nil
return true
end
function ildb.dissolve_ts(ts_id)
local ts = ildb.get_ts(ts_id)
if not ildb.may_modify_ts(ts) then return false end
local tcbr = advtrains.merge_tables(ts.tc_breaks)
for _,sigd in ipairs(tcbr) do
ildb.remove_from_interlocking(sigd)
end
-- Note: ts gets removed in the moment of the removal of the last TCB.
return true
end
-- Returns true if it is allowed to modify any property of a track section, such as
-- - removing TCBs
-- - merging and dissolving sections
-- As of now the action will be denied if a route is set or if a train is in the section.
function ildb.may_modify_ts(ts)
if ts.route or ts.route_post or (ts.trains and #ts.trains>0) then
return false
end
return true
end
function ildb.may_modify_tcbs(tcbs)
if tcbs.ts_id then
local ts = ildb.get_ts(tcbs.ts_id)
if ts and not ildb.may_modify_ts(ts) then
return false
end
end
return true
end
-- Utilize the traverser to find the track section at the specified position
-- Returns:
-- ts_id, origin - the first found ts and the sigd of the found tcb
-- nil - there were no TCBs in TRAVERSER_MAX range of the position
-- false - the first found TCB stated End-Of-Interlocking, or track ends were reached
function ildb.get_ts_at_pos(pos)
local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
if not node_ok then
error("get_ts_at_pos but node is NOK: "..minetest.pos_to_string |