1 2 3 /* These flags are OR'ed together */ 4 5 #define TUXMAT_BORING 0 6 #define TUXMAT_DANGEROUS 1 7 #define TUXMAT_SPROINGPAD 2 8 #define TUXMAT_TELEPORTER 4 9 #define TUXMAT_EXIT_LEVEL 8 10 #define TUXMAT_VERY_HOT 16 11 #define TUXMAT_IGNORE 32 12 #define TUXMAT_LETHAL 64 13 #define TUXMAT_STARTCLOCK 128 14 #define TUXMAT_STOPCLOCK 256 15 #define TUXMAT_COLD 512 16 #define TUXMAT_OXYGEN 1024 17 18 struct Material 19 { 20 public: 21 ssgSimpleState **gst ; 22 23 char *texture_map ; 24 int clamp_tex ; 25 int transparency ; 26 float alpha_ref ; 27 int lighting ; 28 float friction ; 29 unsigned int flags ; 30 isNullMaterial31 int isNull () { return gst == NULL ; } ; 32 void install ( int index ) ; 33 getStateMaterial34 ssgState *getState () { return *gst ; } getTexFnameMaterial35 char *getTexFname () { return texture_map ; } 36 isColdMaterial37 int isCold () { return flags & TUXMAT_COLD ; } isOxygenMaterial38 int isOxygen () { return flags & TUXMAT_OXYGEN ; } isIgnoreMaterial39 int isIgnore () { return flags & (TUXMAT_IGNORE|TUXMAT_STARTCLOCK|TUXMAT_STOPCLOCK) ; } isDangerousMaterial40 int isDangerous () { return flags & TUXMAT_DANGEROUS ; } isVeryHotMaterial41 int isVeryHot () { return flags & TUXMAT_VERY_HOT ; } isLethalMaterial42 int isLethal () { return flags & TUXMAT_LETHAL ; } isSproingPadMaterial43 int isSproingPad () { return flags & TUXMAT_SPROINGPAD ; } isTeleporterMaterial44 int isTeleporter () { return flags & TUXMAT_TELEPORTER ; } isExitMaterial45 int isExit () { return flags & TUXMAT_EXIT_LEVEL ; } isStartClockMaterial46 int isStartClock () { return flags & TUXMAT_STARTCLOCK ; } isStopClockMaterial47 int isStopClock () { return flags & TUXMAT_STOPCLOCK ; } 48 } ; 49 50 51 void initMaterials () ; 52 Material *getMaterial ( ssgState *s ) ; 53 Material *getMaterial ( ssgLeaf *l ) ; 54 55 56 extern ssgSimpleState 57 *fire_gst , *herring_gst , *cloak_gst , *fin_gst , 58 *wood_gst , *tuxbeak_gst , *water_gst , *ice_gst , 59 *orca_gst , *orcafin_gst , *party_gst , *supertx_gst , 60 *tree_gst , *tuxfoot_gst , *grass_gst , *sparkle_gst , 61 *tux_gst , *tuxflip_gst , *fuzzy_gst , *stripes_gst , 62 *pebbles_gst, *gun_gst , *fademsk_gst , *swirl_gst , 63 *bubble_gst , *snowball_gst, *herringbones_gst, *tinytux_gst , 64 *smoke_gst , *spark_gst , *think_gst , *lava_gst , 65 *camera_gst , *nocamera_gst, *clearice_gst , 66 *thermometer_gst, *startline_gst , *finishline_gst, 67 *solidblack_gst ; 68 69