;;-*-Lisp-*-
(in-package goal)

;; name: ctymark-obs.gc
;; name in dgo: ctymark-obs
;; dgos: CMA, CMB

;; DECOMP BEGINS

(defpartgroup group-mcrate-explode
  :id 1006
  :duration (seconds 3.335)
  :flags (use-local-clock unk-6)
  :bounds (static-bspherem 0 0 0 12)
  :rotate ((degrees 0) (degrees 90) (degrees 0))
  :parts ((sp-item 4354 :fade-after (meters 40) :falloff-to (meters 80) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.035))
    (sp-item 4355 :fade-after (meters 100) :falloff-to (meters 120) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4356 :fade-after (meters 90) :falloff-to (meters 110) :flags (bit7) :period (seconds 4) :length (seconds 0.135))
    (sp-item 4357 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4358 :fade-after (meters 50) :period (seconds 4) :length (seconds 0.017))
    )
  )

(defpart 4356
  :init-specs ((:texture (bigpuff effects))
    (:num 16.0 3.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 128.0)
    (:g 64.0 32.0)
    (:b 0.0 32.0)
    (:a 16.0 8.0)
    (:vel-y (meters 0.06666667) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4357
  :init-specs ((:texture (bigpuff effects))
    (:num 8.0 3.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.05) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4358
  :init-specs ((:texture (glow-soft effects))
    (:num 1.0)
    (:y (meters 1))
    (:scale-x (meters 4))
    (:rot-x (degrees 0.675))
    (:scale-y (meters 6))
    (:r 255.0)
    (:g 196.0)
    (:b 128.0)
    (:a 64.0)
    (:omega (degrees 1136.25))
    (:scalevel-x (meters 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -2.56)
    (:timer (seconds 0.085))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpart 4355
  :init-specs ((:texture (wood-plain-debris ctymarka-sprite))
    (:num 12.0 6.0)
    (:y (meters 0) (meters 2))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 0.1) (meters 0.5))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.1) (meters 0.5))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.083333336) (meters 0.05))
    (:scalevel-x (meters -0.00022222222))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:scalevel-y (meters -0.00022222222))
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4354
  :init-specs ((:texture (wood-plain-debris ctymarka-sprite))
    (:num 6.0 3.0)
    (:y (meters 0) (meters 2))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 0.3) (meters 2))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.3) (meters 0.6))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.1) (meters 0.06666667))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 0.4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 15) (degrees 150))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-mbasket-a-explode
  :id 1007
  :duration (seconds 3.335)
  :flags (use-local-clock unk-6)
  :bounds (static-bspherem 0 0 0 12)
  :rotate ((degrees 0) (degrees 90) (degrees 0))
  :parts ((sp-item 4360 :fade-after (meters 40) :falloff-to (meters 80) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.035))
    (sp-item 4361 :fade-after (meters 100) :falloff-to (meters 120) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4362 :fade-after (meters 40) :falloff-to (meters 60) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4363 :fade-after (meters 100) :falloff-to (meters 120) :flags (bit7) :period (seconds 4) :length (seconds 0.1))
    (sp-item 4364 :fade-after (meters 90) :falloff-to (meters 110) :flags (bit7) :period (seconds 4) :length (seconds 0.135))
    (sp-item 4365 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4366 :fade-after (meters 50) :period (seconds 4) :length (seconds 0.017))
    )
  )

(defpart 4363
  :init-specs ((:texture (specs effects))
    (:num 32.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 2) (meters 0.5))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y :copy scale-x)
    (:r 64.0 64.0)
    (:g :copy r)
    (:b 128.0 64.0)
    (:a 92.0 32.0)
    (:vel-y (meters 0.033333335) (meters 0.06666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:fade-a -0.16 -0.16)
    (:accel-y (meters -0.0016666667) (meters -0.00083333335))
    (:friction 0.95 0.03)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 0) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4362
  :init-specs ((:texture (lakedrop effects))
    (:num 32.0)
    (:y (meters 0.5) (meters 1))
    (:scale-x (meters 0.1) (meters 0.05))
    (:rot-x 4)
    (:scale-y :copy scale-x)
    (:r 32.0 32.0)
    (:g :copy r)
    (:b 64.0 32.0)
    (:a 128.0)
    (:omega (degrees 0.01575) (degrees 0.009))
    (:vel-y (meters 0.033333335) (meters 0.083333336))
    (:accel-y (meters -0.003) (meters -0.00066666666))
    (:friction 0.96 0.02)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-21))
    (:userdata 30720.0)
    (:func 'check-water-level-drop-motion)
    (:next-time (seconds 0) (seconds 0.58))
    (:next-launcher 63)
    (:conerot-x (degrees 0) (degrees 85))
    (:conerot-y (degrees 0) (degrees 3600))
    (:rotate-y (degrees 0))
    (:conerot-radius (meters 0) (meters 1))
    )
  )

