Main Page   Compound List   File List   Compound Members  

l_main.h

00001 #ifndef _L_MAIN_H_
00002 #define _L_MAIN_H_
00003 
00004 #include "tr_types.h"
00005 
00006 typedef enum {
00007         TOMB_RAIDER_I,
00008         TOMB_RAIDER_I_DEMO,
00009         TOMB_RAIDER_UNFINISHED_BUSINESS,
00010         TOMB_RAIDER_II,
00011         TOMB_RAIDER_II_DEMO,
00012         TOMB_RAIDER_III,
00013         TOMB_RAIDER_IV,
00014         TOMB_RAIDER_IV_DEMO,
00015         TOMB_RAIDER_V
00016 } tr_version_e;
00017 
00025 class TR_Level {
00026       public:
00027         tr_version_e game_version;      
00028         bitu32 num_textiles;    
00029         bitu32 num_room_textiles;       
00030         bitu32 num_obj_textiles;        
00031         bitu32 num_bump_textiles;       
00032         bitu32 num_misc_textiles;       
00033         std::vector < tr_textile8_t > textile8; 
00034         std::vector < tr2_textile16_t > textile16;      
00035         std::vector < tr4_textile32_t > textile32;      
00036         bool read_32bit_textiles;       
00037         std::vector < tr5_room_t > rooms;       
00038         std::vector < bitu16 >floor_data;       
00039         std::vector < tr4_mesh_t > meshes;      
00040         std::vector < bitu32 >mesh_indices;     
00041         std::vector < tr_animation_t > animations;      
00042         std::vector < tr_state_change_t > state_changes;        
00043         std::vector < tr_anim_dispatch_t > anim_dispatches;     
00044         std::vector < tr_anim_command_t > anim_commands;        
00045         std::vector < tr_meshtree_t > mesh_trees;       
00046         std::vector < tr_frame_t > frames;      
00047         std::vector < tr_moveable_t > moveables;        
00048         std::vector < tr_staticmesh_t > static_meshes;  
00049         std::vector < tr4_object_texture_t > object_textures;   
00050         std::vector < tr_animated_textures_t > animated_textures;       
00051         std::vector < tr_sprite_texture_t > sprite_textures;    
00052         std::vector < tr_sprite_sequence_t > sprite_sequences;  
00053         std::vector < tr_camera_t > cameras;    
00054         std::vector < tr4_extra_camera_t > flyby_cameras;       
00055         std::vector < tr_sound_source_t > sound_sources;        
00056         std::vector < tr_box_t > boxes; 
00057         std::vector < bitu16 >overlaps; 
00058         std::vector < bit16 >zones;     
00059         std::vector < tr2_item_t > items;       
00060         tr_lightmap_t lightmap; 
00061         tr2_palette_t palette;  
00062         tr2_palette_t palette16;        
00063         std::vector < tr4_ai_object_t > ai_objects;     
00064         std::vector < tr_cinematic_frame_t > cinematic_frames;  
00065         std::vector < bitu8 >demo_data; 
00066         bit16 soundmap[450];    
00067         std::vector < tr_sound_details_t > sound_details;       
00068         std::vector < bitu8 >samples;   
00069         std::vector < bitu32 >sample_indices;   
00070 
00071         void read_level(SDL_RWops * const src, tr_version_e game_version);
00072 
00078         class trxReadError {
00079               public:
00080                 char *m_message;        
00081                 char *m_file;   
00082                 int m_line;     
00083                 char *m_rcsid;  
00084 
00085                 trxReadError (char *const message, char *const file, int line, char *const rcsid);
00086         };
00087 
00088       protected:
00089         bit8 read_bit8(SDL_RWops * const src);
00090         bitu8 read_bitu8(SDL_RWops * const src);
00091         bit16 read_bit16(SDL_RWops * const src);
00092         bitu16 read_bitu16(SDL_RWops * const src);
00093         bit32 read_bit32(SDL_RWops * const src);
00094         bitu32 read_bitu32(SDL_RWops * const src);
00095         float read_float(SDL_RWops * const src);
00096 
00097         void read_mesh_data(SDL_RWops * const src);
00098         void read_frame_moveable_data(SDL_RWops * const src);
00099 
00100         void read_tr_colour(SDL_RWops * const src, tr2_colour_t & colour);
00101         void read_tr_vertex16(SDL_RWops * const src, tr5_vertex_t & vertex);
00102         void read_tr_vertex32(SDL_RWops * const src, tr5_vertex_t & vertex);
00103         void read_tr_face3(SDL_RWops * const src, tr4_face3_t & face);
00104         void read_tr_face4(SDL_RWops * const src, tr4_face4_t & face);
00105         void read_tr_textile8(SDL_RWops * const src, tr_textile8_t & textile);
00106         void read_tr_lightmap(SDL_RWops * const src, tr_lightmap_t & lightmap);
00107         void read_tr_palette(SDL_RWops * const src, tr2_palette_t & palette);
00108         void read_tr_room_sprite(SDL_RWops * const src, tr_room_sprite_t & room_sprite);
00109         void read_tr_room_portal(SDL_RWops * const src, tr_room_portal_t & portal);
00110         void read_tr_room_sector(SDL_RWops * const src, tr_room_sector_t & room_sector);
00111         void read_tr_room_light(SDL_RWops * const src, tr5_room_light_t & light);
00112         void read_tr_room_vertex(SDL_RWops * const src, tr5_room_vertex_t & room_vertex);
00113         void read_tr_room_staticmesh(SDL_RWops * const src, tr2_room_staticmesh_t & room_static_mesh);
00114         void read_tr_room(SDL_RWops * const src, tr5_room_t & room);
00115         void read_tr_object_texture_vert(SDL_RWops * const src, tr4_object_texture_vert_t & vert);
00116         void read_tr_object_texture(SDL_RWops * const src, tr4_object_texture_t & object_texture);
00117         void read_tr_sprite_texture(SDL_RWops * const src, tr_sprite_texture_t & sprite_texture);
00118         void read_tr_sprite_sequence(SDL_RWops * const src, tr_sprite_sequence_t & sprite_sequence);
00119         void read_tr_mesh(SDL_RWops * const src, tr4_mesh_t & mesh);
00120         void read_tr_animation(SDL_RWops * const src, tr_animation_t & animation);
00121         void read_tr_meshtree(SDL_RWops * const src, tr_meshtree_t & meshtree);
00122         void read_tr_frame(SDL_RWops * const src, tr_frame_t & frame, bitu32 num_rotations);
00123         void read_tr_moveable(SDL_RWops * const src, tr_moveable_t & moveable);
00124         void read_tr_item(SDL_RWops * const src, tr2_item_t & item);
00125         void read_tr_staticmesh(SDL_RWops * const src, tr_staticmesh_t & mesh);
00126         void read_tr_level(SDL_RWops * const src, bool demo_or_ub);
00127 
00128         void read_tr2_colour4(SDL_RWops * const src, tr2_colour_t & colour);
00129         void read_tr2_palette16(SDL_RWops * const src, tr2_palette_t & palette16);
00130         void read_tr2_textile16(SDL_RWops * const src, tr2_textile16_t & textile);
00131         void read_tr2_room_light(SDL_RWops * const src, tr5_room_light_t & light);
00132         void read_tr2_room_vertex(SDL_RWops * const src, tr5_room_vertex_t & room_vertex);
00133         void read_tr2_room_staticmesh(SDL_RWops * const src, tr2_room_staticmesh_t & room_static_mesh);
00134         void read_tr2_room(SDL_RWops * const src, tr5_room_t & room);
00135         void read_tr2_frame(SDL_RWops * const src, tr_frame_t & frame, bitu32 num_rotations);
00136         void read_tr2_item(SDL_RWops * const src, tr2_item_t & item);
00137         void read_tr2_level(SDL_RWops * const src, bool demo);
00138 
00139         void read_tr3_room_vertex(SDL_RWops * const src, tr5_room_vertex_t & room_vertex);
00140         void read_tr3_room_staticmesh(SDL_RWops * const src, tr2_room_staticmesh_t & room_static_mesh);
00141         void read_tr3_room(SDL_RWops * const src, tr5_room_t & room);
00142         void read_tr3_item(SDL_RWops * const src, tr2_item_t & item);
00143         void read_tr3_level(SDL_RWops * const src);
00144 
00145         void read_tr4_vertex_float(SDL_RWops * const src, tr5_vertex_t & vertex);
00146         void read_tr4_textile32(SDL_RWops * const src, tr4_textile32_t & textile);
00147         void read_tr4_face3(SDL_RWops * const src, tr4_face3_t & meshface);
00148         void read_tr4_face4(SDL_RWops * const src, tr4_face4_t & meshface);
00149         void read_tr4_room_light(SDL_RWops * const src, tr5_room_light_t & light);
00150         void read_tr4_room(SDL_RWops * const src, tr5_room_t & room);
00151         void read_tr4_object_texture_vert(SDL_RWops * const src, tr4_object_texture_vert_t & vert);
00152         void read_tr4_object_texture(SDL_RWops * const src, tr4_object_texture_t & object_texture);
00153         void read_tr4_mesh(SDL_RWops * const src, tr4_mesh_t & mesh);
00154         void read_tr4_animation(SDL_RWops * const src, tr_animation_t & animation);
00155         void read_tr4_level(SDL_RWops * const _src);
00156 
00157         void read_tr5_room_light(SDL_RWops * const src, tr5_room_light_t & light);
00158         void read_tr5_room_layer(SDL_RWops * const src, tr5_room_layer_t & layer);
00159         void read_tr5_room_vertex(SDL_RWops * const src, tr5_room_vertex_t & vert);
00160         void read_tr5_room(SDL_RWops * const orgsrc, tr5_room_t & room);
00161         void read_tr5_moveable(SDL_RWops * const src, tr_moveable_t & moveable);
00162         void read_tr5_level(SDL_RWops * const src);
00163 };
00164 
00165 #endif // _L_MAIN_H_

Generated on Sun Sep 8 17:37:29 2002 for vt by doxygen1.2.17