home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (BR) Volume 2 #6 / CDRTV2N6.iso / games / abuse / disk2.dat / LISP / ANT.LSP next >
Lisp/Scheme  |  1996-02-15  |  17KB  |  621 lines

  1. ;; Copyright 1995 Crack dot Com,  All Rights reserved
  2. ;; See licensing information for more details on usage rights
  3.  
  4. (setq ant_tints (make-array 11 :initial-contents (list 
  5.                         (def_tint "art/tints/ant/green.spe")
  6.                         (def_tint "art/tints/ant/blue.spe") 
  7.                         (def_tint "art/tints/ant/brown.spe")
  8.                         (def_tint "art/tints/ant/egg.spe")
  9.                         (def_tint "art/tints/ant/yellow.spe")
  10.                         (def_tint "art/tints/ant/mustard.spe")
  11.                         (def_tint "art/tints/ant/orange.spe")
  12.                         (def_tint "art/tints/ant/gray.spe")
  13.                         normal_tint
  14.                         normal_tint
  15.                         normal_tint
  16.                         )))
  17.  
  18. /* 
  19. ------ this code has been compiled --------
  20. (defun no_fall_move (xm ym but)
  21.   (move xm ym but))
  22.   (if (not (eq (gravity) 0))         ;; if we are in the air don't check for no fall
  23.       (move xm ym but)
  24.     (let ((oldx (x))
  25.       (oldy (y))
  26.           (ret (move xm ym but)))
  27.       (if (try_move 0 5)
  28.       (progn
  29.         (set_x oldx)
  30.         (set_y oldy)
  31.         (set_xacel 0)
  32.         (set_state stopped)
  33.         (set_xv 0)
  34.         (set_gravity 0)
  35.         0)
  36.     ret))))
  37.         
  38.       
  39. (defun will_fall_if_jump ()
  40.   nil)
  41.   (let ((dist (* (abs (get_ability jump_yvel)) (get_ability jump_xvel)))
  42.     (oldx (x))
  43.     (oldy (y))
  44.     )
  45.     (if (> (direction) 0)
  46.     (set_x (+ (x) dist))
  47.       (set_x (- (x) dist)))
  48.     (if (try_move 0 5)
  49.     (progn
  50.       (set_x oldx)
  51.       (set_y oldy)
  52.       T)
  53.       (progn
  54.     (set_x oldx)
  55.       (set_y oldy)
  56.     nil))))
  57. ^^^^^^ this code has been compiled ^^^^^^^^
  58. */
  59.  
  60.  
  61. (defun strait_rocket_ai ()
  62.   (set_course (aistate) 
  63.           (select difficulty
  64.               ('easy    12)
  65.               ('medium  15)
  66.               ('hard    17)
  67.               ('extreme 22) ))
  68.   (set_frame_angle 0 359 (aistate))
  69.   (let ((stat (bmove nil)))
  70.     (if (eq stat T)
  71.     T
  72.     (progn
  73.       (if (not (eq stat nil))
  74.       (progn 
  75.         (add_object EXPLODE3 (+ (x) (random 5)) (+ (y) (random 5)) 0)
  76.         (add_object EXPLODE2 (+ (x) (random 5)) (+ (y) (random 5)) 2)
  77.         (add_object EXPLODE3 (- (x) (random 5)) (- (y) (random 5)) 1)
  78.         (add_object EXPLODE3 (- (x) (random 5)) (- (y) (random 5)) 2)
  79.         (hurt_radius (x) (+ (y) 20) 25 15 nil 10)
  80.         )
  81.     (let ((myself (me)))
  82.       (with_object (add_object EG_EXPLO (x) (y)) (user_fun myself (car stat)))))
  83.       nil))))
  84.     
  85.  
  86. (def_char STRAIT_ROCKET
  87.   (funs (ai_fun strait_rocket_ai))
  88.   (range 10000 10000)
  89.   (flags (unlistable T))
  90.   (states "art/missle.spe" (stopped    (seq "b32r" 1 32))))
  91.  
  92. (defun animate_ai () (next_picture))
  93.  
  94. (defun eg_explo_ufun (creator block_flags)
  95.   (set_direction (with_object creator (direction)))
  96.   (if block_flags
  97.       (if (or (blocked_left block_flags) (blocked_right block_flags))
  98.       (set_state blocking))))
  99.      
  100. (def_char EG_EXPLO
  101.   (funs (ai_fun   animate_ai)
  102.     (user_fun eg_explo_ufun))
  103.   (range 10000 10000)
  104.   (flags (unlistable T))
  105.   (states "art/missle.spe"
  106.       (stopped  (seq "bifl" 1 4))
  107.       (blocking (seq "bilw" 1 4))))
  108.  
  109. /* 
  110. ------ this code has been compiled --------
  111. (defun alien_wait_time ()
  112.   (select difficulty 
  113.       ('easy    6)
  114.       ('medium  4)
  115.       ('hard    2)
  116.       ('extreme 1)))
  117.  
  118. (defun can_hit_player ()
  119.   (let ((firex (+ (x) (* (direction) 15)) )
  120.     (firey (- (y) 15))
  121.     (playerx (with_object (bg) (x)))
  122.     (playery (- (with_object (bg) (y)) 15)))
  123.     (can_see firex firey playerx playery nil)))
  124.  
  125. (defun not_ant_congestion ()
  126.   (if (> (direction) 0)
  127.       (if (find_object_in_area (+ (x) 23) (- (y) 20) (+ (x) 30) (+ (y) 20) (list ANT_ROOF))
  128.       nil
  129.     T)
  130.     (if (find_object_in_area (- (x) 30) (- (y) 20) (- (x) 23) (+ (y) 20) (list ANT_ROOF))
  131.     nil
  132.       T)))
  133.       
  134.       
  135. (defun roof_above () (not (can_see (x) (y) (x) (- (y) 120) nil)))
  136.  
  137. (defun fire_at_player ()
  138.   (let ((firex (+ (x) (* (direction) 15)) )
  139.     (firey (- (y) 15))
  140.     (playerx (+ (with_object (bg) (x)) (with_object (bg) (* (xvel) 8))))
  141.     (playery (+ (- (with_object (bg) (y)) 15) (with_object (bg) (* (yvel) 2)))))
  142.     
  143.     (if (and (can_see (x) (y) firex firey nil) (can_see firex firey playerx playery nil))
  144.     (progn
  145.       (let ((angle (atan2 (- firey playery)
  146.                   (- playerx firex))))
  147.         (fire_object (me) (aitype) firex firey angle (bg))
  148.         (set_state weapon_fire))
  149.  
  150.       ))))
  151.  
  152. (defun ant_dodge ()
  153.   (if (eq need_to_dodge 1)
  154.       (progn 
  155.     (setq need_to_dodge 0)
  156.     (if (eq (random 2) 1)
  157.         (progn
  158.           (set_state stopped)
  159.           (go_state 6))         ;; jump at player
  160.       (if (roof_above)
  161.           (progn            
  162.         (set_yvel -17)  ;; jump up  
  163.         (set_xvel 0)
  164.         (go_state 12))
  165.         (progn
  166.           (set_yvel -12)  ;; long jump
  167.           (set_xvel (* (direction) 20))
  168.           (set_aistate 6))))
  169.     T
  170.     nil)))
  171.  
  172. (defun scream_check ()
  173.   (if (can_see (x) (y) (with_object (bg) (x)) (with_object (bg) (y)) nil)
  174.       (progn
  175.     (if (or (eq no_see_time 0) (> no_see_time 20))
  176.       (play_sound ASCREAM_SND 127 (x) (y)))
  177.     (setq no_see_time 1))
  178.     (setq no_see_time (+ no_see_time 1))))
  179.  
  180. (defun ant_ai ()
  181.       (push_char 30 20)
  182.       (if (or (eq (state) flinch_up) (eq (state) flinch_down))
  183.       (progn (next_picture) T)
  184.     (progn
  185.  
  186.       (select (aistate)
  187.           (0   (set_state hanging)
  188.                (if (eq hide_flag 0)
  189.                (set_aistate 15)
  190.              (set_aistate 16)))
  191.  
  192.           (15 ;; hanging on the roof waiting for the main character           
  193.            (if (next_picture) T (set_state hanging))
  194.            (if (if (eq (total_objects) 0);; no sensor, wait for guy
  195.                (and (< (distx) 130) (< (y) (with_object (bg) (y))))
  196.              (not (eq (with_object (get_object 0) (aistate)) 0)))
  197.                (progn 
  198.              (set_state fall_start)             (set_direction (toward))
  199.              (set_aistate 1))))
  200.  
  201.           (16 ;; hiding
  202.            (set_state hiding)
  203.            (if (if (eq (total_objects) 0);; no sensor, wait for guy
  204.                (and (< (distx) 130) (< (y) (with_object (bg) (y))))
  205.              (not (eq (with_object (get_object 0) (aistate)) 0)))
  206.                (progn 
  207.              (set_state fall_start)             (set_direction (toward))
  208.              (set_aistate 1))))
  209.  
  210.           (1 ;; falling down
  211.            (set_state falling)
  212.            (scream_check)
  213.            (if (blocked_down (move 0 0 0))
  214.                (progn
  215.              (set_state landing)
  216.              (play_sound ALAND_SND 127 (x) (y))
  217.              (set_aistate 9))))
  218.  
  219.           (9 ;; landing / turn around (gerneal finish animation state)
  220.            (if (next_picture) T
  221.              (if (try_move 0 2)    
  222.              (progn
  223.                (set_gravity 1)
  224.                (set_aistate 1))
  225.                (progn (set_state stopped)              
  226.                   (go_state 2)))))  ;; running
  227.  
  228.           (2 ;; running
  229.            (scream_check)
  230.            (if (eq (random 20) 0) (setq need_to_dodge 1))
  231.            (if (not (ant_dodge))
  232.              (if (eq (facing) (toward))
  233.              (progn
  234.                (next_picture)
  235.                (if (and (eq (random 5) 0) (< (distx) 180) (< (disty) 100) (can_hit_player))
  236.                    (progn
  237.                  (set_state weapon_fire)
  238.                  (set_aistate 8))  ;; fire at player
  239.                  (if (and (< (distx) 100) (> (distx) 10) (eq (random 5) 0))
  240.                  (set_aistate 4)  ;; wait for pounce
  241.  
  242.                    (if (and (> (distx) 140)
  243.                     (not_ant_congestion)
  244.                     (not (will_fall_if_jump)))
  245.                    (set_aistate 6)
  246.  
  247.                  (if (> (direction) 0)
  248.                      (if (and (not_ant_congestion) (blocked_right (no_fall_move 1 0 0)))
  249.                      (set_direction -1))
  250.                    (if (and (not_ant_congestion) (blocked_left (no_fall_move -1 0 0)))
  251.                        (set_direction 1)))))))
  252.                (progn
  253.                  (set_direction (toward))
  254.                  (set_state turn_around)
  255.                  (set_aistate 9)))))
  256.           
  257.           (4 ;; wait for pounce
  258.            (if (ant_dodge) T
  259.              (progn
  260.                (set_state pounce_wait)
  261.                (move 0 0 0)
  262.                (if (> (state_time) (alien_wait_time))
  263.                (progn
  264.                  (play_sound ASLASH_SND 127 (x) (y))
  265.                  (set_state stopped)
  266.                  (go_state 6))))))
  267.  
  268.           (6 ;; jump          
  269.            (setq need_to_dodge 0)
  270.            (if (blocked_down (move (direction) -1 0))
  271.                (progn
  272.              (set_aistate 2))))
  273.  
  274.           (8 ;; fire at player
  275.            (if (ant_dodge) T             
  276.              (if (eq (state) fire_wait)
  277.              (if (next_picture)
  278.                  T
  279.                (progn
  280.                  (fire_at_player)
  281.                  (set_state stopped)
  282.                  (set_aistate 2)))
  283.                (set_state fire_wait))))
  284.  
  285.           (12 ;; jump to roof
  286.            (setq need_to_dodge 0)
  287.            (set_state jump_up)
  288.            (set_yvel (+ (yvel) 1))
  289.            (set_xacel 0)
  290.            (let ((top (- (y) 31))
  291.              (old_yvel (yvel))
  292.              (new_top (+ (- (y) 31) (yvel))))
  293.              (let ((y2 (car (cdr (see_dist (x) top (x) new_top)))))
  294.                (try_move 0 (- y2 top) nil)
  295.                (if (not (eq y2 new_top))
  296.                (if (> old_yvel 0)
  297.                  (progn
  298.                    (set_state stopped)
  299.                    (set_aistate 2))
  300.                (progn
  301.                  (set_state top_walk)
  302.                  (set_aistate 13)))))))
  303.  
  304.           (13 ;; roof walking
  305.            (scream_check)
  306.            (if (or (and (< (y) (with_object (bg) (y))) 
  307.                 (< (distx) 10) (eq (random 8) 0)) 
  308.                (eq need_to_dodge 1))  ;; shooting at us, fall down
  309.                (progn
  310.              (set_gravity 1)
  311.              (set_state run_jump)
  312.              (go_state 6))
  313.              (progn
  314.                (if (not (eq (facing) (toward)))        ;; run toward player
  315.                (set_direction (- 0 (direction))))
  316.                (if (and (< (distx) 120) (eq (random 5) 0))
  317.                (progn
  318.                  (set_state ceil_fire)
  319.                  (go_state 14))
  320.              (let ((xspeed (if (> (direction) 0) (get_ability run_top_speed)
  321.                      (- 0 (get_ability run_top_speed)))))
  322.                (if (and (can_see (x) (- (y) 31) (+ (x) xspeed) (- (y) 31) nil)
  323.                     (not (can_see (+ (x) xspeed) (- (y) 31) 
  324.                           (+ (x) xspeed) (- (y) 32) nil)))
  325.                    (progn
  326.                  (set_x (+ (x) xspeed))
  327.                  (if (not (next_picture)) 
  328.                      (set_state top_walk)))
  329.                  (set_aistate 1)))))))
  330.  
  331.     
  332.           (14 ;; cieling shoot
  333.            (if (next_picture)
  334.                T
  335.              (progn
  336.                (fire_at_player)
  337.                (set_state top_walk)
  338.                (set_aistate 13))))
  339.  
  340.           )))
  341.       
  342.       T)
  343. */   
  344.  
  345.  
  346. (defun create_dead_parts (array part_num type)
  347.   (let ((dir  (direction))
  348.     (rand (rand_on)))
  349.     (with_object (add_object (aref array part_num) (x) (y))
  350.            (progn (set_aitype type)
  351.               (set_xvel (* dir (random 10)))
  352.               (set_yvel (- 0 (random 25)))))
  353.     (with_object (add_object (aref array (+ part_num 1)) (x) (y))
  354.            (progn (set_aitype type)
  355.               (set_xvel (* dir (random 10)))
  356.               (set_yvel (- 0 (random 25)))))
  357.     (with_object (add_object (aref array (+ part_num 2)) (x) (y))
  358.            (progn (set_aitype type)
  359.               (next_picture)                        ;; unsync the animations
  360.               (set_xvel (* dir (random 10)))
  361.               (set_yvel (- 0 (random 25)))))
  362.     (with_object (add_object (aref array (+ part_num 2)) (x) (y))
  363.            (progn (set_aitype type)
  364.               (next_picture)
  365.               (next_picture)
  366.               (set_xvel (* dir (random 10)))
  367.               (set_yvel (- 0 (random 25)))))
  368.     (with_object (add_object (aref array (+ part_num 2)) (x) (y))
  369.            (progn (set_aitype type)
  370.               (next_picture)
  371.               (next_picture)
  372.               (next_picture)
  373.               (set_xvel (* dir (random 10)))
  374.               (set_yvel (- 0 (random 25)))))
  375.     (set_rand_on rand)))   ;; restore random table, in case this didn't get called because of frame panic
  376.  
  377.  
  378. (enum 'decay_part
  379.       'flaming_part
  380.       'electric_part
  381.       'normal_part)
  382.       
  383. (defun get_dead_part (from)
  384.   (if from
  385.       (let ((type (with_object from (otype))))
  386.     (if (or (eq type GRENADE) (eq type ROCKET) (eq type FIREBOMB))
  387.         flaming_part
  388.       (if (or (eq type PLASMAGUN_BULLET) (eq type LSABER_BULLET))
  389.           electric_part
  390.         normal_part)))
  391.     normal_part)
  392.  
  393. )
  394.  
  395.  
  396. (defun ant_damage (amount from hitx hity push_xvel push_yvel)  ; transfer damage to lower half
  397.  
  398.   (if (and (not (eq (state) dead))
  399.        (or (not from) 
  400.            (with_object from (if (eq (total_objects) 0) 
  401.                      (not (eq (otype) ANT_ROOF))
  402.                    (with_object (get_object 0) (not (eq (otype) ANT_ROOF)))))))
  403.       (if (not (eq (aistate) 15))
  404.       (progn
  405.         (if (eq (random 2) 0)
  406.         (set_state flinch_up)
  407.           (set_state flinch_down))
  408.         (damage_fun amount from hitx hity push_xvel push_yvel)
  409.         (play_sound APAIN_SND 127 (x) (y))
  410.         (setq need_to_dodge 1)        
  411.         (if (<= (hp) 0)
  412.         (progn
  413.           (if (eq (aitype) 0)
  414.               (play_sound (aref ASML_DEATH (random 2)) 127 (x) (y))
  415.             (play_sound (aref ALRG_DEATH (random 3)) 127 (x) (y)))
  416.  
  417.           (set_state dead)
  418.           (if (eq (random (select difficulty
  419.                       ('easy 2)
  420.                       ('medium 5)
  421.                       ('hard   8)
  422.                       ('extreme 20))) 0)
  423.               (if (eq (random 4) 0)
  424.               (add_object (aitype_to_ammo (+ (aitype) 1)) (x) (y)))
  425.             (add_object (aitype_to_ammo (aitype)) (x) (y)))
  426.           (create_dead_parts ant_dead_parts (* (get_dead_part from) 3) (aitype)))
  427.           )))))
  428.  
  429. (defun ant_cons ()
  430.   (set_state hanging)
  431.   (setq no_see_time 300))
  432.  
  433. (defun ant_ct ()
  434.   (select (aitype)
  435.       (0 (set_hp 15))
  436.       (1 (set_hp 50))
  437.       (2 (set_hp 25))
  438.       (3 (set_hp 35))
  439.       (4 (set_hp 35))
  440.       (5 (set_hp 20))
  441.  
  442.       ))
  443.  
  444.  
  445. (defun ant_draw ()
  446.   (if (eq 0 (aitype))
  447.       (draw)
  448.     (draw_tint (aref ant_tints (aitype)))))
  449.  
  450. (def_char ANT_ROOF
  451.   (vars need_to_dodge
  452.     no_see_time
  453.     hide_flag)
  454.   (fields
  455.       ("hide_flag"    ant_hide)
  456.       ("fade_count"   ai_fade)
  457.       ("aitype"       ai_type)
  458.       ("hp"           ai_health)
  459.       ("aistate"      ai_state))
  460.   (range 250 20)
  461.   (draw_range 40 40)
  462.   (funs (ai_fun     ant_ai)    
  463.     (draw_fun   ant_draw)
  464.     (constructor ant_cons)
  465.     (type_change_fun ant_ct)
  466.     (get_cache_list_fun ant_cache)
  467.     (damage_fun ant_damage))
  468.  
  469.   (abilities (run_top_speed   7)
  470.          (start_hp       20)
  471.          (stop_acel      20)
  472.          (start_acel     20)
  473.          (jump_yvel      -4)
  474.          (jump_xvel      20)
  475.          (push_xrange     1)
  476.          (jump_top_speed 20))
  477.   
  478.   (flags (hurtable  T)
  479.      (force_health T))
  480.  
  481.   (states "art/ant.spe" 
  482.       (hanging (rep "ant" 2))
  483.  
  484.       (fall_start "affc0001.pcx")
  485.       (falling    "affc0002.pcx")
  486.       
  487.       (stopped "awlk0001.pcx")
  488.       (running (seq "awlk" 1 10))
  489.       (landing (seq "acff" 1 4))
  490.       (pounce_wait "acff0001.pcx")
  491.       (turn_around (seq "atrn" 1 5))
  492.  
  493.       (run_jump "dive")
  494.       (run_jump_fall "dive")
  495.       (start_run_jump "dive")
  496.       (fire_wait (seq "wait" 1 3))
  497.  
  498.       (ceil_fire (seq "cfire" 1 3))
  499.       (top_walk  (seq "awkc" 1 10))
  500.       (flinch_up (rep "afh10001.pcx" 2))
  501.       (flinch_down (rep "afh20001.pcx" 2))
  502.       (blown_back_dead     "adib0009.pcx")
  503.       (jump_up            "ajmp.pcx")
  504.       (hiding             "hidden")
  505.       (dead             "hidden")
  506.       (weapon_fire  (seq "asht" 2 5))))
  507.  
  508.  
  509. (def_char HIDDEN_ANT
  510.   (funs (ai_fun     ant_ai)
  511.     (draw_fun   dev_draw))
  512.   (flags (unlistable T))
  513.   (vars need_to_dodge
  514.     no_see_time
  515.     hide_flag)
  516.   (states "art/ant.spe" (stopped "hidden")))
  517.  
  518.   
  519.  
  520.  
  521. (defun crack_ai ()
  522.   (if (eq (aistate) 0)
  523.       (if (if (eq (total_objects) 0)
  524.           (and (< (distx) 50) (< (disty) 70))
  525.         (with_object (get_object 0) (not (eq (aistate) 0))))
  526.       (set_aistate 1))
  527.     (select (current_frame)
  528.         (4 nil)
  529.         (3
  530.          (let ((d (direction))
  531.            (type (aitype)))
  532.            (if (or (eq create_total 0) (eq create_total 1))          
  533.            (set_current_frame 4)
  534.          (progn
  535.            (setq create_total (- create_total 1))
  536.            (set_current_frame 0)))
  537.            (with_object (add_object_after ANT_ROOF (+ (x) (* (direction) 20)) (y))
  538.                 (progn
  539.                   (set_aitype type)
  540.                   (set_direction d)
  541.                   (set_xvel (* d 20))
  542.                   (set_state run_jump)
  543.                   (set_aistate 6)))
  544.            ))
  545.         (0 (next_picture))
  546.         (1 (next_picture))
  547.         (2 (next_picture))))
  548.   T)
  549.         
  550.  
  551. (defun crack_cons ()
  552.   (setq create_total 1)
  553.   (set_aitype 1))
  554.  
  555.  
  556. (def_char ANT_CRACK
  557.   (funs (ai_fun crack_ai)
  558.     (draw_fun ant_draw)
  559.     (get_cache_list_fun ant_cache)
  560.     (constructor crack_cons))
  561.   (range 250 0)
  562.   (vars create_total)
  563.   (fields ("create_total"  ant_total)
  564.       ("aitype"        ant_type))
  565.   (states "art/ant.spe"
  566.       (stopped (seq "aisw" 2 6))))
  567.  
  568.  
  569. (defun head_ai ()
  570.   (select (aistate)
  571.       (0 ;; falling
  572.        (next_picture)
  573.        (set_yvel (+ (yvel) 3))
  574.        (bounce_move T T T '(progn (set_state dieing) (set_aistate 1)) T)
  575.        (or (< (state_time) 15)
  576.            (not (frame_panic))))          
  577.       (1 ;; hit the ground
  578.        nil)
  579.       ))
  580.  
  581. (setq ant_dead_parts (make-array (* 3 4) :initial-contents 
  582.                  '((AD_1  "adbn") (AD_2  "adha") (AD_3  "adla")     ; disapear
  583.                    (AD_4  "adaf") (AD_5  "adah") (AD_6  "adlf")     ; flaming
  584.                    (AD_7  "adbe") (AD_8  "adhe") (AD_9  "adle")     ; electrical
  585.                    (AD_10 "adan") (AD_11 "adhn") (AD_12 "adln"))))  ; normal
  586.  
  587.  
  588. (defun ant_cache (type)  ;; cache in the ant (from crack) and the dead body parts and the ant tints
  589.   (list
  590.    (list ANT_ROOF AD_1 AD_2 AD_3 AD_4 AD_5 AD_6 AD_7 AD_8 AD_9 AD_10 AD_11 AD_12)
  591.    (list (aref ant_tints 0) (aref ant_tints 1) (aref ant_tints 2) (aref ant_tints 3)
  592.      (aref ant_tints 4) (aref ant_tints 5) (aref ant_tints 6) (aref ant_tints 7))))
  593.  
  594.  
  595.  
  596. (defun make_dead_part (sym base frames filename draw)
  597.   (eval `(def_char ,sym
  598.        (range 100 100)
  599.        (funs (ai_fun    head_ai)
  600.          (draw_fun  ,draw))
  601.        (flags (unlistable T)
  602.           (add_front T))
  603.        (states filename
  604.           (stopped (seq base 1 ,frames))))))
  605.  
  606.  
  607. (do ((i 0 (setq i (+ i 1))))
  608.        ((>= i 12) nil)
  609.        (setq (aref ant_dead_parts i) 
  610.          (make_dead_part (car (aref ant_dead_parts i))
  611.                  (car (cdr (aref ant_dead_parts i))) 4 "art/ant.spe" 'ant_draw)))
  612.  
  613.  
  614. (setq load_warn nil)
  615. (if (not (load "register/ant.lsp"))
  616.     (setq BOSS_ANT ANT_ROOF))
  617. (setq load_warn T)
  618.  
  619.  
  620.  
  621.