(defpart 4364
  :init-specs ((:texture (bigpuff effects))
    (:num 6.0 2.0)
    (:y (meters 0) (meters 2))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 64.0 64.0)
    (:g 128.0 128.0)
    (:b 255.0)
    (:a 16.0 8.0)
    (:vel-y (meters 0.06666667) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00083333335) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4365
  :init-specs ((:texture (bigpuff effects))
    (:num 4.0 3.0)
    (:y (meters 0) (meters 4))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.05) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4366
  :init-specs ((:texture (glow-soft effects))
    (:num 1.0)
    (:y (meters 2))
    (:scale-x (meters 7))
    (:rot-x (degrees 0.675))
    (:scale-y (meters 5))
    (:r 64.0)
    (:g 196.0)
    (:b 255.0)
    (:a 64.0)
    (:omega (degrees 1136.25))
    (:scalevel-x (meters 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -2.56)
    (:timer (seconds 0.085))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpart 4361
  :init-specs ((:texture (clay-pot-debris-01 ctymarka-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 12.0 6.0)
    (:y (meters 0.5) (meters 4))
    (:z (meters -1.5) 1 (meters 3))
    (:scale-x (meters 0.2) (meters 0.3))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.2) (meters 0.3))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.083333336) (meters 0.05))
    (:scalevel-x (meters -0.00022222222))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:scalevel-y (meters -0.00022222222))
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x64f01c00 #x64f01d00))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4360
  :init-specs ((:texture (clay-pot-debris-01 ctymarka-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 6.0 3.0)
    (:y (meters 0.5) (meters 4))
    (:z (meters -1.5) 1 (meters 3))
    (:scale-x (meters 0.5) (meters 0.5))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.5) (meters 0.5))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.1) (meters 0.06666667))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x64f01c00 #x64f01d00))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 0.4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 15) (degrees 150))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-mbasket-b-explode
  :id 1008
  :duration (seconds 3.335)
  :flags (use-local-clock unk-6)
  :bounds (static-bspherem 0 0 0 12)
  :rotate ((degrees 0) (degrees 90) (degrees 0))
  :parts ((sp-item 4367 :fade-after (meters 40) :falloff-to (meters 80) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.035))
    (sp-item 4368 :fade-after (meters 100) :falloff-to (meters 120) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4369 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4370 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4371 :fade-after (meters 100) :falloff-to (meters 120) :flags (bit7) :period (seconds 4) :length (seconds 0.1))
    (sp-item 4372 :fade-after (meters 30) :falloff-to (meters 40) :flags (is-3d) :period (seconds 4) :length (seconds 0.335))
    (sp-item 4373 :fade-after (meters 50) :period (seconds 4) :length (seconds 0.017))
    )
  )

(defpart 4371
  :init-specs ((:texture (specs effects))
    (:num 32.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 1) (meters 1))
    (:r 255.0)
    (:g :copy r)
    (:b :copy g)
    (:a 92.0 32.0)
    (:vel-y (meters 0.033333335) (meters 0.06666667))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:fade-a -0.16 -0.16)
    (:accel-y (meters -0.0016666667) (meters -0.00083333335))
    (:friction 0.95 0.03)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 0) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4372
  :init-specs ((:texture (specs effects))
    (:num 2.0)
    (:x (meters -3) (meters 6))
    (:y (meters 0.05))
    (:z (meters -3) (meters 6))
    (:scale-x (meters 1.5) (meters 1))
    (:rot-y (degrees 0) (degrees 3600))
    (:scale-y (meters 1.5) (meters 1))
    (:r 255.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:fade-a 3.2)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12 left-multiply-quat))
    (:next-time (seconds 0.135))
    (:next-launcher 4374)
    )
  )

