// C Header File // Created 11/27/2002; 1:05:47 PM static inline void CopyTextures(TEXCONFIG *src, short dest_idx); static void AddButtonToTexture(TEXCONFIG *tex, unsigned char *button_l, unsigned char *button_d, unsigned char *mask); #ifndef __TEXTURES_H__ #define __TEXTURES_H__ static inline void CopyTextures(TEXCONFIG *src, short dest_idx) { register GameGlobals *ggg asm("a4") = gg; short i; for(i=4;i--;) { memcpy(ggg->light_data[dest_idx]+64*i,src->strips[i].lightdata,128); memcpy(ggg->dark_data[dest_idx]+64*i,src->strips[i].darkdata,128); memcpy(ggg->light_data2[dest_idx]+64*i,src->strips[i].lightdata,128); memcpy(ggg->dark_data2[dest_idx]+64*i,src->strips[i].darkdata,128); } } static void AddButtonToTexture(TEXCONFIG *tex, unsigned char *button_l, unsigned char *button_d, unsigned char *mask) { unsigned char* loc1l = (unsigned char*)tex->strips[1].lightdata; unsigned char* loc1d = (unsigned char*)tex->strips[1].darkdata; unsigned char* loc2l = (unsigned char*)tex->strips[2].lightdata; unsigned char* loc2d = (unsigned char*)tex->strips[2].darkdata; GraySprite32_AND_64x64(16,0,16,(long*)(mask),(long*)(mask),loc1l,loc1d); GraySprite32_AND_64x64(16,0,16,(long*)(mask+64),(long*)(mask+64),loc2l,loc2d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l),(long*)(button_d),loc1l,loc1d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l+64),(long*)(button_d+64),loc2l,loc2d); } static void AddKeycardToTexture(TEXCONFIG *tex, unsigned char *button_l, unsigned char *button_d) { unsigned char* loc1l = (unsigned char*)tex->strips[0].lightdata; unsigned char* loc1d = (unsigned char*)tex->strips[0].darkdata; unsigned char* loc2l = (unsigned char*)tex->strips[1].lightdata; unsigned char* loc2d = (unsigned char*)tex->strips[1].darkdata; unsigned char* loc3l = (unsigned char*)tex->strips[2].lightdata; unsigned char* loc3d = (unsigned char*)tex->strips[2].darkdata; unsigned char* loc4l = (unsigned char*)tex->strips[3].lightdata; unsigned char* loc4d = (unsigned char*)tex->strips[3].darkdata; long mask[16]; memset(mask,0x00,16*sizeof(long)); GraySprite32_AND_64x64(16,0,16,mask,mask,loc1l,loc1d); GraySprite32_AND_64x64(16,0,16,mask,mask,loc2l,loc2d); GraySprite32_AND_64x64(16,0,16,mask,mask,loc3l,loc3d); GraySprite32_AND_64x64(16,0,16,mask,mask,loc4l,loc4d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l),(long*)(button_d),loc1l,loc1d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l+64),(long*)(button_d+64),loc2l,loc2d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l+128),(long*)(button_d+128),loc3l,loc3d); GraySprite32_OR_64x64(16,0,16,(long*)(button_l+192),(long*)(button_d+192),loc4l,loc4d); } /* void AddWaterToTexture(TEXCONFIG *tex) { unsigned long water[16]; unsigned long none[16]; unsigned char* loc0l = (unsigned char*)tex->strips[0].lightdata; unsigned char* loc0d = (unsigned char*)tex->strips[0].darkdata; unsigned char* loc1l = (unsigned char*)tex->strips[1].lightdata; unsigned char* loc1d = (unsigned char*)tex->strips[1].darkdata; unsigned char* loc2l = (unsigned char*)tex->strips[2].lightdata; unsigned char* loc2d = (unsigned char*)tex->strips[2].darkdata; unsigned char* loc3l = (unsigned char*)tex->strips[3].lightdata; unsigned char* loc3d = (unsigned char*)tex->strips[3].darkdata; short a; for(a=0;a<16;a++) { register GameGlobals *ggg asm("a4") = gg; none[a] = 0x00000000L; none[a] |= (long)random(ULONG_MAX) ^ (random(2)); water[a] = (long)~none[a]; } GraySprite32_AND_64x64(32,0,16,(long*)(water),(long*)(none),loc0l,loc0d); GraySprite32_AND_64x64(32,0,16,(long*)(water),(long*)(none),loc1l,loc1d); GraySprite32_AND_64x64(32,0,16,(long*)(water),(long*)(none),loc2l,loc2d); GraySprite32_AND_64x64(32,0,16,(long*)(water),(long*)(none),loc3l,loc3d); GraySprite32_OR_64x64(32,0,16,(long*)(none),(long*)(water),loc0l,loc0d); GraySprite32_OR_64x64(32,0,16,(long*)(none),(long*)(water),loc1l,loc1d); GraySprite32_OR_64x64(32,0,16,(long*)(none),(long*)(water),loc2l,loc2d); GraySprite32_OR_64x64(32,0,16,(long*)(none),(long*)(water),loc3l,loc3d); } */ #endif