1 /* $Id: bm.h,v 1.14 2005-03-16 23:06:14 btb Exp $ */
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
17 * Bitmap and Palette loading functions.
27 #define MAX_TEXTURES 1200
30 #define TMI_VOLATILE 1 //this material blows up when hit
31 #define TMI_WATER 2 //this material is water
32 #define TMI_FORCE_FIELD 4 //this is force field - flares don't stick
33 #define TMI_GOAL_BLUE 8 //this is used to remap the blue goal
34 #define TMI_GOAL_RED 16 //this is used to remap the red goal
35 #define TMI_GOAL_HOARD 32 //this is used to remap the goals
38 ubyte flags; //values defined above
39 ubyte pad[3]; //keep alignment
40 fix lighting; //how much light this casts
41 fix damage; //how much damage being against this does (for lava)
42 short eclip_num; //the eclip that changes this, or -1
43 short destroyed; //bitmap to show when destroyed, or -1
44 short slide_u,slide_v; //slide rates of texture, stored in 8:8 fix
46 char filename[13]; //used by editor to remap textures
51 #define TMAP_INFO_SIZE 20 // how much space it takes up on disk
53 extern int Num_object_types;
55 #define N_COCKPIT_BITMAPS 6
56 extern int Num_cockpits;
57 extern bitmap_index cockpit_bitmap[N_COCKPIT_BITMAPS];
61 extern int TmapList[MAX_TEXTURES];
64 extern tmap_info TmapInfo[MAX_TEXTURES];
66 //for each model, a model number for dying & dead variants, or -1 if none
67 extern int Dying_modelnums[];
68 extern int Dead_modelnums[];
70 //the model number of the marker object
71 extern int Marker_model_num;
73 // Initializes the palette, bitmap system...
77 // Initializes the Texture[] array of bmd_bitmap structures.
83 #define OL_CONTROL_CENTER 4
85 #define OL_CLUTTER 6 //some sort of misc object
86 #define OL_EXIT 7 //the exit model for external scenes
87 #define OL_WEAPON 8 //a weapon that can be placed
89 #define MAX_OBJTYPE 140
91 extern int Num_total_object_types; // Total number of object types, including robots, hostages, powerups, control centers, faces
92 extern sbyte ObjType[MAX_OBJTYPE]; // Type of an object, such as Robot, eg if ObjType[11] == OL_ROBOT, then object #11 is a robot
93 extern sbyte ObjId[MAX_OBJTYPE]; // ID of a robot, within its class, eg if ObjType[11] == 3, then object #11 is the third robot
94 extern fix ObjStrength[MAX_OBJTYPE]; // initial strength of each object
96 #define MAX_OBJ_BITMAPS 610
98 extern bitmap_index ObjBitmaps[MAX_OBJ_BITMAPS];
99 extern ushort ObjBitmapPtrs[MAX_OBJ_BITMAPS];
100 extern int First_multi_bitmap_num;
102 // Initializes all bitmaps from BITMAPS.TBL file.
103 int bm_init_use_tbl(void);
105 extern void bm_read_all(CFILE * fp);
107 int load_exit_models();