(defpart 4374
  :init-specs ((:fade-a 0.0) (:next-time (seconds 1) (seconds 0.997)) (:next-launcher 4375))
  )

(defpart 4375
  :init-specs ((:fade-a -0.21333334 -0.21333334))
  )

(defpart 4369
  :init-specs ((:texture (bigpuff effects))
    (:num 6.0 3.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 192.0 64.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.06666667) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4370
  :init-specs ((:texture (bigpuff effects))
    (:num 12.0 3.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.05) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4373
  :init-specs ((:texture (glow-soft effects))
    (:num 1.0)
    (:y (meters 0.5))
    (:scale-x (meters 3))
    (:rot-x (degrees 0.675))
    (:scale-y (meters 7))
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 64.0)
    (:omega (degrees 1136.25))
    (:scalevel-x (meters 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -2.56)
    (:timer (seconds 0.085))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpart 4368
  :init-specs ((:texture (basket-debris-01 ctymarka-sprite))
    (:num 6.0 3.0)
    (:y (meters 0.5) (meters 0.5))
    (:z (meters -1.5) 1 (meters 3))
    (:scale-x (meters 0.2) (meters 0.3))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.2) (meters 0.3))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.083333336) (meters 0.05))
    (:scalevel-x (meters -0.00022222222))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:scalevel-y (meters -0.00022222222))
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4367
  :init-specs ((:texture (basket-debris-01 ctymarka-sprite))
    (:num 4.0 2.0)
    (:y (meters 0.5) (meters 0.5))
    (:z (meters -1.5) 1 (meters 3))
    (:scale-x (meters 0.5) (meters 0.5))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.5) (meters 0.5))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.1) (meters 0.06666667))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 0.4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 15) (degrees 150))
    (:rotate-y (degrees 0))
    )
  )

;; WARN: Return type mismatch number vs none.
(defun check-market-piece-ground ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
  "TODO"
  (if (and (>= 35225.6 (-> arg2 launchrot y)) (>= 0.0 (-> arg1 vel-sxvel y)))
      (set! (-> arg2 launchrot y) 35225.6)
      (set! (-> arg1 next-time)
            (the-as uint (* (max 1 (the-as int (-> *display* clock (-> arg1 clock-index) sparticle-data x))) 2))
            )
      )
  (none)
  )

(defpart 4359
  :init-specs ((:rot-x (degrees 0))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0))
    (:vel-y (meters 0))
    (:rotvel-x (degrees 0))
    (:rotvel-y (degrees 0))
    (:rotvel-z (degrees 0))
    (:accel-y (meters 0))
    (:friction 0.8 0.1)
    (:timer (seconds 4))
    (:next-time (seconds 0.5) (seconds 0.997))
    (:next-launcher 4376)
    )
  )

(defpart 4376
  :init-specs ((:fade-a -0.21333334 -0.21333334) (:flags (sp-cpuinfo-flag-2 left-multiply-quat)))
  )

(defpartgroup group-msack-a-explode
  :id 1009
  :duration (seconds 3.335)
  :flags (use-local-clock unk-6)
  :bounds (static-bspherem 0 0 0 12)
  :rotate ((degrees 0) (degrees 90) (degrees 0))
  :parts ((sp-item 4377 :fade-after (meters 40) :falloff-to (meters 80) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.035))
    (sp-item 4378 :fade-after (meters 100) :falloff-to (meters 120) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4379 :fade-after (meters 100) :falloff-to (meters 120) :flags (bit7) :period (seconds 4) :length (seconds 0.1))
    (sp-item 4380 :fade-after (meters 30) :falloff-to (meters 40) :flags (is-3d) :period (seconds 4) :length (seconds 0.335))
    (sp-item 4381 :fade-after (meters 90) :falloff-to (meters 110) :flags (bit7) :period (seconds 4) :length (seconds 0.135))
    (sp-item 4382 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4383 :fade-after (meters 50) :period (seconds 4) :length (seconds 0.017))
    )
  )

(defpart 4379
  :init-specs ((:texture (straw-bit ctymarka-sprite))
    (:num 32.0)
    (:y (meters 0) (meters 1))
    (:z (meters -1.5) (meters 3))
    (:scale-x (meters 0.1) (meters 0.05))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.3) (meters 0.6))
    (:r 128.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 96.0 32.0)
    (:vel-y (meters 0.033333335) (meters 0.06666667))
    (:rotvel-z (degrees -1.2) (degrees 2.4))
    (:scalevel-y (meters 0.00033333333))
    (:fade-a -0.16 -0.16)
    (:accel-y (meters -0.0016666667) (meters -0.00083333335))
    (:friction 0.95 0.03)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 0) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4380
  :init-specs ((:texture (straw-ground ctymarka-sprite))
    (:num 1.0 1.0)
    (:x (meters -3) (meters 6))
    (:y (meters 0.05))
    (:z (meters -3) (meters 6))
    (:scale-x (meters 1.5) (meters 1.5))
    (:rot-y (degrees 0) (degrees 3600))
    (:scale-y (meters 1.5) (meters 1.5))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 0.0)
    (:fade-a 1.6)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12 left-multiply-quat))
    (:next-time (seconds 0.2) (seconds 0.065))
    (:next-launcher 4374)
    )
  )

(defpart 4381
  :init-specs ((:texture (bigpuff effects))
    (:num 8.0 3.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 150.0 60.0)
    (:g 96.0 64.0)
    (:b 0.0 32.0)
    (:a 16.0 8.0)
    (:vel-y (meters 0.06666667) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4382
  :init-specs ((:texture (bigpuff effects))
    (:num 6.0 3.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 2) (meters 2))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 2) (meters 2))
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.05) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4383
  :init-specs ((:texture (glow-soft effects))
    (:num 1.0)
    (:y (meters 1))
    (:scale-x (meters 5))
    (:rot-x (degrees 0.675))
    (:scale-y (meters 4.5))
    (:r 255.0)
    (:g 255.0)
    (:b 32.0)
    (:a 64.0)
    (:omega (degrees 1136.25))
    (:scalevel-x (meters 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -2.56)
    (:timer (seconds 0.085))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpart 4378
  :init-specs ((:texture (cotton-wrap-debris ctymarka-sprite))
    (:num 8.0 3.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 0.2) (meters 0.3))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.2) (meters 0.3))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.083333336) (meters 0.05))
    (:scalevel-x (meters -0.00022222222))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:scalevel-y (meters -0.00022222222))
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4377
  :init-specs ((:texture (cotton-wrap-debris ctymarka-sprite))
    (:num 4.0 2.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 0.5) (meters 0.5))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.5) (meters 0.5))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.1) (meters 0.06666667))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 0.4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 15) (degrees 150))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-msack-b-explode
  :id 1010
  :duration (seconds 3.335)
  :flags (use-local-clock unk-6)
  :bounds (static-bspherem 0 0 0 12)
  :rotate ((degrees 0) (degrees 90) (degrees 0))
  :parts ((sp-item 4384 :fade-after (meters 100) :falloff-to (meters 120) :flags (is-3d bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4385 :fade-after (meters 100) :falloff-to (meters 120) :flags (bit7) :period (seconds 4) :length (seconds 0.1))
    (sp-item 4386 :fade-after (meters 90) :falloff-to (meters 110) :flags (bit7) :period (seconds 4) :length (seconds 0.135))
    (sp-item 4387 :fade-after (meters 60) :falloff-to (meters 90) :flags (bit7) :period (seconds 4) :length (seconds 0.05))
    (sp-item 4388 :fade-after (meters 50) :period (seconds 4) :length (seconds 0.017))
    )
  )

(defpart 4385
  :init-specs ((:texture (cherry ctymarka-sprite))
    (:num 32.0)
    (:y (meters 0) (meters 1))
    (:z (meters -0.5) (meters 1))
    (:scale-x (meters 0.2) (meters 0.1))
    (:scale-y :copy scale-x)
    (:r 128.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.06666667) (meters 0.06666667))
    (:fade-a -0.16 -0.16)
    (:accel-y (meters -0.0033333334) (meters -0.00083333335))
    (:friction 0.95 0.03)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 3.335))
    (:next-launcher 4389)
    (:conerot-x (degrees 0) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4389
  :init-specs ((:vel-y (meters 0))
    (:rotvel-z (degrees 0))
    (:accel-y (meters 0))
    (:friction 0.8 0.1)
    (:timer (seconds 5.667))
    (:next-time (seconds 1.5) (seconds 0.997))
    (:next-launcher 4376)
    )
  )

