]> git.llucax.com Git - z.facultad/75.07/algowars.git/blob - src/auxiliares/SerializacionUtils.pas
Import inicial después del "/var incident". :(
[z.facultad/75.07/algowars.git] / src / auxiliares / SerializacionUtils.pas
1 {** Funciones útiles para complementar la utilización de la serialización en\r
2     este modelo en particular}\r
3 unit SerializacionUtils;\r
4 \r
5 interface\r
6 \r
7 uses\r
8   ObjetoVolador;\r
9 \r
10   {** Crea un objeto a partir de un string con el nombre de su clase y otro\r
11       con su representación serializada.}\r
12   function restaurarObjeto( clase, str: string ): cObjetoVolador;\r
13 \r
14 implementation\r
15 \r
16 uses\r
17   ObjetoPersistente,\r
18   Armas,\r
19   NavesEnemigas,\r
20   NavePropia,\r
21   Meteorito;\r
22 \r
23 {** Crea un objeto a partir de un string con el nombre de su clase y otro\r
24     con su representación serializada.\r
25     @param  clase Clase del Objeto\r
26     @param  str   Representación del objeto serializado\r
27     @return Puntero al nuevo objeto.}\r
28 function restaurarObjeto( clase, str: string ): cObjetoVolador;\r
29 begin\r
30   if clase = 'cMeteorito' then\r
31     result := cMeteorito.crearDeSerializado( str )\r
32   else if clase = 'cLaser' then\r
33     result := cLaser.crearDeSerializado( str )\r
34   else if clase = 'cMisil' then\r
35     result := cMisil.crearDeSerializado( str )\r
36   else if clase = 'cMisilDirigido' then\r
37     result := cMisilDirigido.crearDeSerializado( str )\r
38   else if clase = 'cNavePropia' then\r
39     result := cNavePropia.crearDeSerializado( str )\r
40   else if clase = 'cNavePesada' then\r
41     result := cNavePesada.crearDeSerializado( str )\r
42   else if clase = 'cNaveLiviana' then\r
43     result := cNaveLiviana.crearDeSerializado( str )\r
44   else if clase = 'cNaveEspia' then\r
45     result := cNaveEspia.crearDeSerializado( str )\r
46   else if clase = 'cNaveSuicida' then\r
47     result := cNaveSuicida.crearDeSerializado( str )\r
48   else\r
49     raise ESerializacion.create( 'No se puede crear un objeto de la clase "' +\r
50                                  clase + '". Clase Desconocida!' );\r
51 end;\r
52 \r
53 end.\r