home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / glquake_src / gl_warp.s < prev    next >
Text File  |  2000-02-15  |  29KB  |  1,608 lines

  1.  
  2. ; Storm C Compiler
  3. ; Progs:Programming/Project/GLQuake_beta/gl_warp.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _GL_DisableMultitexture
  7.     XREF    _GL_Bind
  8.     XREF    _MGLSetZOffset
  9.     XREF    _MGLPrintMatrixStack
  10.     XREF    _MGLPrintMatrix
  11.     XREF    _MGLLockMode
  12.     XREF    _MGLWriteShotPPM
  13.     XREF    _MGLUnlockDisplay
  14.     XREF    _MGLTexMemStat
  15.     XREF    _MGLSwitchDisplay
  16.     XREF    _MGLSpecialFunc
  17.     XREF    _MGLSetState
  18.     XREF    _MGLResizeContext
  19.     XREF    _MGLMouseFunc
  20.     XREF    _MGLMainLoop
  21.     XREF    _MGLLockDisplay
  22.     XREF    _MGLKeyFunc
  23.     XREF    _MGLIdleFunc
  24.     XREF    _MGLGetWindowHandle
  25.     XREF    _MGLExit
  26.     XREF    _MGLEnableSync
  27.     XREF    _MGLDeleteContext
  28.     XREF    _MGLCreateContext
  29.     XREF    _GLViewport
  30.     XREF    _GLVertex4fv
  31.     XREF    _GLVertex4f
  32.     XREF    _GLVertex3fv
  33.     XREF    _GLTranslatef
  34.     XREF    _GLTranslated
  35.     XREF    _GLTexSubImage2D
  36.     XREF    _GLTexParameteri
  37.     XREF    _GLTexImage2D
  38.     XREF    _GLTexGeni
  39.     XREF    _GLTexEnvi
  40.     XREF    _GLTexCoord2fv
  41.     XREF    _GLTexCoord2f
  42.     XREF    _GLShadeModel
  43.     XREF    _GLScissor
  44.     XREF    _GLScalef
  45.     XREF    _GLScaled
  46.     XREF    _GLRotatef
  47.     XREF    _GLRotated
  48.     XREF    _GLReadPixels
  49.     XREF    _GLPushMatrix
  50.     XREF    _GLPopMatrix
  51.     XREF    _GLPolygonMode
  52.     XREF    _GLPixelStorei
  53.     XREF    _GLOrtho
  54.     XREF    _GLNormal3f
  55.     XREF    _GLMultMatrixf
  56.     XREF    _GLMultMatrixd
  57.     XREF    _GLMatrixMode
  58.     XREF    _GLLoadMatrixf
  59.     XREF    _GLLoadMatrixd
  60.     XREF    _GLLoadIdentity
  61.     XREF    _GLHint
  62.     XREF    _GLGetString
  63.     XREF    _GLGetFloatv
  64.     XREF    _GLGetError
  65.     XREF    _GLGenTextures
  66.     XREF    _GLFrustum
  67.     XREF    _GLFrontFace
  68.     XREF    _GLFogfv
  69.     XREF    _GLFogf
  70.     XREF    _GLFlush
  71.     XREF    _GLFinish
  72.     XREF    _GLEnd
  73.     XREF    _GLDrawBuffer
  74.     XREF    _GLDepthRange
  75.     XREF    _GLDepthMask
  76.     XREF    _GLDepthFunc
  77.     XREF    _GLDeleteTextures
  78.     XREF    _GLCullFace
  79.     XREF    _GLColor4ubv
  80.     XREF    _GLColor4ub
  81.     XREF    _GLColor4fv
  82.     XREF    _GLColor4f
  83.     XREF    _GLColor3ubv
  84.     XREF    _GLColor3fv
  85.     XREF    _GLClearDepth
  86.     XREF    _GLClearColor
  87.     XREF    _GLClear
  88.     XREF    _GLBlendFunc
  89.     XREF    _GLBindTexture
  90.     XREF    _GLBegin
  91.     XREF    _GLAlphaFunc
  92.     XREF    _Hunk_Alloc
  93.     XREF    _Sys_Error
  94.     XREF    _floor__r
  95.     XREF    _sqrt__r
  96.     XREF    _std__in
  97.     XREF    _std__out
  98.     XREF    _std__err
  99.     XREF    _bigendien
  100.     XREF    _BigShort
  101.     XREF    _LittleShort
  102.     XREF    _BigLong
  103.     XREF    _LittleLong
  104.     XREF    _BigFloat
  105.     XREF    _LittleFloat
  106.     XREF    _msg_readcount
  107.     XREF    _msg_badread
  108.     XREF    _com_token
  109.     XREF    _com_eof
  110.     XREF    _com_argc
  111.     XREF    _com_argv
  112.     XREF    _com_filesize
  113.     XREF    _com_gamedir
  114.     XREF    _registered
  115.     XREF    _standard_quake
  116.     XREF    _rogue
  117.     XREF    _hipnotic
  118.     XREF    _vid
  119.     XREF    _d_8to16table
  120.     XREF    _d_8to24table
  121.     XREF    _vid_menudrawfn
  122.     XREF    _vid_menukeyfn
  123.     XREF    _vec3_origin
  124.     XREF    _nanmask
  125.     XREF    _wad_numlumps
  126.     XREF    _wad_lumps
  127.     XREF    _wad_base
  128.     XREF    _draw_disc
  129.     XREF    _cvar_vars
  130.     XREF    _scr_con_current
  131.     XREF    _scr_conlines
  132.     XREF    _scr_fullupdate
  133.     XREF    _sb_lines
  134.     XREF    _clearnotify
  135.     XREF    _scr_disabled_for_loading
  136.     XREF    _scr_skipupdate
  137.     XREF    _scr_viewsize
  138.     XREF    _scr_copytop
  139.     XREF    _scr_copyeverything
  140.     XREF    _block_drawing
  141.     XREF    _net_activeSockets
  142.     XREF    _net_freeSockets
  143.     XREF    _net_numsockets
  144.     XREF    _net_numlandrivers
  145.     XREF    _net_landrivers
  146.     XREF    _net_numdrivers
  147.     XREF    _net_drivers
  148.     XREF    _DEFAULTnet_hostport
  149.     XREF    _net_hostport
  150.     XREF    _net_driverlevel
  151.     XREF    _hostname
  152.     XREF    _playername
  153.     XREF    _playercolor
  154.     XREF    _messagesSent
  155.     XREF    _messagesReceived
  156.     XREF    _unreliableMessagesSent
  157.     XREF    _unreliableMessagesReceived
  158.     XREF    _hostCacheCount
  159.     XREF    _hostcache
  160.     XREF    _net_time
  161.     XREF    _net_message
  162.     XREF    _net_activeconnections
  163.     XREF    _serialAvailable
  164.     XREF    _ipxAvailable
  165.     XREF    _tcpipAvailable
  166.     XREF    _my_ipx_address
  167.     XREF    _my_tcpip_address
  168.     XREF    _GetComPortConfig
  169.     XREF    _SetComPortConfig
  170.     XREF    _GetModemConfig
  171.     XREF    _SetModemConfig
  172.     XREF    _slistInProgress
  173.     XREF    _slistSilent
  174.     XREF    _slistLocal
  175.     XREF    _cmd_source
  176.     XREF    _channels
  177.     XREF    _total_channels
  178.     XREF    _fakedma
  179.     XREF    _fakedma_updates
  180.     XREF    _paintedtime
  181.     XREF    _listener_origin
  182.     XREF    _listener_forward
  183.     XREF    _listener_right
  184.     XREF    _listener_up
  185.     XREF    _shm
  186.     XREF    _sn
  187.     XREF    _sound_nominal_clip_dist
  188.     XREF    _loadas8bit
  189.     XREF    _bgmvolume
  190.     XREF    _volume
  191.     XREF    _snd_initialized
  192.     XREF    _snd_blocked
  193.     XREF    _reinit_surfcache
  194.     XREF    _r_refdef
  195.     XREF    _r_origin
  196.     XREF    _vpn
  197.     XREF    _vright
  198.     XREF    _vup
  199.     XREF    _r_notexture_mip
  200.     XREF    _r_cache_thrash
  201.     XREF    _cls
  202.     XREF    _cl_name
  203.     XREF    _cl_color
  204.     XREF    _cl_upspeed
  205.     XREF    _cl_forwardspeed
  206.     XREF    _cl_backspeed
  207.     XREF    _cl_sidespeed
  208.     XREF    _cl_movespeedkey
  209.     XREF    _cl_yawspeed
  210.     XREF    _cl_pitchspeed
  211.     XREF    _cl_anglespeedkey
  212.     XREF    _cl_autofire
  213.     XREF    _cl_shownet
  214.     XREF    _cl_nolerp
  215.     XREF    _cl_pitchdriftspeed
  216.     XREF    _lookspring
  217.     XREF    _lookstrafe
  218.     XREF    _sensitivity
  219.     XREF    _m_pitch
  220.     XREF    _m_yaw
  221.     XREF    _m_forward
  222.     XREF    _m_side
  223.     XREF    _cl
  224.     XREF    _cl_efrags
  225.     XREF    _cl_entities
  226.     XREF    _cl_static_entities
  227.     XREF    _cl_lightstyle
  228.     XREF    _cl_dlights
  229.     XREF    _cl_temp_entities
  230.     XREF    _cl_beams
  231.     XREF    _cl_numvisedicts
  232.     XREF    _cl_visedicts
  233.     XREF    _in_mlook
  234.     XREF    _in_klook
  235.     XREF    _in_strafe
  236.     XREF    _in_speed
  237.     XREF    _progs
  238.     XREF    _pr_functions
  239.     XREF    _pr_strings
  240.     XREF    _pr_globaldefs
  241.     XREF    _pr_fielddefs
  242.     XREF    _pr_statements
  243.     XREF    _pr_global_struct
  244.     XREF    _pr_globals
  245.     XREF    _pr_edict_size
  246.     XREF    _type_size
  247.     XREF    _pr_builtins
  248.     XREF    _pr_numbuiltins
  249.     XREF    _pr_argc
  250.     XREF    _pr_trace
  251.     XREF    _pr_xfunction
  252.     XREF    _pr_xstatement
  253.     XREF    _pr_crc
  254.     XREF    _teamplay
  255.     XREF    _skill
  256.     XREF    _deathmatch
  257.     XREF    _coop
  258.     XREF    _fraglimit
  259.     XREF    _timelimit
  260.     XREF    _svs
  261.     XREF    _sv
  262.     XREF    _host_client
  263.     XREF    _host_abortserver
  264.     XREF    _host_time
  265.     XREF    _sv_player
  266.     XREF    _pheader
  267.     XREF    _stverts
  268.     XREF    _triangles
  269.     XREF    _poseverts
  270.     XREF    _key_dest
  271.     XREF    _keybindings
  272.     XREF    _key_repeats
  273.     XREF    _key_count
  274.     XREF    _key_lastpress
  275.     XREF    _con_totallines
  276.     XREF    _con_backscroll
  277.     XREF    _con_forcedup
  278.     XREF    _con_initialized
  279.     XREF    _con_chars
  280.     XREF    _con_notifylines
  281.     XREF    _v_gamma
  282.     XREF    _gammatable
  283.     XREF    _ramps
  284.     XREF    _v_blend
  285.     XREF    _lcd_x
  286.     XREF    _m_activenet
  287.     XREF    _mini_CurrentContext
  288.     XREF    _texture_extension_number
  289.     XREF    _texture_mode
  290.     XREF    _gldepthmin
  291.     XREF    _gldepthmax
  292.     XREF    _glv
  293.     XREF    _glx
  294.     XREF    _gly
  295.     XREF    _glwidth
  296.     XREF    _glheight
  297.     XREF    _r_worldentity
  298.     XREF    _modelorg
  299.     XREF    _r_entorigin
  300.     XREF    _currententity
  301.     XREF    _r_visframecount
  302.     XREF    _r_framecount
  303.     XREF    _frustum
  304.     XREF    _c_brush_polys
  305.     XREF    _c_alias_polys
  306.     XREF    _r_viewleaf
  307.     XREF    _r_oldviewleaf
  308.     XREF    _d_lightstylevalue
  309.     XREF    _envmap
  310.     XREF    _currenttexture
  311.     XREF    _cnttextures
  312.     XREF    _particletexture
  313.     XREF    _playertextures
  314.     XREF    _r_norefresh
  315.     XREF    _r_drawentities
  316.     XREF    _r_drawworld
  317.     XREF    _r_drawviewmodel
  318.     XREF    _r_speeds
  319.     XREF    _r_waterwarp
  320.     XREF    _r_fullbright
  321.     XREF    _r_lightmap
  322.     XREF    _r_shadows
  323.     XREF    _r_mirroralpha
  324.     XREF    _r_wateralpha
  325.     XREF    _r_dynamic
  326.     XREF    _r_novis
  327.     XREF    _gl_clear
  328.     XREF    _gl_cull
  329.     XREF    _gl_poly
  330.     XREF    _gl_texsort
  331.     XREF    _gl_smoothmodels
  332.     XREF    _gl_affinemodels
  333.     XREF    _gl_polyblend
  334.     XREF    _gl_keeptjunctions
  335.     XREF    _gl_reporttjunctions
  336.     XREF    _gl_flashblend
  337.     XREF    _gl_nocolors
  338.     XREF    _gl_doubleeyes
  339.     XREF    _gl_lightmap_format
  340.     XREF    _gl_solid_format
  341.     XREF    _gl_alpha_format
  342.     XREF    _gl_max_size
  343.     XREF    _gl_playermip
  344.     XREF    _mirrortexturenum
  345.     XREF    _mirror
  346.     XREF    _mirror_plane
  347.     XREF    _r_world_matrix
  348.     XREF    _gl_vendor
  349.     XREF    _gl_renderer
  350.     XREF    _gl_version
  351.     XREF    _gl_extensions
  352.     XREF    _qglMTexCoord2fSGIS
  353.     XREF    _qglSelectTextureSGIS
  354.     XREF    _gl_mtexable
  355.     XREF    _noclip_anglehack
  356.     XREF    _host_parms
  357.     XREF    _sys_ticrate
  358.     XREF    _sys_nostdout
  359.     XREF    _developer
  360.     XREF    _host_initialized
  361.     XREF    _host_frametime
  362.     XREF    _host_basepal
  363.     XREF    _host_colormap
  364.     XREF    _host_framecount
  365.     XREF    _realtime
  366.     XREF    _msg_suppress_1
  367.     XREF    _current_skill
  368.     XREF    _isDedicated
  369.     XREF    _minimum_memory
  370.     XREF    _chase_active
  371.     XREF    _loadmodel
  372.     XREF    _gl_subdivide_size
  373.     XREF    _skytexturenum
  374.  
  375.     SECTION ":0",CODE
  376.  
  377.  
  378.     XDEF    _INIT_8_gl_warp_c
  379. _INIT_8_gl_warp_c
  380. L71    EQU    -4
  381.     link    a5,#L71
  382. L70
  383.     lea    _turbsin,a0
  384.     move.l    a0,-4(a5)
  385.     move.l    #$3FC,d0
  386.     add.l    d0,-4(a5)
  387.     unlk    a5
  388.     rts
  389.  
  390.     XDEF    _BoundPoly
  391. _BoundPoly
  392. L83    EQU    -$50
  393.     link    a5,#L83
  394. L72
  395.     moveq    #$8,d0
  396.     add.l    $10(a5),d0
  397.     move.l    d0,-$50(a5)
  398.     move.l    -$50(a5),a0
  399.     move.l    #$461C3C00,(a0)
  400.     moveq    #4,d0
  401.     add.l    $10(a5),d0
  402.     move.l    d0,-$4C(a5)
  403.     move.l    -$4C(a5),a0
  404.     move.l    #$461C3C00,(a0)
  405.     move.l    $10(a5),a0
  406.     move.l    #$461C3C00,(a0)
  407.     moveq    #$8,d0
  408.     add.l    $14(a5),d0
  409.     move.l    d0,-$48(a5)
  410.     move.l    -$48(a5),a0
  411.     move.l    #$C61C3C00,(a0)
  412.     moveq    #4,d0
  413.     add.l    $14(a5),d0
  414.     move.l    d0,-$44(a5)
  415.     move.l    -$44(a5),a0
  416.     move.l    #$C61C3C00,(a0)
  417.     move.l    $14(a5),a0
  418.     move.l    #$C61C3C00,(a0)
  419.     move.l    $C(a5),-$C(a5)
  420.     clr.l    -4(a5)
  421.     bra.b    L81
  422. L73
  423.     clr.l    -$8(a5)
  424.     bra.b    L79
  425. L74
  426.     move.l    -$C(a5),a0
  427.     move.l    (a0),-$40(a5)
  428.     move.l    -$8(a5),d0
  429.     asl.l    #2,d0
  430.     add.l    $10(a5),d0
  431.     move.l    d0,-$3C(a5)
  432.     move.l    -$3C(a5),a0
  433.     move.l    (a0),-$38(a5)
  434.     fmove.s    -$40(a5),fp0
  435.     fcmp.s    -$38(a5),fp0
  436.     fboge.b    L76
  437. L75
  438.     move.l    -$C(a5),a0
  439.     move.l    (a0),-$34(a5)
  440.     move.l    -$8(a5),d0
  441.     asl.l    #2,d0
  442.     add.l    $10(a5),d0
  443.     move.l    d0,-$30(a5)
  444.     move.l    -$30(a5),a0
  445.     move.l    -$34(a5),(a0)
  446. L76
  447.     move.l    -$C(a5),a0
  448.     move.l    (a0),-$2C(a5)
  449.     move.l    -$8(a5),d0
  450.     asl.l    #2,d0
  451.     add.l    $14(a5),d0
  452.     move.l    d0,-$28(a5)
  453.     move.l    -$28(a5),a0
  454.     move.l    (a0),-$24(a5)
  455.     fmove.s    -$2C(a5),fp0
  456.     fcmp.s    -$24(a5),fp0
  457.     fbole.b    L78
  458. L77
  459.     move.l    -$C(a5),a0
  460.     move.l    (a0),-$20(a5)
  461.     move.l    -$8(a5),d0
  462.     asl.l    #2,d0
  463.     add.l    $14(a5),d0
  464.     move.l    d0,-$1C(a5)
  465.     move.l    -$1C(a5),a0
  466.     move.l    -$20(a5),(a0)
  467. L78
  468.     move.l    -$8(a5),-$18(a5)
  469.     addq.l    #1,-$8(a5)
  470.     move.l    -$C(a5),-$14(a5)
  471.     moveq    #4,d0
  472.     add.l    d0,-$C(a5)
  473. L79
  474.     move.l    -$8(a5),d0
  475.     cmp.l    #3,d0
  476.     blt    L74
  477. L80
  478.     move.l    -4(a5),-$10(a5)
  479.     addq.l    #1,-4(a5)
  480. L81
  481.     move.l    -4(a5),d0
  482.     cmp.l    $8(a5),d0
  483.     blt    L73
  484. L82
  485.     unlk    a5
  486.     rts
  487.  
  488.     XDEF    _SubdividePolygon
  489. _SubdividePolygon
  490. L117    EQU    -$744
  491.     link    a5,#L117
  492.     fmovem.x fp2/fp3,-(a7)
  493. L85
  494.     move.l    $8(a5),d0
  495.     cmp.l    #$3C,d0
  496.     ble.b    L87
  497. L86
  498.     move.l    $8(a5),-(a7)
  499.     move.l    #L84,-(a7)
  500.     jsr    _Sys_Error
  501.     addq.w    #$8,a7
  502. L87
  503.     lea    -$24(a5),a0
  504.     move.l    a0,-(a7)
  505.     lea    -$18(a5),a0
  506.     move.l    a0,-(a7)
  507.     move.l    $C(a5),-(a7)
  508.     move.l    $8(a5),-(a7)
  509.     jsr    _BoundPoly
  510.     add.w    #$10,a7
  511.     clr.l    -4(a5)
  512.     bra.b    L112
  513. L88
  514.     lea    -$18(a5),a0
  515.     move.l    -4(a5),d0
  516.     lea    0(a0,d0.l*4),a0
  517.     fmove.s    (a0),fp0
  518.     lea    -$24(a5),a0
  519.     move.l    -4(a5),d0
  520.     lea    0(a0,d0.l*4),a0
  521.     fmove.s    (a0),fp1
  522.     fadd.x    fp1,fp0
  523.     fmul.d    #$.3FE00000.00000000,fp0
  524.     fmove.s    fp0,-$28(a5)
  525.     lea    _gl_subdivide_size,a0
  526.     fmove.s    $10(a0),fp0
  527.     fmove.x    fp0,fp2
  528.     lea    _gl_subdivide_size,a0
  529.     fmove.s    $10(a0),fp0
  530.     fmove.s    -$28(a5),fp1
  531.     fdiv.x    fp0,fp1
  532.     fmove.x    fp1,fp0
  533.     fadd.d    #$.3FE00000.00000000,fp0
  534.     fmove.d    fp0,-(a7)
  535.     jsr    _floor__r
  536.     addq.w    #$8,a7
  537.     fmul.x    fp0,fp2
  538.     fmove.x    fp2,fp0
  539.     fmove.s    fp0,-$28(a5)
  540.     lea    -$24(a5),a0
  541.     move.l    -4(a5),d0
  542.     lea    0(a0,d0.l*4),a0
  543.     fmove.s    (a0),fp0
  544.     fsub.s    -$28(a5),fp0
  545.     fcmp.s    #$.41000000,fp0
  546.     fboge.b    L90
  547. L89
  548.     bra.b    L111
  549. L90
  550.     lea    -$18(a5),a0
  551.     move.l    -4(a5),d0
  552.     lea    0(a0,d0.l*4),a0
  553.     fmove.s    (a0),fp0
  554.     fmove.s    -$28(a5),fp1
  555.     fsub.x    fp0,fp1
  556.     fmove.x    fp1,fp0
  557.     fcmp.s    #$.41000000,fp0
  558.     fboge.b    L92
  559. L91
  560.     bra.b    L111
  561. L92
  562.     move.l    -4(a5),d0
  563.     move.l    $C(a5),a1
  564.     lea    0(a1,d0.l*4),a0
  565.     move.l    a0,-$2C(a5)
  566.     clr.l    -$8(a5)
  567.     bra.b    L94
  568. L93
  569.     move.l    -$2C(a5),a0
  570.     fmove.s    (a0),fp0
  571.     fsub.s    -$28(a5),fp0
  572.     lea    -$734(a5),a0
  573.     move.l    -$8(a5),d0
  574.     lea    0(a0,d0.l*4),a0
  575.     fmove.s    fp0,(a0)
  576.     move.l    -$8(a5),d0
  577.     addq.l    #1,-$8(a5)
  578.     moveq    #$C,d0
  579.     add.l    d0,-$2C(a5)
  580. L94
  581.     move.l    -$8(a5),d0
  582.     cmp.l    $8(a5),d0
  583.     blt.b    L93
  584. L95
  585.     lea    -$734(a5),a0
  586.     fmove.s    (a0),fp0
  587.     lea    -$734(a5),a0
  588.     move.l    -$8(a5),d0
  589.     lea    0(a0,d0.l*4),a0
  590.     fmove.s    fp0,(a0)
  591.     move.l    -4(a5),d0
  592.     moveq    #2,d1
  593.     asl.l    d1,d0
  594.     move.l    d0,a0
  595.     move.l    a0,d0
  596.     neg.l    d0
  597.     move.l    d0,a0
  598.     move.l    a0,d0
  599.     add.l    d0,-$2C(a5)
  600.     move.l    $C(a5),a0
  601.     fmove.s    (a0),fp0
  602.     move.l    -$2C(a5),a0
  603.     fmove.s    fp0,(a0)
  604.     move.l    $C(a5),a1
  605.     lea    4(a1),a0
  606.     fmove.s    (a0),fp0
  607.     move.l    -$2C(a5),a1
  608.     lea    4(a1),a0
  609.     fmove.s    fp0,(a0)
  610.     move.l    $C(a5),a1
  611.     lea    $8(a1),a0
  612.     fmove.s    (a0),fp0
  613.     move.l    -$2C(a5),a1
  614.     lea    $8(a1),a0
  615.     fmove.s    fp0,(a0)
  616.     clr.l    -$634(a5)
  617.     move.l    -$634(a5),-$630(a5)
  618.     move.l    $C(a5),-$2C(a5)
  619.     clr.l    -$8(a5)
  620.     bra.b    L109
  621. L96
  622.     lea    -$734(a5),a0
  623.     move.l    -$8(a5),d0
  624.     lea    0(a0,d0.l*4),a0
  625.     fmove.s    (a0),fp0
  626.     fcmp.s    #$.00000000,fp0
  627.     fbolt.b    L98
  628. L97
  629.     move.l    -$2C(a5),a0
  630.     fmove.s    (a0),fp0
  631.     lea    -$32C(a5),a0
  632.     move.l    -$630(a5),d0
  633.     muls.l    #$C,d0
  634.     add.l    d0,a0
  635.     fmove.s    fp0,(a0)
  636.     move.l    -$2C(a5),a1
  637.     lea    4(a1),a0
  638.     fmove.s    (a0),fp0
  639.     lea    -$32C(a5),a0
  640.     move.l    -$630(a5),d0
  641.     muls.l    #$C,d0
  642.     add.l    d0,a0
  643.     addq.w    #4,a0
  644.     fmove.s    fp0,(a0)
  645.     move.l    -$2C(a5),a1
  646.     lea    $8(a1),a0
  647.     fmove.s    (a0),fp0
  648.     lea    -$32C(a5),a0
  649.     move.l    -$630(a5),d0
  650.     muls.l    #$C,d0
  651.     add.l    d0,a0
  652.     addq.w    #$8,a0
  653.     fmove.s    fp0,(a0)
  654.     move.l    -$630(a5),d0
  655.     addq.l    #1,-$630(a5)
  656. L98
  657.     lea    -$734(a5),a0
  658.     move.l    -$8(a5),d0
  659.     lea    0(a0,d0.l*4),a0
  660.     fmove.s    (a0),fp0
  661.     fcmp.s    #$.00000000,fp0
  662.     fbogt.b    L100
  663. L99
  664.     move.l    -$2C(a5),a0
  665.     fmove.s    (a0),fp0
  666.     lea    -$62C(a5),a0
  667.     move.l    -$634(a5),d0
  668.     muls.l    #$C,d0
  669.     add.l    d0,a0
  670.     fmove.s    fp0,(a0)
  671.     move.l    -$2C(a5),a1
  672.     lea    4(a1),a0
  673.     fmove.s    (a0),fp0
  674.     lea    -$62C(a5),a0
  675.     move.l    -$634(a5),d0
  676.     muls.l    #$C,d0
  677.     add.l    d0,a0
  678.     addq.w    #4,a0
  679.     fmove.s    fp0,(a0)
  680.     move.l    -$2C(a5),a1
  681.     lea    $8(a1),a0
  682.     fmove.s    (a0),fp0
  683.     lea    -$62C(a5),a0
  684.     move.l    -$634(a5),d0
  685.     muls.l    #$C,d0
  686.     add.l    d0,a0
  687.     addq.w    #$8,a0
  688.     fmove.s    fp0,(a0)
  689.     move.l    -$634(a5),d0
  690.     addq.l    #1,-$634(a5)
  691. L100
  692.     lea    -$734(a5),a0
  693.     move.l    -$8(a5),d0
  694.     lea    0(a0,d0.l*4),a0
  695.     fmove.s    (a0),fp0
  696.     ftst.s    fp0
  697.     fbeq.b    L102
  698. L101
  699.     lea    -$734(a5),a0
  700.     addq.w    #4,a0
  701.     move.l    -$8(a5),d0
  702.     lea    0(a0,d0.l*4),a0
  703.     fmove.s    (a0),fp0
  704.     fcmp.s    #$.00000000,fp0
  705.     fbne.b    L103
  706. L102
  707.     bra.b    L108
  708. L103
  709.     lea    -$734(a5),a0
  710.     move.l    -$8(a5),d0
  711.     lea    0(a0,d0.l*4),a0
  712.     fmove.s    (a0),fp0
  713.     fcmp.s    #$.00000000,fp0
  714.     moveq    #1,d0
  715.     fbugt.b    L118
  716.     moveq    #0,d0
  717. L118
  718.     lea    -$734(a5),a0
  719.     addq.w    #4,a0
  720.     move.l    -$8(a5),d1
  721.     lea    0(a0,d1.l*4),a0
  722.     fmove.s    (a0),fp0
  723.     fcmp.s    #$.00000000,fp0
  724.     moveq    #1,d1
  725.     fbugt.b    L119
  726.     moveq    #0,d1
  727. L119
  728.     cmp.l    d1,d0
  729.     beq.b    L108
  730. L104
  731.     lea    -$734(a5),a0
  732.     move.l    -$8(a5),d0
  733.     lea    0(a0,d0.l*4),a0
  734.     fmove.s    (a0),fp0
  735.     lea    -$734(a5),a0
  736.     move.l    -$8(a5),d0
  737.     lea    0(a0,d0.l*4),a0
  738.     fmove.s    (a0),fp1
  739.     lea    -$734(a5),a0
  740.     addq.w    #4,a0
  741.     move.l    -$8(a5),d0
  742.     lea    0(a0,d0.l*4),a0
  743.     fmove.s    (a0),fp2
  744.     fsub.x    fp2,fp1
  745.     fdiv.x    fp1,fp0
  746.     fmove.s    fp0,-$738(a5)
  747.     clr.l    -$C(a5)
  748.     bra.b    L106
  749. L105
  750.     move.l    -$C(a5),d0
  751.     move.l    -$2C(a5),a1
  752.     lea    0(a1,d0.l*4),a0
  753.     fmove.s    (a0),fp0
  754.     move.l    -$2C(a5),a1
  755.     lea    $C(a1),a0
  756.     move.l    -$C(a5),d0
  757.     lea    0(a0,d0.l*4),a0
  758.     fmove.s    (a0),fp1
  759.     move.l    -$C(a5),d0
  760.     move.l    -$2C(a5),a1
  761.     lea    0(a1,d0.l*4),a0
  762.     fmove.s    (a0),fp2
  763.     fsub.x    fp2,fp1
  764.     fmul.s    -$738(a5),fp1
  765.     fadd.x    fp1,fp0
  766.     lea    -$62C(a5),a0
  767.     move.l    -$634(a5),d0
  768.     muls.l    #$C,d0
  769.     add.l    d0,a0
  770.     move.l    -$C(a5),d0
  771.     lea    0(a0,d0.l*4),a0
  772.     fmove.s    fp0,(a0)
  773.     lea    -$32C(a5),a0
  774.     move.l    -$630(a5),d0
  775.     muls.l    #$C,d0
  776.     add.l    d0,a0
  777.     move.l    -$C(a5),d0
  778.     lea    0(a0,d0.l*4),a0
  779.     fmove.s    fp0,(a0)
  780.     move.l    -$C(a5),d0
  781.     addq.l    #1,-$C(a5)
  782. L106
  783.     move.l    -$C(a5),d0
  784.     cmp.l    #3,d0
  785.     blt    L105
  786. L107
  787.     move.l    -$630(a5),d0
  788.     addq.l    #1,-$630(a5)
  789.     move.l    -$634(a5),d0
  790.     addq.l    #1,-$634(a5)
  791. L108
  792.     move.l    -$8(a5),d0
  793.     addq.l    #1,-$8(a5)
  794.     moveq    #$C,d0
  795.     add.l    d0,-$2C(a5)
  796. L109
  797.     move.l    -$8(a5),d0
  798.     cmp.l    $8(a5),d0
  799.     blt    L96
  800. L110
  801.     lea    -$32C(a5),a0
  802.     move.l    a0,-(a7)
  803.     move.l    -$630(a5),-(a7)
  804.     jsr    _SubdividePolygon
  805.     addq.w    #$8,a7
  806.     lea    -$62C(a5),a0
  807.     move.l    a0,-(a7)
  808.     move.l    -$634(a5),-(a7)
  809.     jsr    _SubdividePolygon
  810.     addq.w    #$8,a7
  811.     fmovem.x (a7)+,fp2/fp3
  812.     unlk    a5
  813.     rts
  814. L111
  815.     move.l    -4(a5),d0
  816.     addq.l    #1,-4(a5)
  817. L112
  818.     move.l    -4(a5),d0
  819.     cmp.l    #3,d0
  820.     blt    L88
  821. L113
  822.     move.l    $8(a5),d0
  823.     subq.l    #4,d0
  824.     muls.l    #7,d0
  825.     moveq    #2,d1
  826.     asl.l    d1,d0
  827.     add.l    #$80,d0
  828.     move.l    d0,-(a7)
  829.     jsr    _Hunk_Alloc
  830.     addq.w    #4,a7
  831.     move.l    d0,-$73C(a5)
  832.     move.l    _warpface,a0
  833.     move.l    $24(a0),a0
  834.     move.l    -$73C(a5),a1
  835.     move.l    a0,(a1)
  836.     move.l    _warpface,a1
  837.     move.l    -$73C(a5),$24(a1)
  838.     move.l    -$73C(a5),a0
  839.     move.l    $8(a5),$8(a0)
  840.     clr.l    -4(a5)
  841.     bra.b    L115
  842. L114
  843.     move.l    $C(a5),a0
  844.     fmove.s    (a0),fp0
  845.     move.l    -$73C(a5),a1
  846.     lea    $10(a1),a0
  847.     move.l    -4(a5),d0
  848.     muls.l    #$1C,d0
  849.     add.l    d0,a0
  850.     fmove.s    fp0,(a0)
  851.     move.l    $C(a5),a1
  852.     lea    4(a1),a0
  853.     fmove.s    (a0),fp0
  854.     move.l    -$73C(a5),a1
  855.     lea    $10(a1),a0
  856.     move.l    -4(a5),d0
  857.     muls.l    #$1C,d0
  858.     add.l    d0,a0
  859.     addq.w    #4,a0
  860.     fmove.s    fp0,(a0)
  861.     move.l    $C(a5),a1
  862.     lea    $8(a1),a0
  863.     fmove.s    (a0),fp0
  864.     move.l    -$73C(a5),a1
  865.     lea    $10(a1),a0
  866.     move.l    -4(a5),d0
  867.     muls.l    #$1C,d0
  868.     add.l    d0,a0
  869.     addq.w    #$8,a0
  870.     fmove.s    fp0,(a0)
  871.     move.l    $C(a5),a0
  872.     fmove.s    (a0),fp0
  873.     move.l    _warpface,a0
  874.     move.l    $2C(a0),a0
  875.     fmove.s    (a0),fp1
  876.     fmul.x    fp1,fp0
  877.     move.l    $C(a5),a1
  878.     lea    4(a1),a0
  879.     fmove.s    (a0),fp1
  880.     move.l    _warpface,a0
  881.     move.l    $2C(a0),a0
  882.     addq.w    #4,a0
  883.     fmove.s    (a0),fp2
  884.     fmul.x    fp2,fp1
  885.     fadd.x    fp1,fp0
  886.     move.l    $C(a5),a1
  887.     lea    $8(a1),a0
  888.     fmove.s    (a0),fp1
  889.     move.l    _warpface,a0
  890.     move.l    $2C(a0),a0
  891.     addq.w    #$8,a0
  892.     fmove.s    (a0),fp2
  893.     fmul.x    fp2,fp1
  894.     fadd.x    fp1,fp0
  895.     move.l    $C(a5),a0
  896.     fmove.s    (a0),fp1
  897.     move.l    _warpface,a0
  898.     move.l    $2C(a0),a0
  899.     add.w    #$10,a0
  900.     fmove.s    (a0),fp2
  901.     fmul.x    fp2,fp1
  902.     move.l    $C(a5),a1
  903.     lea    4(a1),a0
  904.     fmove.s    (a0),fp2
  905.     move.l    _warpface,a0
  906.     move.l    $2C(a0),a0
  907.     add.w    #$10,a0
  908.     addq.w    #4,a0
  909.     fmove.s    (a0),fp3
  910.     fmul.x    fp3,fp2
  911.     fadd.x    fp2,fp1
  912.     move.l    $C(a5),a1
  913.     lea    $8(a1),a0
  914.     fmove.s    (a0),fp2
  915.     move.l    _warpface,a0
  916.     move.l    $2C(a0),a0
  917.     add.w    #$10,a0
  918.     addq.w    #$8,a0
  919.     fmove.s    (a0),fp3
  920.     fmul.x    fp3,fp2
  921.     fadd.x    fp2,fp1
  922.     move.l    -$73C(a5),a1
  923.     lea    $10(a1),a0
  924.     move.l    -4(a5),d0
  925.     muls.l    #$1C,d0
  926.     add.l    d0,a0
  927.     add.w    #$C,a0
  928.     fmove.s    fp0,(a0)
  929.     move.l    -$73C(a5),a1
  930.     lea    $10(a1),a0
  931.     move.l    -4(a5),d0
  932.     muls.l    #$1C,d0
  933.     add.l    d0,a0
  934.     add.w    #$10,a0
  935.     fmove.s    fp1,(a0)
  936.     move.l    -4(a5),d0
  937.     addq.l    #1,-4(a5)
  938.     moveq    #$C,d0
  939.     add.l    d0,$C(a5)
  940. L115
  941.     move.l    -4(a5),d0
  942.     cmp.l    $8(a5),d0
  943.     blt    L114
  944. L116
  945.     fmovem.x (a7)+,fp2/fp3
  946.     unlk    a5
  947.     rts
  948.  
  949.     XDEF    _GL_SubdivideSurface
  950. _GL_SubdivideSurface
  951. L127    EQU    -$390
  952.     link    a5,#L127
  953. L120
  954.     move.l    $8(a5),_warpface
  955.     clr.l    -$304(a5)
  956.     clr.l    -$308(a5)
  957.     bra.b    L125
  958. L121
  959.     move.l    _loadmodel,-$390(a5)
  960.     move.l    -$390(a5),a0
  961.     move.l    $D8(a0),-$38C(a5)
  962.     move.l    $8(a5),-$388(a5)
  963.     move.l    -$388(a5),a0
  964.     move.l    $C(a0),-$384(a5)
  965.     move.l    -$384(a5),d0
  966.     add.l    -$308(a5),d0
  967.     move.l    d0,-$384(a5)
  968.     move.l    -$384(a5),d0
  969.     asl.l    #2,d0
  970.     add.l    d0,-$38C(a5)
  971.     move.l    -$38C(a5),a0
  972.     move.l    (a0),-$380(a5)
  973.     move.l    -$380(a5),-$30C(a5)
  974.     move.l    -$30C(a5),d0
  975.     cmp.l    #0,d0
  976.     ble.b    L123
  977. L122
  978.     move.l    _loadmodel,-$37C(a5)
  979.     move.l    -$37C(a5),a0
  980.     move.l    $B0(a0),-$378(a5)
  981.     move.l    _loadmodel,-$370(a5)
  982.     move.l    -$370(a5),a0
  983.     move.l    $B8(a0),-$36C(a5)
  984.     move.l    -$30C(a5),d0
  985.     asl.l    #3,d0
  986.     add.l    d0,-$36C(a5)
  987.     move.l    -$36C(a5),a0
  988.     move.w    (a0),-$366(a5)
  989.     moveq    #0,d0
  990.     move.w    -$366(a5),d0
  991.     move.l    d0,-$374(a5)
  992.     move.l    -$374(a5),d0
  993.     muls.l    #$C,d0
  994.     add.l    d0,-$378(a5)
  995.     move.l    -$378(a5),-$310(a5)
  996.     bra.b    L124
  997. L123
  998.     move.l    _loadmodel,-$364(a5)
  999.     move.l    -$364(a5),a0
  1000.     move.l    $B0(a0),-$360(a5)
  1001.     move.l    _loadmodel,-$358(a5)
  1002.     move.l    -$358(a5),a0
  1003.     move.l    $B8(a0),-$354(a5)
  1004.     move.l    -$30C(a5),d0
  1005.     neg.l    d0
  1006.     move.l    d0,-$350(a5)
  1007.     move.l    -$350(a5),d0
  1008.     asl.l    #3,d0
  1009.     add.l    d0,-$354(a5)
  1010.     moveq    #2,d0
  1011.     add.l    d0,-$354(a5)
  1012.     move.l    -$354(a5),a0
  1013.     move.w    (a0),-$34A(a5)
  1014.     moveq    #0,d0
  1015.     move.w    -$34A(a5),d0
  1016.     move.l    d0,-$35C(a5)
  1017.     move.l    -$35C(a5),d0
  1018.     muls.l    #$C,d0
  1019.     add.l    d0,-$360(a5)
  1020.     move.l    -$360(a5),-$310(a5)
  1021. L124
  1022.     move.l    -$310(a5),a0
  1023.     move.l    (a0),-$348(a5)
  1024.     lea    -$300(a5),a0
  1025.     move.l    a0,-$344(a5)
  1026.     move.l    -$304(a5),d0
  1027.     muls.l    #$C,d0
  1028.     add.l    d0,-$344(a5)
  1029.     move.l    -$344(a5),a0
  1030.     move.l    -$348(a5),(a0)
  1031.     moveq    #4,d0
  1032.     add.l    -$310(a5),d0
  1033.     move.l    d0,-$340(a5)
  1034.     move.l    -$340(a5),a0
  1035.     move.l    (a0),-$33C(a5)
  1036.     lea    -$300(a5),a0
  1037.     move.l    a0,-$338(a5)
  1038.     move.l    -$304(a5),d0
  1039.     muls.l    #$C,d0
  1040.     add.l    d0,-$338(a5)
  1041.     moveq    #4,d0
  1042.     add.l    d0,-$338(a5)
  1043.     move.l    -$338(a5),a0
  1044.     move.l    -$33C(a5),(a0)
  1045.     moveq    #$8,d0
  1046.     add.l    -$310(a5),d0
  1047.     move.l    d0,-$334(a5)
  1048.     move.l    -$334(a5),a0
  1049.     move.l    (a0),-$330(a5)
  1050.     lea    -$300(a5),a0
  1051.     move.l    a0,-$32C(a5)
  1052.     move.l    -$304(a5),d0
  1053.     muls.l    #$C,d0
  1054.     add.l    d0,-$32C(a5)
  1055.     moveq    #$8,d0
  1056.     add.l    d0,-$32C(a5)
  1057.     move.l    -$32C(a5),a0
  1058.     move.l    -$330(a5),(a0)
  1059.     move.l    -$304(a5),-$328(a5)
  1060.     addq.l    #1,-$304(a5)
  1061.     move.l    -$308(a5),-$324(a5)
  1062.     addq.l    #1,-$308(a5)
  1063. L125
  1064.     move.l    $8(a5),-$320(a5)
  1065.     move.l    -$320(a5),a0
  1066.     move.l    $10(a0),-$31C(a5)
  1067.     move.l    -$308(a5),d0
  1068.     cmp.l    -$31C(a5),d0
  1069.     blt    L121
  1070. L126
  1071.     lea    -$300(a5),a0
  1072.     move.l    a0,-$318(a5)
  1073.     move.l    -$318(a5),-(a7)
  1074.     move.l    -$304(a5),-(a7)
  1075.     jsr    _SubdividePolygon
  1076.     addq.w    #$8,a7
  1077.     unlk    a5
  1078.     rts
  1079.  
  1080.     XDEF    _EmitWaterPolys
  1081. _EmitWaterPolys
  1082. L137    EQU    -$84
  1083.     link    a5,#L137
  1084. L128
  1085.     move.l    $8(a5),-$74(a5)
  1086.     move.l    -$74(a5),a0
  1087.     move.l    $24(a0),-$70(a5)
  1088.     move.l    -$70(a5),-4(a5)
  1089.     bra.b    L135
  1090. L129
  1091.     move.l    #$8C,-$78(a5)
  1092.     move.l    -$78(a5),-(a7)
  1093.     move.l    _mini_CurrentContext,-(a7)
  1094.     jsr    _GLBegin
  1095.     addq.w    #$8,a7
  1096.     clr.l    -$C(a5)
  1097.     moveq    #$10,d0
  1098.     add.l    -4(a5),d0
  1099.     move.l    d0,-$6C(a5)
  1100.     move.l    -$6C(a5),-$8(a5)
  1101.     bra.b    L132
  1102. L130
  1103.     moveq    #$C,d0
  1104.     add.l    -$8(a5),d0
  1105.     move.l    d0,-$68(a5)
  1106.     move.l    -$68(a5),a0
  1107.     move.l    (a0),-$64(a5)
  1108.     move.l    -$64(a5),-$18(a5)
  1109.     moveq    #$10,d0
  1110.     add.l    -$8(a5),d0
  1111.     move.l    d0,-$60(a5)
  1112.     move.l    -$60(a5),a0
  1113.     move.l    (a0),-$5C(a5)
  1114.     move.l    -$5C(a5),-$1C(a5)
  1115.     fmove.s    -$1C(a5),fp0
  1116.     fmove.d    fp0,-$58(a5)
  1117.     fmove.d    -$58(a5),fp0
  1118.     fmul.d    #$.3FBFFFFF.FFFFFFFF,fp0
  1119.     fmove.d    fp0,-$58(a5)
  1120.     fmove.d    -$58(a5),fp0
  1121.     fadd.d    _realtime,fp0
  1122.     fmove.d    fp0,-$58(a5)
  1123.     fmove.d    -$58(a5),fp0
  1124.     fmul.d    #$.40445F30.6DC9C88A,fp0
  1125.     fmove.d    fp0,-$58(a5)
  1126.     fmove.d    -$58(a5),fp0
  1127.     fmove.l    fp0,d0
  1128.     move.l    d0,-$50(a5)
  1129.     and.l    #$FF,-$50(a5)
  1130.     move.l    -$50(a5),d0
  1131.     asl.l    #2,d0
  1132.     add.l    #_turbsin,d0
  1133.     move.l    d0,-$4C(a5)
  1134.     move.l    -$4C(a5),a0
  1135.     move.l    (a0),-$48(a5)
  1136.     fmove.s    -$48(a5),fp0
  1137.     fadd.s    -$18(a5),fp0
  1138.     fmove.s    fp0,-$48(a5)
  1139.     move.l    -$48(a5),-$10(a5)
  1140.     fmove.s    -$10(a5),fp0
  1141.     fmul.s    #$.3C800000,fp0
  1142.     fmove.s    fp0,-$10(a5)
  1143.     fmove.s    -$18(a5),fp0
  1144.     fmove.d    fp0,-$44(a5)
  1145.     fmove.d    -$44(a5),fp0
  1146.     fmul.d    #$.3FBFFFFF.FFFFFFFF,fp0
  1147.     fmove.d    fp0,-$44(a5)
  1148.     fmove.d    -$44(a5),fp0
  1149.     fadd.d    _realtime,fp0
  1150.     fmove.d    fp0,-$44(a5)
  1151.     fmove.d    -$44(a5),fp0
  1152.     fmul.d    #$.40445F30.6DC9C88A,fp0
  1153.     fmove.d    fp0,-$44(a5)
  1154.     fmove.d    -$44(a5),fp0
  1155.     fmove.l    fp0,d0
  1156.     move.l    d0,-$3C(a5)
  1157.     and.l    #$FF,-$3C(a5)
  1158.     move.l    -$3C(a5),d0
  1159.     asl.l    #2,d0
  1160.     add.l    #_turbsin,d0
  1161.     move.l    d0,-$38(a5)
  1162.     move.l    -$38(a5),a0
  1163.     move.l    (a0),-$34(a5)
  1164.     fmove.s    -$34(a5),fp0
  1165.     fadd.s    -$1C(a5),fp0
  1166.     fmove.s    fp0,-$34(a5)
  1167.     move.l    -$34(a5),-$14(a5)
  1168.     fmove.s    -$14(a5),fp0
  1169.     fmul.s    #$.3C800000,fp0
  1170.     fmove.s    fp0,-$14(a5)
  1171.     move.l    -$14(a5),-$80(a5)
  1172.     move.l    -$10(a5),-$7C(a5)
  1173.     move.l    -$80(a5),-(a7)
  1174.     move.l    -$7C(a5),-(a7)
  1175.     move.l    _mini_CurrentContext,-(a7)
  1176.     jsr    _GLTexCoord2f
  1177.     add.w    #$C,a7
  1178.     move.l    -$8(a5),-$84(a5)
  1179.     move.l    -$84(a5),-(a7)
  1180.     move.l    _mini_CurrentContext,-(a7)
  1181.     jsr    _GLVertex3fv
  1182.     addq.w    #$8,a7
  1183. L131
  1184.     move.l    -$C(a5),-$30(a5)
  1185.     addq.l    #1,-$C(a5)
  1186.     moveq    #$1C,d0
  1187.     add.l    d0,-$8(a5)
  1188. L132
  1189.     move.l    -4(a5),-$2C(a5)
  1190.     move.l    -$2C(a5),a0
  1191.     move.l    $8(a0),-$28(a5)
  1192.     move.l    -$C(a5),d0
  1193.     cmp.l    -$28(a5),d0
  1194.     blt    L130
  1195. L133
  1196.     move.l    _mini_CurrentContext,-(a7)
  1197.     jsr    _GLEnd
  1198.     addq.w    #4,a7
  1199. L134
  1200.     move.l    -4(a5),-$24(a5)
  1201.     move.l    -$24(a5),a0
  1202.     move.l    (a0),-$20(a5)
  1203.     move.l    -$20(a5),-4(a5)
  1204. L135
  1205.     tst.l    -4(a5)
  1206.     bne    L129
  1207. L136
  1208.     unlk    a5
  1209.     rts
  1210.  
  1211.     XDEF    _EmitSkyPolys
  1212. _EmitSkyPolys
  1213. L147    EQU    -$24
  1214.     link    a5,#L147
  1215.     fmovem.x fp2,-(a7)
  1216. L138
  1217.     move.l    $8(a5),a0
  1218.     move.l    $24(a0),a0
  1219.     move.l    a0,-4(a5)
  1220.     bra.b    L145
  1221. L139
  1222.     move.l    #$8C,d0
  1223.     move.l    d0,-(a7)
  1224.     move.l    _mini_CurrentContext,-(a7)
  1225.     jsr    _GLBegin
  1226.     addq.w    #$8,a7
  1227.     clr.l    -$C(a5)
  1228.     move.l    -4(a5),a1
  1229.     lea    $10(a1),a0
  1230.     move.l    a0,-$8(a5)
  1231.     bra.b    L142
  1232. L140
  1233.     move.l    -$8(a5),a0
  1234.     fmove.s    (a0),fp0
  1235.     move.l    #_r_origin,a0
  1236.     fmove.s    (a0),fp1
  1237.     fsub.x    fp1,fp0
  1238.     lea    -$20(a5),a0
  1239.     fmove.s    fp0,(a0)
  1240.     move.l    -$8(a5),a1
  1241.     lea    4(a1),a0
  1242.     fmove.s    (a0),fp0
  1243.     move.l    #_r_origin,a1
  1244.     lea    4(a1),a0
  1245.     fmove.s    (a0),fp1
  1246.     fsub.x    fp1,fp0
  1247.     lea    -$20(a5),a0
  1248.     addq.w    #4,a0
  1249.     fmove.s    fp0,(a0)
  1250.     move.l    -$8(a5),a1
  1251.     lea    $8(a1),a0
  1252.     fmove.s    (a0),fp0
  1253.     move.l    #_r_origin,a1
  1254.     lea    $8(a1),a0
  1255.     fmove.s    (a0),fp1
  1256.     fsub.x    fp1,fp0
  1257.     lea    -$20(a5),a0
  1258.     addq.w    #$8,a0
  1259.     fmove.s    fp0,(a0)
  1260.     lea    -$20(a5),a0
  1261.     addq.w    #$8,a0
  1262.     fmove.s    (a0),fp0
  1263.     fmul.s    #$.40400000,fp0
  1264.     fmove.s    fp0,(a0)
  1265.     lea    -$20(a5),a0
  1266.     fmove.s    (a0),fp0
  1267.     lea    -$20(a5),a0
  1268.     fmove.s    (a0),fp1
  1269.     fmul.x    fp1,fp0
  1270.     lea    -$20(a5),a0
  1271.     addq.w    #4,a0
  1272.     fmove.s    (a0),fp1
  1273.     lea    -$20(a5),a0
  1274.     addq.w    #4,a0
  1275.     fmove.s    (a0),fp2
  1276.     fmul.x    fp2,fp1
  1277.     fadd.x    fp1,fp0
  1278.     lea    -$20(a5),a0
  1279.     addq.w    #$8,a0
  1280.     fmove.s    (a0),fp1
  1281.     lea    -$20(a5),a0
  1282.     addq.w    #$8,a0
  1283.     fmove.s    (a0),fp2
  1284.     fmul.x    fp2,fp1
  1285.     fadd.x    fp1,fp0
  1286.     fmove.d    fp0,-(a7)
  1287.     jsr    _sqrt__r
  1288.     addq.w    #$8,a7
  1289.     fmove.s    #$.43BD0000,fp1
  1290.     fdiv.x    fp0,fp1
  1291.     fmove.x    fp1,fp0
  1292.     lea    -$20(a5),a0
  1293.     fmove.s    (a0),fp1
  1294.     fmul.x    fp0,fp1
  1295.     fmove.s    fp1,(a0)
  1296.     lea    -$20(a5),a0
  1297.     addq.w    #4,a0
  1298.     fmove.s    (a0),fp1
  1299.     fmul.x    fp0,fp1
  1300.     fmove.s    fp1,(a0)
  1301.     lea    -$20(a5),a0
  1302.     fmove.s    (a0),fp0
  1303.     fadd.s    _speedscale,fp0
  1304.     fmul.d    #$.3F800000.00000000,fp0
  1305.     lea    -$20(a5),a0
  1306.     addq.w    #4,a0
  1307.     fmove.s    (a0),fp1
  1308.     fadd.s    _speedscale,fp1
  1309.     fmul.d    #$.3F800000.00000000,fp1
  1310.     fmove.s    fp1,-(a7)
  1311.     fmove.s    fp0,-(a7)
  1312.     move.l    _mini_CurrentContext,-(a7)
  1313.     jsr    _GLTexCoord2f
  1314.     add.w    #$C,a7
  1315.     move.l    -$8(a5),a0
  1316.     move.l    a0,-(a7)
  1317.     move.l    _mini_CurrentContext,-(a7)
  1318.     jsr    _GLVertex3fv
  1319.     addq.w    #$8,a7
  1320. L141
  1321.     move.l    -$C(a5),d0
  1322.     addq.l    #1,-$C(a5)
  1323.     moveq    #$1C,d0
  1324.     add.l    d0,-$8(a5)
  1325. L142
  1326.     move.l    -4(a5),a0
  1327.     move.l    $8(a0),d0
  1328.     move.l    -$C(a5),d1
  1329.     cmp.l    d0,d1
  1330.     blt    L140
  1331. L143
  1332.     move.l    _mini_CurrentContext,-(a7)
  1333.     jsr    _GLEnd
  1334.     addq.w    #4,a7
  1335. L144
  1336.     move.l    -4(a5),a0
  1337.     move.l    (a0),a0
  1338.     move.l    a0,-4(a5)
  1339. L145
  1340.     tst.l    -4(a5)
  1341.     bne    L139
  1342. L146
  1343.     fmovem.x (a7)+,fp2
  1344.     unlk    a5
  1345.     rts
  1346.  
  1347.     XDEF    _EmitBothSkyLayers
  1348. _EmitBothSkyLayers
  1349. L149    EQU    -$3C
  1350.     link    a5,#L149
  1351. L148
  1352.     jsr    _GL_DisableMultitexture
  1353.     move.l    _solidskytexture,-(a7)
  1354.     jsr    _GL_Bind
  1355.     addq.w    #4,a7
  1356.     fmove.d    _realtime,fp0
  1357.     fmul.d    #$.40200000.00000000,fp0
  1358.     fmove.d    fp0,-$34(a5)
  1359.     fmove.d    -$34(a5),fp0
  1360.     fmove.s    fp0,-$2C(a5)
  1361.     move.l    -$2C(a5),_speedscale
  1362.     fmove.s    _speedscale,fp0
  1363.     fmove.l    fp0,d0
  1364.     move.l    d0,-$28(a5)
  1365.     and.l    #-$80,-$28(a5)
  1366.     fmove.l    -$28(a5),fp0
  1367.     fmove.s    fp0,-$24(a5)
  1368.     fmove.s    _speedscale,fp0
  1369.     fsub.s    -$24(a5),fp0
  1370.     fmove.s    fp0,_speedscale
  1371.     move.l    $8(a5),-(a7)
  1372.     jsr    _EmitSkyPolys
  1373.     addq.w    #4,a7
  1374.     move.l    #$D,-$3C(a5)
  1375.     move.b    #1,-(a7)
  1376.     move.l    -$3C(a5),-(a7)
  1377.     move.l    _mini_CurrentContext,-(a7)
  1378.     jsr    _MGLSetState
  1379.     add.w    #$A,a7
  1380.     move.l    _alphaskytexture,-(a7)
  1381.     jsr    _GL_Bind
  1382.     addq.w    #4,a7
  1383.     fmove.d    _realtime,fp0
  1384.     fmul.d    #$.40300000.00000000,fp0
  1385.     fmove.d    fp0,-$20(a5)
  1386.     fmove.d    -$20(a5),fp0
  1387.     fmove.s    fp0,-$18(a5)
  1388.     move.l    -$18(a5),_speedscale
  1389.     fmove.s    _speedscale,fp0
  1390.     fmove.l    fp0,d0
  1391.     move.l    d0,-$14(a5)
  1392.     and.l    #-$80,-$14(a5)
  1393.     fmove.l    -$14(a5),fp0
  1394.     fmove.s    fp0,-$10(a5)
  1395.     fmove.s    _speedscale,fp0
  1396.     fsub.s    -$10(a5),fp0
  1397.     fmove.s    fp0,_speedscale
  1398.     move.l    $8(a5),-(a7)
  1399.     jsr    _EmitSkyPolys
  1400.     addq.w    #4,a7
  1401.     move.l    #$D,-$38(a5)
  1402.     clr.b    -(a7)
  1403.     move.l    -$38(a5),-(a7)
  1404.     move.l    _mini_CurrentContext,-(a7)
  1405.     jsr    _MGLSetState
  1406.     add.w    #$A,a7
  1407.     unlk    a5
  1408.     rts
  1409.  
  1410.     XDEF    _R_DrawSkyChain
  1411. _R_DrawSkyChain
  1412. L157    EQU    -$44
  1413.     link    a5,#L157
  1414. L150
  1415.     jsr    _GL_DisableMultitexture
  1416.     move.l    _solidskytexture,-(a7)
  1417.     jsr    _GL_Bind
  1418.     addq.w    #4,a7
  1419.     fmove.d    _realtime,fp0
  1420.     fmul.d    #$.40200000.00000000,fp0
  1421.     fmove.d    fp0,-$3C(a5)
  1422.     fmove.d    -$3C(a5),fp0
  1423.     fmove.s    fp0,-$34(a5)
  1424.     move.l    -$34(a5),_speedscale
  1425.     fmove.s    _speedscale,fp0
  1426.     fmove.l    fp0,d0
  1427.     move.l    d0,-$30(a5)
  1428.     and.l    #-$80,-$30(a5)
  1429.     fmove.l    -$30(a5),fp0
  1430.     fmove.s    fp0,-$2C(a5)
  1431.     fmove.s    _speedscale,fp0
  1432.     fsub.s    -$2C(a5),fp0
  1433.     fmove.s    fp0,_speedscale
  1434.     move.l    $8(a5),-4(a5)
  1435.     bra.b    L152
  1436. L151
  1437.     move.l    -4(a5),-(a7)
  1438.     jsr    _EmitSkyPolys
  1439.     addq.w    #4,a7
  1440.     move.l    -4(a5),-$28(a5)
  1441.     move.l    -$28(a5),a0
  1442.     move.l    $28(a0),-$24(a5)
  1443.     move.l    -$24(a5),-4(a5)
  1444. L152
  1445.     tst.l    -4(a5)
  1446.     bne.b    L151
  1447. L153
  1448.     move.l    #$D,-$44(a5)
  1449.     move.b    #1,-(a7)
  1450.     move.l    -$44(a5),-(a7)
  1451.     move.l    _mini_CurrentContext,-(a7)
  1452.     jsr    _MGLSetState
  1453.     add.w    #$A,a7
  1454.     move.l    _alphaskytexture,-(a7)
  1455.     jsr    _GL_Bind
  1456.     addq.w    #4,a7
  1457.     fmove.d    _realtime,fp0
  1458.     fmul.d    #$.40300000.00000000,fp0
  1459.     fmove.d    fp0,-$20(a5)
  1460.     fmove.d    -$20(a5),fp0
  1461.     fmove.s    fp0,-$18(a5)
  1462.     move.l    -$18(a5),_speedscale
  1463.     fmove.s    _speedscale,fp0
  1464.     fmove.l    fp0,d0
  1465.     move.l    d0,-$14(a5)
  1466.     and.l    #-$80,-$14(a5)
  1467.     fmove.l    -$14(a5),fp0
  1468.     fmove.s    fp0,-$10(a5)
  1469.     fmove.s    _speedscale,fp0
  1470.     fsub.s    -$10(a5),fp0
  1471.     fmove.s    fp0,_speedscale
  1472.     move.l    $8(a5),-4(a5)
  1473.     bra.b    L155
  1474. L154
  1475.     move.l    -4(a5),-(a7)
  1476.     jsr    _EmitSkyPolys
  1477.     addq.w    #4,a7
  1478.     move.l    -4(a5),-$C(a5)
  1479.     move.l    -$C(a5),a0
  1480.     move.l    $28(a0),-$8(a5)
  1481.     move.l    -$8(a5),-4(a5)
  1482. L155
  1483.     tst.l    -4(a5)
  1484.     bne.b    L154
  1485. L156
  1486.     move.l    #$D,-$40(a5)
  1487.     clr.b    -(a7)
  1488.     move.l    -$40(a5),-(a7)
  1489.     move.l    _mini_CurrentContext,-(a7)
  1490.     jsr    _MGLSetState
  1491.     add.w    #$A,a7
  1492.     unlk    a5
  1493.     rts
  1494.  
  1495.     XDEF    _R_InitSky
  1496. _R_InitSky
  1497. L178    EQU    -$10128
  1498.     link    a5,#L178
  1499. L158
  1500.     moveq    #$34,d0
  1501.     add.l    $8(a5),d0
  1502.     move.l    d0,-$100E0(a5)
  1503.     move.l    -$100E0(a5),a0
  1504.     move.l    (a0),-$100DC(a5)
  1505.     move.l    -$100DC(a5),d0
  1506.     add.l    $8(a5),d0
  1507.     move.l    d0,-$100D8(a5)
  1508.     move.l    -$100D8(a5),-$1C(a5)
  1509.     clr.l    -$2C(a5)
  1510.     move.l    -$2C(a5),-$28(a5)
  1511.     move.l    -$28(a5),-$24(a5)
  1512.     clr.l    -$10(a5)
  1513.     bra.b    L163
  1514. L159
  1515.     clr.l    -$14(a5)
  1516.     bra.b    L161
  1517. L160
  1518.     move.l    #$80,d0
  1519.     add.l    -$1C(a5),d0
  1520.     move.l    d0,-$100D0(a5)
  1521.     move.l    -$10(a5),d0
  1522.     moveq    #$8,d1
  1523.     asl.l    d1,d0
  1524.     move.l    d0,-$100CC(a5)
  1525.     move.l    -$100CC(a5),d0
  1526.     add.l    -$14(a5),d0
  1527.     move.l    d0,-$100CC(a5)
  1528.     move.l    -$100CC(a5),d0
  1529.     add.l    d0,-$100D0(a5)
  1530.     move.l    -$100D0(a5),a0
  1531.     move.b    (a0),-$100C5(a5)
  1532.     moveq    #0,d0
  1533.     move.b    -$100C5(a5),d0
  1534.     move.l    d0,-$100D4(a5)
  1535.     move.l    -$100D4(a5),-$18(a5)
  1536.     move.l    -$18(a5),d0
  1537.     asl.l    #2,d0
  1538.     add.l    #_d_8to24table,d0
  1539.     move.l    d0,-$100C4(a5)
  1540.     move.l    -$100C4(a5),-$30(a5)
  1541.     move.l    -$30(a5),a0
  1542.     move.l    (a0),-$100C0(a5)
  1543.     move.l    a5,a0
  1544.     sub.l    #$10030,a0
  1545.     lea    (a0),a0
  1546.     move.l    a0,-$100BC(a5)
  1547.     move.l    -$10(a5),d0
  1548.     moveq    #7,d1
  1549.     asl.l    d1,d0
  1550.     move.l    d0,-$100B8(a5)
  1551.     move.l    -$100B8(a5),d0
  1552.     add.l    -$14(a5),d0
  1553.     move.l    d0,-$100B8(a5)
  1554.     move.l    -$100B8(a5),d0
  1555.     asl.l    #2,d0
  1556.     add.l    d0,-$100BC(a5)
  1557.     move.l    -$100BC(a5),a0
  1558.     move.l    -$100C0(a5),(a0)
  1559.     move.l    -$30(a5),a0
  1560.     move.b    (a0),-$100AD(a5)
  1561.     moveq    #0,d0
  1562.     move.b    -$100AD(a5),d0
  1563.     move.l    d0,-$100B4(a5)
  1564.     move.l    -$24(a5),d0
  1565.     add.l    -$100B4(a5),d0
  1566.     move.l    d0,-$24(a5)
  1567.     moveq    #1,d0
  1568.     add.l    -$30(a5),d0
  1569.     move.l    d0,-$100A8(a5)
  1570.     move.l    -$100A8(a5),a0
  1571.     move.b    (a0),-$100A1(a5)
  1572.     moveq    #0,d0
  1573.     move.b    -$100A1(a5),d0
  1574.     move.l    d0,-$100AC(a5)
  1575.     move.l    -$28(a5),d0
  1576.     add.l    -$100AC(a5),d0
  1577.     move.l    d0,-$28(a5)
  1578.     moveq    #2,d0
  1579.     add.l    -$30(a5),d0
  1580.     move.l    d0,-$1009C(a5)
  1581.     move.l    -$1009C(a5),a0
  1582.     move.b    (a0),-$10095(a5)
  1583.     moveq    #0,d0
  1584.     move.b    -$10095(a5),d0
  1585.     move.l    d0,-$100A0(a5)
  1586.     move.l    -$2C(a5),d0
  1587.     add.l    -$100A0(a5),d0
  1588.     move.l    d0,-$2C(a5)
  1589.     move.l    -$14(a5),-$10094(a5)
  1590.     addq.l    #1,-$14(a5)
  1591. L161
  1592.     move.l    -$14(a5),d0
  1593.     cmp.l    #$80,d0
  1594.     blt    L160
  1595. L162
  1596.     move.l    -$10(a5),-$10090(a5)
  1597.     addq.l    #1,-$10(a5)
  1598. L163
  1599.     move.l    -$10(a5),d0
  1600.     cmp.l    #$80,d0
  1601.     blt    L159
  1602. L164
  1603.     move.l    -$24(a5),d0
  1604.     divsl.l    #$4000,d0
  1605.     move.l    d0,-$10088(a5)
  1606.     lea    -$10088(a5),
  1607.     END
  1608.