Навигация по переменным

Контролировать переменные в генераторе - рутинная задача. Поэтому я добавил возможность некой навигации по массиву переменных. А именно есть возможность получить следующую и предыдущую переменную. Каждая переменная получит методы "Next" и "Previous". Это справедливо также и для массивов. Вот пример:

[Thread]
public void TEST() {
    
    comment = "Variables: ";
    var tmpFloat = Float.local( 1 );
    var index = tmpFloat.Previous<Int>();
    var name = tmpFloat.Next<sString>();
    var anim = name.Next<vString>();
    var aaa = anim.Next<Int>();
    
    tmpFloat.value = 10.0;
    index.value = 0;
    name.value = "str";
    anim.value = "anim";
    aaa.value = -1;
    
    comment = "---";
    comment = "Arrays: ";
    
    var array = Array<Pickup>.global( 3000, 4 );
    var global_S_String = array.Previous<sString>();
    var global_V_String = array.Next<vString>();
    var global_Int_val = global_V_String.Next<Int>();
    
    array.each( index, pickup => {
        pickup.value = -1;
    } );
    
    global_S_String.value = "str 1";
    global_V_String.value = "str 2";
    global_Int_val.value = 11;
    
    end_thread();
}

Здесь важно не запутаться :) Рекомендую использовать метод "Next". Он быстрее и будет понятно что делается в коде. Вот такой результат будет нас ждать:

//------------- TEST ---------------

:TEST
03A4: name_thread 'TEST'

/* Variables:  */
0007: 1@ = 10.0 // @ = ? (float)
0006: 0@ = 0 // @ = ? (int)
05AA: 2@s = 'str' // @s = ? (sstring)
06D2: 4@v = "anim" // @v = ? (vstring)
0006: 8@ = -1 // @ = ? (int)

/* --- */
/* Arrays:  */

for 0@ = 0 to 4
0004: $3000(0@,4i) = -1 // $ = ? (int)
end

05A9: s$2998 = 'str 1' // s$ = ? (sstring)
06D1: v$3004 = "str 2" // v$ = ? (vstring)
0004: $3008 = 11 // $ = ? (int)
004E: end_thread

Эти команды позволяют избежать перезаписи строковых переменных и ячеек массивов. Я рекомендую использовать их не только новичкам.