You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2014 lines
85 KiB
2014 lines
85 KiB
3 years ago
|
#ifndef YDWECinematicSystemIncluded
|
||
|
#define YDWECinematicSystemIncluded
|
||
|
|
||
|
#include "YDWEBase.j"
|
||
|
|
||
|
library YDWEScriptSystem requires YDWEBase
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** CALIBRATION FUNCTIONS
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
globals
|
||
|
//ScriptSystem
|
||
|
private unit array YDWE_cinS_actor
|
||
|
private camerasetup array YDWE_cinS_camera
|
||
|
private real array YDWE_cinS_act_moveX
|
||
|
private real array YDWE_cinS_act_moveY
|
||
|
private real array YDWE_cinS_act_moveZ
|
||
|
private real array YDWE_cinS_act_moveVX
|
||
|
private real array YDWE_cinS_act_moveVY
|
||
|
private real array YDWE_cinS_act_moveVZ
|
||
|
private real array YDWE_cinS_act_moveAZ
|
||
|
private real array YDWE_cinS_act_moveTime
|
||
|
private real array YDWE_cinS_act_turnFi
|
||
|
private real array YDWE_cinS_act_turnVFi
|
||
|
private real array YDWE_cinS_act_turnTime
|
||
|
private real array YDWE_cinS_act_colourR
|
||
|
private real array YDWE_cinS_act_colourG
|
||
|
private real array YDWE_cinS_act_colourB
|
||
|
private real array YDWE_cinS_act_colourA
|
||
|
private real array YDWE_cinS_act_colourVR
|
||
|
private real array YDWE_cinS_act_colourVG
|
||
|
private real array YDWE_cinS_act_colourVB
|
||
|
private real array YDWE_cinS_act_colourVA
|
||
|
private real array YDWE_cinS_act_colourTime
|
||
|
private real array YDWE_cinS_act_sizeS
|
||
|
private real array YDWE_cinS_act_sizeVS
|
||
|
private real array YDWE_cinS_act_sizeTime
|
||
|
private real array YDWE_cinS_cam_startval
|
||
|
private real array YDWE_cinS_cam_startvel
|
||
|
private real array YDWE_cinS_cam_accprim
|
||
|
private real array YDWE_cinS_cam_accsec
|
||
|
private real array YDWE_cinS_cam_time
|
||
|
private real array YDWE_cinS_cam_endtime
|
||
|
private group array YDWE_cinS_act_groups
|
||
|
private unit YDWE_cinS_cam_OvRxyzUnitPrim = null
|
||
|
private real array YDWE_cinS_cam_OvRoffset
|
||
|
private real YDWE_cinS_cam_OvRxyzTime = 0
|
||
|
private real YDWE_cinS_cam_OvRxyzEndtime = 0
|
||
|
private real YDWE_cinS_cam_OvRangTime = 0
|
||
|
private real YDWE_cinS_cam_OvRangEndtime = 0
|
||
|
private unit YDWE_cinS_cam_OvRxyzUnitSec = null
|
||
|
private unit YDWE_cinS_cam_OvRangUnitPrim = null
|
||
|
private unit YDWE_cinS_cam_OvRangUnitSec = null
|
||
|
private boolean YDWE_cinS_cam_OvRxyzSmooth = false
|
||
|
private boolean YDWE_cinS_cam_OvRangSmooth = false
|
||
|
private unit YDWE_cinS_cam_fadeUnit = null
|
||
|
private location YDWE_cinS_tempPoint = null
|
||
|
private boolean YDWE_cinS_cam_ignoreTerrain = false
|
||
|
private boolean YDWE_cinS_displaySubtitles = true
|
||
|
private integer YDWE_cinS_FadeFilterUnit = 'e000'
|
||
|
private real YDWE_cinS_ScriptSystemPeriod = 0.02
|
||
|
private real YDWE_cinS_ParticlePeriod = 0.02
|
||
|
private real YDWE_cinS_CameraPeriod = 0.02
|
||
|
endglobals
|
||
|
|
||
|
function YDWEScriptSystemPeriod takes real timeout returns nothing
|
||
|
set YDWE_cinS_ScriptSystemPeriod=timeout
|
||
|
endfunction
|
||
|
|
||
|
function YDWEParticlePeriod takes real timeout returns nothing
|
||
|
set YDWE_cinS_ParticlePeriod=timeout
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraPeriod takes real timeout returns nothing
|
||
|
set YDWE_cinS_CameraPeriod=timeout
|
||
|
endfunction
|
||
|
|
||
|
function YDWEFadeFilterUnit takes integer uid returns nothing
|
||
|
set YDWE_cinS_FadeFilterUnit=uid
|
||
|
endfunction
|
||
|
|
||
|
//===========================================================================
|
||
|
//ϵͳ-ScriptSystem
|
||
|
//===========================================================================
|
||
|
|
||
|
function YDWECinSInitTempPoint takes location point returns nothing
|
||
|
set YDWE_cinS_tempPoint=point
|
||
|
//return
|
||
|
endfunction
|
||
|
|
||
|
function YDWECinSActor takes integer i returns unit
|
||
|
return YDWE_cinS_actor[i]
|
||
|
endfunction
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** GENERAL AND MISCELANEOUS FUNCTIONS
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
//function GC takes nothing returns gamecache
|
||
|
// if YDWE_cinS_GC == null then
|
||
|
// call FlushGameCache(InitGameCache( "CinemaCache" ))
|
||
|
// set YDWE_cinS_GC = InitGameCache( "CinemaCache" )
|
||
|
// endif
|
||
|
// return YDWE_cinS_GC
|
||
|
//endfunction
|
||
|
|
||
|
function YDWECameraSetupAssign takes camerasetup cs, integer actID returns nothing
|
||
|
set YDWE_cinS_camera[actID] = cs
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorCreate takes player p, integer actID, integer unitType returns nothing
|
||
|
local unit u = CreateUnit(p, unitType, 0.0, 0.0, 0.0)
|
||
|
call SetUnitUserData(u, actID)
|
||
|
call YDWEFlyEnable(u)
|
||
|
set YDWE_cinS_actor[actID] = u
|
||
|
set YDWE_cinS_act_colourR[actID] = 100.0
|
||
|
set YDWE_cinS_act_colourG[actID] = 100.0
|
||
|
set YDWE_cinS_act_colourB[actID] = 100.0
|
||
|
set YDWE_cinS_act_colourA[actID] = 100.0
|
||
|
set u = null
|
||
|
endfunction
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** CAMERA SYSTEM
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
function YDWECinematicCameraEnable takes nothing returns nothing
|
||
|
local trigger t = YDWEGetTriggerByString( "Globals", "CamTrig")
|
||
|
call EnableTrigger(t)
|
||
|
set t = null
|
||
|
endfunction
|
||
|
function YDWECinematicCameraDisable takes nothing returns nothing
|
||
|
local trigger t = YDWEGetTriggerByString( "Globals", "CamTrig")
|
||
|
call DisableTrigger(t)
|
||
|
set t = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWESetCameraZ takes real z returns nothing
|
||
|
//thanks to ToadCop for this function
|
||
|
set z = GetCameraField(CAMERA_FIELD_ZOFFSET)+z-GetCameraTargetPositionZ()
|
||
|
call SetCameraField(CAMERA_FIELD_ZOFFSET,z,- 0.01)
|
||
|
call SetCameraField(CAMERA_FIELD_ZOFFSET,z,0.01)
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraMainLoop takes nothing returns nothing
|
||
|
local real array s
|
||
|
local location stupid = YDWE_cinS_tempPoint
|
||
|
local integer i = 0
|
||
|
local real ovrFactor
|
||
|
|
||
|
// camera motion
|
||
|
loop
|
||
|
exitwhen i == 18
|
||
|
set i = i + 1
|
||
|
set YDWE_cinS_cam_time[i] = YDWE_cinS_cam_time[i] + YDWE_cinS_CameraPeriod
|
||
|
|
||
|
set s[i] = YDWE_cinS_cam_startval[i] + ( YDWE_cinS_cam_startvel[i] * YDWE_cinS_cam_time[i] ) + ( YDWE_cinS_cam_accprim[i] * YDWE_cinS_cam_time[i] * YDWE_cinS_cam_time[i] / 2 )
|
||
|
|
||
|
if i > 3 and i < 7 then
|
||
|
loop
|
||
|
if s[i] > 360 then
|
||
|
set s[i] = s[i] - 360
|
||
|
elseif s[i] < 0 then
|
||
|
set s[i] = s[i] + 360
|
||
|
else
|
||
|
exitwhen true
|
||
|
endif
|
||
|
endloop
|
||
|
endif
|
||
|
|
||
|
if YDWE_cinS_cam_time[i] + YDWE_cinS_CameraPeriod >= YDWE_cinS_cam_endtime[i] then
|
||
|
if YDWE_cinS_cam_accsec[i] != 0 then
|
||
|
set YDWE_cinS_cam_startvel[i] = YDWE_cinS_cam_startvel[i] + ( YDWE_cinS_cam_accprim[i] * YDWE_cinS_cam_time[i] )
|
||
|
set YDWE_cinS_cam_accprim[i] = YDWE_cinS_cam_accsec[i]
|
||
|
set YDWE_cinS_cam_startval[i] = s[i]
|
||
|
set YDWE_cinS_cam_time[i] = 0.0
|
||
|
set YDWE_cinS_cam_accsec[i] = 0.0
|
||
|
else
|
||
|
if i>9 then
|
||
|
set YDWE_cinS_cam_startvel[i] = 0.0
|
||
|
set YDWE_cinS_cam_startval[i] = s[i]
|
||
|
set YDWE_cinS_cam_time[i] = 0.0
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
endloop
|
||
|
|
||
|
// camera lock-to-unit override
|
||
|
if YDWE_cinS_cam_OvRxyzUnitPrim!=null or YDWE_cinS_cam_OvRxyzUnitSec!=null then
|
||
|
set YDWE_cinS_cam_OvRxyzTime = YDWE_cinS_cam_OvRxyzTime + YDWE_cinS_CameraPeriod
|
||
|
if YDWE_cinS_cam_OvRxyzTime > YDWE_cinS_cam_OvRxyzEndtime then
|
||
|
set YDWE_cinS_cam_OvRxyzTime = YDWE_cinS_cam_OvRxyzEndtime
|
||
|
endif
|
||
|
|
||
|
set ovrFactor = YDWE_cinS_cam_OvRxyzTime/YDWE_cinS_cam_OvRxyzEndtime
|
||
|
if YDWE_cinS_cam_OvRxyzSmooth then
|
||
|
set ovrFactor = (1.0 - Cos(ovrFactor*bj_PI)) / 2
|
||
|
endif
|
||
|
|
||
|
call MoveLocation(stupid, GetUnitX(YDWE_cinS_cam_OvRxyzUnitPrim),GetUnitY(YDWE_cinS_cam_OvRxyzUnitPrim))
|
||
|
set s[19] = GetLocationZ(stupid)
|
||
|
call MoveLocation(stupid, GetUnitX(YDWE_cinS_cam_OvRxyzUnitSec),GetUnitY(YDWE_cinS_cam_OvRxyzUnitSec))
|
||
|
set s[20] = GetLocationZ(stupid)
|
||
|
|
||
|
if YDWE_cinS_cam_OvRxyzUnitSec==null then //going from null to unit
|
||
|
set s[1] = s[1]*(1-ovrFactor) + (GetUnitX(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[1])*ovrFactor
|
||
|
set s[2] = s[2]*(1-ovrFactor) + (GetUnitY(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[2])*ovrFactor
|
||
|
set s[3] = s[3]*(1-ovrFactor) + (s[19]+GetUnitFlyHeight(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[3])*ovrFactor
|
||
|
elseif YDWE_cinS_cam_OvRxyzUnitPrim==null then //going from unit to null
|
||
|
set s[1] = s[1]*ovrFactor + (GetUnitX(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[7])*(1.0-ovrFactor)
|
||
|
set s[2] = s[2]*ovrFactor + (GetUnitY(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[8])*(1.0-ovrFactor)
|
||
|
set s[3] = s[3]*ovrFactor + (s[20]+GetUnitFlyHeight(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[9])*(1.0-ovrFactor)
|
||
|
else //going from unit to unit
|
||
|
set s[1] = (GetUnitX(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[7])*(1-ovrFactor) + (GetUnitX(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[1])*ovrFactor
|
||
|
set s[2] = (GetUnitY(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[8])*(1-ovrFactor) + (GetUnitY(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[2])*ovrFactor
|
||
|
set s[3] = (s[20]+GetUnitFlyHeight(YDWE_cinS_cam_OvRxyzUnitSec)+YDWE_cinS_cam_OvRoffset[9])*(1-ovrFactor) + (s[19]+GetUnitFlyHeight(YDWE_cinS_cam_OvRxyzUnitPrim)+YDWE_cinS_cam_OvRoffset[3])*ovrFactor
|
||
|
endif
|
||
|
if YDWE_cinS_cam_OvRxyzTime == YDWE_cinS_cam_OvRxyzEndtime then
|
||
|
if YDWE_cinS_cam_OvRxyzUnitPrim==null then
|
||
|
set YDWE_cinS_cam_OvRxyzUnitSec = null
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
// camera face-to-unit override
|
||
|
if YDWE_cinS_cam_OvRangUnitPrim!=null or YDWE_cinS_cam_OvRangUnitSec!=null then
|
||
|
set YDWE_cinS_cam_OvRangTime = YDWE_cinS_cam_OvRangTime + YDWE_cinS_CameraPeriod
|
||
|
if YDWE_cinS_cam_OvRangTime > YDWE_cinS_cam_OvRangEndtime then
|
||
|
set YDWE_cinS_cam_OvRangTime = YDWE_cinS_cam_OvRangEndtime
|
||
|
endif
|
||
|
|
||
|
set ovrFactor = YDWE_cinS_cam_OvRangTime/YDWE_cinS_cam_OvRangEndtime
|
||
|
if YDWE_cinS_cam_OvRangSmooth then
|
||
|
set ovrFactor = (1.0 - Cos(ovrFactor*bj_PI)) / 2
|
||
|
endif
|
||
|
|
||
|
call MoveLocation(stupid, GetUnitX(YDWE_cinS_cam_OvRangUnitPrim),GetUnitY(YDWE_cinS_cam_OvRangUnitPrim))
|
||
|
set s[19] = GetLocationZ(stupid)
|
||
|
call MoveLocation(stupid, GetUnitX(YDWE_cinS_cam_OvRangUnitSec),GetUnitY(YDWE_cinS_cam_OvRangUnitSec))
|
||
|
set s[20] = GetLocationZ(stupid)
|
||
|
|
||
|
if YDWE_cinS_cam_OvRangUnitPrim!=null then
|
||
|
set s[21]=(GetUnitX(YDWE_cinS_cam_OvRangUnitPrim)+YDWE_cinS_cam_OvRoffset[4])-s[1]
|
||
|
set s[22]=(GetUnitY(YDWE_cinS_cam_OvRangUnitPrim)+YDWE_cinS_cam_OvRoffset[5])-s[2]
|
||
|
set s[23]=(s[19]+GetUnitFlyHeight(YDWE_cinS_cam_OvRangUnitPrim)+YDWE_cinS_cam_OvRoffset[6])-s[3]
|
||
|
set s[24]=Atan2(s[22], s[21]) * bj_RADTODEG
|
||
|
set s[25]=Atan2(s[23], SquareRoot(s[21]*s[21]+s[22]*s[22])) * bj_RADTODEG
|
||
|
else
|
||
|
set s[24]=s[4]
|
||
|
set s[25]=s[5]
|
||
|
endif
|
||
|
|
||
|
if YDWE_cinS_cam_OvRangUnitSec!=null then
|
||
|
set s[21]=(GetUnitX(YDWE_cinS_cam_OvRangUnitSec)+YDWE_cinS_cam_OvRoffset[10])-s[1]
|
||
|
set s[22]=(GetUnitY(YDWE_cinS_cam_OvRangUnitSec)+YDWE_cinS_cam_OvRoffset[11])-s[2]
|
||
|
set s[23]=(s[20]+GetUnitFlyHeight(YDWE_cinS_cam_OvRangUnitSec)+YDWE_cinS_cam_OvRoffset[12])-s[3]
|
||
|
set s[26]=Atan2(s[22], s[21]) * bj_RADTODEG
|
||
|
set s[27]=Atan2(s[23], SquareRoot(s[21]*s[21]+s[22]*s[22])) * bj_RADTODEG
|
||
|
else
|
||
|
set s[26]=s[4]
|
||
|
set s[27]=s[5]
|
||
|
endif
|
||
|
|
||
|
if (s[26] - s[24]) > 180 then
|
||
|
set s[24] = s[24] + 360
|
||
|
elseif (s[26] - s[24]) < -180 then
|
||
|
set s[24] = s[24] - 360
|
||
|
endif
|
||
|
set s[4] = ovrFactor * s[24] + (1-ovrFactor) * s[26]
|
||
|
|
||
|
if (s[27] - s[25]) > 180 then
|
||
|
set s[25] = s[25] + 360
|
||
|
elseif (s[27] - s[25]) < -180 then
|
||
|
set s[25] = s[25] - 360
|
||
|
endif
|
||
|
set s[5] = ovrFactor * s[25] + (1-ovrFactor) * s[27]
|
||
|
|
||
|
if YDWE_cinS_cam_OvRangTime == YDWE_cinS_cam_OvRangEndtime then
|
||
|
if YDWE_cinS_cam_OvRangUnitPrim==null then
|
||
|
set YDWE_cinS_cam_OvRangUnitSec = null
|
||
|
endif
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
if s[9]<100.0 then
|
||
|
set s[9]=100.0
|
||
|
endif
|
||
|
|
||
|
// camera fade filter unit
|
||
|
if s[18]>0 then
|
||
|
set s[23]=Sin(s[5]*bj_DEGTORAD)
|
||
|
set s[20]=Cos(s[5]*bj_DEGTORAD)
|
||
|
set s[21]=Cos(s[4]*bj_DEGTORAD)*s[20]
|
||
|
set s[22]=Sin(s[4]*bj_DEGTORAD)*s[20]
|
||
|
|
||
|
set s[19]=(s[9]-128.0)
|
||
|
set s[20]=Tan(s[7]*bj_DEGTORAD/2) *40
|
||
|
|
||
|
set s[21]=s[1]-s[19]*s[21]
|
||
|
set s[22]=s[2]-s[19]*s[22]
|
||
|
set s[23]=s[3]-s[19]*s[23]
|
||
|
|
||
|
call MoveLocation(stupid, s[21], s[22])
|
||
|
set s[23]=s[23]-GetLocationZ(stupid)
|
||
|
call SetUnitX(YDWE_cinS_cam_fadeUnit, s[21])
|
||
|
call SetUnitY(YDWE_cinS_cam_fadeUnit, s[22])
|
||
|
call SetUnitFlyHeight(YDWE_cinS_cam_fadeUnit, s[23], 0.0)
|
||
|
call SetUnitScale(YDWE_cinS_cam_fadeUnit, s[20],s[20],s[20])
|
||
|
endif
|
||
|
|
||
|
call PanCameraToTimed( s[1], s[2], 0.0 )
|
||
|
call MoveLocation(stupid, s[1], s[2])
|
||
|
if YDWE_cinS_cam_ignoreTerrain then
|
||
|
call YDWESetCameraZ(s[3])
|
||
|
else
|
||
|
call SetCameraField( CAMERA_FIELD_ZOFFSET, s[3]-GetLocationZ(stupid), 0.00 )
|
||
|
endif
|
||
|
call SetCameraField( CAMERA_FIELD_ROTATION, s[4], 0.00 )
|
||
|
call SetCameraField( CAMERA_FIELD_ANGLE_OF_ATTACK, s[5], 0.00 )
|
||
|
call SetCameraField( CAMERA_FIELD_ROLL, s[6], 0.00 )
|
||
|
call SetCameraField( CAMERA_FIELD_FIELD_OF_VIEW, s[7], 0.00 )
|
||
|
call SetCameraField( CAMERA_FIELD_FARZ, s[8], 0.00 )
|
||
|
call SetCameraField( CAMERA_FIELD_TARGET_DISTANCE, s[9], 0.00 )
|
||
|
|
||
|
call SetUnitVertexColor(YDWE_cinS_cam_fadeUnit, R2I(s[15]*256), R2I(s[16]*256), R2I(s[17]*256), R2I(s[18]*256))
|
||
|
call SetTerrainFogEx(0, s[10], s[11], 0.0, s[12], s[13], s[14])
|
||
|
|
||
|
set stupid = null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWECameraStatChangeLin takes integer stat, real endvalue, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = (endvalue - startvalue)/time
|
||
|
set YDWE_cinS_cam_accprim[stat] = 0.0
|
||
|
set YDWE_cinS_cam_accsec[stat] = 0.0
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatChangeLinRad takes integer stat, real endvalue, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
local real distance = endvalue - startvalue
|
||
|
|
||
|
local real velocity1 = distance/time
|
||
|
local real velocity2 = -( RSignBJ(distance) * (360 - RAbsBJ(distance)) )/time
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
if RAbsBJ(velocity1) < RAbsBJ(velocity2) then
|
||
|
set YDWE_cinS_cam_startvel[stat] = velocity1
|
||
|
else
|
||
|
set YDWE_cinS_cam_startvel[stat] = velocity2
|
||
|
endif
|
||
|
set YDWE_cinS_cam_accprim[stat] = 0.0
|
||
|
set YDWE_cinS_cam_accsec[stat] = 0.0
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatChange takes integer stat, real endvalue, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
local real startvelocity = YDWE_cinS_cam_startvel[stat] + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] )
|
||
|
local real distance = endvalue - startvalue
|
||
|
|
||
|
local real accel = 2 * ( distance - startvelocity * time ) / ( time * time )
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = startvelocity
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel
|
||
|
set YDWE_cinS_cam_accsec[stat] = 0.0
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatChangeRad takes integer stat, real endvalue, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
local real startvelocity = YDWE_cinS_cam_startvel[stat] + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] )
|
||
|
local real distance = endvalue - startvalue
|
||
|
|
||
|
local real accel1 = 2 * ( distance - startvelocity * time ) / ( time * time )
|
||
|
local real accel2 = 2 * ( -( RSignBJ(distance) * (360 - RAbsBJ(distance)) ) - startvelocity * time ) / ( time * time )
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = startvelocity
|
||
|
if RAbsBJ(accel1) < RAbsBJ(accel2) then
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel1
|
||
|
else
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel2
|
||
|
endif
|
||
|
set YDWE_cinS_cam_accsec[stat] = 0.0
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatChangeAdv takes integer stat, real endvalue, real endvelocity, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
local real startvelocity = YDWE_cinS_cam_startvel[stat] + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] )
|
||
|
local real distance = endvalue - startvalue
|
||
|
|
||
|
local real accel1 = 4 * ( distance ) / ( time * time ) - ( endvelocity + 3 * startvelocity ) / time
|
||
|
local real accel2 = ( 3 * endvelocity + startvelocity ) / time - 4 * ( distance ) / ( time * time )
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = startvelocity
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel1
|
||
|
set YDWE_cinS_cam_accsec[stat] = accel2
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time/2
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatChangeAdvRad takes integer stat, real endvalue, real endvelocity, real time returns nothing
|
||
|
local real startvalue = YDWE_cinS_cam_startval[stat] + ( YDWE_cinS_cam_startvel[stat] * YDWE_cinS_cam_time[stat] ) + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] * YDWE_cinS_cam_time[stat] / 2 )
|
||
|
local real startvelocity = YDWE_cinS_cam_startvel[stat] + ( YDWE_cinS_cam_accprim[stat] * YDWE_cinS_cam_time[stat] )
|
||
|
local real distance = endvalue - startvalue
|
||
|
|
||
|
local real accel1 = 4 * ( distance ) / ( time * time ) - ( endvelocity + 3 * startvelocity ) / time
|
||
|
local real accel2 = ( 3 * endvelocity + startvelocity ) / time - 4 * ( distance ) / ( time * time )
|
||
|
local real accel3 = 4 * ( -( RSignBJ(distance) * (360 - RAbsBJ(distance)) ) ) / ( time * time ) - ( endvelocity + 3 * startvelocity ) / time
|
||
|
local real accel4 = ( 3 * endvelocity + startvelocity ) / time - 4 * ( -( RSignBJ(distance) * (360 - RAbsBJ(distance)) ) ) / ( time * time )
|
||
|
|
||
|
set YDWE_cinS_cam_startval[stat] = startvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = startvelocity
|
||
|
if (RAbsBJ(accel3) + RAbsBJ(accel4)) > (RAbsBJ(accel1) + RAbsBJ(accel2)) then
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel1
|
||
|
set YDWE_cinS_cam_accsec[stat] = accel2
|
||
|
else
|
||
|
set YDWE_cinS_cam_accprim[stat] = accel3
|
||
|
set YDWE_cinS_cam_accsec[stat] = accel4
|
||
|
endif
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = time/2
|
||
|
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWECameraLockToUnitOverride takes unit u, real xoff, real yoff, real zoff, boolean smooth, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
|
||
|
set YDWE_cinS_cam_OvRxyzUnitSec = YDWE_cinS_cam_OvRxyzUnitPrim
|
||
|
set YDWE_cinS_cam_OvRxyzUnitPrim = u
|
||
|
set YDWE_cinS_cam_OvRxyzSmooth = smooth
|
||
|
|
||
|
set YDWE_cinS_cam_OvRoffset[7]=YDWE_cinS_cam_OvRoffset[1]
|
||
|
set YDWE_cinS_cam_OvRoffset[8]=YDWE_cinS_cam_OvRoffset[2]
|
||
|
set YDWE_cinS_cam_OvRoffset[9]=YDWE_cinS_cam_OvRoffset[3]
|
||
|
|
||
|
set YDWE_cinS_cam_OvRoffset[1]=xoff
|
||
|
set YDWE_cinS_cam_OvRoffset[2]=yoff
|
||
|
set YDWE_cinS_cam_OvRoffset[3]=zoff
|
||
|
|
||
|
set YDWE_cinS_cam_OvRxyzTime = 0.0
|
||
|
set YDWE_cinS_cam_OvRxyzEndtime = duration
|
||
|
endfunction
|
||
|
function YDWECameraLockToUnitReset takes boolean smooth, real duration returns nothing
|
||
|
call YDWECameraLockToUnitOverride(null, 0.0,0.0,0.0, smooth, duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraFaceToUnitOverride takes unit u, real xoff, real yoff, real zoff, boolean smooth, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
|
||
|
set YDWE_cinS_cam_OvRangUnitSec = YDWE_cinS_cam_OvRangUnitPrim
|
||
|
set YDWE_cinS_cam_OvRangUnitPrim = u
|
||
|
set YDWE_cinS_cam_OvRangSmooth = smooth
|
||
|
|
||
|
set YDWE_cinS_cam_OvRoffset[10]=YDWE_cinS_cam_OvRoffset[4]
|
||
|
set YDWE_cinS_cam_OvRoffset[11]=YDWE_cinS_cam_OvRoffset[5]
|
||
|
set YDWE_cinS_cam_OvRoffset[12]=YDWE_cinS_cam_OvRoffset[6]
|
||
|
|
||
|
set YDWE_cinS_cam_OvRoffset[4]=xoff
|
||
|
set YDWE_cinS_cam_OvRoffset[5]=yoff
|
||
|
set YDWE_cinS_cam_OvRoffset[6]=zoff
|
||
|
|
||
|
set YDWE_cinS_cam_OvRangTime = 0.0
|
||
|
set YDWE_cinS_cam_OvRangEndtime = duration
|
||
|
endfunction
|
||
|
function YDWECameraFaceToUnitReset takes boolean smooth, real duration returns nothing
|
||
|
call YDWECameraFaceToUnitOverride(null, 0.0,0.0,0.0, smooth, duration)
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEApplyCameraInstantly takes camerasetup whichSetup returns nothing
|
||
|
local integer i = 0
|
||
|
|
||
|
set YDWE_cinS_cam_startval[1] = CameraSetupGetDestPositionX( whichSetup )
|
||
|
set YDWE_cinS_cam_startval[2] = CameraSetupGetDestPositionY( whichSetup )
|
||
|
call MoveLocation(YDWE_cinS_tempPoint, CameraSetupGetDestPositionX( whichSetup ), CameraSetupGetDestPositionY( whichSetup ))
|
||
|
set YDWE_cinS_cam_startval[3] = CameraSetupGetField( whichSetup, CAMERA_FIELD_ZOFFSET) + GetLocationZ(YDWE_cinS_tempPoint)
|
||
|
set YDWE_cinS_cam_startval[4] = CameraSetupGetField( whichSetup, CAMERA_FIELD_ROTATION )
|
||
|
set YDWE_cinS_cam_startval[5] = CameraSetupGetField( whichSetup, CAMERA_FIELD_ANGLE_OF_ATTACK )
|
||
|
set YDWE_cinS_cam_startval[6] = CameraSetupGetField( whichSetup, CAMERA_FIELD_ROLL )
|
||
|
set YDWE_cinS_cam_startval[7] = CameraSetupGetField( whichSetup, CAMERA_FIELD_FIELD_OF_VIEW )
|
||
|
set YDWE_cinS_cam_startval[8] = CameraSetupGetField( whichSetup, CAMERA_FIELD_FARZ )
|
||
|
set YDWE_cinS_cam_startval[9] = CameraSetupGetField( whichSetup, CAMERA_FIELD_TARGET_DISTANCE )
|
||
|
|
||
|
loop
|
||
|
set i = i + 1
|
||
|
exitwhen i > 9
|
||
|
set YDWE_cinS_cam_startvel[i] = 0.0
|
||
|
set YDWE_cinS_cam_accprim[i] = 0.0
|
||
|
set YDWE_cinS_cam_accsec[i] = 0.0
|
||
|
set YDWE_cinS_cam_time[i] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[i] = 0.0
|
||
|
endloop
|
||
|
endfunction
|
||
|
|
||
|
function YDWEApplyCameraLinear takes camerasetup whichSetup, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
call YDWECameraStatChangeLin(1, CameraSetupGetDestPositionX( whichSetup ), duration)
|
||
|
call YDWECameraStatChangeLin(2, CameraSetupGetDestPositionY( whichSetup ), duration)
|
||
|
call MoveLocation(YDWE_cinS_tempPoint, CameraSetupGetDestPositionX( whichSetup ), CameraSetupGetDestPositionY( whichSetup ))
|
||
|
call YDWECameraStatChangeLin(3, CameraSetupGetField( whichSetup, CAMERA_FIELD_ZOFFSET ) + GetLocationZ(YDWE_cinS_tempPoint), duration)
|
||
|
call YDWECameraStatChangeLinRad(4, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROTATION ), duration)
|
||
|
call YDWECameraStatChangeLinRad(5, CameraSetupGetField( whichSetup, CAMERA_FIELD_ANGLE_OF_ATTACK ), duration)
|
||
|
call YDWECameraStatChangeLinRad(6, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROLL ), duration)
|
||
|
call YDWECameraStatChangeLin(7, CameraSetupGetField( whichSetup, CAMERA_FIELD_FIELD_OF_VIEW ), duration)
|
||
|
call YDWECameraStatChangeLin(8, CameraSetupGetField( whichSetup, CAMERA_FIELD_FARZ ), duration)
|
||
|
call YDWECameraStatChangeLin(9, CameraSetupGetField( whichSetup, CAMERA_FIELD_TARGET_DISTANCE ), duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEApplyCameraSmooth takes camerasetup whichSetup, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
call YDWECameraStatChange(1, CameraSetupGetDestPositionX( whichSetup ), duration)
|
||
|
call YDWECameraStatChange(2, CameraSetupGetDestPositionY( whichSetup ), duration)
|
||
|
call MoveLocation(YDWE_cinS_tempPoint, CameraSetupGetDestPositionX( whichSetup ), CameraSetupGetDestPositionY( whichSetup ))
|
||
|
call YDWECameraStatChange(3, CameraSetupGetField( whichSetup, CAMERA_FIELD_ZOFFSET ) + GetLocationZ(YDWE_cinS_tempPoint), duration)
|
||
|
call YDWECameraStatChangeRad(4, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROTATION ), duration)
|
||
|
call YDWECameraStatChangeRad(5, CameraSetupGetField( whichSetup, CAMERA_FIELD_ANGLE_OF_ATTACK ), duration)
|
||
|
call YDWECameraStatChangeRad(6, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROLL ), duration)
|
||
|
call YDWECameraStatChange(7, CameraSetupGetField( whichSetup, CAMERA_FIELD_FIELD_OF_VIEW ), duration)
|
||
|
call YDWECameraStatChange(8, CameraSetupGetField( whichSetup, CAMERA_FIELD_FARZ ), duration)
|
||
|
call YDWECameraStatChange(9, CameraSetupGetField( whichSetup, CAMERA_FIELD_TARGET_DISTANCE ), duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEApplyCameraSmoothStop takes camerasetup whichSetup, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
call YDWECameraStatChangeAdv(1, CameraSetupGetDestPositionX( whichSetup ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdv(2, CameraSetupGetDestPositionY( whichSetup ), 0.00, duration)
|
||
|
call MoveLocation(YDWE_cinS_tempPoint, CameraSetupGetDestPositionX( whichSetup ), CameraSetupGetDestPositionY( whichSetup ))
|
||
|
call YDWECameraStatChangeAdv(3, CameraSetupGetField( whichSetup, CAMERA_FIELD_ZOFFSET ) + GetLocationZ(YDWE_cinS_tempPoint), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdvRad(4, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROTATION ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdvRad(5, CameraSetupGetField( whichSetup, CAMERA_FIELD_ANGLE_OF_ATTACK ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdvRad(6, CameraSetupGetField( whichSetup, CAMERA_FIELD_ROLL ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdv(7, CameraSetupGetField( whichSetup, CAMERA_FIELD_FIELD_OF_VIEW ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdv(8, CameraSetupGetField( whichSetup, CAMERA_FIELD_FARZ ), 0.00, duration)
|
||
|
call YDWECameraStatChangeAdv(9, CameraSetupGetField( whichSetup, CAMERA_FIELD_TARGET_DISTANCE ), 0.00, duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEApplyFog takes real startZ, real endZ, real red, real green, real blue, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
call YDWECameraStatChangeLin(10,startZ,duration)
|
||
|
call YDWECameraStatChangeLin(11,endZ, duration)
|
||
|
call YDWECameraStatChangeLin(12,red*0.01, duration)
|
||
|
call YDWECameraStatChangeLin(13,green*0.01, duration)
|
||
|
call YDWECameraStatChangeLin(14,blue*0.01, duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEApplyFade takes real red, real green, real blue, real opacity, real duration returns nothing
|
||
|
if duration < YDWE_cinS_CameraPeriod then
|
||
|
set duration = YDWE_cinS_CameraPeriod
|
||
|
endif
|
||
|
call YDWECameraStatChangeLin(15,red*0.01, duration)
|
||
|
call YDWECameraStatChangeLin(16,green*0.01, duration)
|
||
|
call YDWECameraStatChangeLin(17,blue*0.01, duration)
|
||
|
call YDWECameraStatChangeLin(18,opacity*0.01, duration)
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWECameraSystemInit takes nothing returns nothing
|
||
|
local trigger t = CreateTrigger()
|
||
|
local camerasetup cs = CreateCameraSetup()
|
||
|
call TriggerRegisterTimerEvent(t, YDWE_cinS_CameraPeriod, true)
|
||
|
call TriggerAddAction( t, function YDWECameraMainLoop )
|
||
|
call YDWESaveTriggerByString( "Globals", "CamTrig", t )
|
||
|
set t = null
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_TARGET_DISTANCE, GetCameraField(CAMERA_FIELD_TARGET_DISTANCE), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_FARZ, GetCameraField(CAMERA_FIELD_FARZ), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_ZOFFSET, GetCameraField(CAMERA_FIELD_ZOFFSET), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_ANGLE_OF_ATTACK, bj_RADTODEG * GetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_FIELD_OF_VIEW, bj_RADTODEG * GetCameraField(CAMERA_FIELD_FIELD_OF_VIEW), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_ROLL, bj_RADTODEG * GetCameraField(CAMERA_FIELD_ROLL), 0)
|
||
|
call CameraSetupSetField(cs, CAMERA_FIELD_ROTATION, bj_RADTODEG * GetCameraField(CAMERA_FIELD_ROTATION), 0)
|
||
|
call CameraSetupSetDestPosition(cs, GetCameraTargetPositionX(), GetCameraTargetPositionY(), 0)
|
||
|
call YDWEApplyCameraInstantly( cs )
|
||
|
set cs = null
|
||
|
call YDWEApplyFog( 10000.0, 10000.0, 0.0,0.0,0.0, 0.0 )
|
||
|
set YDWE_cinS_cam_fadeUnit = CreateUnit(Player(12), YDWE_cinS_FadeFilterUnit, 0,0,0)
|
||
|
call YDWEFlyEnable(YDWE_cinS_cam_fadeUnit)
|
||
|
set YDWE_cinS_cam_ignoreTerrain = false
|
||
|
endfunction
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** PARTICLE SYSTEM
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
function YDWEParticleMove takes nothing returns nothing
|
||
|
local unit u = GetEnumUnit()
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
local real h
|
||
|
local location stupid = YDWE_cinS_tempPoint
|
||
|
|
||
|
set YDWE_cinS_act_moveTime[i] = YDWE_cinS_act_moveTime[i] - YDWE_cinS_ParticlePeriod
|
||
|
|
||
|
set YDWE_cinS_act_moveX[i]=YDWE_cinS_act_moveX[i]+YDWE_cinS_act_moveVX[i]
|
||
|
set YDWE_cinS_act_moveY[i]=YDWE_cinS_act_moveY[i]+YDWE_cinS_act_moveVY[i]
|
||
|
|
||
|
if YDWE_cinS_act_moveAZ[i] != 0 then
|
||
|
set YDWE_cinS_act_moveVZ[i] = YDWE_cinS_act_moveVZ[i] + YDWE_cinS_act_moveAZ[i]
|
||
|
set YDWE_cinS_act_moveZ[i] = YDWE_cinS_act_moveZ[i] + YDWE_cinS_act_moveVZ[i]
|
||
|
call MoveLocation(stupid, YDWE_cinS_act_moveX[i],YDWE_cinS_act_moveY[i])
|
||
|
set h=YDWE_cinS_act_moveZ[i]-GetLocationZ(stupid)
|
||
|
call SetUnitFlyHeight( u, h, 0 )
|
||
|
if h <= 0.0 then
|
||
|
call GroupRemoveUnit(YDWE_cinS_act_groups[0], u)
|
||
|
set YDWE_cinS_act_moveZ[i] = 0.0
|
||
|
endif
|
||
|
elseif YDWE_cinS_act_moveTime[i]<=0.0 then
|
||
|
call GroupRemoveUnit(YDWE_cinS_act_groups[0], u)
|
||
|
endif
|
||
|
|
||
|
call SetUnitX(u,YDWE_cinS_act_moveX[i])
|
||
|
call SetUnitY(u,YDWE_cinS_act_moveY[i])
|
||
|
|
||
|
set stupid=null
|
||
|
set u = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEParticleTurn takes nothing returns nothing
|
||
|
local unit u = GetEnumUnit()
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
|
||
|
set YDWE_cinS_act_turnTime[i] = YDWE_cinS_act_turnTime[i] - YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_turnFi[i] = YDWE_cinS_act_turnFi[i] + YDWE_cinS_act_turnVFi[i]
|
||
|
call SetUnitFacing( u, YDWE_cinS_act_turnFi[i] )
|
||
|
|
||
|
if YDWE_cinS_act_turnTime[i]<=0.0 then
|
||
|
call GroupRemoveUnit(YDWE_cinS_act_groups[1], u)
|
||
|
endif
|
||
|
set u = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEParticleColour takes nothing returns nothing
|
||
|
local unit u = GetEnumUnit()
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
|
||
|
set YDWE_cinS_act_colourTime[i] = YDWE_cinS_act_colourTime[i] - YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_colourR[i] = YDWE_cinS_act_colourR[i] + YDWE_cinS_act_colourVR[i]
|
||
|
set YDWE_cinS_act_colourG[i] = YDWE_cinS_act_colourG[i] + YDWE_cinS_act_colourVG[i]
|
||
|
set YDWE_cinS_act_colourB[i] = YDWE_cinS_act_colourB[i] + YDWE_cinS_act_colourVB[i]
|
||
|
set YDWE_cinS_act_colourA[i] = YDWE_cinS_act_colourA[i] + YDWE_cinS_act_colourVA[i]
|
||
|
call SetUnitVertexColor(u, PercentTo255(YDWE_cinS_act_colourR[i]), PercentTo255(YDWE_cinS_act_colourG[i]), PercentTo255(YDWE_cinS_act_colourB[i]), PercentTo255(YDWE_cinS_act_colourA[i]))
|
||
|
|
||
|
if YDWE_cinS_act_colourTime[i]<=0.0 then
|
||
|
call GroupRemoveUnit(YDWE_cinS_act_groups[2], u)
|
||
|
endif
|
||
|
set u = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEParticleSize takes nothing returns nothing
|
||
|
local unit u = GetEnumUnit()
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
|
||
|
set YDWE_cinS_act_sizeTime[i] = YDWE_cinS_act_sizeTime[i] - YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_sizeS[i] = YDWE_cinS_act_sizeS[i] + YDWE_cinS_act_sizeVS[i]
|
||
|
call SetUnitScale(u,YDWE_cinS_act_sizeS[i],YDWE_cinS_act_sizeS[i],YDWE_cinS_act_sizeS[i])
|
||
|
|
||
|
if YDWE_cinS_act_sizeTime[i]<=0.0 then
|
||
|
call GroupRemoveUnit(YDWE_cinS_act_groups[3], u)
|
||
|
endif
|
||
|
set u = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEParticleMain takes nothing returns nothing
|
||
|
call GroupAddUnit(YDWE_cinS_act_groups[0], null)
|
||
|
call ForGroup(YDWE_cinS_act_groups[0], function YDWEParticleMove )
|
||
|
call GroupAddUnit(YDWE_cinS_act_groups[1], null)
|
||
|
call ForGroup(YDWE_cinS_act_groups[1], function YDWEParticleTurn )
|
||
|
call GroupAddUnit(YDWE_cinS_act_groups[2], null)
|
||
|
call ForGroup(YDWE_cinS_act_groups[2], function YDWEParticleColour )
|
||
|
call GroupAddUnit(YDWE_cinS_act_groups[3], null)
|
||
|
call ForGroup(YDWE_cinS_act_groups[3], function YDWEParticleSize )
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEUnitMove takes unit u, real destX, real destY, real duration, real g returns nothing
|
||
|
local real x = GetUnitX( u )
|
||
|
local real y = GetUnitY( u )
|
||
|
local integer i = GetUnitUserData( u )
|
||
|
local location stupid = YDWE_cinS_tempPoint
|
||
|
local real z
|
||
|
|
||
|
if duration < YDWE_cinS_ParticlePeriod then
|
||
|
set duration = YDWE_cinS_ParticlePeriod
|
||
|
endif
|
||
|
|
||
|
if g != 0 then
|
||
|
if YDWE_cinS_act_moveZ[i] == 0.0 then
|
||
|
call MoveLocation(stupid, x,y)
|
||
|
set z = GetLocationZ(stupid)
|
||
|
set YDWE_cinS_act_moveZ[i] = z
|
||
|
else
|
||
|
set z = YDWE_cinS_act_moveZ[i]
|
||
|
endif
|
||
|
|
||
|
call MoveLocation(stupid, destX, destY)
|
||
|
set z = GetLocationZ(stupid)-z
|
||
|
|
||
|
set YDWE_cinS_act_moveVZ[i] = ((g*duration/2)+(z/duration))*YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_moveAZ[i] = (-g*YDWE_cinS_ParticlePeriod*YDWE_cinS_ParticlePeriod)
|
||
|
else
|
||
|
set YDWE_cinS_act_moveAZ[i] = 0.0
|
||
|
endif
|
||
|
|
||
|
set YDWE_cinS_act_moveX[i] = x
|
||
|
set YDWE_cinS_act_moveY[i] = y
|
||
|
set YDWE_cinS_act_moveVX[i] = (destX - x)/duration*YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_moveVY[i] = (destY - y)/duration*YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_moveTime[i] = duration
|
||
|
|
||
|
call GroupAddUnit( YDWE_cinS_act_groups[0], u )
|
||
|
set stupid = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEUnitTurn takes unit u, real destAng, real duration, integer clockwise returns nothing
|
||
|
// input angle between 0.00 and 360.00 please
|
||
|
|
||
|
local real angle = GetUnitFacing(u)
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
local real turnspeed
|
||
|
|
||
|
if duration < YDWE_cinS_ParticlePeriod then
|
||
|
set duration = YDWE_cinS_ParticlePeriod
|
||
|
endif
|
||
|
|
||
|
if clockwise > 0 and angle > destAng then
|
||
|
set destAng = destAng + 360.0
|
||
|
elseif clockwise < 0 and angle < destAng then
|
||
|
set destAng = destAng - 360.0
|
||
|
elseif clockwise == 0 then
|
||
|
if (angle - destAng) > 180 then
|
||
|
set destAng = destAng + 360
|
||
|
elseif (angle - destAng) < -180 then
|
||
|
set destAng = destAng - 360
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
set turnspeed = (destAng - angle)/duration*YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_turnFi[i] = angle
|
||
|
set YDWE_cinS_act_turnVFi[i] = turnspeed
|
||
|
set YDWE_cinS_act_turnTime[i] = duration
|
||
|
|
||
|
call GroupAddUnit( YDWE_cinS_act_groups[1], u )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEUnitColour takes unit u, real red, real green, real blue, real opacity, real duration returns nothing
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
|
||
|
if duration < YDWE_cinS_ParticlePeriod then
|
||
|
set duration = YDWE_cinS_ParticlePeriod
|
||
|
endif
|
||
|
|
||
|
set red = red - YDWE_cinS_act_colourR[i]
|
||
|
set YDWE_cinS_act_colourVR[i] = red / duration * YDWE_cinS_ParticlePeriod
|
||
|
set green = green - YDWE_cinS_act_colourG[i]
|
||
|
set YDWE_cinS_act_colourVG[i] = green / duration * YDWE_cinS_ParticlePeriod
|
||
|
set blue = blue - YDWE_cinS_act_colourB[i]
|
||
|
set YDWE_cinS_act_colourVB[i] = blue / duration * YDWE_cinS_ParticlePeriod
|
||
|
set opacity = opacity - YDWE_cinS_act_colourA[i]
|
||
|
set YDWE_cinS_act_colourVA[i] = opacity / duration * YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_colourTime[i] = duration
|
||
|
|
||
|
call GroupAddUnit( YDWE_cinS_act_groups[2], u )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEUnitSize takes unit u, real size, real duration returns nothing
|
||
|
local integer i = GetUnitUserData(u)
|
||
|
|
||
|
if duration < YDWE_cinS_ParticlePeriod then
|
||
|
set duration = YDWE_cinS_ParticlePeriod
|
||
|
endif
|
||
|
|
||
|
set size = size - YDWE_cinS_act_sizeS[i]
|
||
|
set YDWE_cinS_act_sizeVS[i] = size / duration * YDWE_cinS_ParticlePeriod
|
||
|
set YDWE_cinS_act_sizeTime[i] = duration
|
||
|
|
||
|
call GroupAddUnit( YDWE_cinS_act_groups[3], u )
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEParticleInit takes nothing returns nothing
|
||
|
local trigger t = CreateTrigger()
|
||
|
set YDWE_cinS_act_groups[0]=CreateGroup()
|
||
|
set YDWE_cinS_act_groups[1]=CreateGroup()
|
||
|
set YDWE_cinS_act_groups[2]=CreateGroup()
|
||
|
set YDWE_cinS_act_groups[3]=CreateGroup()
|
||
|
call TriggerRegisterTimerEvent(t, YDWE_cinS_ParticlePeriod, true)
|
||
|
call TriggerAddAction( t, function YDWEParticleMain )
|
||
|
set t = null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** SUBTITLE ENGINE
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
constant function DefaultCharWidth takes nothing returns real
|
||
|
return 1.56
|
||
|
endfunction
|
||
|
|
||
|
function YDWEDisplaySubtitle takes string line1 returns nothing
|
||
|
local string char
|
||
|
local integer i
|
||
|
local real charwidth
|
||
|
local real totalwidth
|
||
|
|
||
|
set i = 0
|
||
|
set totalwidth = 0
|
||
|
|
||
|
loop
|
||
|
set char = SubString(line1, i, i+1)
|
||
|
exitwhen char == ""
|
||
|
if StringCase(char, false)==char then
|
||
|
set charwidth = YDWEGetRealByString( "subtitles", "low"+char)
|
||
|
else
|
||
|
set charwidth = YDWEGetRealByString( "subtitles", "upp"+char)
|
||
|
endif
|
||
|
if charwidth == 0.0 then
|
||
|
set charwidth = DefaultCharWidth()
|
||
|
endif
|
||
|
set totalwidth=totalwidth+charwidth
|
||
|
set i = i + 1
|
||
|
endloop
|
||
|
|
||
|
set i = R2I((50.0-totalwidth/2)/YDWEGetRealByString( "subtitles", "low "))
|
||
|
set char = ""
|
||
|
loop
|
||
|
exitwhen i <= 3
|
||
|
set char=char+" "
|
||
|
set i = i-1
|
||
|
endloop
|
||
|
set line1=char+line1
|
||
|
|
||
|
// call DisplayTimedTextToPlayer(GetLocalPlayer(), 0.25,0.0, 1000.0, line1)
|
||
|
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.25, 0.0, 1000.0, "\n\n\n\n\n\n" + line1 + "\n\n\n\n\n\n\n\n\n\n\n\n")
|
||
|
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEClearSubtitles takes nothing returns nothing
|
||
|
call ClearTextMessages()
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWESubtitlesInit takes nothing returns nothing
|
||
|
|
||
|
call YDWESaveRealByString("subtitles", "uppa", 2.06)
|
||
|
call YDWESaveRealByString("subtitles", "uppb", 1.62)
|
||
|
call YDWESaveRealByString("subtitles", "uppc", 1.83)
|
||
|
call YDWESaveRealByString("subtitles", "uppd", 1.93)
|
||
|
call YDWESaveRealByString("subtitles", "uppe", 1.53)
|
||
|
call YDWESaveRealByString("subtitles", "uppf", 1.22)
|
||
|
call YDWESaveRealByString("subtitles", "uppg", 2.04)
|
||
|
call YDWESaveRealByString("subtitles", "upph", 2.00)
|
||
|
call YDWESaveRealByString("subtitles", "uppi", 0.77)
|
||
|
call YDWESaveRealByString("subtitles", "uppj", 0.80)
|
||
|
call YDWESaveRealByString("subtitles", "uppk", 1.83)
|
||
|
call YDWESaveRealByString("subtitles", "uppl", 1.48)
|
||
|
call YDWESaveRealByString("subtitles", "uppm", 2.64)
|
||
|
call YDWESaveRealByString("subtitles", "uppn", 2.00)
|
||
|
call YDWESaveRealByString("subtitles", "uppo", 2.25)
|
||
|
call YDWESaveRealByString("subtitles", "uppp", 1.56)
|
||
|
call YDWESaveRealByString("subtitles", "uppq", 2.37)
|
||
|
call YDWESaveRealByString("subtitles", "uppr", 1.79)
|
||
|
call YDWESaveRealByString("subtitles", "upps", 1.56)
|
||
|
call YDWESaveRealByString("subtitles", "uppt", 1.51)
|
||
|
call YDWESaveRealByString("subtitles", "uppu", 1.87)
|
||
|
call YDWESaveRealByString("subtitles", "uppv", 1.83)
|
||
|
call YDWESaveRealByString("subtitles", "uppw", 2.82)
|
||
|
call YDWESaveRealByString("subtitles", "uppx", 2.04)
|
||
|
call YDWESaveRealByString("subtitles", "uppy", 1.79)
|
||
|
call YDWESaveRealByString("subtitles", "uppz", 1.79)
|
||
|
|
||
|
call YDWESaveRealByString("subtitles", "lowa", 1.51)
|
||
|
call YDWESaveRealByString("subtitles", "lowb", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowc", 1.47)
|
||
|
call YDWESaveRealByString("subtitles", "lowd", 1.62)
|
||
|
call YDWESaveRealByString("subtitles", "lowe", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowf", 0.98)
|
||
|
call YDWESaveRealByString("subtitles", "lowg", 1.76)
|
||
|
call YDWESaveRealByString("subtitles", "lowh", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowi", 0.65)
|
||
|
call YDWESaveRealByString("subtitles", "lowj", 0.77)
|
||
|
call YDWESaveRealByString("subtitles", "lowk", 1.47)
|
||
|
call YDWESaveRealByString("subtitles", "lowl", 0.68)
|
||
|
call YDWESaveRealByString("subtitles", "lowm", 2.27)
|
||
|
call YDWESaveRealByString("subtitles", "lown", 1.56)
|
||
|
call YDWESaveRealByString("subtitles", "lowo", 1.66)
|
||
|
call YDWESaveRealByString("subtitles", "lowp", 1.62)
|
||
|
call YDWESaveRealByString("subtitles", "lowq", 1.62)
|
||
|
call YDWESaveRealByString("subtitles", "lowr", 0.98)
|
||
|
call YDWESaveRealByString("subtitles", "lows", 1.26)
|
||
|
call YDWESaveRealByString("subtitles", "lowt", 1.00)
|
||
|
call YDWESaveRealByString("subtitles", "lowu", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowv", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "loww", 2.29)
|
||
|
call YDWESaveRealByString("subtitles", "lowx", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowy", 1.59)
|
||
|
call YDWESaveRealByString("subtitles", "lowz", 1.47)
|
||
|
|
||
|
call YDWESaveRealByString("subtitles", "low.", 0.51)
|
||
|
call YDWESaveRealByString("subtitles", "low,", 0.55)
|
||
|
call YDWESaveRealByString("subtitles", "low ", 0.80)
|
||
|
call YDWESaveRealByString("subtitles", "low-", 1.04)
|
||
|
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** SOUND ENGINE
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
function YDWEAllocateSound takes string path, integer id, integer volume, real pitch returns nothing
|
||
|
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
// ****************************************************************************
|
||
|
// **
|
||
|
// ** SCRIPT SYSTEM
|
||
|
// **
|
||
|
// ****************************************************************************
|
||
|
|
||
|
function YDWEPlayScene takes integer scene returns nothing
|
||
|
call YDWESaveIntegerByString( "Interpreter", "Scene", scene )
|
||
|
call YDWESaveRealByString( "Interpreter", "SceneTime", 0.00 )
|
||
|
call YDWESaveIntegerByString( "Interpreter", "PendingAction", YDWEGetIntegerByString( "Scene"+I2S(scene), "FirstSpot" ) )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEPlaySceneFromTime takes integer scene, real time returns nothing
|
||
|
local string s
|
||
|
local integer previous = YDWEGetIntegerByString( "Scene"+I2S(scene), "LastSpot" )
|
||
|
|
||
|
if time < 0.00 then
|
||
|
debug call BJDebugMsg( "User error: negative action time" )
|
||
|
return
|
||
|
endif
|
||
|
|
||
|
loop
|
||
|
set s = "S"+I2S(scene)+"A"+I2S(previous)
|
||
|
exitwhen time > YDWEGetRealByString( s, "Time" )
|
||
|
set previous = YDWEGetIntegerByString( s, "PrevAction" )
|
||
|
endloop
|
||
|
|
||
|
call YDWESaveIntegerByString( "Interpreter", "Scene", scene )
|
||
|
call YDWESaveRealByString( "Interpreter", "SceneTime", time )
|
||
|
call YDWESaveIntegerByString( "Interpreter", "PendingAction", YDWEGetIntegerByString( s, "NextAction" ) )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptInterpreter takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local real time = YDWEGetRealByString( "Interpreter", "SceneTime" ) + YDWE_cinS_ScriptSystemPeriod
|
||
|
local string s
|
||
|
|
||
|
if scene == 0 then
|
||
|
return
|
||
|
endif
|
||
|
|
||
|
loop
|
||
|
set s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
exitwhen time < YDWEGetRealByString( s, "Time" )
|
||
|
|
||
|
if action == 0 then
|
||
|
return
|
||
|
endif
|
||
|
|
||
|
call ExecuteFunc( YDWEGetStringByString( s, "YDWEActionType" ) )
|
||
|
if scene != YDWEGetIntegerByString( "Interpreter", "Scene" ) then
|
||
|
return
|
||
|
endif
|
||
|
|
||
|
set action = YDWEGetIntegerByString( s, "NextAction" )
|
||
|
call YDWESaveIntegerByString( "Interpreter", "PendingAction", action )
|
||
|
endloop
|
||
|
|
||
|
call YDWESaveRealByString( "Interpreter", "SceneTime", time )
|
||
|
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEWriteToScene takes integer scene returns nothing
|
||
|
call YDWESaveIntegerByString( "Scripter", "Scene", scene )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEGetActionSpot takes integer scene, real time returns integer
|
||
|
//local gamecache g = GC()
|
||
|
local string s
|
||
|
local integer previous = YDWEGetIntegerByString( "Scene"+I2S(scene), "LastSpot" )
|
||
|
local integer length = YDWEGetIntegerByString( "Scene"+I2S(scene), "Length" ) + 1
|
||
|
local integer next = 0
|
||
|
|
||
|
if time < 0.00 then
|
||
|
debug call BJDebugMsg( "User error: negative action time" )
|
||
|
return -1
|
||
|
endif
|
||
|
call YDWESaveIntegerByString( "Scene"+I2S(scene), "Length", length )
|
||
|
|
||
|
loop
|
||
|
if previous == 0 then
|
||
|
call YDWESaveIntegerByString( "Scene"+I2S(scene), "FirstSpot", length )
|
||
|
endif
|
||
|
set s = "S"+I2S(scene)+"A"+I2S(previous)
|
||
|
exitwhen time >= YDWEGetRealByString( s, "Time" )
|
||
|
set previous = YDWEGetIntegerByString( s, "PrevAction" )
|
||
|
endloop
|
||
|
|
||
|
if previous == YDWEGetIntegerByString( "Scene"+I2S(scene), "LastSpot" ) then
|
||
|
call YDWESaveIntegerByString( "Scene"+I2S(scene), "LastSpot", length )
|
||
|
call YDWESaveIntegerByString( s, "NextAction", length )
|
||
|
else
|
||
|
set next = YDWEGetIntegerByString( s, "NextAction" )
|
||
|
call YDWESaveIntegerByString( s, "NextAction", length )
|
||
|
set s = "S"+I2S(scene)+"A"+I2S(next)
|
||
|
call YDWESaveIntegerByString( s, "PrevAction", length )
|
||
|
endif
|
||
|
|
||
|
set s = "S"+I2S(scene)+"A"+I2S(length)
|
||
|
call YDWESaveIntegerByString( s, "PrevAction", previous )
|
||
|
call YDWESaveIntegerByString( s, "NextAction", next )
|
||
|
|
||
|
return length
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
// next scene
|
||
|
function YDWENextScene takes nothing returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
call YDWEPlayScene(scene+1)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptNextScene takes real time returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWENextScene" )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// external function
|
||
|
function YDWEScriptExternalFunc takes real time, string funcName returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", funcName )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// special effect
|
||
|
function YDWESpecialEffectDestroy takes nothing returns nothing
|
||
|
local timer t = GetExpiredTimer()
|
||
|
local effect eff = YDWEGetEffectByString( I2S(YDWEH2I(t)), "effect" )
|
||
|
call DestroyEffect( eff )
|
||
|
call YDWEFlushMissionByString(I2S(YDWEH2I(t)))
|
||
|
call DestroyTimer( t )
|
||
|
set t = null
|
||
|
set eff = null
|
||
|
endfunction
|
||
|
function YDWESpecialEffectDestroyOverTime takes effect eff, real duration returns nothing
|
||
|
local timer t = CreateTimer()
|
||
|
call YDWESaveEffectByString( I2S(YDWEH2I(t)), "effect", eff )
|
||
|
call TimerStart(t, duration, false, function YDWESpecialEffectDestroy)
|
||
|
set t = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWESpecialEffectPoint takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local effect eff = null
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local real x = YDWEGetRealByString( s, "real1" )
|
||
|
local real y = YDWEGetRealByString( s, "real2" )
|
||
|
local real z = YDWEGetRealByString( s, "real3" )
|
||
|
local real duration = YDWEGetRealByString( s, "real4" )
|
||
|
local string path = YDWEGetStringByString( s, "str1" )
|
||
|
|
||
|
local destructable d = CreateDestructableZ( 'OTip', x, y, z, 0.00, 1, 0 )
|
||
|
set eff = AddSpecialEffect(path, x, y)
|
||
|
call RemoveDestructable( d )
|
||
|
|
||
|
call YDWESpecialEffectDestroyOverTime(eff, duration)
|
||
|
|
||
|
set d = null
|
||
|
set eff = null
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptPointEffect takes real time, real x, real y, real z, string path, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWESpecialEffectPoint" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", x )
|
||
|
call YDWESaveRealByString( s, "real2", y )
|
||
|
call YDWESaveRealByString( s, "real3", z )
|
||
|
call YDWESaveRealByString( s, "real4", duration )
|
||
|
call YDWESaveStringByString( s, "str1", path )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWESpecialEffectActor takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local effect eff = null
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local string path = YDWEGetStringByString( s, "str1" )
|
||
|
local string attPoint = YDWEGetStringByString( s, "str2" )
|
||
|
|
||
|
set eff = AddSpecialEffectTarget(path, YDWE_cinS_actor[actID], attPoint)
|
||
|
|
||
|
call YDWESpecialEffectDestroyOverTime(eff, duration)
|
||
|
set eff = null
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActEffect takes real time, integer actor, string path, string attachpoint, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWESpecialEffectActor" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
call YDWESaveStringByString( s, "str1", path )
|
||
|
call YDWESaveStringByString( s, "str2", attachpoint )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// play sound
|
||
|
function YDWEPlaySoundPath takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local sound snd = null
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer volume = YDWEGetIntegerByString( s, "int1" )
|
||
|
local real pitch = YDWEGetRealByString( s, "real1" )
|
||
|
local string path = YDWEGetStringByString( s, "str1" )
|
||
|
|
||
|
set snd = CreateSound(path, false, false, false, 10, 10, "")
|
||
|
call SetSoundPitch(snd, pitch)
|
||
|
call SetSoundVolume(snd, volume)
|
||
|
call StartSound(snd)
|
||
|
call KillSoundWhenDone(snd)
|
||
|
set snd = null
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEPreloadSoundPath takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local timer t = GetExpiredTimer()
|
||
|
local string path = YDWEGetStringByString( I2S(YDWEH2I(t)), "path" )
|
||
|
local sound snd = CreateSound(path, false, false, false, 10, 10, "")
|
||
|
call SetSoundVolume(snd, 0)
|
||
|
call StartSound(snd)
|
||
|
call KillSoundWhenDone(snd)
|
||
|
set snd = null
|
||
|
call YDWEFlushMissionByString( I2S(YDWEH2I(t)) )
|
||
|
call DestroyTimer(t)
|
||
|
set t = null
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptPlaySound takes real time, string path, real pitch, integer volume returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local timer t
|
||
|
if not(YDWEGetBooleanByString("preloading", path)) then
|
||
|
set t = CreateTimer()
|
||
|
call YDWESaveStringByString( I2S(YDWEH2I(t)), "path", path )
|
||
|
call TimerStart(t, 1.00, false, function YDWEPreloadSoundPath)
|
||
|
call YDWESaveBooleanByString("preloading", path, true)
|
||
|
set t = null
|
||
|
endif
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEPlaySoundPath" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", pitch )
|
||
|
call YDWESaveIntegerByString( s, "int1", volume )
|
||
|
call YDWESaveStringByString( s, "str1", path )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// ability level
|
||
|
function YDWEActorAbilityLevel takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local integer abilityID = YDWEGetIntegerByString( s, "int1" )
|
||
|
local integer level = YDWEGetIntegerByString( s, "int2" )
|
||
|
if level>0 then
|
||
|
call UnitRemoveAbility( YDWE_cinS_actor[actID], abilityID )
|
||
|
call UnitAddAbility( YDWE_cinS_actor[actID], abilityID )
|
||
|
call SetUnitAbilityLevel( YDWE_cinS_actor[actID], abilityID, level )
|
||
|
else
|
||
|
call UnitRemoveAbility( YDWE_cinS_actor[actID], abilityID )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActAbilityLvl takes real time, integer actor, integer abilityID, integer level returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorAbilityLevel" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveIntegerByString( s, "int1", abilityID )
|
||
|
call YDWESaveIntegerByString( s, "int2", level )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// play animation
|
||
|
function YDWEActorPlayAnimation takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local integer animationID = YDWEGetIntegerByString( s, "int1" )
|
||
|
local real animationBlend = YDWEGetRealByString( s, "real1" )
|
||
|
|
||
|
call SetUnitBlendTime(YDWE_cinS_actor[actID], animationBlend)
|
||
|
call SetUnitAnimationByIndex( YDWE_cinS_actor[actID], animationID )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActAnimPlay takes real time, integer actor, integer animationID, real animationBlend returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorPlayAnimation" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveIntegerByString( s, "int1", animationID )
|
||
|
call YDWESaveRealByString( s, "real1", animationBlend )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorResetAnimation takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
call ResetUnitAnimation( YDWE_cinS_actor[actID] )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActAnimReset takes real time, integer actor returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorResetAnimation" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// animation speed
|
||
|
function YDWEActorSpeedAnimation takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real animationSpeed = YDWEGetRealByString( s, "real1" )
|
||
|
|
||
|
call SetUnitTimeScale( YDWE_cinS_actor[actID], animationSpeed )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActAnimSpeed takes real time, integer actor, real speed returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorSpeedAnimation" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", speed )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// slide unit
|
||
|
function YDWEActorSlide takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real destX = YDWEGetRealByString( s, "real1" )
|
||
|
local real destY = YDWEGetRealByString( s, "real2" )
|
||
|
local real duration = YDWEGetRealByString( s, "real3" )
|
||
|
local real gr = YDWEGetRealByString( s, "real4" )
|
||
|
|
||
|
call YDWEUnitMove( YDWE_cinS_actor[actID], destX, destY, duration, gr )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActSlide takes real time, integer actor, real x, real y, real duration, real gr returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorSlide" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", x )
|
||
|
call YDWESaveRealByString( s, "real2", y )
|
||
|
call YDWESaveRealByString( s, "real3", duration )
|
||
|
call YDWESaveRealByString( s, "real4", gr )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// walk unit
|
||
|
function YDWEActorWalkProperties takes integer unitID, integer walkAnimID, real walkAnimDuration, real walkSpeed returns nothing
|
||
|
local real speed = walkSpeed / walkAnimDuration
|
||
|
local string s = "ActorStats "+I2S(unitID)
|
||
|
|
||
|
call YDWESaveRealByString( s, "speed", speed )
|
||
|
call YDWESaveIntegerByString( s, "animation", walkAnimID )
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorWalk takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real destX = YDWEGetRealByString( s, "real1" )
|
||
|
local real destY = YDWEGetRealByString( s, "real2" )
|
||
|
local real duration = YDWEGetRealByString( s, "real3" )
|
||
|
local real animationBlend = YDWEGetRealByString( s, "real4" )
|
||
|
|
||
|
call YDWEUnitMove( YDWE_cinS_actor[actID], destX, destY, duration, 0 )
|
||
|
|
||
|
set s = "ActorStats "+I2S(GetUnitTypeId(YDWE_cinS_actor[actID]))
|
||
|
set destX=destX-GetUnitX(YDWE_cinS_actor[actID])
|
||
|
set destY=destY-GetUnitY(YDWE_cinS_actor[actID])
|
||
|
|
||
|
call YDWEUnitTurn( YDWE_cinS_actor[actID], bj_RADTODEG * Atan2(destY , destX), animationBlend, 0 )
|
||
|
|
||
|
call SetUnitBlendTime(YDWE_cinS_actor[actID], animationBlend)
|
||
|
call SetUnitTimeScale( YDWE_cinS_actor[actID], (SquareRoot(destX*destX+destY*destY) / (duration+0.01) / (YDWEGetRealByString( s, "speed"))+0.01) )
|
||
|
call SetUnitAnimationByIndex( YDWE_cinS_actor[actID], YDWEGetIntegerByString( s, "animation") )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActWalk takes real time, integer actor, real x, real y, real duration, real animationBlend returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorWalk" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", x )
|
||
|
call YDWESaveRealByString( s, "real2", y )
|
||
|
call YDWESaveRealByString( s, "real3", duration )
|
||
|
call YDWESaveRealByString( s, "real4", animationBlend )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// turn unit
|
||
|
function YDWEActorTurn takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real destAng = YDWEGetRealByString( s, "real1" )
|
||
|
local real duration = YDWEGetRealByString( s, "real2" )
|
||
|
local integer clockwise = YDWEGetIntegerByString( s, "int1" )
|
||
|
|
||
|
call YDWEUnitTurn( YDWE_cinS_actor[actID], destAng, duration, clockwise )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActTurn takes real time, integer actor, real destAng, real duration, integer clockwise returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorTurn" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", destAng )
|
||
|
call YDWESaveRealByString( s, "real2", duration )
|
||
|
call YDWESaveIntegerByString( s, "int1", clockwise )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorFace takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local integer targetID = YDWEGetIntegerByString( s, "int1" )
|
||
|
local integer headORchest = YDWEGetIntegerByString( s, "int2" )
|
||
|
local real x = YDWEGetRealByString( s, "real1" )
|
||
|
local real y = YDWEGetRealByString( s, "real2" )
|
||
|
local real z = YDWEGetRealByString( s, "real3" )
|
||
|
local real animationBlend = YDWEGetRealByString( s, "real4" )
|
||
|
|
||
|
if headORchest == 0 then
|
||
|
set s = "Bone_Head"
|
||
|
else
|
||
|
set s = "Bone_Chest"
|
||
|
endif
|
||
|
|
||
|
call SetUnitBlendTime(YDWE_cinS_actor[actID], animationBlend)
|
||
|
call SetUnitLookAt( YDWE_cinS_actor[actID], s, YDWE_cinS_actor[targetID], x,y,z )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActFace takes real time, integer actor, integer destActor, integer headORchest, real xoff, real yoff, real zoff, real animationBlend returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorFace" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveIntegerByString( s, "int1", destActor )
|
||
|
call YDWESaveIntegerByString( s, "int2", headORchest )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", xoff )
|
||
|
call YDWESaveRealByString( s, "real2", yoff )
|
||
|
call YDWESaveRealByString( s, "real3", zoff )
|
||
|
call YDWESaveRealByString( s, "real4", animationBlend )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorFaceReset takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real animationBlend = YDWEGetRealByString( s, "real1" )
|
||
|
|
||
|
call SetUnitBlendTime(YDWE_cinS_actor[actID], animationBlend)
|
||
|
call ResetUnitLookAt( YDWE_cinS_actor[actID] )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActFaceReset takes real time, integer actor, real animationBlend returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorFaceReset" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", animationBlend )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// vertex colouring
|
||
|
function YDWEActorColour takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real red = YDWEGetRealByString( s, "real1" )
|
||
|
local real green = YDWEGetRealByString( s, "real2" )
|
||
|
local real blue = YDWEGetRealByString( s, "real3" )
|
||
|
local real opacity = YDWEGetRealByString( s, "real4" )
|
||
|
local real duration = YDWEGetRealByString( s, "real5" )
|
||
|
|
||
|
call YDWEUnitColour( YDWE_cinS_actor[actID], red, green, blue, opacity, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActColour takes real time, integer actor, real red, real green, real blue, real opacity, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorColour" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
|
||
|
call YDWESaveRealByString( s, "real1", red )
|
||
|
call YDWESaveRealByString( s, "real2", green )
|
||
|
call YDWESaveRealByString( s, "real3", blue )
|
||
|
call YDWESaveRealByString( s, "real4", opacity )
|
||
|
call YDWESaveRealByString( s, "real5", duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// size unit
|
||
|
function YDWEActorSize takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real size = YDWEGetRealByString( s, "real1" )
|
||
|
local real duration = YDWEGetRealByString( s, "real2" )
|
||
|
|
||
|
call YDWEUnitSize( YDWE_cinS_actor[actID], size, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActSize takes real time, integer actor, real size, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorSize" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", size )
|
||
|
call YDWESaveRealByString( s, "real2", duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// camera scripting
|
||
|
function YDWECameraAction takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer camID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local integer changeType = YDWEGetIntegerByString( s, "int1" )
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
|
||
|
if changeType == 1 then
|
||
|
call YDWEApplyCameraInstantly( YDWE_cinS_camera[camID] )
|
||
|
elseif changeType == 2 then
|
||
|
call YDWEApplyCameraLinear( YDWE_cinS_camera[camID], duration )
|
||
|
elseif changeType == 3 then
|
||
|
call YDWEApplyCameraSmooth( YDWE_cinS_camera[camID], duration )
|
||
|
elseif changeType == 4 then
|
||
|
call YDWEApplyCameraSmoothStop( YDWE_cinS_camera[camID], duration )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptCamera takes real time, integer camera, real duration, integer changeType returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWECameraAction" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", camera )
|
||
|
call YDWESaveIntegerByString( s, "int1", changeType )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWECameraStatChangeInst takes integer stat, real endvalue returns nothing
|
||
|
set YDWE_cinS_cam_startval[stat] = endvalue
|
||
|
set YDWE_cinS_cam_startvel[stat] = 0.0
|
||
|
set YDWE_cinS_cam_accprim[stat] = 0.0
|
||
|
set YDWE_cinS_cam_accsec[stat] = 0.0
|
||
|
set YDWE_cinS_cam_time[stat] = 0.0
|
||
|
set YDWE_cinS_cam_endtime[stat] = 0.0
|
||
|
endfunction
|
||
|
|
||
|
function YDWECameraStatAction takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer statID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local integer changeType = YDWEGetIntegerByString( s, "int1" )
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local real endValue = YDWEGetRealByString( s, "real2" )
|
||
|
local real endSpeed = YDWEGetRealByString( s, "real3" )
|
||
|
|
||
|
if statID==4 or statID==5 or statID==6 then
|
||
|
if changeType == 1 then
|
||
|
call YDWECameraStatChangeInst( statID, endValue )
|
||
|
elseif changeType == 2 then
|
||
|
call YDWECameraStatChangeLinRad( statID, endValue, duration )
|
||
|
elseif changeType == 3 then
|
||
|
call YDWECameraStatChangeRad( statID, endValue, duration )
|
||
|
elseif changeType == 4 then
|
||
|
call YDWECameraStatChangeAdvRad( statID, endValue, endSpeed, duration )
|
||
|
endif
|
||
|
else
|
||
|
if changeType == 1 then
|
||
|
call YDWECameraStatChangeInst( statID, endValue )
|
||
|
elseif changeType == 2 then
|
||
|
call YDWECameraStatChangeLin( statID, endValue, duration )
|
||
|
elseif changeType == 3 then
|
||
|
call YDWECameraStatChange( statID, endValue, duration )
|
||
|
elseif changeType == 4 then
|
||
|
call YDWECameraStatChangeAdv( statID, endValue, endSpeed, duration )
|
||
|
endif
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptCameraStat takes real time, integer statID, real duration, real endValue, real endSpeed, integer changeType returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWECameraStatAction" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", statID )
|
||
|
call YDWESaveIntegerByString( s, "int1", changeType )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
call YDWESaveRealByString( s, "real2", endValue )
|
||
|
call YDWESaveRealByString( s, "real3", endSpeed )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
// camera statID list
|
||
|
// 1 - x coordinate; 2 - y coordinate; 3 - z coordinate;
|
||
|
// 4 - facing angle; 5 - angle of attack; 6 - roll angle;
|
||
|
// 7 - field ov view; 8 - far z; 9 - distance to target
|
||
|
|
||
|
function YDWECameraIgnoreTerrain takes nothing returns nothing
|
||
|
set YDWE_cinS_cam_ignoreTerrain = true
|
||
|
endfunction
|
||
|
function YDWECameraUnignoreTerrain takes nothing returns nothing
|
||
|
set YDWE_cinS_cam_ignoreTerrain = false
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptCameraIgnoreTerrain takes real time, boolean ignore returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
if ignore then
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWECameraIgnoreTerrain" )
|
||
|
else
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWECameraUnignoreTerrain" )
|
||
|
endif
|
||
|
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorCameraLock takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local real xoff = YDWEGetRealByString( s, "real2" )
|
||
|
local real yoff = YDWEGetRealByString( s, "real3" )
|
||
|
local real zoff = YDWEGetRealByString( s, "real4" )
|
||
|
local boolean smooth = YDWEGetIntegerByString( s, "int1" )==1
|
||
|
|
||
|
call YDWECameraLockToUnitOverride(YDWE_cinS_actor[actID], xoff, yoff, zoff, smooth, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActCameraLock takes real time, integer actor, real xoff, real yoff, real zoff, boolean smooth, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorCameraLock" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "real2", xoff )
|
||
|
call YDWESaveRealByString( s, "real3", yoff )
|
||
|
call YDWESaveRealByString( s, "real4", zoff )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
if smooth then
|
||
|
call YDWESaveIntegerByString( s, "int1", 1 )
|
||
|
else
|
||
|
call YDWESaveIntegerByString( s, "int1", 0 )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorCameraLockReset takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local boolean smooth = YDWEGetIntegerByString( s, "int1" )==1
|
||
|
|
||
|
call YDWECameraLockToUnitReset( smooth, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActCameraLockReset takes real time, boolean smooth, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorCameraLockReset" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
if smooth then
|
||
|
call YDWESaveIntegerByString( s, "int1", 1 )
|
||
|
else
|
||
|
call YDWESaveIntegerByString( s, "int1", 0 )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorCameraFace takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local integer actID = YDWEGetIntegerByString( s, "actor" )
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local real xoff = YDWEGetRealByString( s, "real2" )
|
||
|
local real yoff = YDWEGetRealByString( s, "real3" )
|
||
|
local real zoff = YDWEGetRealByString( s, "real4" )
|
||
|
local boolean smooth = YDWEGetIntegerByString( s, "int1" )==1
|
||
|
|
||
|
call YDWECameraFaceToUnitOverride(YDWE_cinS_actor[actID], xoff, yoff, zoff, smooth, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActCameraFace takes real time, integer actor, real xoff, real yoff, real zoff, boolean smooth, real duration returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorCameraFace" )
|
||
|
|
||
|
call YDWESaveIntegerByString( s, "actor", actor )
|
||
|
call YDWESaveRealByString( s, "real2", xoff )
|
||
|
call YDWESaveRealByString( s, "real3", yoff )
|
||
|
call YDWESaveRealByString( s, "real4", zoff )
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
if smooth then
|
||
|
call YDWESaveIntegerByString( s, "int1", 1 )
|
||
|
else
|
||
|
call YDWESaveIntegerByString( s, "int1", 0 )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEActorCameraFaceReset takes nothing returns nothing
|
||
|
//local gamecache g = GC()
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local boolean smooth = YDWEGetIntegerByString( s, "int1" )==1
|
||
|
|
||
|
call YDWECameraFaceToUnitReset( smooth, duration )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptActCameraFaceReset takes real time, boolean smooth, real duration returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEActorCameraFaceReset" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
if smooth then
|
||
|
call YDWESaveIntegerByString( s, "int1", 1 )
|
||
|
else
|
||
|
call YDWESaveIntegerByString( s, "int1", 0 )
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEFogChange takes nothing returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local real startZ = YDWEGetRealByString( s, "real2" )
|
||
|
local real endZ = YDWEGetRealByString( s, "real3" )
|
||
|
local real red = YDWEGetRealByString( s, "real4" )
|
||
|
local real green = YDWEGetRealByString( s, "real5" )
|
||
|
local real blue = YDWEGetRealByString( s, "real6" )
|
||
|
|
||
|
call YDWEApplyFog(startZ, endZ, red, green, blue, duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptFog takes real time, real startZ, real endZ, real red, real green, real blue, real duration returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEFogChange" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
call YDWESaveRealByString( s, "real2", startZ )
|
||
|
call YDWESaveRealByString( s, "real3", endZ )
|
||
|
call YDWESaveRealByString( s, "real4", red )
|
||
|
call YDWESaveRealByString( s, "real5", green )
|
||
|
call YDWESaveRealByString( s, "real6", blue )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEFadeChange takes nothing returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local real duration = YDWEGetRealByString( s, "real1" )
|
||
|
local real red = YDWEGetRealByString( s, "real2" )
|
||
|
local real green = YDWEGetRealByString( s, "real3" )
|
||
|
local real blue = YDWEGetRealByString( s, "real4" )
|
||
|
local real opacity = YDWEGetRealByString( s, "real5" )
|
||
|
|
||
|
call YDWEApplyFade(red, green, blue, opacity, duration)
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptFade takes real time, real red, real green, real blue, real opacity, real duration returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWEFadeChange" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveRealByString( s, "real1", duration )
|
||
|
call YDWESaveRealByString( s, "real2", red )
|
||
|
call YDWESaveRealByString( s, "real3", green )
|
||
|
call YDWESaveRealByString( s, "real4", blue )
|
||
|
call YDWESaveRealByString( s, "real5", opacity )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
|
||
|
function YDWESubtitleDisplay takes nothing returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
local string line = YDWEGetStringByString( s, "string1" )
|
||
|
if YDWE_cinS_displaySubtitles then
|
||
|
call YDWEDisplaySubtitle(line)
|
||
|
endif
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptSubtitleLine takes real time, string line returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWESubtitleDisplay" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
call YDWESaveStringByString( s, "string1", line )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWESubtitleClear takes nothing returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Interpreter", "Scene" )
|
||
|
local integer action = YDWEGetIntegerByString( "Interpreter", "PendingAction" )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWEClearSubtitles()
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEScriptSubtitleClear takes real time returns nothing
|
||
|
local integer scene = YDWEGetIntegerByString( "Scripter", "Scene" )
|
||
|
local integer action = YDWEGetActionSpot( scene, time )
|
||
|
local string s = "S"+I2S(scene)+"A"+I2S(action)
|
||
|
|
||
|
call YDWESaveStringByString( s, "YDWEActionType", "YDWESubtitleClear" )
|
||
|
|
||
|
call YDWESaveRealByString( s, "Time", time )
|
||
|
//set g=null
|
||
|
endfunction
|
||
|
|
||
|
|
||
|
function YDWEScriptSystemInit takes nothing returns nothing
|
||
|
local trigger t = CreateTrigger()
|
||
|
call TriggerRegisterTimerEvent(t, YDWE_cinS_ScriptSystemPeriod, true)
|
||
|
call TriggerAddAction( t, function YDWEScriptInterpreter )
|
||
|
set t = null
|
||
|
endfunction
|
||
|
|
||
|
function YDWEInitCinematicSystem takes nothing returns nothing
|
||
|
set YDWE_cinS_tempPoint=Location(0.0,0.0)
|
||
|
call YDWEScriptSystemInit()
|
||
|
call YDWECameraSystemInit()
|
||
|
call YDWEParticleInit()
|
||
|
call YDWESubtitlesInit()
|
||
|
endfunction
|
||
|
|
||
|
endlibrary
|
||
|
|
||
|
#endif /// YDWECinematicSystemIncluded
|