(defpart 4386
  :init-specs ((:texture (bigpuff effects))
    (:num 6.0 2.0)
    (:y (meters 0) (meters 1))
    (:z (meters -0.5) (meters 1))
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 1) (meters 1))
    (:r 150.0 60.0)
    (:g 0.0 64.0)
    (:b 0.0)
    (:a 16.0 8.0)
    (:vel-y (meters 0.033333335) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4387
  :init-specs ((:texture (bigpuff effects))
    (:num 5.0 2.0)
    (:y (meters 0) (meters 1))
    (:z (meters -0.5) (meters 1))
    (:scale-x (meters 1) (meters 1))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 1) (meters 1))
    (:r 0.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 16.0 8.0)
    (:vel-y (meters 0.033333335) (meters 0.033333335))
    (:scalevel-x (meters 0) (meters 0.0033333334))
    (:rotvel-z (degrees -0.2) (degrees 0.4))
    (:scalevel-y (meters 0) (meters 0.0033333334))
    (:fade-a -0.02 -0.02)
    (:accel-y (meters -0.00033333333) (meters -0.00083333335))
    (:friction 0.82 0.07)
    (:timer (seconds 4))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:conerot-x (degrees 30) (degrees 50.000004))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(defpart 4388
  :init-specs ((:texture (glow-soft effects))
    (:num 1.0)
    (:y (meters 1))
    (:scale-x (meters 3))
    (:rot-x (degrees 0.675))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 64.0)
    (:b 64.0)
    (:a 64.0)
    (:omega (degrees 1136.25))
    (:scalevel-x (meters 0.2))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -2.56)
    (:timer (seconds 0.085))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:userdata 1024.0)
    )
  )

