|
|
|
@ -1,83 +1,9 @@
|
|
|
|
|
|
|
|
|
|
(psc-include (list "common-data.lsp" "dialog/dialog.lsp"))
|
|
|
|
|
|
|
|
|
|
(defun guard-dialog (dat / dtl-lst plain-string-keys int-keys dist-keys toggle-keys popup-keys default-actions dialog-after-load dialog-after-save dialog-before-done tile-actions extra-keys dialog-ties sub-dialogs)
|
|
|
|
|
(defun guard-dialog (dat / tog-lst dtl-lst plain-string-keys int-keys dist-keys toggle-keys popup-keys default-actions dialog-after-load dialog-after-save dialog-before-done tile-actions extra-keys dialog-ties sub-dialogs)
|
|
|
|
|
(map-apply! '(lambda (key val) (list key (to-string val))) 'dat)
|
|
|
|
|
(setq
|
|
|
|
|
dtl-lst
|
|
|
|
|
(list
|
|
|
|
|
"32 (BTWN. POST)"
|
|
|
|
|
"33 (BTWN. BOX)"
|
|
|
|
|
"55 (STR. PL. SIDE)"
|
|
|
|
|
"61 (ANCH. KB-TZ)"
|
|
|
|
|
"62 (EM-1 FRONT)"
|
|
|
|
|
"63 (EM-2 FRONT)"
|
|
|
|
|
"64 (EM-2 TOP)"
|
|
|
|
|
"65 (WF. OFFSET)"
|
|
|
|
|
"66 (CH. OFFSET)"
|
|
|
|
|
"67 (CH. FRONT)"
|
|
|
|
|
"68 (BOX FRAME)"
|
|
|
|
|
"69 (ANCH. KH-EZ)"
|
|
|
|
|
"76 (STR. CH. SIDE)"
|
|
|
|
|
"86 (STR. CH. TOP)"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; edit boxes (get_tile)
|
|
|
|
|
plain-string-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_str"
|
|
|
|
|
"guard_lvl"
|
|
|
|
|
"guard_seq"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; edit boxes (safe-atoi)
|
|
|
|
|
int-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_qty"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; edit boxes (distof)
|
|
|
|
|
dist-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_lng"
|
|
|
|
|
"guard_hgt"
|
|
|
|
|
"lpost_ext"
|
|
|
|
|
"mpost_ext"
|
|
|
|
|
"rpost_ext"
|
|
|
|
|
"lpost_tab"
|
|
|
|
|
"mpost_tab"
|
|
|
|
|
"rpost_tab"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; toggle tiles
|
|
|
|
|
toggle-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_hand"
|
|
|
|
|
"guard_kick"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; key list for popup list tiles
|
|
|
|
|
popup-keys
|
|
|
|
|
(list
|
|
|
|
|
(list
|
|
|
|
|
"guard_sty"
|
|
|
|
|
"100 2-Line"
|
|
|
|
|
"200 6-Line"
|
|
|
|
|
"300 Tube"
|
|
|
|
|
"400 Picket"
|
|
|
|
|
) ;_ list
|
|
|
|
|
(cons "lpost_con" dtl-lst)
|
|
|
|
|
(cons "mpost_con" dtl-lst)
|
|
|
|
|
(cons "rpost_con" dtl-lst)
|
|
|
|
|
) ;_ list
|
|
|
|
|
default-actions
|
|
|
|
|
(list
|
|
|
|
|
'("lpost_con" . post-auto-format)
|
|
|
|
|
'("lpost_ext" . post-auto-fill)
|
|
|
|
|
'("lpost_tab" . post-auto-fill)
|
|
|
|
|
'("mpost_con" . post-handling)
|
|
|
|
|
'("rpost_con" . post-handling)
|
|
|
|
|
'("guard_str" . force-uppercase)
|
|
|
|
|
'("guard_lvl" . force-uppercase)
|
|
|
|
|
'("guard_seq" . force-uppercase)
|
|
|
|
|
'("guard_lng" . guard-inc-mpost)
|
|
|
|
|
) ;_ list
|
|
|
|
|
) ;_ setq
|
|
|
|
|
(set-dialog-vars)
|
|
|
|
|
(defun dialog-after-load ()
|
|
|
|
|
(mapcar
|
|
|
|
|
'(lambda (k) (post-handling k (dialog-popup-val k)))
|
|
|
|
@ -117,7 +43,30 @@
|
|
|
|
|
(dialog-init "rail/guard.dcl" "DD_GUARD" dat)
|
|
|
|
|
) ;_ defun guard-dialog
|
|
|
|
|
|
|
|
|
|
(defun post-handling (key val / mode tmp tab txt ext def mid-p rgt-p)
|
|
|
|
|
(defun multi-guard-dialog ( / multi-p tog-lst dtl-lst plain-string-keys int-keys dist-keys toggle-keys popup-keys default-actions dialog-after-load dialog-after-save dialog-before-done tile-actions extra-keys dialog-ties sub-dialogs)
|
|
|
|
|
(map-apply! '(lambda (key val) (list key (to-string val))) 'dat)
|
|
|
|
|
(set-dialog-vars)
|
|
|
|
|
(setq multi-p T)
|
|
|
|
|
(defun dialog-after-load ( / )
|
|
|
|
|
(mapcar
|
|
|
|
|
'(lambda (k) (mode_tile k 1))
|
|
|
|
|
(apply 'append (mapcar 'cdr tog-lst))
|
|
|
|
|
) ;_ mapcar
|
|
|
|
|
) ;_ defun dialog-after-load
|
|
|
|
|
(defun dialog-before-done ( / exclude-lst)
|
|
|
|
|
(setq
|
|
|
|
|
exclude-lst tog-lst
|
|
|
|
|
exclude-lst (remove exclude-lst '(= "1" (get_tile (car x))))
|
|
|
|
|
exclude-lst (apply 'append (mapcar 'cdr exclude-lst))
|
|
|
|
|
exclude-lst (remove exclude-lst '(ends-with x "_txt"))
|
|
|
|
|
) ;_ setq
|
|
|
|
|
(remove! 'data '(begins-with (car x) "tog_"))
|
|
|
|
|
(remove! 'data '(member (car x) exclude-lst))
|
|
|
|
|
) ;_ defun dialog-before-done
|
|
|
|
|
(dialog-init "rail/guard.dcl" "MULTI_DD_GUARD" nil)
|
|
|
|
|
) ;_ defun multi-guard-dialog
|
|
|
|
|
|
|
|
|
|
(defun post-handling (key val / mode tmp tab txt ext def mid-p rgt-p mlt-p)
|
|
|
|
|
(defun mid-p ( / btwn dist)
|
|
|
|
|
(setq btwn (member (read val) '(32 33)))
|
|
|
|
|
(setq dist (distof (get_tile "guard_lng")))
|
|
|
|
@ -128,7 +77,13 @@
|
|
|
|
|
(setq mode (if (member (read val) '(32 33)) 1 0))
|
|
|
|
|
(mode_tile "right_post" mode)
|
|
|
|
|
) ;_ defun rgt-p
|
|
|
|
|
(defun mlt-p (key / tog)
|
|
|
|
|
(setq tog (caar (filter tog-lst '(member key x))))
|
|
|
|
|
(setq tog (abs (1- (atoi (get_tile tog)))))
|
|
|
|
|
tog
|
|
|
|
|
) ;_ defun mlt-p
|
|
|
|
|
(cond
|
|
|
|
|
( (= multi-p T) (mlt-p key))
|
|
|
|
|
( (= key "mpost_con") (mid-p))
|
|
|
|
|
( (= key "rpost_con") (rgt-p))
|
|
|
|
|
( (= T) (setq mode 0))
|
|
|
|
@ -140,6 +95,7 @@
|
|
|
|
|
ext (strcat tmp "ext")
|
|
|
|
|
def (guard-dcl-defaults)
|
|
|
|
|
) ;_ setq
|
|
|
|
|
(map-apply! '(lambda (key val) (list key (to-string val))) 'def)
|
|
|
|
|
(cond ;;; Kick & Hrail @ Guard Btwn.
|
|
|
|
|
( (member (read val) '(32 33))
|
|
|
|
|
(foreach k '("hand_txt" "kick_txt") (mode_tile k 1))
|
|
|
|
@ -148,17 +104,20 @@
|
|
|
|
|
) ;_ foreach
|
|
|
|
|
) ;_ condif
|
|
|
|
|
( (= T)
|
|
|
|
|
(foreach k '("hand_txt" "kick_txt") (mode_tile k 0))
|
|
|
|
|
(foreach k '("hand_txt" "kick_txt" "guard_hand" "guard_kick")
|
|
|
|
|
(mode_tile k (if multi-p (mlt-p k) 0))
|
|
|
|
|
) ;_ foreach
|
|
|
|
|
(foreach k '("guard_hand" "guard_kick")
|
|
|
|
|
(mode_tile k 0)
|
|
|
|
|
(set_tile k (to-string (xd-value k (if dat dat def))))
|
|
|
|
|
(if (or (not multi-p) (= 0 (mlt-p k)))
|
|
|
|
|
(set_tile k (xd-value k (if dat dat def)))
|
|
|
|
|
) ;_ if
|
|
|
|
|
) ;_ foreach
|
|
|
|
|
) ;_ condif
|
|
|
|
|
) ;_ cond
|
|
|
|
|
(cond ;;; Knife Plate
|
|
|
|
|
( (member (read val) '(65 66 76))
|
|
|
|
|
(mode_tile tab mode)
|
|
|
|
|
(set_tile tab (to-string (xd-value tab (if dat dat def))))
|
|
|
|
|
(mode_tile tab (if multi-p (mlt-p tab) mode))
|
|
|
|
|
(set_tile tab (xd-value tab (if dat dat def)))
|
|
|
|
|
) ;_ condif
|
|
|
|
|
( (= T)
|
|
|
|
|
(mode_tile tab 1)
|
|
|
|
@ -171,7 +130,9 @@
|
|
|
|
|
(set_tile txt "Extension") (set_tile ext "0.0")
|
|
|
|
|
) ;_ condif
|
|
|
|
|
( (= T)
|
|
|
|
|
(mode_tile txt mode) (mode_tile ext mode)
|
|
|
|
|
(foreach k (list txt ext)
|
|
|
|
|
(mode_tile k (if multi-p (mlt-p k) mode))
|
|
|
|
|
) ;_ foreach
|
|
|
|
|
(set_tile txt (if (= (read val) 86) "Nose Dist." "Extension"))
|
|
|
|
|
(set_tile ext (to-string (abs (distof (xd-value ext (if dat dat def))))))
|
|
|
|
|
) ;_ condif
|
|
|
|
@ -236,3 +197,81 @@
|
|
|
|
|
) ;_ if
|
|
|
|
|
guard-dat-val
|
|
|
|
|
) ;_ defun guard-dcl-defaults
|
|
|
|
|
|
|
|
|
|
(defun set-dialog-vars ( / con-lst sty-lst)
|
|
|
|
|
(defun con-lst (lst)
|
|
|
|
|
(mapcar 'cons (cdr lst) (lst* (car lst) (length (cdr lst))))
|
|
|
|
|
) ;_ defun con-lst
|
|
|
|
|
(setq
|
|
|
|
|
sty-lst
|
|
|
|
|
(list "100 2-Line" "200 6-Line" "300 Tube" "400 Picket")
|
|
|
|
|
dtl-lst
|
|
|
|
|
(list
|
|
|
|
|
"32 (BTWN. POST)" "33 (BTWN. BOX)" "55 (STR. PL. SIDE)"
|
|
|
|
|
"61 (ANCH. KB-TZ)" "62 (EM-1 FRONT)" "63 (EM-2 FRONT)"
|
|
|
|
|
"64 (EM-2 TOP)" "65 (WF. OFFSET)" "66 (CH. OFFSET)"
|
|
|
|
|
"67 (CH. FRONT)" "68 (BOX FRAME)" "69 (ANCH. KH-EZ)"
|
|
|
|
|
"76 (STR. CH. SIDE)" "86 (STR. CH. TOP)"
|
|
|
|
|
) ;_ list
|
|
|
|
|
tog-lst
|
|
|
|
|
(list
|
|
|
|
|
'("tog_str" "guard_str") '("tog_lvl" "guard_lvl") '("tog_seq" "guard_seq")
|
|
|
|
|
'("tog_lng" "guard_lng") '("tog_hgt" "guard_hgt") '("tog_qty" "guard_qty")
|
|
|
|
|
'("tog_sty" "guard_sty") '("tog_hnd" "hand_txt" "guard_hand") '("tog_kck" "kick_txt" "guard_kick")
|
|
|
|
|
'("tog_lcon" "lpost_con") '("tog_lext" "lpost_txt" "lpost_ext") '("tog_ltab" "lpost_tab")
|
|
|
|
|
'("tog_mcon" "mpost_con") '("tog_mext" "mpost_txt" "mpost_ext") '("tog_mtab" "mpost_tab")
|
|
|
|
|
'("tog_rcon" "rpost_con") '("tog_rext" "rpost_txt" "rpost_ext") '("tog_rtab" "rpost_tab")
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; edit boxes (get_tile)
|
|
|
|
|
plain-string-keys (list "guard_str" "guard_lvl" "guard_seq")
|
|
|
|
|
;;; edit boxes (safe-atoi)
|
|
|
|
|
int-keys (list "guard_qty")
|
|
|
|
|
;;; edit boxes (distof)
|
|
|
|
|
dist-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_lng" "guard_hgt" "lpost_ext" "mpost_ext"
|
|
|
|
|
"rpost_ext" "lpost_tab" "mpost_tab" "rpost_tab"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; toggle tiles
|
|
|
|
|
toggle-keys
|
|
|
|
|
(list
|
|
|
|
|
"guard_hand" "guard_kick"
|
|
|
|
|
"tog_str" "tog_lng" "tog_sty"
|
|
|
|
|
"tog_lvl" "tog_hgt" "tog_hnd"
|
|
|
|
|
"tog_seq" "tog_qty" "tog_kck"
|
|
|
|
|
"tog_lcon" "tog_mcon" "tog_rcon"
|
|
|
|
|
"tog_lext" "tog_mext" "tog_rext"
|
|
|
|
|
"tog_ltab" "tog_mtab" "tog_rtab"
|
|
|
|
|
) ;_ list
|
|
|
|
|
;;; key list for popup list tiles
|
|
|
|
|
popup-keys
|
|
|
|
|
(list
|
|
|
|
|
(cons "guard_sty" sty-lst)
|
|
|
|
|
(cons "lpost_con" dtl-lst)
|
|
|
|
|
(cons "mpost_con" dtl-lst)
|
|
|
|
|
(cons "rpost_con" dtl-lst)
|
|
|
|
|
) ;_ list
|
|
|
|
|
default-actions
|
|
|
|
|
(append
|
|
|
|
|
'(("guard_lng" . guard-inc-mpost))
|
|
|
|
|
'(("lpost_con" . post-auto-format))
|
|
|
|
|
(con-lst '(post-auto-fill "lpost_ext" "lpost_tab"))
|
|
|
|
|
(con-lst '(post-handling "mpost_con" "rpost_con"))
|
|
|
|
|
(con-lst '(force-uppercase "guard_str" "guard_lvl" "guard_seq"))
|
|
|
|
|
(con-lst (cons 'multi-tog-handling (cddr toggle-keys)))
|
|
|
|
|
) ;_ append
|
|
|
|
|
) ;_ setq
|
|
|
|
|
) ;_ defun set-dialog-vars
|
|
|
|
|
|
|
|
|
|
(defun multi-tog-handling (key val / def lst)
|
|
|
|
|
(setq def (guard-dcl-defaults) lst tog-lst)
|
|
|
|
|
(filter! 'lst '(= key (car x)))
|
|
|
|
|
(mapcar
|
|
|
|
|
'(lambda (k / d)
|
|
|
|
|
(setq d (xd-value k (if dat dat def)))
|
|
|
|
|
(mode_tile k (abs (1- (atoi val))))
|
|
|
|
|
(if d (set_tile k (to-string d)))
|
|
|
|
|
) ;_ lambda
|
|
|
|
|
(cdr (apply 'append lst))
|
|
|
|
|
) ;_ mapcar
|
|
|
|
|
) ;_ defun tog-handling
|
|
|
|
|