[Bennu Module] mod_fire

Started by FreeYourMind, March 12, 2010, 11:28:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Buenas, he portado el modulo 'fire' de fenix a Bennu, se llama mod_fire.

No se porque Splinter no lo hizo, pues me aburria y decidi portarlo, ahora si hay algo que no sepa sobre la historia del modulo pues aclaraciones son bienvenidas.

De momento hay una pequeña cosilla que meti a dedo, y quiero que me ayudeis a arreglarlo en la version definitiva:
Los antiguos parametros 'scr_width' y 'scr_height' de donde se obtienen ahora ?? (le he puesto a pelo los valores 640 y 480 de momento para poder sacar la dll).

Bueno, pues pongo foto y viene el prg de ejemplo de toda la vida con la dll.




Como nota: Nunca probe el original de Fenix, me estraña que sólo salga el fuego en un sitio cuando la demo parece que iba a enseñar 3 tipos de fuego... ya me direis.

Drumpi

En código bennu existe la función get_modes para obtener dichos valores, supongo que en el código de la mod_video podrás encontrar el nombre interno de las variables.
Esta es otra de las dlls que nunca probé en Fenix... creo que sólo probé la ETD, la VSE, la image y para verla, la M8EE.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

:), eso tiene que estar mal por pelotary.

Con respecto a esas variables que comentas, siguen existiendo en bennuGD
Quote from: g_video.h
...
extern int scr_width ;
extern int scr_height ;
...
Y por defecto tienen valor 320x200
Quote from: g_video.c
int scr_width = 320 ;
int scr_height = 240 ;

Truco, por si vas a seguir portando modulos para alcanzarme en número de modulos :D:
Tener el código fuente de bennuGD en un directorio y usar un buscador de textos, como trae freecomander o total commander, o en linux el krusader, o cualquier otro buscador que permita busqueda recursiva de subdirectorios (el propio buscador de windows trae uno) y filtres los archivos a buscar por los .c y .h, por ejemplo, para el caso de freecomander es "*.h;*.c".
Y buscar las funciones, variables que te den errores para ver en qué fichero cabecera están y poder insertarlo en tu código.
Algunas funciones y variables pueden haber cambiado su nombre para ajustarse al módulo al que pertenecen pero guardan algún patrón con el nombre original, en mi caso antes había una funcion llamada gr_line y ahora se llamaba draw_line, comparten line, así que para encontrarla busqué algo como _line a ver cual podría ajustarse a mis parámetros y así encontré a draw_line :D.
Pues aplicando esa técnica deberías encontrar todas la funciones y variables en el código de bennu :)
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

:D

estan hechos unas maquinas con bennu... felicitaciones! eso me gusta... :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Wow, me gusta, tiene muy buen aspecto y los efectos visuales siempre son de agradecer, veo que faltan 2 tipos de fuego en esa captura, pero el que hay se ve perfecto, espero a usarlo para darte el karma :D

Gracias por traer esas cositas
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

FreeYourMind

Estoy en ello Windgate, esto es una beta :)
Hoy ha sido un dia muy duro con lo de Retromadrid 2010, mañana si tengo energia retomaré el trabajo.

FreeYourMind

Buenas, he pillado algun tiempo para resolver este tema pendiente. Como sabeis me puse a portar la dll a Bennu sin saber que estaba en el Bennu Pack.
Estaba en estado beta por unas dependencias que desconocia, despues de mirar el código de la portada en el Bennu pack, las descubri y termine la dll.

Esta dll no tendria sentido sacarla, ni volver a tocar el tema, salvo por 3 cosillas:

1 - La tenia en estado beta, y ya que habia sacado el port repetido a Bennu, por lo menos termino la faena.
2 - Mi dll ocupa tan soólo 7,50 KB frente a la otra que ocupa 9,00 KB, y tienen ambas exactamente el mismo rendimiento.

3 - Esto lo más importante, he probado tambien la del Bennupack, y tanto una como otra, en el ejemplo, sólo dibuja el fuego normal!!! Así que no era un problema de mi beta, pero si de ambos ports, pero sólo si alguien confirma que en Fenix, el ejemplo pinta los 3 tipos de fuego.
Si así es, entonces tendremos una dll con problemas en Bennu, port que habrá que actualizar (el del Bennupack o la mia).

SplinterGU

en fenix pintabas los 3 fuegos...

si te acostumbras a poner los fuentes, quizas podemos ayudar...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Si les con atención mi post, te fijas que són los mismos/identicos que los del Bennu Pack (que tiene el mismo problema), así que puedes ayudar sin problemas, que de momento algo 'Big' se esta terminando de cocinar en mi horno, y no tengo tiempo para mirar ni esta de momento  ::)

SplinterGU

no tocaste nada de nada? es el mismo? me resulta raro eso...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Sólo tienes que probar la fire.dll con el ejemplo y verás...

SplinterGU

tengo linux... ademas te creo que no funciona... solo queria toquetear el codigo para que funcione... pues nada...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Pero no tienes aceso al bennupack ?

SplinterGU

no lo tengo... nada, quizas alguien le eche un ojo... yo seguire con lo del opengl...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#14
aca esta la fire portada y funcionando correctamente... http://betatester.bennugd.org/snapshot/contrib/fire.tgz

debo aclarar que no es cierto que esta dll funcionaba bien en fenix, puesto que el ejemplo estaba mal... y el mayor problema era que se crean 3 fuegos pero solo 1 toma el graph asignandolo al proceso main... y por ende, logicamente los otros 2 fuegos no se ven, porque no tienen procesos asociados a sus graph.

ya corregi el ejemplo, y limpie un poco la dll...

EDIT: incluyo el codigo... tomado de la version original de fenix que tenia en mi maquina...

saludos.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2