]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
Refactor of the texture system
[lugaru.git] / Source / GameTick.cpp
index 36e730ecbbef0b2bedbf610345f800a3f90990a0..047c5f133feb8077a0d790bb01e0c808740afb09 100644 (file)
@@ -225,7 +225,7 @@ inline Joint& playerJoint(int playerid, int bodypart){
 inline Joint& playerJoint(Person* pplayer, int bodypart){
     return pplayer->skeleton.joints[pplayer->skeleton.jointlabels[bodypart]]; }
 
-inline float sq(float n){ return n*n; }
+inline float sq(float n) { return n*n; }
 
 inline float stepTowardf(float from, float to, float by){
     if(fabs(from-to)<by) return to;
@@ -1425,6 +1425,7 @@ void Game::Loadlevel(const char *name){
        LOGFUNC;
 
        LOG(std::string("Loading level...") + name);
+       cout << "Loading level..." << name << endl;
 
        if(!gameon)
         visibleloading=1;
@@ -1435,7 +1436,7 @@ void Game::Loadlevel(const char *name){
        gamestarted=1;
 
        numenvsounds=0;
-       //visibleloading=1;
+
        if(tutoriallevel!=-1)
         tutoriallevel=0;
        else
@@ -1443,7 +1444,7 @@ void Game::Loadlevel(const char *name){
 
        if(tutoriallevel==1)
         tutorialstage=0;
-       if(tutorialstage==0){
+       if(tutorialstage==0) {
                tutorialstagetime=0;
                tutorialmaxtime=1;
        }
@@ -1458,8 +1459,12 @@ void Game::Loadlevel(const char *name){
 
        int mapvers;
        FILE *tfile;
+       char* buff=getcwd(NULL,0);
+       cout << buff << " " << FixedFN << endl;
+       free(buff);
        tfile=fopen( FixedFN, "rb" );
-       if(tfile){
+       if(tfile) {
+               cout << "existe" << endl;
                pause_sound(stream_firesound);
                scoreadded=0;
                windialogue=0;
@@ -1527,6 +1532,7 @@ void Game::Loadlevel(const char *name){
                        emit_sound_np(consolesuccesssound);
                        freeze=0;
                        console=false;
+                       cout << "console contente" << endl;
                }
 
                if(!stealthloading){
@@ -2086,6 +2092,8 @@ void Game::Loadlevel(const char *name){
 
                if(!firstload)
                        firstload=1;
+       } else {
+               perror("Soucis");
        }
        leveltime=0;
        loadingstuff=0;
@@ -2350,8 +2358,6 @@ void Game::doTutorial(){
                                        weapons[player[0].weaponids[player[0].weaponactive]].setType(staff);
                 else 
                                        weapons[0].setType(staff);
-
-                //~ weapons.size()++;
             break; case 49:
                 canattack=0;
                 cananger=0;
@@ -2362,10 +2368,8 @@ void Game::doTutorial(){
                 weapons[1].position=1000;
                 weapons[1].tippoint=1000;
 
-                //~ weapons.size()=1;
                 weapons[0].setType(knife);
 
-                //~ weapons.size()++;
                 weapons[0].owner=0;
                 player[1].weaponactive=-1;
                 player[1].num_weapons=0;
@@ -2427,7 +2431,7 @@ void Game::doTutorial(){
             break; case 25: if(player[0].targetanimation==backhandspringanim)tutorialsuccess=1;
             break; case 28: if(animation[player[0].targetanimation].attack==reversed&&player[0].feint)tutorialsuccess=1;
             break; case 29:
-                if(player[0].escapednum==2){
+                if(player[0].escapednum==2) {
                     tutorialsuccess=1;
                     reversaltrain=0;
                     cananger=0;
@@ -4554,7 +4558,7 @@ void Game::doAI(int i){
             if(     findDistancefastflat(&player[i].coords,&player[i].finalfinaltarget)<
                     findDistancefastflat(&player[i].coords,&player[i].finaltarget)||
                     findDistancefastflat(&player[i].coords,&player[i].finaltarget)<.6*sq(player[i].scale*5)||
-                    player[i].lastpathfindpoint==player[i].finalpathfindpoint){
+                    player[i].lastpathfindpoint==player[i].finalpathfindpoint) {
                 player[i].aitype=passivetype;
             }
 
@@ -4566,7 +4570,7 @@ void Game::doAI(int i){
             player[i].attackkeydown=0;
             player[i].throwkeydown=0;
 
-            if(player[i].avoidcollided>.8&&!player[i].jumpkeydown&&player[i].collided<.8)
+            if(player[i].avoidcollided>.8 && !player[i].jumpkeydown && player[i].collided<.8)
                 player[i].targetrotation+=90*(player[i].whichdirection*2-1);
 
             if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
@@ -5141,7 +5145,7 @@ void Game::doAI(int i){
                                 weapons[i].velocity.x==0&&
                                 weapons[i].velocity.z==0&&
                                 weapons[i].velocity.y==0){
-                            if(findDistancefast(&player[i].coords,&weapons[k].position)<16){
+                            if(findDistancefast(&player[i].coords,&weapons[k].position)<16) {
                                 player[i].wentforweapon++;
                                 player[i].lastchecktime=6;
                                 player[i].aitype=getweapontype;
@@ -5170,7 +5174,7 @@ void Game::doAI(int i){
                     j=checkcollide(test2,test,player[i].laststanding);
                     if(j==-1)
                         j=checkcollide(test2,test);
-                    if(j==-1){
+                    if(j==-1) {
                         player[i].velocity=0;
                         setAnimation(i,player[i].getStop());
                         player[i].targetrotation+=180;
@@ -5183,7 +5187,7 @@ void Game::doAI(int i){
                         player[i].lastpathfindpoint2=-1;
                         player[i].lastpathfindpoint3=-1;
                         player[i].lastpathfindpoint4=-1;
-                    }else
+                    } else
                         player[i].laststanding=j;
                 }
             //lose sight of player in the air (?)
@@ -5601,7 +5605,7 @@ void Game::MenuTick(){
                        case 5:
                                fireSound();
                                flash();
-                               if((selected-NB_CAMPAIGN_MENU_ITEM-1 >= accountactive->getCampaignChoicesMade())) {
+                               if((selected-NB_CAMPAIGN_MENU_ITEM >= accountactive->getCampaignChoicesMade())) {
                                        startbonustotal=0;
 
                                        loading=2;
@@ -5611,10 +5615,11 @@ void Game::MenuTick(){
                                                TickOnceAfter();
                                        else
                                                LoadStuff();
-                                       whichchoice=selected-NB_CAMPAIGN_MENU_ITEM-1-accountactive->getCampaignChoicesMade();
+                                       whichchoice=selected-NB_CAMPAIGN_MENU_ITEM-accountactive->getCampaignChoicesMade();
+                                       actuallevel=(accountactive->getCampaignChoicesMade()>0?campaignlevels[accountactive->getCampaignChoicesMade()-1].nextlevel[whichchoice]:0);
                                        visibleloading=1;
                                        stillloading=1;
-                                       Loadlevel(campaignmapname[campaignchoicewhich[whichchoice]]);
+                                       Loadlevel(campaignlevels[actuallevel].mapname.c_str());
                                        campaign=1;
                                        mainmenu=0;
                                        gameon=1;
@@ -5629,9 +5634,9 @@ void Game::MenuTick(){
                                                targetlevel=-1;
                                                if(firstload) {
                                                        TickOnceAfter();
-                                                       Loadlevel(-1);
                                                } else
                                                        LoadStuff();
+                                               Loadlevel(-1);
 
                                                mainmenu=0;
                                                gameon=1;
@@ -5661,9 +5666,6 @@ void Game::MenuTick(){
                                                                c=campaigns.begin();
                                                        accountactive->setCurrentCampaign(*c);
                                                }
-                                               if(Mainmenuitems[7])
-                                                       glDeleteTextures(1,&Mainmenuitems[7]); // we delete the world texture so load campaign will reload it
-                                               Mainmenuitems[7] = 0;
                                                LoadCampaign();
                                                break;
                                }
@@ -5715,9 +5717,11 @@ void Game::MenuTick(){
                                        loading=2;
                                        loadtime=0;
                                        targetlevel=selected;
-                                       if(firstload)TickOnceAfter();
-                                       if(!firstload)LoadStuff();
-                                       else Loadlevel(selected);
+                                       if(firstload)
+                                               TickOnceAfter();
+                                       else
+                                               LoadStuff();
+                                       Loadlevel(selected);
                                        campaign=0;
 
                                        mainmenu=0;
@@ -5870,13 +5874,13 @@ void Game::Tick(){
                if(mainmenu&&endgame==1)
             mainmenu=10;
         //go to level select after completing a campaign level
-        if(campaign&&winfreeze&&mainmenu==0&&campaignchoosenext[campaignchoicewhich[whichchoice]]==1) {
+        if(campaign&&winfreeze&&mainmenu==0&&campaignlevels[actuallevel].choosenext==1) {
             mainmenu=5;
             gameon=0;
             winfreeze=0;
             fireSound();
             flash();
-            if(musictoggle){
+            if(musictoggle) {
                 OPENAL_SetFrequency(OPENAL_ALL, 0.001);
                 emit_stream_np(stream_menutheme);
                 pause_sound(leveltheme);
@@ -6940,13 +6944,13 @@ void Game::Tick(){
                         player[i].drawtogglekeydown=0;
 
                     XYZ absflatfacing;
-                    if(i==0){
+                    if(i==0) {
                         absflatfacing=0;
                         absflatfacing.z=-1;
 
                         absflatfacing=DoRotation(absflatfacing,0,-rotation,0);
-                    }
-                    else absflatfacing=flatfacing;
+                    } else
+                                               absflatfacing=flatfacing;
 
                     if(indialogue!=-1){
                         player[i].forwardkeydown=0;
@@ -7698,7 +7702,7 @@ void Game::TickOnceAfter(){
 
                                        fireSound(firestartsound);
 
-                                       Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);
+                                       Loadlevel(campaignlevels[accountactive->getCampaignChoicesMade()].mapname.c_str());
 
                                        fireSound();
 
@@ -7732,11 +7736,11 @@ void Game::TickOnceAfter(){
                 // 0 = load next level
                 // 1 = go back to level select screen
                 // 2 = stealthload next level
-                               if(mainmenu==0&&winfreeze&&(campaignchoosenext[campaignchoicewhich[whichchoice]])==1){
-                                       if(campaignnumnext[campaignchoicewhich[whichchoice]]==0)
+                               if(mainmenu==0&&winfreeze&&(campaignlevels[actuallevel].choosenext)==1) {
+                                       if(campaignlevels[actuallevel].nextlevel.empty())
                                                endgame=1;
                                } else if(mainmenu==0&&winfreeze) {
-                                       stealthloading = (campaignchoosenext[campaignchoicewhich[whichchoice]]==2);
+                                       stealthloading = (campaignlevels[actuallevel].choosenext==2);
 
                                        if(!stealthloading){
                                                fireSound(firestartsound);
@@ -7754,9 +7758,12 @@ void Game::TickOnceAfter(){
                                        if(!firstload)
                                                LoadStuff();
                                        whichchoice=0;
+                                       cout << "from " << campaignlevels[actuallevel].mapname.c_str() << "(" << actuallevel << ")" << endl;
+                                       actuallevel=campaignlevels[actuallevel].nextlevel.front();
+                                       cout << "to " << campaignlevels[actuallevel].mapname.c_str() << "(" << actuallevel << ")" << endl;
                                        visibleloading=1;
                                        stillloading=1;
-                                       Loadlevel(campaignmapname[campaignchoicewhich[0]]);
+                                       Loadlevel(campaignlevels[actuallevel].mapname.c_str());
                                        campaign=1;
                                        mainmenu=0;
                                        gameon=1;