Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Funcion CreditsMain();
- void CreditsMain(void) {
- //////////////////////////
- // //
- // Inicializaciones //
- // //
- //////////////////////////
- // Reinicialo todo
- ResetAll();
- // Variables
- bool fade_in = true; // Fade IN
- bool fade_out = false; // Fade OUT
- s32 fade = (16 << 8); // Valor del FADE
- bool loop = true; // Control del bucle principal
- //////////////////////
- // //
- // Carga Archivos //
- // //
- //////////////////////
- // Muestra la pantalla de carga
- LoadingIn();
- // Carga los archivos
- CreditsLoadFiles();
- // Carga la Musica
- LoadBgm(MOD_CREDITS);
- // Oculta la pantalla de carga
- LoadingOut();
- //////////////////////
- // //
- // Crea el entorno //
- // //
- //////////////////////
- // Habilita el 3D en la pantalla tactil
- N3_Set3D(1, 0);
- N3_Init3dEngine();
- // Inicializa los fondos 2D en el main engine
- NF_InitTiledBgSys(0);
- // Inicializa el modo 16 bits para el sub engine
- NF_Set2D(1, 5);
- // Inicializa el fondo BITMAP de 16 bits, para poder recibir la captura
- NF_InitBitmapBgSys(1, 1);
- // Prepara el Banco D para guardar las capturas 3D
- vramSetBankD(VRAM_D_LCD);
- // Y habilita la capa de dibujado para el 3D en el main engine, poniendola al fondo
- N3_3dLayer(3);
- NF_ShowBg(0, 0);
- // Crea el mundo en 3D
- CreditsCreateWorld();
- // Reproduce la Musica
- PlayBgm();
- BgmVolume(0);
- //////////////////////////
- // //
- // Nucleo de ejecucion //
- // //
- //////////////////////////
- while (loop) {
- // Intercambio de pantalla para el dual 3D (false = main)
- CREDITSWORLD.screen = !CREDITSWORLD.screen;
- if (CREDITSWORLD.screen) {
- lcdMainOnBottom(); // 3D en la inferior
- } else {
- lcdMainOnTop(); // 3D en la superior
- }
- // Lee el teclado
- ReadKeypad();
- // Effecto "fade in"
- if (fade_in) {
- fade -= 64;
- if (fade <= 0) {
- fade = 0;
- fade_in = false;
- }
- // Ajusta el brillo
- setBrightness(3, (0 - (fade >> 8)));
- // Si es necesario, ajusta el volumen
- BgmVolume(((4096 - fade) >> 2));
- }
- // Effecto "fade out"
- if (fade_out) {
- fade += 64;
- if (fade >= (16 << 8)) {
- fade = (16 << 8);
- fade_out = false;
- loop = false;
- StopBgm();
- }
- // Ajusta el brillo
- setBrightness(3, (0 - (fade >> 8)));
- // Si es necesario, ajusta el volumen
- BgmVolume(((4096 - fade) >> 2));
- }
- // Mueve el tunel
- CreditsMoveTunnel();
- // Mueve el panel de creditos
- if (!CREDITSWORLD.panel_update && !fade_in && !fade_out) {
- fade_out = CreditsMovePanel();
- }
- if (fade_out && loop) CreditsMovePanel();
- // Renderiza el mundo en 3D
- CreditsRender3dWorld();
- // Abortar? (Salir de los creditos)
- if (!fade_in && !fade_out && AbortKeys()) {
- fade_out = true;
- }
- // Espera al sincronismo vertical
- swiWaitForVBlank();
- // Manda la captura del banco D al banco C, teniendo asi una imagen en el subengine
- NF_DmaMemCopy((void*)0x06200000, (void*)0x06860000, 98304); // (256 x 192 pixeles)
- // Muestra o oculta el logo (fondo 2D)
- if (CREDITSWORLD.screen) {
- NF_ShowBg(0, 1);
- } else {
- NF_HideBg(0, 1);
- }
- // Espera a que el dispositivo de captura este listo
- while (REG_DISPCAPCNT & DCAP_ENABLE);
- // Captura el frame actual al banco D de VRAM
- REG_DISPCAPCNT = DCAP_BANK(3)| DCAP_ENABLE | DCAP_SIZE(3);
- // Actualiza las texturas del panel de creditos, si es necesario
- if (CREDITSWORLD.panel_update) CreditsUpdateVramPanelTextures();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement