Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 15, 2006, 1:12:24 PM (18 years ago)
Author:
amaechler
Message:

branches/atmospheric_engine: fog & changed init & activate fcts from bool to void

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/atmospheric_engine/src/lib/graphics/effects/lightening_effect.cc

    r8449 r8455  
    3838{
    3939        this->setClassID(CL_LIGHTENING_EFFECT, "LighteningEffect");
    40  
     40
    4141        this->init();
    4242
     
    7272
    7373
    74 bool LighteningEffect::init()
     74void LighteningEffect::init()
    7575{
    7676        //default values
    7777        this->lighteningActivate = false;
    78        
     78
    7979        this->time = 0.0;
    8080        this->flashFrequency = 4.0f;
     
    8282        this->flashConstTime = 0.1f;
    8383        this->flashRisingTime = 0.03f;
    84        
     84
    8585        this->width = 700.0f;
    8686        this->height = 250.0f;
     
    8989        this->bNewCoordinate = false;
    9090  this->lighteningMove = false;
    91        
     91
    9292        this->seedX = 500.f;
    9393        this->seedZ = 1000.0f;
    9494        this->seedTime = 2.0f;
    95  
     95
    9696  this->mainPosX = 3000;
    9797  this->mainPosY = 900;
    9898  this->mainPosZ = 0;
    99        
     99
    100100        // initialize lightening textures
    101101        this->billboard[0] = new Billboard(NULL);
     
    103103        this->billboard[0]->setSize(this->width, this->height);
    104104        this->billboard[0]->setVisibiliy(false);
    105        
     105
    106106        this->billboard[1] = new Billboard(NULL);
    107107        this->billboard[1]->setTexture("maps/lightning_bolt2.png");
    108108        this->billboard[1]->setSize(this->width, this->height);
    109109        this->billboard[1]->setVisibiliy(false);
    110        
     110
    111111        this->billboard[2] = new Billboard(NULL);
    112112        this->billboard[2]->setTexture("maps/lightning_bolt3.png");
    113113        this->billboard[2]->setSize(this->width, this->height);
    114114        this->billboard[2]->setVisibiliy(false);
    115        
     115
    116116        this->billboard[3] = new Billboard(NULL);
    117117        this->billboard[3]->setTexture("maps/lightning_bolt4.png");
    118118        this->billboard[3]->setSize(this->width, this->height);
    119119        this->billboard[3]->setVisibiliy(false);
    120        
     120
    121121        if (this->lighteningMove) {
    122122                this->cameraCoor = State::getCameraNode()->getAbsCoor();
     
    131131                this->billboard[3]->setAbsCoor(3000,900,0);
    132132        }
    133        
     133
    134134        this->flashLight = new Light();
    135135        this->flashLight->setDiffuseColor(0,0,0);
    136136        this->flashLight->setSpecularColor(0,0,0);
    137        
     137
    138138        /*
    139139        this->soundSource = NULL;
    140140        this->thunderBuffer = NULL;
    141        
     141
    142142        this->soundSource.setSourceNode(this);
    143        
     143
    144144        //load sound
    145145        if (this->thunderBuffer != NULL)
     
    147147        this->thunderBuffer = (OrxSound::SoundBuffer*)ResourceManager::getInstance()->load("sound/thunder.wav", WAV);*/
    148148
    149         return 0;
    150149}
    151150
     
    185184
    186185
    187 bool LighteningEffect::activate()
     186void LighteningEffect::activate()
    188187{
    189188        PRINTF(0)( "Activating LighteningEffect\n" );
     
    191190
    192191        this->time = 0;
    193 
    194         return 0;
    195 }
    196 
    197 
    198 bool LighteningEffect::deactivate()
     192}
     193
     194
     195void LighteningEffect::deactivate()
    199196{
    200197        PRINTF(0)("Deactivating LighteningEffect\n");
     
    205202        this->billboard[2]->setVisibiliy(false);
    206203        this->billboard[3]->setVisibiliy(false);
    207 
    208         return 0;
    209204}
    210205
     
    213208        if(!lighteningActivate)
    214209                return;
    215        
     210
    216211        this->time += dt;
    217212
    218213        // TODO: Make random flashing with short light dingsda:)
    219        
     214
    220215        if( this->time > this->flashFrequency) {
    221        
     216
    222217                this->billboard[0]->setVisibiliy(true);
    223218                this->time = 0.0f;
    224        
     219
    225220                this->flashLight->setAbsCoor(this->billboard[0]->getAbsCoor().x, this->billboard[0]->getAbsCoor().y, this->billboard[0]->getAbsCoor().z);
    226221
     
    228223                this->flashLight->setDiffuseColor(1,1,1);
    229224                this->flashLight->setSpecularColor(1,1,1);
    230        
     225
    231226                //this->soundSource.play(this->thunderBuffer);
    232227
    233228        } else if( this->billboard[3]->isVisible() && this->time > this->flashConstTime) {
    234        
     229
    235230                this->billboard[3]->setVisibiliy(false);
    236231                this->time = 0.0f;
     
    240235
    241236        }
    242        
     237
    243238        if( this->billboard[2]->isVisible() && this->time > this->flashRisingTime) {
    244        
     239
    245240                this->billboard[2]->setVisibiliy(false);
    246241                this->billboard[3]->setVisibiliy(true);
    247242                // this->flashLight->setDiffuseColor(1,1,1);
    248243                // this->flashLight->setSpecularColor(1,1,1);
    249                
     244
    250245        } else if( this->billboard[1]->isVisible() && this->time > this->flashRisingTime*2/3 ) {
    251        
     246
    252247                this->billboard[1]->setVisibiliy(false);
    253248                this->billboard[2]->setVisibiliy(true);
    254249                //this->flashLight->setDiffuseColor(0,0,0);
    255250                //this->flashLight->setSpecularColor(0,0,0);
    256                
     251
    257252        } else if( this->billboard[0]->isVisible() && this->time > this->flashRisingTime*1/3 ) {
    258        
     253
    259254                this->billboard[0]->setVisibiliy(false);
    260255                this->billboard[1]->setVisibiliy(true);
    261256                //this->flashLight->setDiffuseColor(1,1,1);
    262257                //this->flashLight->setSpecularColor(1,1,1);
    263                
    264         }
    265        
     258
     259        }
     260
    266261        if( this->bNewCoordinate) {
    267262                float posX, posZ;
    268263
    269264                if(this->lighteningMove) {
    270                
     265
    271266                        this->cameraCoor = State::getCameraNode()->getAbsCoor();
    272267                        posX = this->mainPosX - this->seedX * (float)rand()/(float)RAND_MAX + this->cameraCoor.x;
     
    274269
    275270                } else {
    276                
     271
    277272                        posX = this->mainPosX - this->seedX * (float)rand()/(float)RAND_MAX;
    278273                        posZ = this->mainPosZ + this->seedZ * (float)rand()/(float)RAND_MAX;
    279274
    280275                }
    281        
     276
    282277                this->billboard[0]->setAbsCoor(posX, this->mainPosY, posZ);
    283278                this->billboard[1]->setAbsCoor(posX, this->mainPosY, posZ);
    284279                this->billboard[2]->setAbsCoor(posX, this->mainPosY, posZ);
    285280                this->billboard[3]->setAbsCoor(posX, this->mainPosY, posZ);
    286                
     281
    287282                this->flashFrequency = this->mainFrequency + this->seedTime * (float)rand()/(float)RAND_MAX;
    288                
     283
    289284                float w = this->width + this->seedWidth * (float)rand()/(float)RAND_MAX;
    290285                float h = this->height + this->seedHeight * (float)rand()/(float)RAND_MAX;
    291                
     286
    292287                this->billboard[0]->setSize(w, h);
    293288                this->billboard[1]->setSize(w, h);
    294289                this->billboard[2]->setSize(w, h);
    295290                this->billboard[3]->setSize(w, h);
    296                
     291
    297292                this->bNewCoordinate = false;
    298293        }
Note: See TracChangeset for help on using the changeset viewer.