(defpart 4384
  :init-specs ((:texture (cotton-wrap-debris ctymarka-sprite))
    (:num 6.0 2.0)
    (:y (meters 0) (meters 3))
    (:z (meters -1) (meters 2))
    (:scale-x (meters 0.1) (meters 0.2))
    (:rot-x (degrees 0) (degrees 3600))
    (:rot-y (degrees 0) (degrees 3600))
    (:rot-z (degrees 0) (degrees 3600))
    (:scale-y (meters 0.1) (meters 0.2))
    (:r 64.0 128.0)
    (:g :copy r)
    (:b :copy g)
    (:a 128.0)
    (:vel-y (meters 0.083333336) (meters 0.05))
    (:scalevel-x (meters -0.00022222222))
    (:rotvel-x (degrees -4.8) (degrees 9.6))
    (:rotvel-y (degrees -4.8) (degrees 9.6))
    (:rotvel-z (degrees -4.8) (degrees 9.6))
    (:scalevel-y (meters -0.00022222222))
    (:fade-a -0.21333334 -0.21333334)
    (:accel-y (meters -0.0033333334) (meters -0.0016666667))
    (:friction 0.92 0.07)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
    (:func 'check-market-piece-ground)
    (:next-time (seconds 4))
    (:next-launcher 4359)
    (:conerot-x (degrees 0) (degrees 110))
    (:conerot-y (degrees 0) (degrees 180))
    (:rotate-y (degrees 0))
    )
  )

(deftype market-object (process-focusable)
  ((part-explode    basic)
   (explode-matrix  matrix  :inline)
   )
  (:state-methods
    idle
    die
    )
  )


(defstate idle (market-object)
  :virtual #t
  :event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
    (case message
      (('attack)
       (let ((attack-info (-> block param 1)))
         (when proc
           (let ((attacking-proc (find-offending-process-focusable proc (the-as attack-info attack-info))))
             (when attacking-proc
               (forward-up-nopitch->inv-matrix
                 (-> self explode-matrix)
                 (vector-! (new 'stack-no-clear 'vector) (-> attacking-proc root trans) (-> self root trans))
                 *up-vector*
                 )
               (set! (-> self explode-matrix trans quad) (-> self root trans quad))
               )
             )
           )
         )
       (go-virtual die)
       )
      )
    )
  :enter #f
  :exit #f
  :trans #f
  :code sleep-code
  :post #f
  )

(defstate die (market-object)
  :virtual #t
  :code (behavior ()
    (logior! (-> self focus-status) (focus-status dead))
    (let ((root-prim (-> self root root-prim)))
      (set! (-> root-prim prim-core collide-as) (collide-spec))
      (set! (-> root-prim prim-core collide-with) (collide-spec))
      )
    0
    (logior! (-> self draw status) (draw-control-status no-draw))
    (process-spawn
      part-tracker
      :init part-tracker-init
      (-> self part-explode)
      0
      #f
      #f
      #f
      (-> self explode-matrix)
      :to self
      )
    (process-entity-status! self (entity-perm-status dead) #t)
    (suspend-for (seconds 5)
      )
    )
  )

(defskelgroup skel-market-basket-a market-basket-a market-basket-a-lod0-jg market-basket-a-idle-ja
              ((market-basket-a-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 2 0 2.5)
              )

(deftype market-basket-a (market-object)
  ()
  )


(defstate die (market-basket-a)
  :virtual #t
  :enter (behavior ()
    (sound-play "break-vase")
    )
  )

;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! ((this market-basket-a) (arg0 entity-actor))
  "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
   This commonly includes things such as:
   - stack size
   - collision information
   - loading the skeleton group / bones
   - sounds"
  (let ((cshape (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
    (let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
      (set! (-> prim-mesh prim-core collide-as) (collide-spec crate))
      (set! (-> prim-mesh prim-core action) (collide-action solid))
      (set! (-> prim-mesh transform-index) 3)
      (set-vector! (-> prim-mesh local-sphere) 0.0 7372.8 0.0 8192.0)
      (set! (-> cshape total-prims) (the-as uint 1))
      (set! (-> cshape root-prim) prim-mesh)
      )
    (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
    (let ((root-prim (-> cshape root-prim)))
      (set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
      (set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
      )
    (set! (-> cshape penetrated-by)
          (penetrate
            generic-attack
            lunge
            flop
            punch
            spin
            roll
            uppercut
            bonk
            tube
            vehicle
            flut-attack
            board
            mech-punch
            dark-punch
            dark-giant
            knocked
            )
          )
    (set! (-> this root) cshape)
    )
  (process-drawable-from-entity! this arg0)
  (logclear! (-> this mask) (process-mask actor-pause))
  (logior! (-> this mask) (process-mask crate))
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-market-basket-a" (the-as (pointer uint32) #f)))
    (the-as pair 0)
    )
  (set! (-> this part-explode) group-mbasket-a-explode)
  (set! (-> this draw light-index) (the-as uint 10))
  (transform-post)
  (go (method-of-object this idle))
  (none)
  )

(defskelgroup skel-market-basket-b market-basket-b market-basket-b-lod0-jg market-basket-b-idle-ja
              ((market-basket-b-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 0 0 2)
              )

(deftype market-basket-b (market-object)
  ()
  )


(defstate die (market-basket-b)
  :virtual #t
  :enter (behavior ()
    (sound-play "break-flour")
    )
  )

;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! ((this market-basket-b) (arg0 entity-actor))
  "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
   This commonly includes things such as:
   - stack size
   - collision information
   - loading the skeleton group / bones
   - sounds"
  (let ((cshape (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
    (let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
      (set! (-> prim-mesh prim-core collide-as) (collide-spec crate))
      (set! (-> prim-mesh prim-core action) (collide-action solid))
      (set! (-> prim-mesh transform-index) 3)
      (set-vector! (-> prim-mesh local-sphere) 0.0 7372.8 0.0 8192.0)
      (set! (-> cshape total-prims) (the-as uint 1))
      (set! (-> cshape root-prim) prim-mesh)
      )
    (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
    (let ((root-prim (-> cshape root-prim)))
      (set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
      (set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
      )
    (set! (-> cshape penetrated-by)
          (penetrate
            generic-attack
            lunge
            flop
            punch
            spin
            roll
            uppercut
            bonk
            tube
            vehicle
            flut-attack
            board
            mech-punch
            dark-punch
            dark-giant
            knocked
            )
          )
    (set! (-> this root) cshape)
    )
  (process-drawable-from-entity! this arg0)
  (logclear! (-> this mask) (process-mask actor-pause))
  (logior! (-> this mask) (process-mask crate))
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-market-basket-b" (the-as (pointer uint32) #f)))
    (the-as pair 0)
    )
  (set! (-> this part-explode) group-mbasket-b-explode)
  (set! (-> this draw light-index) (the-as uint 10))
  (transform-post)
  (go (method-of-object this idle))
  (none)
  )

(defskelgroup skel-market-crate market-crate market-crate-lod0-jg market-crate-idle-ja
              ((market-crate-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 0 0 2)
              )

(deftype market-crate (market-object)
  ()
  )


(defstate die (market-crate)
  :virtual #t
  :enter (behavior ()
    (sound-play "break-veg-wood")
    )
  )

;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! ((this market-crate) (arg0 entity-actor))
  "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
   This commonly includes things such as:
   - stack size
   - collision information
   - loading the skeleton group / bones
   - sounds"
  (let ((cshape (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
    (let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
      (set! (-> prim-mesh prim-core collide-as) (collide-spec crate))
      (set! (-> prim-mesh prim-core action) (collide-action solid))
      (set! (-> prim-mesh transform-index) 3)
      (set-vector! (-> prim-mesh local-sphere) 0.0 7372.8 0.0 8192.0)
      (set! (-> cshape total-prims) (the-as uint 1))
      (set! (-> cshape root-prim) prim-mesh)
      )
    (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
    (let ((root-prim (-> cshape root-prim)))
      (set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
      (set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
      )
    (set! (-> cshape penetrated-by)
          (penetrate
            generic-attack
            lunge
            flop
            punch
            spin
            roll
            uppercut
            bonk
            tube
            vehicle
            flut-attack
            board
            mech-punch
            dark-punch
            dark-giant
            knocked
            )
          )
    (set! (-> this root) cshape)
    )
  (process-drawable-from-entity! this arg0)
  (logclear! (-> this mask) (process-mask actor-pause))
  (logior! (-> this mask) (process-mask crate))
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-market-crate" (the-as (pointer uint32) #f)))
    (the-as pair 0)
    )
  (set! (-> this part-explode) group-mcrate-explode)
  (set! (-> this draw light-index) (the-as uint 10))
  (transform-post)
  (go (method-of-object this idle))
  (none)
  )

(defskelgroup skel-market-sack-a market-sack-a market-sack-a-lod0-jg market-sack-a-idle-ja
              ((market-sack-a-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 1 0 2)
              )

(deftype market-sack-a (market-object)
  ()
  )


(defstate die (market-sack-a)
  :virtual #t
  :enter (behavior ()
    (sound-play "break-crate")
    )
  )

;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! ((this market-sack-a) (arg0 entity-actor))
  "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
   This commonly includes things such as:
   - stack size
   - collision information
   - loading the skeleton group / bones
   - sounds"
  (let ((cshape (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
    (let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
      (set! (-> prim-mesh prim-core collide-as) (collide-spec crate))
      (set! (-> prim-mesh prim-core action) (collide-action solid))
      (set! (-> prim-mesh transform-index) 3)
      (set-vector! (-> prim-mesh local-sphere) 0.0 7372.8 0.0 8192.0)
      (set! (-> cshape total-prims) (the-as uint 1))
      (set! (-> cshape root-prim) prim-mesh)
      )
    (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
    (let ((root-prim (-> cshape root-prim)))
      (set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
      (set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
      )
    (set! (-> cshape penetrated-by)
          (penetrate
            generic-attack
            lunge
            flop
            punch
            spin
            roll
            uppercut
            bonk
            tube
            vehicle
            flut-attack
            board
            mech-punch
            dark-punch
            dark-giant
            knocked
            )
          )
    (set! (-> this root) cshape)
    )
  (process-drawable-from-entity! this arg0)
  (logclear! (-> this mask) (process-mask actor-pause))
  (logior! (-> this mask) (process-mask crate))
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-market-sack-a" (the-as (pointer uint32) #f)))
    (the-as pair 0)
    )
  (set! (-> this part-explode) group-msack-a-explode)
  (set! (-> this draw light-index) (the-as uint 10))
  (transform-post)
  (go (method-of-object this idle))
  (none)
  )

(defskelgroup skel-market-sack-b market-sack-b market-sack-b-lod0-jg market-sack-b-idle-ja
              ((market-sack-b-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 1 0 2)
              )

(deftype market-sack-b (market-object)
  ()
  )


(defstate die (market-sack-b)
  :virtual #t
  :enter (behavior ()
    (sound-play "break-veg-straw")
    )
  )

;; WARN: Return type mismatch object vs none.
(defmethod init-from-entity! ((this market-sack-b) (arg0 entity-actor))
  "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
   This commonly includes things such as:
   - stack size
   - collision information
   - loading the skeleton group / bones
   - sounds"
  (let ((cshape (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
    (let ((prim-mesh (new 'process 'collide-shape-prim-mesh cshape (the-as uint 0) (the-as uint 0))))
      (set! (-> prim-mesh prim-core collide-as) (collide-spec crate))
      (set! (-> prim-mesh prim-core action) (collide-action solid))
      (set! (-> prim-mesh transform-index) 3)
      (set-vector! (-> prim-mesh local-sphere) 0.0 7372.8 0.0 8192.0)
      (set! (-> cshape total-prims) (the-as uint 1))
      (set! (-> cshape root-prim) prim-mesh)
      )
    (set! (-> cshape nav-radius) (* 0.75 (-> cshape root-prim local-sphere w)))
    (let ((root-prim (-> cshape root-prim)))
      (set! (-> cshape backup-collide-as) (-> root-prim prim-core collide-as))
      (set! (-> cshape backup-collide-with) (-> root-prim prim-core collide-with))
      )
    (set! (-> cshape penetrated-by)
          (penetrate
            generic-attack
            lunge
            flop
            punch
            spin
            roll
            uppercut
            bonk
            tube
            vehicle
            flut-attack
            board
            mech-punch
            dark-punch
            dark-giant
            knocked
            )
          )
    (set! (-> this root) cshape)
    )
  (process-drawable-from-entity! this arg0)
  (logclear! (-> this mask) (process-mask actor-pause))
  (logior! (-> this mask) (process-mask crate))
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-market-sack-b" (the-as (pointer uint32) #f)))
    (the-as pair 0)
    )
  (set! (-> this part-explode) group-msack-b-explode)
  (set! (-> this draw light-index) (the-as uint 10))
  (transform-post)
  (go (method-of-object this idle))
  (none)
  )

(defun market-activate ((arg0 level))
  (let* ((name (-> arg0 name))
         (int-arr (cond
                    ((= name 'ctymarka)
                     (new 'static 'boxed-array :type int32 5 0 0 #x64f01c00 #x64f01d00)
                     )
                    ((= name 'ctymarkb)
                     (new 'static 'boxed-array :type int32 5 0 0 #x65001c00 #x65001d00)
                     )
                    )
                  )
         )
    (set! (-> (get-field-spec-by-id (-> *part-id-table* 4361) (sp-field-id spt-userdata)) initial-valuef)
          (the-as float int-arr)
          )
    (set! (-> (get-field-spec-by-id (-> *part-id-table* 4360) (sp-field-id spt-userdata)) initial-valuef)
          (the-as float int-arr)
          )
    )
  (setup-user-array (-> *part-id-table* 4355) "wood-plain-debris")
  (setup-user-array (-> *part-id-table* 4354) "wood-plain-debris")
  (setup-user-array (-> *part-id-table* 4361) "clay-pot-debris-01")
  (setup-user-array (-> *part-id-table* 4360) "clay-pot-debris-01")
  (setup-user-array (-> *part-id-table* 4368) "basket-debris-01")
  (setup-user-array (-> *part-id-table* 4367) "basket-debris-01")
  (setup-user-array (-> *part-id-table* 4378) "cotton-wrap-debris")
  (setup-user-array (-> *part-id-table* 4377) "cotton-wrap-debris")
  (setup-user-array (-> *part-id-table* 4384) "basket-debris-01")
  (setup-user-array (-> *part-id-table* 4379) "straw-bit")
  (setup-user-array (-> *part-id-table* 4380) "straw-ground")
  (setup-user-array (-> *part-id-table* 4385) "cherry")
  0
  (none)
  )
