Página 4 de 26

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 10:02
por Jarlaxe
Por mi genial! :corchoneta:

Gracias por tu tiempo na_th_an!

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 10:07
por na_th_an
Antes que nada, ¿Qué versión de la churrera estás usando?

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 10:23
por Jarlaxe
La 3.99.3 ;)

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 10:50
por na_th_an
Vale. Si abres el archivo extern.h verás que sólo contiene esto:

$this->bbcode_second_pass_code('', '// External custom code to be run from a script

void do_extern_action (unsigned char n) {
// Add custom code here.
}
')
Lo que vas a hacer es borrar todo eso y sustituirlo por el código necesario para imprimir los mensajes que puse más arriba que, si te fijas, añade código a la función do_extern_action además de definir otras funciones auxiliares que le son necesarias y los textos.

Luego, asegúrate que:

1.- ACTIVATE_SCRIPTING está activado en config.h, y has seleccionado una tecla de acción (SCRIPTING_DOWN, por ejemplo). También debe estar activado ENABLE_EXTERN_CODE.

2.- Estamos compilando bien el script. En make.bat, por el principio, vienen originalmente este código:
$this->bbcode_second_pass_code('', 'rem no olvides cambiar NPANT por el nº de pantallas
msc %1.spt msc.h NPANT')
Esa es la llamada al compilador de scripts. Asegúrate que en vez de "NPANT" estás poniendo el número total de pantallas de tu güego.

3.- Tenemos el script donde debe estar: en el directorio script debe haber un archivo que se llame igual que tu juego con extensión .spt (debe tener el mismo nombre que el que le pusiste a churromain.c, pero con .spt).

4.- Que en el script estemos referenciando la pantalla correcta (en PRESS_FIRE AT SCREEN n) y la posición correcta (en IF PLAYER_TOUCHES x, y). También es importante que el número que pasamos al EXTERN sea 1, 2 o 3, ya que en el ejemplo sólo hay tres textos.

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 11:38
por Jarlaxe
He hecho lo que me dices y me salen errores al compilar :cry:

$this->bbcode_second_pass_code('', '### COMPILANDO SCRIPT ###
msc-config.h
msc.h
2 archivos copiados.
-------------------------------------------------------------------------------
### REGENERANDO MAPA ###
** WARNING **
MapCnv convierte un archivo raw de mappy (mapa.map, por ejemplo)
a un array directamente usable por los juegos de la churrera.
Si metes mal los parámetros ocurrirán cosas divertidas.

packed
Se escribió mapa.h con 24 pantallas empaquetadas (1800 bytes).
Se encontraron 2 cerrojos.

1 archivos copiados.
-------------------------------------------------------------------------------
### COMPILANDO GUEGO ###
1 archivos copiados.
1 archivos copiados.
sccz80:"engine.h" L:139 Warning:#4:Function returns different type to prototype
sccz80:"engine.h" L:139 Warning:#5:Prototype is signed int fn
sccz80:"engine.h" L:139 Warning:#6:Function is unsigned char fn
sccz80:"mainloop.h" L:4 Warning:#4:Function returns different type to prototype
sccz80:"mainloop.h" L:4 Warning:#5:Prototype is signed int fn
sccz80:"mainloop.h" L:4 Warning:#6:Function is void fn
Error at file 'C:\DOCUME~1\Carlos\CONFIG~1\Temp\s3j4_.asm' module 'DOGMOLE': Symbol not defined in e
xpression '_DRAW_TEXT'
1 errors occurred during assembly
Key to filenames:
C:\DOCUME~1\Carlos\CONFIG~1\Temp\s3j4_.o = dogmole.c
Error at file 'C:\DOCUME~1\Carlos\CONFIG~1\Temp\s3j4_.asm' module 'DOGMOLE': Symbol not defined in e
xpression '_DRAW_TEXT'
-------------------------------------------------------------------------------
### CONSTRUYENDO CINTA ###

BAS2TAP v2.5 by Martijn van der Heide of ThunderWare Research Center

Creating output file loader.tap
Done! Listing contains 1 line.
Input file open failed!
loader.tap
screen.tap
1 archivos copiados.
-------------------------------------------------------------------------------
### LIMPIANDO ###
No se encuentra C:\Dogmole\dev\main.tap
No se encuentra C:\Dogmole\dev\dogmole.bin
-------------------------------------------------------------------------------
### DONE ###')

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 12:04
por na_th_an
Vale, eso es porque el código del ramiro tenía funciones que se llamaban de otra forma.

En extern.h, cambia la llamada a draw_text por print_str, en la linea 70 o asín:
$this->bbcode_second_pass_code('', 'print_str (x, y, c, cad);')
Es que en la churrera vieja la función de imprimir cadenas se llamaba de otra forma :)

Para quitar los warnings que salen, edita definitions.h y escribe esto al final:
$this->bbcode_second_pass_code('', 'unsigned char rand (void);
void saca_a_todo_el_mundo_de_aqui (void);')

Con esos dos cambios te debería compilar sin problemas

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 12:55
por Jarlaxe
Uyyyyy, casi!

Ahora termina de compilar bien, pero tras cargar el loading screen, se cuelga.

Venga que ya estamos más cerca :D

Te dejo el tap para que veas lo que te comento.

Gracias nathan!

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 12:56
por na_th_an
Con el tap no veo nada :lol: Necesito tu /dev.

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 12:58
por na_th_an
Ah, pues sí que ha sido suficiente con el tap.

Se cuelga porque ocupa demasiado, 37131 bytes... Y el máximo para tu versión es de 36455 bytes.

¿Cuánto ocupa tu mapa? ¿Qué motores estás activando? A lo mejor vas a tener que pedir ayuda a Antonio Villena para comprimir el mapa y ganar algo de espacio.

Re: Dogmole Tuppowski - Las Nuevas Aventuras (o casi...)

Publicado: Jue, 16 Ene 2014, 13:37
por Jarlaxe
Jejeje, el tap era solo para recrear el momento dle "pete"

Pues que raro, porque es el mapa original del Dogmole, solo que he ido añadiendo ya algunos tiles extra a las pantallas mediante script.

Pero vamos, no creo que eso le haga aumentar demasiado el tamaño.

Mira, te dejo 2 dev comprimidos en un mismo zip:

El dev1 es el que peta. Este es al que le he modificado el config.h, extern.h y script como tu me indicabas.

El dev2 NO peta, y es como lo tenía antes de intentar mostrar texto en pantalla.

A ver si con eso puedes averiguar algo más, y si no, pues paso de meter texto y arreando! jejeje