All pastes #496370 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-19 06:09 UTC
rendered paste body
void MoveTetrimino(int in_are){
        if(!in_are){
                if(P.vx)
                        if((P.das == 0)||(P.das == DAS))
                                if(!CollideTetrimino(P.tx + P.vx, P.ty, P.rot))
                                        P.tx += P.vx;}
 
        int i = 1, ii = 0;
        if(P.vr)
                while(ii < 3){
                        if(!CollideTetrimino((P.tx + (i - 1)), P.ty, P.rot + P.vr)){
                                P.rot += P.vr;
                                P.rot &= 3;
                                P.tx += (i - 1);
                                ii = 4;}
                        if(in_are)
                                break;
                        i++; i &= 2;
                        ii++;
                        //if((P.type == TETR_I)||(P.type == TETR_O))
                                //break;
                }
 
        if(!in_are){
                if(P.vy == FIRM){
                        while(!CollideTetrimino(P.tx, P.ty + 1, P.rot)){
                                P.lock = 1;
                                P.ty++;}}
                else if(P.vy == SOFT){
                        P.drop += 1;
                        P.lock = 254;}
                if(!P.mode)
                        P.drop += ((float)(P.level)/60.0f);
                else P.drop += CGrav[P.mode - 1];
                ApplyGravity();}
}
 
void ApplyGravity(){
        if(!CollideTetrimino(P.tx, P.ty + 1, P.rot)){
                if(P.drop >= 1){
                        pal_obj_mem[P.type + 1] = DimColor(P.type, 1);
                        P.lock = 0;
                        P.drop--;
                        P.ty++;
                        ApplyGravity();}}
        else{
                pal_obj_mem[P.type + 1] = DimColor(P.type, .5 + (.5 * ((float)LOCK - P.lock)/(float)LOCK));
                P.lock++; P.drop = 0;}
        if(P.lock > LOCK)
                LockTetrimino();}