Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

jed_wad.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= jed_wad.h                               Octubre de 1997 a Junio de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definicion de una clase lectora de archivos en formato WAD (la usada    =
00005 //= por los juegos de id software).  La version actual solo soporta los WAD =
00006 //= de Doom y Doom2.                                                        =
00007 //=-------------------------------------------------------------------------=
00008 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00009 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00010 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00011 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00012 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00013 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00014 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00015 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00016 //=-------------------------------------------------------------------------=
00017 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00018 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00019 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00020 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00021 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00022 //===========================================================================
00023 
00024 #ifndef __JEDI_WAD__
00025 #define __JEDI_WAD__
00026 
00027 #include "jed_defs.h" 
00028 #include <stdio.h>
00029 #include "lista.h"
00030 
00031 enum ENUM_WAD_ENTITY_TYPES 
00032 {
00033     WAD_UNKNOWN = 0,
00034     WAD_LABEL,
00035     WAD_GLEVEL,
00036     WAD_IMAGE,
00037     WAD_FLAT,
00038     WAD_PLAYPAL,
00039     WAD_COLORMAP,
00040     WAD_ENDOOM,
00041     WAD_DEMOx,
00042     WAD_ExMy,
00043     WAD_MAPxy,
00044     WAD_TEXTURE,
00045     WAD_PNAMES,
00046     WAD_GENMIDI,
00047     WAD_DMXGUS,
00048     WAD_D_ExMy,
00049     WAD_D_INTER,
00050     WAD_D_INTRO,
00051     WAD_D_INTROA,
00052     WAD_D_VICTOR,
00053     WAD_D_BUNNY,
00054     WAD_D_,
00055     WAD_DP_,
00056     WAD_DS_,
00057     WAD_THINGS,
00058     WAD_LINEDEFS,
00059     WAD_SIDEDEFS,
00060     WAD_VERTEXES,
00061     WAD_SEGS,
00062     WAD_SSECTORS,
00063     WAD_NODES,
00064     WAD_SECTORS,
00065     WAD_REJECT,
00066     WAD_BLOCKMAP
00067 };
00068 
00069 class WAD_ENTITY {
00070   public:
00071     long int offset;
00072     long int size;
00073     char name[17];
00074     long int wad2_mem_size;
00075     BYTE wad2_type;
00076     BYTE wad2_compression;
00077 
00078     WAD_ENTITY(FILE *fd, int tipo);
00079     int deme_tipo(void);
00080 };
00081 
00082 class WAD_LEVEL {
00083   public:
00084     char name[9];
00085     FILE *wad_fd;
00086 
00087     WAD_ENTITY *Things;
00088     WAD_ENTITY *Linedefs;
00089     WAD_ENTITY *Sidedefs;
00090     WAD_ENTITY *Vertexes;
00091     WAD_ENTITY *Segs;
00092     WAD_ENTITY *Ssectors;
00093     WAD_ENTITY *Nodes;
00094     WAD_ENTITY *Sectors;
00095     WAD_ENTITY *Reject;
00096     WAD_ENTITY *Blockmap;
00097 
00098     WAD_LEVEL(char *n);
00099     void cargue(FILE *fd);
00100     ~WAD_LEVEL();
00101 };
00102 
00103 class WAD_TEXTURE_DATA {
00104   public:
00105     char name[9];      // Informacion global de la textura
00106     WORD width;
00107     WORD height;
00108 
00109     int num_trocitos;  // Arreglo dinamico de `num_trocitos` referencias a
00110     WORD *X_offsets;   // texturas.
00111     WORD *Y_offsets;
00112     WORD *Pname_indexes;
00113 };
00114 
00115 class WAD_DATABASE {
00116   private:
00117     char *nombre_de_archivo;  // Informacion sobre si-mismo
00118     char wadid_cad[5];    
00119     WORD num_entidades;
00120     DWORD ignorados;
00121     DWORD etiquetas;
00122     LISTA<WAD_ENTITY *> tablas_pname;
00123     LISTA<WAD_ENTITY *> texturas;
00124 
00125   public:
00126     LISTA<WAD_ENTITY *> imagenes;  // OJO! - si es bueno que sean "public"?
00127     LISTA<WAD_ENTITY *> flats;
00128     LISTA<WAD_ENTITY *> paletas;
00129     LISTA<WAD_ENTITY *> sonidos;
00130     LISTA<WAD_ENTITY *> efectos_speaker;
00131     LISTA<WAD_ENTITY *> secuencias_midi;
00132     LISTA<WAD_TEXTURE_DATA *> datos_texturas;
00133     LISTA<WAD_LEVEL *> niveles;
00134     LISTA<char *> tabla_pname;
00135     int tipo_de_wad;
00136     FILE *fd;
00137 
00138     WAD_DATABASE(char *file);
00139     ~WAD_DATABASE();
00140     void imprima(void);
00141     BOOLEAN localice_imagen(int busqueda);
00142     BOOLEAN localice_flat(int busqueda);
00143     BOOLEAN localice_flat_por_nombre(char *nombre);
00144     BOOLEAN localice_imagen_por_nombre(char *nombre);
00145     BOOLEAN localice_textura_por_nombre(char *nombre, int *X_tam, int *Y_tam,
00146         int *Num_trozos, int **ARr_x, int **ARr_y, int **ARr_i);
00147     BOOLEAN localice_sonido(int busqueda);
00148     void localice_paleta(int busqueda);
00149 
00150     friend void draw_callback(void);
00151 };
00152 
00153 #endif
00154 //===========================================================================
00155 //= EOF                                                                     =
00156 //===========================================================================
00157 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.