20 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
\r
24 TForm1 = class(TForm)
\r
25 gbSalida: TGroupBox;
\r
28 procedure FormCreate(Sender: TObject);
\r
30 { Private declarations }
\r
32 { Public declarations }
\r
45 procedure TForm1.FormCreate(Sender: TObject);
\r
62 r := TRegExpr.create;
\r
63 mmSalida.Lines.LoadFromFile( 'serializado.eaw' );
\r
64 mmSalida.Lines.Insert( 0, ' -- Cargando Archivo: "serializado.eaw"... --' );
\r
65 mmSalida.Lines.Append( ' -- Archivo Cargado. --' );
\r
66 mmSalida.Lines.Append( ' -- Deserializando... --' );
\r
67 r.Expression := '<vector>\s*(.+)\s*</vector>';
\r
68 if r.Exec( mmSalida.Lines.Text ) then
\r
69 v := cVector.crearDeSerializado( r.Match[1] );
\r
70 r.Expression := '<coordenadas>\s*(.+)\s*</coordenadas>';
\r
71 if r.Exec( mmSalida.Lines.Text ) then
\r
72 c := cCoordenadas.crearDeSerializado( r.Match[1] );
\r
73 r.Expression := '<ObjetoVolador>\s*(.+)\s*</ObjetoVolador>';
\r
74 if r.Exec( mmSalida.Lines.Text ) then
\r
75 ov := cObjetoVolador.crearDeSerializado( r.Match[1] );
\r
76 r.Expression := '<laser>\s*(.+)\s*</laser>';
\r
77 if r.Exec( mmSalida.Lines.Text ) then
\r
78 l := cLaser.crearDeSerializado( r.Match[1] );
\r
79 r.Expression := '<misil>\s*(.+)\s*</misil>';
\r
80 if r.Exec( mmSalida.Lines.Text ) then
\r
81 m := cMisil.crearDeSerializado( r.Match[1] );
\r
82 r.Expression := '<misildirigido>\s*(.+)\s*</misildirigido>';
\r
83 if r.Exec( mmSalida.Lines.Text ) then
\r
84 md := cMisilDirigido.crearDeSerializado( r.Match[1] );
\r
85 r.Expression := '<filtro>\s*(.+)\s*</filtro>';
\r
86 if r.Exec( mmSalida.Lines.Text ) then
\r
87 f := cFiltro.crearDeSerializado( r.Match[1] );
\r
88 r.Expression := '<nave>\s*(.+)\s*</nave>';
\r
89 if r.Exec( mmSalida.Lines.Text ) then
\r
90 n := cNave.crearDeSerializado( r.Match[1] );
\r
91 r.Expression := '<naveenemiga>\s*(.+)\s*</naveenemiga>';
\r
92 if r.Exec( mmSalida.Lines.Text ) then
\r
93 ne := cNaveEnemiga.crearDeSerializado( r.Match[1] );
\r
94 r.Expression := '<navepesada>\s*(.+)\s*</navepesada>';
\r
95 if r.Exec( mmSalida.Lines.Text ) then
\r
96 np := cNavePesada.crearDeSerializado( r.Match[1] );
\r
97 r.Expression := '<naveliviana>\s*(.+)\s*</naveliviana>';
\r
98 if r.Exec( mmSalida.Lines.Text ) then
\r
99 nl := cNaveLiviana.crearDeSerializado( r.Match[1] );
\r
100 r.Expression := '<naveespia>\s*(.+)\s*</naveespia>';
\r
101 if r.Exec( mmSalida.Lines.Text ) then
\r
102 ni := cNaveEspia.crearDeSerializado( r.Match[1] );
\r
103 r.Expression := '<navepropia>\s*(.+)\s*</navepropia>';
\r
104 if r.Exec( mmSalida.Lines.Text ) then
\r
105 nr := cNavePropia.crearDeSerializado( r.Match[1] );
\r
106 if md.mGetObjetivo <> nil then
\r
107 if l.mGetID = md.mGetObjetivo.mGetID then begin
\r
108 mmSalida.Lines.Append( 'Objetivo del Misil Dirigido = Laser. Eliminando la copia...' );
\r
110 ov := md.mGetObjetivo;
\r
112 if f.mGetObservador <> nil then
\r
113 if m.mGetID = f.mGetObservador.mGetID then begin
\r
114 mmSalida.Lines.Append( 'Observador del Filtro = Misil. Eliminando la copia...' );
\r
116 m := f.mGetObservador as cMisil;
\r
118 { mmSalida.Lines.Append( 'Vector: ' + v.mGetDebugInfo( DI_MAXI ) );
\r
119 mmSalida.Lines.Append( 'Coordenadas: ' + c.mGetDebugInfo( DI_MAXI ) );
\r
120 mmSalida.Lines.Append( 'Objeto Volador: ' + ov.mGetDebugInfo( DI_MAXI ) );
\r
121 mmSalida.Lines.Append( 'Laser: ' + l.mGetDebugInfo( DI_MAXI ) );
\r
122 mmSalida.Lines.Append( 'Misil: ' + m.mGetDebugInfo( DI_MAXI ) );
\r
123 mmSalida.Lines.Append( 'Misil Dirigido: ' + md.mGetDebugInfo( DI_MAXI ) );
\r
124 } mmSalida.Lines.Append( ' -- Terminado. --' );
\r
125 { mmSalida.Lines.Append( ' -- Cambiando Valores. --' );
\r
132 v := cVector.create( 1, 2, -1 );
\r
133 c := cCoordenadas.create;
\r
134 ov := cObjetoVolador.create( v );
\r
135 l := cLaser.create;
\r
136 m := cMisil.create;
\r
137 md := cMisilDirigido.create( ov );
\r
138 mmSalida.Lines.Append( 'Vector: ' + v.mGetDebugInfo( DI_MAXI ) );
\r
139 mmSalida.Lines.Append( 'Coordenadas: ' + c.mGetDebugInfo( DI_MAXI ) );
\r
140 mmSalida.Lines.Append( 'Objeto Volador: ' + ov.mGetDebugInfo( DI_MAXI ) );
\r
141 mmSalida.Lines.Append( 'Laser: ' + l.mGetDebugInfo( DI_MAXI ) );
\r
142 mmSalida.Lines.Append( 'Misil: ' + m.mGetDebugInfo( DI_MAXI ) );
\r
143 mmSalida.Lines.Append( 'Misil Dirigido: ' + md.mGetDebugInfo( DI_MAXI ) );
\r
144 mmSalida.Lines.Append( ' -- Terminado. --' );
\r
145 } mmSalida.Lines.Append( ' -- Serializando. --' );
\r
146 mmSalida.Lines.Append( '<vector>' + v.mSerializar + '</vector>');
\r
147 mmSalida.Lines.Append( '<coordenadas>' + c.mSerializar + '</coordenadas>' );
\r
148 mmSalida.Lines.Append( '<ObjetoVolador>' + ov.mSerializar + '</ObjetoVolador>');
\r
149 mmSalida.Lines.Append( '<laser>' + l.mSerializar + '</laser>');
\r
150 mmSalida.Lines.Append( '<misil>' + m.mSerializar + '</misil>' );
\r
151 mmSalida.Lines.Append( '<misildirigido>' + md.mSerializar + '</misildirigido>');
\r
152 mmSalida.Lines.Append( '<filtro>' + f.mSerializar + '</filtro>');
\r
153 mmSalida.Lines.Append( '<nave>' + n.mSerializar + '</nave>');
\r
154 mmSalida.Lines.Append( '<naveenemiga>' + ne.mSerializar + '</naveenemiga>');
\r
155 mmSalida.Lines.Append( '<navepesada>' + np.mSerializar + '</navepesada>');
\r
156 mmSalida.Lines.Append( '<naveliviana>' + nl.mSerializar + '</naveliviana>');
\r
157 mmSalida.Lines.Append( '<naveespia>' + ni.mSerializar + '</naveespia>');
\r
158 mmSalida.Lines.Append( '<navepropia>' + nr.mSerializar + '</navepropia>');
\r
159 mmSalida.Lines.Append( ' -- Terminado. --' );
\r