diff --git a/mapa.cpp b/mapa.cpp index c143805..845ccbc 100755 --- a/mapa.cpp +++ b/mapa.cpp @@ -279,8 +279,8 @@ void Mapa::comprovaCaixa( Uint8 num ) { this->tombes[num].y = 70; info->diamants++; info->diners += VALOR_DIAMANT; + if (info->diamants == 16) this->farao = this->clau = true; break; - } this->comprovaPorta(); diff --git a/modulegame.cpp b/modulegame.cpp index 98f064b..bc5c832 100755 --- a/modulegame.cpp +++ b/modulegame.cpp @@ -74,14 +74,15 @@ int ModuleGame::Go() { this->info->num_habitacio = 1; this->info->num_piramide++; } - } else if (this->final == 2) { + if (this->info->num_piramide == 6 && this->info->num_habitacio == 2) this->info->num_piramide++; + } else if (this->final == 2) { this->info->num_piramide = 100; } if( JG_Quitting() ) { return -1; } else { - if( this->info->num_habitacio == 1 || this->info->num_piramide == 100 ) { + if (this->info->num_habitacio == 1 || this->info->num_piramide == 100 || this->info->num_piramide == 7) { return 1; } else { return 0; diff --git a/modulesequence.cpp b/modulesequence.cpp index d3eae3a..ec5d70e 100755 --- a/modulesequence.cpp +++ b/modulesequence.cpp @@ -840,6 +840,78 @@ void ModuleSequence::doSecreta() { } void ModuleSequence::doCredits() { + + + + + procedure final_del_joc(num:byte); + var contador_final : word; +fich: file of byte; temp: byte; + begin + + final_de_la_partida : = true; + + fadedown(0, 0, 0, 1); + + espera_VGA; + cls(0, VGA); + + ini_midi(musica_final_joc); + if midi then Playmidi; + + intro(vaddr3, vaddr, num); + + load_mif(pcx_finals, vaddr3); + load_mif(pcx_final, vaddr2); + + cls(0, vaddr); +contador_final: = 0; + repeat + + inc(contador_final); + cls(0, vaddr); + + if contador_final<2000 then Put_Sprite_ICE_baix(vaddr2, vaddr, 0, 0, 80, 200, 115, 200 - (contador_final div 10)) + else if contador_final<2750 then Put_Sprite_ICE_dalt(vaddr2, vaddr, 0, 0, 80, 200, 115, 200 - (contador_final div 10)); + + if (contador_final>2000) and(contador_final<3800) then + Put_Sprite_ICE_baix(vaddr2, vaddr, 85, 0, 120, 140, 100, 200 - ((contador_final - 2000) div 10)) + else if contador_final >= 3750 then Put_Sprite_ICE_baix(vaddr2, vaddr, 85, 0, 120, 140, 100, 20); + + If tomba_secreta then + begin + scroll_final_joc(vaddr3, vaddr, contador_final); + Put_Sprite(vaddr2, vaddr, frames_coche[(contador_final div velocitat_coche)mod n_frames_coche], ample_coche, alt_coche, 100, 50); + end + else begin + Put_Sprite(vaddr3, vaddr, 0, 320, 50, 0, 50); + Put_Sprite(vaddr3, vaddr, 16000, 320, 50, 0, 50); + end; + + For i : = 0 to 16319 do mem[vaddr:i] : = 0; + For i : = 32000 to 35200 do mem[vaddr:i] : = 0; + + espera_VGA; + volcar32(vaddr, vga); + + until(TeclaPuls(KeyESC)) or(contador_final = 7000); + + if num = final_bo then + begin + Assign(fich, 'datos\graf.mif'); + Reset(fich); + seek(fich, FileSize(fich) - 1); +temp: = truco_on; + write(fich, temp); + Close(fich); + end; + + end; + + + + + } void ModuleSequence::doMort() {