Update of /cvsroot/netrek/client/netrekxp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2053/src Modified Files: cowmain.c newwin.c playback.c Log Message: Changed it so that if dynamicBitmap is set to off, only the necessary bitmap files will load into memory. This required modifying the load order of the main client function, so that the reset_defaults is called before newwin. Reset_defaults loads the .netrekrc values, which is necessary for reading in what bitmaps the user wants to load. Newwin, among other things, saves the bitmaps into memory. To the best I can tell, changing the order has no unintended side effects. Index: newwin.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/newwin.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- newwin.c 16 Apr 2006 10:39:38 -0000 1.4 +++ newwin.c 16 Apr 2006 14:18:19 -0000 1.5 @@ -49,18 +49,18 @@ /******************************************************************************/ /*** bitmapExists() -/*** Called by savebitmaps() to verify bitmap files exist. */ +/*** Called by loadbitmaps() to verify bitmap files exist. */ /******************************************************************************/ int bitmapExists (char * fileName) { struct stat buf; - char * dir; + char dir[30]; int i; sprintf(dir, "bitmaps/shiplib/"); strcat(dir, fileName); i = stat ( dir, &buf ); - + if ( i == 0 ) return 1; else @@ -68,6 +68,377 @@ } /******************************************************************************/ +/*** loadbitmaps(), loadbitmaps1(), loadbitmapsT(), loadbitmapsG(), + loadbitmapsM() +/*** Called by savebitmaps(). */ +/*** + If any bitmap files in a set are missing, default to the monoscale bitmaps + for that set. + If the monoscale bitmaps are missing, it's the users fault for deleting his/her + bitmap files. + This purpose of this code is preventative, as older versions of the client had + different bitmap directories names and different bitmap sets. If someone were + to use a newer netrek executable without updating the bitmap libraries, this + should keep the client working. +***/ +/******************************************************************************/ +void loadbitmaps() +{ + int j,k; + + if (bitmapExists("fedship.bmp") + && bitmapExists("indship.bmp") + && bitmapExists("kliship.bmp") + && bitmapExists("oriship.bmp") + && bitmapExists("romship.bmp")) + { + ship_bitmaps[0] = + W_StoreBitmap3 (fed_ship_bmp, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps[1] = + W_StoreBitmap3 (ind_ship_bmp, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps[2] = + W_StoreBitmap3 (kli_ship_bmp, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps[3] = + W_StoreBitmap3 (ori_ship_bmp, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps[4] = + W_StoreBitmap3 (rom_ship_bmp, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_DEFAULTCOLOR); + } + else /* default to mono */ + { + ship_bitmaps[0] = + W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_MONOCHROME); + ship_bitmaps[1] = + W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_MONOCHROME); + ship_bitmaps[2] = + W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_MONOCHROME); + ship_bitmaps[3] = + W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_MONOCHROME); + ship_bitmaps[4] = + W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_MONOCHROME); + } + + for (j = 0; j < NUM_TYPES; j++) + { + for (k = 0; k < SHIP_VIEWS; k++) + { + fed_bitmaps[j][k] = + W_PointBitmap2 (ship_bitmaps[0], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ind_bitmaps[j][k] = + W_PointBitmap2 (ship_bitmaps[1], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + kli_bitmaps[j][k] = + W_PointBitmap2 (ship_bitmaps[2], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ori_bitmaps[j][k] = + W_PointBitmap2 (ship_bitmaps[3], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + rom_bitmaps[j][k] = + W_PointBitmap2 (ship_bitmaps[4], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + } + } +} + +void loadbitmaps1() +{ + int j,k; + + if (bitmapExists("fedship1.bmp") + && bitmapExists("indship1.bmp") + && bitmapExists("kliship1.bmp") + && bitmapExists("oriship1.bmp") + && bitmapExists("romship1.bmp")) + { + ship_bitmaps1[0] = + W_StoreBitmap3 (fed_ship_bmp_1, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps1[1] = + W_StoreBitmap3 (ind_ship_bmp_1, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps1[2] = + W_StoreBitmap3 (kli_ship_bmp_1, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps1[3] = + W_StoreBitmap3 (ori_ship_bmp_1, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmaps1[4] = + W_StoreBitmap3 (rom_ship_bmp_1, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_DEFAULTCOLOR); + } + else /* default to mono */ + { + ship_bitmaps1[0] = + W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_MONOCHROME); + ship_bitmaps1[1] = + W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_MONOCHROME); + ship_bitmaps1[2] = + W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_MONOCHROME); + ship_bitmaps1[3] = + W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_MONOCHROME); + ship_bitmaps1[4] = + W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_MONOCHROME); + } + for (j = 0; j < NUM_TYPES; j++) + { + for (k = 0; k < SHIP_VIEWS; k++) + { + fed_bitmaps1[j][k] = + W_PointBitmap2 (ship_bitmaps1[0], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ind_bitmaps1[j][k] = + W_PointBitmap2 (ship_bitmaps1[1], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + kli_bitmaps1[j][k] = + W_PointBitmap2 (ship_bitmaps1[2], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ori_bitmaps1[j][k] = + W_PointBitmap2 (ship_bitmaps1[3], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + rom_bitmaps1[j][k] = + W_PointBitmap2 (ship_bitmaps1[4], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + } + } +} + +void loadbitmapsT() +{ + int j,k; + + if (bitmapExists("fedshipT.bmp") + && bitmapExists("indshipT.bmp") + && bitmapExists("klishipT.bmp") + && bitmapExists("orishipT.bmp") + && bitmapExists("romshipT.bmp")) + { + ship_bitmapsT[0] = + W_StoreBitmap3 (fed_ship_bmp_T, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsT[1] = + W_StoreBitmap3 (ind_ship_bmp_T, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsT[2] = + W_StoreBitmap3 (kli_ship_bmp_T, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsT[3] = + W_StoreBitmap3 (ori_ship_bmp_T, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsT[4] = + W_StoreBitmap3 (rom_ship_bmp_T, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_DEFAULTCOLOR); + } + else /* default to mono */ + { + ship_bitmapsT[0] = + W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_MONOCHROME); + ship_bitmapsT[1] = + W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_MONOCHROME); + ship_bitmapsT[2] = + W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsT[3] = + W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsT[4] = + W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_MONOCHROME); + } + for (j = 0; j < NUM_TYPES; j++) + { + for (k = 0; k < SHIP_VIEWS; k++) + { + fed_bitmapsT[j][k] = + W_PointBitmap2 (ship_bitmapsT[0], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ind_bitmapsT[j][k] = + W_PointBitmap2 (ship_bitmapsT[1], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + kli_bitmapsT[j][k] = + W_PointBitmap2 (ship_bitmapsT[2], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ori_bitmapsT[j][k] = + W_PointBitmap2 (ship_bitmapsT[3], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + rom_bitmapsT[j][k] = + W_PointBitmap2 (ship_bitmapsT[4], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + } + } +} + +void loadbitmapsG() +{ + int j,k; + + if (bitmapExists("fedshipG.bmp") + && bitmapExists("indshipG.bmp") + && bitmapExists("klishipG.bmp") + && bitmapExists("orishipG.bmp") + && bitmapExists("romshipG.bmp")) + { + ship_bitmapsG[0] = + W_StoreBitmap3 (fed_ship_bmp_G, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsG[1] = + W_StoreBitmap3 (ind_ship_bmp_G, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsG[2] = + W_StoreBitmap3 (kli_ship_bmp_G, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsG[3] = + W_StoreBitmap3 (ori_ship_bmp_G, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_DEFAULTCOLOR); + ship_bitmapsG[4] = + W_StoreBitmap3 (rom_ship_bmp_G, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_DEFAULTCOLOR); + } + else /* default to mono */ + { + ship_bitmapsG[0] = + W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_MONOCHROME); + ship_bitmapsG[1] = + W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_MONOCHROME); + ship_bitmapsG[2] = + W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsG[3] = + W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsG[4] = + W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_MONOCHROME); + } + for (j = 0; j < NUM_TYPES; j++) + { + for (k = 0; k < SHIP_VIEWS; k++) + { + fed_bitmapsG[j][k] = + W_PointBitmap2 (ship_bitmapsG[0], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ind_bitmapsG[j][k] = + W_PointBitmap2 (ship_bitmapsG[1], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + kli_bitmapsG[j][k] = + W_PointBitmap2 (ship_bitmapsG[2], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ori_bitmapsG[j][k] = + W_PointBitmap2 (ship_bitmapsG[3], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + rom_bitmapsG[j][k] = + W_PointBitmap2 (ship_bitmapsG[4], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + } + } +} + +void loadbitmapsM() +{ + int j,k; + + ship_bitmapsM[0] = + W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, + LR_MONOCHROME); + ship_bitmapsM[1] = + W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, + LR_MONOCHROME); + ship_bitmapsM[2] = + W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsM[3] = + W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, + LR_MONOCHROME); + ship_bitmapsM[4] = + W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, + BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, + LR_MONOCHROME); + + for (j = 0; j < NUM_TYPES; j++) + { + for (k = 0; k < SHIP_VIEWS; k++) + { + fed_bitmapsM[j][k] = + W_PointBitmap2 (ship_bitmapsM[0], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ind_bitmapsM[j][k] = + W_PointBitmap2 (ship_bitmapsM[1], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + kli_bitmapsM[j][k] = + W_PointBitmap2 (ship_bitmapsM[2], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + ori_bitmapsM[j][k] = + W_PointBitmap2 (ship_bitmapsM[3], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + rom_bitmapsM[j][k] = + W_PointBitmap2 (ship_bitmapsM[4], j, k, BMP_SHIP_WIDTH, + BMP_SHIP_HEIGHT); + } + } +} +/******************************************************************************/ /*** handleMessageWindowKeyDown() /******************************************************************************/ static void @@ -367,328 +738,34 @@ MPlanlib = "bitmaps/planlibm/mplan.bmp"; break; } - -/* - Load all the bitmaps in, so the user can toggle between any type if - dynamicBitmaps is set. - If any bitmap files in a set are missing, default to the monoscale bitmaps - for that set. - If the monoscale bitmaps are missing, it's the users fault for deleting his/her - bitmap files. - This purpose of this code is preventative, as older versions of the client had - different bitmap directories names and different bitmap sets. If someone were - to use a newer netrek executable without updating the bitmap libraries, this - should keep the client working. -*/ - - if (bitmapExists("fedship.bmp") - && bitmapExists("indship.bmp") - && bitmapExists("kliship.bmp") - && bitmapExists("oriship.bmp") - && bitmapExists("romship.bmp")) - { - ship_bitmaps[0] = - W_StoreBitmap3 (fed_ship_bmp, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps[1] = - W_StoreBitmap3 (ind_ship_bmp, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps[2] = - W_StoreBitmap3 (kli_ship_bmp, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps[3] = - W_StoreBitmap3 (ori_ship_bmp, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps[4] = - W_StoreBitmap3 (rom_ship_bmp, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_DEFAULTCOLOR); - } - else /* default to mono */ - { - ship_bitmaps[0] = - W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_MONOCHROME); - ship_bitmaps[1] = - W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_MONOCHROME); - ship_bitmaps[2] = - W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_MONOCHROME); - ship_bitmaps[3] = - W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_MONOCHROME); - ship_bitmaps[4] = - W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_MONOCHROME); - } - - if (bitmapExists("fedship1.bmp") - && bitmapExists("indship1.bmp") - && bitmapExists("kliship1.bmp") - && bitmapExists("oriship1.bmp") - && bitmapExists("romship1.bmp")) - { - ship_bitmaps1[0] = - W_StoreBitmap3 (fed_ship_bmp_1, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps1[1] = - W_StoreBitmap3 (ind_ship_bmp_1, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps1[2] = - W_StoreBitmap3 (kli_ship_bmp_1, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps1[3] = - W_StoreBitmap3 (ori_ship_bmp_1, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmaps1[4] = - W_StoreBitmap3 (rom_ship_bmp_1, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_DEFAULTCOLOR); - } - else /* default to mono */ - { - ship_bitmaps1[0] = - W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_MONOCHROME); - ship_bitmaps1[1] = - W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_MONOCHROME); - ship_bitmaps1[2] = - W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_MONOCHROME); - ship_bitmaps1[3] = - W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_MONOCHROME); - ship_bitmaps1[4] = - W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_MONOCHROME); - } - if (bitmapExists("fedshipT.bmp") - && bitmapExists("indshipT.bmp") - && bitmapExists("klishipT.bmp") - && bitmapExists("orishipT.bmp") - && bitmapExists("romshipT.bmp")) - { - ship_bitmapsT[0] = - W_StoreBitmap3 (fed_ship_bmp_T, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsT[1] = - W_StoreBitmap3 (ind_ship_bmp_T, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsT[2] = - W_StoreBitmap3 (kli_ship_bmp_T, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsT[3] = - W_StoreBitmap3 (ori_ship_bmp_T, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsT[4] = - W_StoreBitmap3 (rom_ship_bmp_T, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_DEFAULTCOLOR); - } - else /* default to mono */ - { - ship_bitmapsT[0] = - W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_MONOCHROME); - ship_bitmapsT[1] = - W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_MONOCHROME); - ship_bitmapsT[2] = - W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsT[3] = - W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsT[4] = - W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_MONOCHROME); - } - - if (bitmapExists("fedshipG.bmp") - && bitmapExists("indshipG.bmp") - && bitmapExists("klishipG.bmp") - && bitmapExists("orishipG.bmp") - && bitmapExists("romshipG.bmp")) - { - ship_bitmapsG[0] = - W_StoreBitmap3 (fed_ship_bmp_G, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsG[1] = - W_StoreBitmap3 (ind_ship_bmp_G, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsG[2] = - W_StoreBitmap3 (kli_ship_bmp_G, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsG[3] = - W_StoreBitmap3 (ori_ship_bmp_G, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_DEFAULTCOLOR); - ship_bitmapsG[4] = - W_StoreBitmap3 (rom_ship_bmp_G, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_DEFAULTCOLOR); - } - else /* default to mono */ + if (!dynamicBitmaps) /* Only load needed bitmaps */ { - ship_bitmapsG[0] = - W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_MONOCHROME); - ship_bitmapsG[1] = - W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_MONOCHROME); - ship_bitmapsG[2] = - W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsG[3] = - W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsG[4] = - W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_MONOCHROME); + switch (colorClient) + { + case 1: /* New color bitmaps */ + loadbitmaps1(); + break; + case 2: /* Old color bitmaps + greyscale for player's ship */ + loadbitmaps(); + loadbitmapsG(); + break; + case 3: /* Shaded color bitmaps + greyscale for player's ship */ + loadbitmapsT(); + loadbitmapsG(); + break; + default: /* mono */ + loadbitmapsM(); + break; + } } - - ship_bitmapsM[0] = - W_StoreBitmap3 (fed_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_FED_SHIP, w, - LR_MONOCHROME); - ship_bitmapsM[1] = - W_StoreBitmap3 (ind_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_IND_SHIP, w, - LR_MONOCHROME); - ship_bitmapsM[2] = - W_StoreBitmap3 (kli_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_KLI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsM[3] = - W_StoreBitmap3 (ori_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ORI_SHIP, w, - LR_MONOCHROME); - ship_bitmapsM[4] = - W_StoreBitmap3 (rom_ship_bmp_M, BMP_SHIP_WIDTH * 8, - BMP_SHIP_HEIGHT * 32, BMP_ROM_SHIP, w, - LR_MONOCHROME); - - for (j = 0; j < NUM_TYPES; j++) + else /* Load all bitmaps */ { - for (k = 0; k < SHIP_VIEWS; k++) - { - fed_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[0], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - fed_bitmapsM[j][k] = - W_PointBitmap2 (ship_bitmapsM[0], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - fed_bitmapsG[j][k] = - W_PointBitmap2 (ship_bitmapsG[0], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - fed_bitmaps1[j][k] = - W_PointBitmap2 (ship_bitmaps1[0], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - fed_bitmaps[j][k] = - W_PointBitmap2 (ship_bitmaps[0], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmapsM[j][k] = - W_PointBitmap2 (ship_bitmapsM[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmapsG[j][k] = - W_PointBitmap2 (ship_bitmapsG[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmaps1[j][k] = - W_PointBitmap2 (ship_bitmaps1[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmaps[j][k] = - W_PointBitmap2 (ship_bitmaps[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ind_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[1], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - kli_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[2], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - kli_bitmapsM[j][k] = - W_PointBitmap2 (ship_bitmapsM[2], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - kli_bitmapsG[j][k] = - W_PointBitmap2 (ship_bitmapsG[2], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - kli_bitmaps1[j][k] = - W_PointBitmap2 (ship_bitmaps1[2], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - kli_bitmaps[j][k] = - W_PointBitmap2 (ship_bitmaps[2], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ori_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[3], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ori_bitmapsM[j][k] = - W_PointBitmap2 (ship_bitmapsM[3], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ori_bitmapsG[j][k] = - W_PointBitmap2 (ship_bitmapsG[3], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ori_bitmaps1[j][k] = - W_PointBitmap2 (ship_bitmaps1[3], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - ori_bitmaps[j][k] = - W_PointBitmap2 (ship_bitmaps[3], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - rom_bitmapsT[j][k] = - W_PointBitmap2 (ship_bitmapsT[4], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - rom_bitmapsM[j][k] = - W_PointBitmap2 (ship_bitmapsM[4], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - rom_bitmapsG[j][k] = - W_PointBitmap2 (ship_bitmapsG[4], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - rom_bitmaps1[j][k] = - W_PointBitmap2 (ship_bitmaps1[4], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - rom_bitmaps[j][k] = - W_PointBitmap2 (ship_bitmaps[4], j, k, BMP_SHIP_WIDTH, - BMP_SHIP_HEIGHT); - } + loadbitmaps(); + loadbitmaps1(); + loadbitmapsG(); + loadbitmapsT(); + loadbitmapsM(); } /* Experimental weapons */ Index: cowmain.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/cowmain.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- cowmain.c 16 Apr 2006 10:39:38 -0000 1.4 +++ cowmain.c 16 Apr 2006 14:18:19 -0000 1.5 @@ -754,6 +754,8 @@ if ((stringDefault ("indshipMbmpfile")) != NULL) ind_ship_bmp_M = stringDefault ("indshipMbmpfile"); + + resetdefaults (); newwin (display_host, name); #ifdef META @@ -775,8 +777,6 @@ /* Set observer flag as soon as we know port number */ setObserverMode (xtrekPort); - resetdefaults (); - /* open memory...? */ openmem (); Index: playback.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/playback.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- playback.c 16 Apr 2006 10:39:38 -0000 1.4 +++ playback.c 16 Apr 2006 14:18:19 -0000 1.5 @@ -175,9 +175,8 @@ if ((stringDefault ("indshipMbmpfile")) != NULL) ind_ship_bmp_M = stringDefault ("indshipMbmpfile"); - newwin (display_host, name); - resetdefaults (); + newwin (display_host, name); /* open memory...? */ openmem ();