Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: HaCkZJuaNN on October 29, 2011, 01:01:07 PM

Title: Identificar el tipo de un proceso.
Post by: HaCkZJuaNN on October 29, 2011, 01:01:07 PM
En un programa tengo una cuadrícula, y en cada cuadro de la cuadrícula puedo tener un y sólo un objeto (procesos). Puedo guardar un array bidimensional con referencias a los procesos en cada elemento. El problema es que los objetos que puedo tener en la cuadrícula no son de un solo tipo de proceso; y me gustaría, cuando leo la cuadrícula y encuentro un proceso, saber de qué tipo es.

Sí, puedo hacerme otro array donde guarde un enum de qué tipo de objeto hay en cada cuadro, pero eso me parece un poco feo; sobre todo si es posible, dado el id de un proceso; averiguar de qué tipo es.

Gracias ;)
Title: Re: Identificar el tipo de un proceso.
Post by: KeoH on October 29, 2011, 02:05:18 PM
puedes crearte una variable local con el tipo de cada proceso, y una vez q tienes el ID del proceso, leer la variable local para saber q tipo es.
Title: Re: Identificar el tipo de un proceso.
Post by: SplinterGU on October 29, 2011, 04:27:40 PM
nativamente no hay forma salvo la mencionada por KeoH... aunque puede que pronto meta alguna funcion o variable local interna...
Title: Re: Identificar el tipo de un proceso.
Post by: HaCkZJuaNN on October 29, 2011, 05:31:30 PM
Ok, dado que el tipo de procesos que puedo meter en esa cuadrícula es limitado, supongo que de momento me haré una "cuadrícula de tipos" donde indique de qué tipo es el proceso en cada hueco.

Gracias.
Title: Re: Identificar el tipo de un proceso.
Post by: Drumpi on October 31, 2011, 07:32:34 PM
Pero si creo recordar que existe una variable local RESERVADA que lo dice. Ojo, que al ser reservada es crítico no andar jugando con ella (sólo lectura, WARNING). Lo que ya no se es si se puede comparar con "type mi_proceso".

Habilitad el modo debug, escribid locals y revisad la estructura RESERVED.

Pero la solución de KeoH es la más elegante: defines tus propios valores, y si lo haces bien, puedes usar comparadores > y < o operaciones binarias para obtener un grupo de procesos (múltiplos de 4, los que tengan el tercer bit a 1, los que tengan módulo 3...).
Title: Re: Identificar el tipo de un proceso.
Post by: SplinterGU on October 31, 2011, 11:22:11 PM
es correcto, la local reserved.process_type coincide con el (type proceso)... me habia olvidado de eso...

pero hay que tener mucho cuidado con esta variable, no cambiar su valor por ninguna circunstancia.

es mas las agregue al mod_proc y mod_grproc, pero nunca le di uso... se ve que algo tenia pensado hacer con ellas... y bueno... ya no recuerdo que era.
Title: Re: Identificar el tipo de un proceso.
Post by: HaCkZJuaNN on November 01, 2011, 02:39:01 PM
O sea, que puedo decir...

id = array_de_ids[4][5]

switch(id.process_type)
{
case type manzana: comer(); break;
case type manzana_podrida: no_comer(); break;
}

(no recuerdo la sintaxis del switch en bennu xD, pero entendéis lo que quiero decir... )
Title: Re: Identificar el tipo de un proceso.
Post by: SplinterGU on November 01, 2011, 03:25:06 PM
id.reserved.process_type

y es

case ..:
end
Title: Re: Identificar el tipo de un proceso.
Post by: HaCkZJuaNN on November 01, 2011, 03:36:31 PM
Quote from: SplinterGU on November 01, 2011, 03:25:06 PM
id.reserved.process_type

y es

case ..:
end

Ok, muchas gracias!