gmzorz icon

sundirection/dvar animator for cod4

gmzorz | PRO | 12/23/18 07:38:58 PM UTC | 0 ⭐ | 303 👁️ | Never ⏰ | []
Batch |

5.87 KB

|

None

|

0 👍

/

0 👎

@echo off
setLocal enableDelayedExpansion
 
REM improved script generator
REM unfortunately does not support decimals on input... but does smoothe out the path as much as possible
 
set bindKey=F11
set vString=anim
set output=out.cfg
set steps=250
    REM no more than 9999 steps
set wait=2
set looping=0
    REM WARNING: LOOPING WILL PREVENT YOU FROM EXECUTING ANY OTHER COMMANDS, INCLUDING /QUIT
    
:: Dvars go here
    
    set dvar[0]=r_lightTweakSunDirection
    set start[0]=-45 0 0
    set end[0]=-45 360 0
    
    set dvar[1]=cg_fov
    set start[1]=80
    set end[1]=65
    
 
set /a "numDvars=-1" & for /f "tokens=2 delims==" %%a in ('set dvar[') do ( set /a "numDvars+=1" )
if !looping! == 0 (
    set "lp=;" 
) else ( set "lp=vstr !vString!1;" )
for /l %%a in (0,1,!numDvars!) do (
    set endLine=!endLine!!dvar[%%a]! !start[%%a]!;
)
set endLine=!endLine!
set /a "prcnt=!steps!/50"
set bar=^|
set /a "l=0"
set /a "numv=0"
if exist !output! del !output! /s /q >nul
echo bind !bindKey! ^"vstr !vString!1^" >> "!output!"
if exist *.start del *.start /s /q >nul
if exist *.end del *.end /s /q >nul
if exist *.clc del *.clc /s /q >nul
if exist *.flt del *.flt /s /q >nul
if exist *.tmp del *.tmp /s /q >nul
set /a "count=0" & echo >> "!count!.clc"
for /f "tokens=2 delims==" %%a in ('set dvar[') do (
    for %%b in (*.clc) do (
        for %%c in (!start[%%~nb]!) do ( 
            if not %%c == 0 ( set /a sn=%%c*10000 ) else ( set /a "sn=1" )
            echo | set /p=!sn! >> start.txt
        )
        for %%c in (!end[%%~nb]!) do ( 
            if not %%c == 0 ( set /a en=%%c*10000 ) else ( set /a "en=1" )
            echo | set /p=!en! >> end.txt
        )
        if exist start.txt (
            for /f "tokens=*" %%d in (start.txt) do set "start[%%~nb]=%%d" 2>nul
            for /f "tokens=*" %%d in (end.txt) do set "end[%%~nb]=%%d" 2>nul
            del *.txt /s /q >nul
        )
        set /a "floatVal=1"
        for %%c in (!start[%%~nb]!) do ( 
            echo | set /p=%%c >> "!floatVal!.start"
            set /a "floatVal+=1"
        )
        set /a "floatVal=1"
        for %%c in (!end[%%~nb]!) do ( 
            echo | set /p=%%c >> "!floatVal!.end"
            set /a "floatVal+=1"
        )
        set /a "floatVal-=1"
        for /l %%c in (1,1,!floatVal!) do (
            for /f "tokens=*" %%d in (%%c.start) do set /a "s_%%c=%%d"
            for /f "tokens=*" %%d in (%%c.end) do set /a "e_%%c=%%d"
            set /a "addTo_%%a_%%c=((!e_%%c!-!s_%%c!)/!steps!)"
        )
        del *.start
        del *.end
    )
    del *.clc /s /q >nul
    set /a "count+=1" & echo >> !count!.clc"
)
del *.clc /s /q >nul
 
REM         CURRENT             TYPE
REM ----------------------------------
REM %%a   = step                INT
REM %%b   = dvar name           STRING
REM %%c   = dvar count          INT
REM %%d   = token in var        STRING
REM %%e   = tokens in txt       STRING
REM %%~nf = number of tokens    INT
REM ----------------------------------
set /a "vstr=1"
set /a "vstrP=2"
for /l %%a in (1,1,!steps!) do (
    if exist *.tmp del *.tmp /s /q >nul 
    set /a "count=0" & echo >> "!count!.tmp"
    set curStr=seta !vString!!vstr! ^"wait !wait!;
    for /f "tokens=2 delims==" %%b in ('set dvar[') do (
        if exist *.txt del *.txt /s /q >nul
        for %%c in (*.tmp) do (
        set /a "floatVal=1"
        set /a "floatVal=1" & echo >> !floatVal!.flt
            for %%d in (!start[%%~nc]!) do (
                for %%f in (*.flt) do (
                    del *.flt /s /q >nul
                    set /a "newValue=(%%d+!addTo_%%b_%%~nf!)" 2>nul
                    set valOut=!newValue: =!
                    set valOut_=!valOut:~0,-4!.!valOut:~-4!
                    if !newValue! lss 10000 ( 
                        if !newValue! gtr 999 ( set "valOut_=0.!valOut:~-5!" )
                    )
                    if !newValue! lss 1000 ( 
                        if !newValue! gtr 99 ( set "valOut_=0.0!valOut:~-4!" )
                    )
                    if !newValue! lss 100 ( 
                        if !newValue! gtr 9 ( set "valOut_=0.00!valOut:~-3!" )
                    )
                    if !newValue! lss 10 (
                        if !newValue! gtr 0 ( set "valOut_=0.000!valOut:~-2!" )
                        if !newValue! gtr -10000 ( set "valOut_=!valOut:~0,-4!0.!valOut:~-4!" )
                        if !newValue! gtr -1000 ( set "valOut_=!valOut:~0,-3!0.0!valOut:~-3!" )
                        if !newValue! gtr -100 ( set "valOut_=!valOut:~0,-2!0.00!valOut:~-2!" )
                        if !newValue! gtr -10 ( set "valOut_=!valOut:~0,-1!0.00!valOut:~-1!" )
                    )
                    echo | set /p=!valOut_! >> d.txt 
                    echo | set /p=!valOut! >> d2.txt 
                )
                set /a "floatVal+=1" & echo >> !floatVal!.flt
            )
            for /f "tokens=*" %%e in (d.txt) do set "start_[%%~nc]=%%e"
            
            for /f "tokens=*" %%e in (d2.txt) do set "start[%%~nc]=%%e"
            if exist d.txt del d.txt /s /q >nul
            if exist d2.txt del d2.txt /s /q >nul
            set start_[%%~nc]=!start_[%%~nc]:  = !
            set start_[%%~nc]=!start_[%%~nc]:~0,-1!
            set curStr=!curStr!%%b !start_[%%~nc]!;
        )
        del *.flt /s /s >nul
        if exist *.tmp del *.tmp /s /q >nul 
        set /a "count+=1" & echo >> "!count!.tmp"
    )
    set curStr=!curStr!vstr !vString!!vstrP!^"
    echo !curStr! >> "!output!"
    set /a "vstr+=1"
    set /a "vstrP+=1"
    
    if !l! LEQ !prcnt! (
        set /a l+=1
    ) 
    if !l! GTR !prcnt! (
        set "bar=!bar!-"
        set /a "numv+=2"
        set /a l=1
        cls
        call :RM
        echo                !bar!
        echo                !numv!%%
        echo. 
    )   
)
cls
call :RM
echo                !bar!^|
echo                100%%
echo. 
set endLine=seta !vString!!vstr! ^"wait !wait!;!endLine!!lp!^"
echo !endLine! >> "!output!"
echo    Finished writing to !output!
pause >nul
:RM
echo.
echo.
echo                              .RrRrR.     .M_Mm mM_M. 
echo                             .Rr*R*rR.   .Mm~M*m*M~mM. 
echo                             R*R   R*R   M*m  M*M  M*M 
echo                             R*R   R*R   M*M  M*M  M*M 
echo                             R*R   R*R   M*M  M*M  M*M 
echo                             R*R   R*R   M*M  M*M  M*M 
echo                             R*R         M*M       M*M 
echo                             R*R         M*M       M*M 
echo                             R*R         M*M       M*M 
echo                             R*R         M*M       M*M 
echo                             R*R         M*M       M*M 
echo                             R*R         M*M       M*M 
echo. 
echo.

Comments