- (define (kill-me)
- (hide-mob-hash ,mob-id-symbol))
- (let ,attr
- ,@(map
- (lambda (a)
- `(let ((val (assoc-ref ,data-symbol ',(car a))))
- (cond (val (set! ,(car a) val)))))
- attr)
- (catch #t
- (lambda* () ,@body)
- (lambda (key . args) #f))
- (list ,@(map (lambda (a) `(cons ',(car a) ,(car a))) attr))))))
+ (let ((,mob-id-z-index 0))
+ (define (kill-me)
+ (hide-mob-hash ,mob-id-symbol))
+ (define* (translate x y #:optional (z 0))
+ (cond ((3d-mode?)
+ (translate-mob x y z))
+ (else
+ (set! ,mob-id-z-index (+ ,mob-id-z-index z))
+ (translate-mob x y))))
+ (let ,attr
+ ,@(map
+ (lambda (a)
+ `(let ((val (assoc-ref ,data-symbol ',(car a))))
+ (cond (val (set! ,(car a) val)))))
+ attr)
+ (catch #t
+ (lambda* () ,@body)
+ (lambda (key . args) #f))
+ (list ,mob-id-z-index (list ,@(map (lambda (a) `(cons ',(car a) ,(car a))) attr))))))))