Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CreditsWriteTextPage();
- bool CreditsWriteTextPage(void) {
- // Variables
- char text[13][18]; // 13 lineas, 16 letras (16 + \n + seguridad)
- bool endofpage = false; // Flag de fin de pagina
- u16 row = 0; // Fila
- u16 column = 0; // Columna
- u16 line = 0; // Linea de impresion
- u16 y = 0; // Posicion inicial
- bool end = false; // Final de archivo
- // Resetea el buffer de texto
- memset(text, 0, sizeof(text));
- // Crea una pagina
- while (!endofpage) {
- // Si no es fin de linea...
- if (CREDITS.text_buffer[CREDITS.text_pos] != 0x0D) {
- // Segun el caracter leido....
- switch (CREDITS.text_buffer[CREDITS.text_pos]) {
- case 0x3E: // > Siguiente pagina
- // Muevete mas alla del siguiente salto de linea
- CREDITS.text_pos += 2;
- // Marca el final de pagina de texto
- endofpage = true;
- break;
- case 0x3C: // < Fin de texto
- endofpage = true;
- end = true;
- break;
- default: // Imprime el caracter
- text[row][column] = CREDITS.text_buffer[CREDITS.text_pos];
- column ++;
- if (column > 15) column = 15; // Limite de la linea (error trap)
- break;
- }
- // Siguiente caracter en el buffer
- CREDITS.text_pos ++;
- } else {
- // Salta los dos caracteres del retorno de linea
- CREDITS.text_pos += 2;
- // Y salta de linea en el buffer de texto
- row ++;
- column = 0;
- // Verifica los limites de lineas (error trap)
- if (row == 13) endofpage = true;
- }
- }
- // Imprime la pagina de texto las texturas del panel
- y = (112 - ((row << 4) >> 1));
- for (line = 0; line < row; line ++) {
- CreditsWriteTextOnTexture(text[line], y);
- y += 16;
- }
- // Devuelve el resultado de si es el final del texto
- return end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement