X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui.cpp;h=a84ab6f19124f932120095fcd48c5cd7b54298fc;hb=2fe4f4d3720583b59e0412d2a0cb72109db78573;hp=df8275cf05e8826f1fe7c5cc89292c3dad96f346;hpb=757714edd1100cfbe4dd5c46e4eff480ee25dd3d;p=thunder diff --git a/src/gui.cpp b/src/gui.cpp index df8275c..a84ab6f 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1,10 +1,10 @@ // // Thunder Graphic User Interface // -// by James L. Hammons -// (c) 2004, 2009 Underground Software +// by James Hammons +// (c) 2004, 2014 Underground Software // -// JLH = James L. Hammons +// JLH = James Hammons // // WHO WHEN WHAT // --- ---------- ------------------------------------------------------------ @@ -25,34 +25,34 @@ using namespace std; // Yes! extern SDL_Surface * screen; -extern uint8 my_scr[0x14000]; // Screen buffer... -extern uint8 gram1[]; // Game RAM (do here??) -extern uint8 hScrollOffset; // Horizontal scroll offset -extern uint8 vScrollOffset; // Vertical scroll offset -extern uint32 voffsets[8]; -extern uint8 voice_rom[]; // PCM data pointer +extern uint8_t my_scr[0x14000]; // Screen buffer... +extern uint8_t gram1[]; // Game RAM (do here??) +extern uint8_t hScrollOffset; // Horizontal scroll offset +extern uint8_t vScrollOffset; // Vertical scroll offset +extern uint32_t voffsets[8]; +extern uint8_t voice_rom[]; // PCM data pointer extern fstream tr; // Tracelog // Global shit -uint16 text_life; // How long text is visible +uint16_t text_life; // How long text is visible bool show_text; // Whether or not to show text -uint16 show_which_msg; // Which message to show +uint16_t show_which_msg; // Which message to show bool show_gui; // Whether or not to show GUI -uint16 selection; // Which GUI item currently selected -uint16 snd_num; -uint16 gui_debounce; // GUI key debounce value -uint16 num_coins; // Number of coins dropped -uint16 blink = 0; // Used to blink player 1 & 2 start buttons -uint16 flash = 23; // Used to flash GUI lights -uint16 iline = 0; // Used to roll line -uint16 dcurcol = 179; // dipswitch cursor color +uint16_t selection; // Which GUI item currently selected +uint16_t snd_num; +uint16_t gui_debounce; // GUI key debounce value +uint16_t num_coins; // Number of coins dropped +uint16_t blink = 0; // Used to blink player 1 & 2 start buttons +uint16_t flash = 23; // Used to flash GUI lights +uint16_t iline = 0; // Used to roll line +uint16_t dcurcol = 179; // dipswitch cursor color int dcurdir = 1; // Initially going up... bool blink_on = false; bool game_refresh; // Refresh rate user set bool do_decrement; // Flag to handle decrement... bool user_selected_something; // Flag for well, you know... -uint16 dswitch; // Which dipswitch is selected... +uint16_t dswitch; // Which dipswitch is selected... // The following are global for the sound routines... @@ -60,27 +60,27 @@ const float sampleBase = 22050.0/6000.0; // Btwn 5512.5 and 6000 bool snd_go = false; bool chan1_go = false, chan2_go = false, chan3_go = false; bool chan4_go = false, chan5_go = false, chan6_go = false; -uint8 * sndp1, * sndp2, * sndp3, * sndp4, * sndp5, * sndp6; -uint32 rom_pos, end_pos; -uint32 spos1, end_pos1; -uint32 spos2, end_pos2; -uint32 spos3, end_pos3; -uint32 spos4, end_pos4; -uint32 spos5, end_pos5; -uint32 spos6, end_pos6; +uint8_t * sndp1, * sndp2, * sndp3, * sndp4, * sndp5, * sndp6; +uint32_t rom_pos, end_pos; +uint32_t spos1, end_pos1; +uint32_t spos2, end_pos2; +uint32_t spos3, end_pos3; +uint32_t spos4, end_pos4; +uint32_t spos5, end_pos5; +uint32_t spos6, end_pos6; float sample1; -uint8 prevSamp1; -int8 delta_x1; +uint8_t prevSamp1; +int8_t delta_x1; float sample2; -uint8 prevSamp2; -int8 delta_x2; +uint8_t prevSamp2; +int8_t delta_x2; -uint8 * snd_array[3] = { sunknown, scya, scamera }; // From RESOURCE.H -uint32 snd_lens[3] = { sunknownlen, scyalen, scameralen }; +uint8_t * snd_array[3] = { sunknown, scya, scamera }; // From RESOURCE.H +uint32_t snd_lens[3] = { sunknownlen, scyalen, scameralen }; // Bitmaps -uint8 bmp1[] = { +uint8_t bmp1[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0, 0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0, @@ -89,7 +89,7 @@ uint8 bmp1[] = { 0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -uint8 bmp2[] = { +uint8_t bmp2[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0, 0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0, @@ -98,7 +98,7 @@ uint8 bmp2[] = { 0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -uint8 bmp3[] = { +uint8_t bmp3[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0, @@ -107,7 +107,7 @@ uint8 bmp3[] = { 0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 }; -uint8 boptions[] = { // 35x9 +uint8_t boptions[] = { // 35x9 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -118,7 +118,7 @@ uint8 boptions[] = { // 35x9 0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,1,1,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -uint8 bn0[] = { +uint8_t bn0[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,1,0, @@ -127,7 +127,7 @@ uint8 bn0[] = { 0,0,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn1[] = { +uint8_t bn1[] = { 0,0,0,0,0,0, 0,0,1,0,0,0, 0,1,1,0,0,0, @@ -136,7 +136,7 @@ uint8 bn1[] = { 0,1,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn2[] = { +uint8_t bn2[] = { 0,0,0,0,0,0, 0,1,1,1,0,0, 0,0,0,0,1,0, @@ -145,7 +145,7 @@ uint8 bn2[] = { 0,1,1,1,1,0, 0,0,0,0,0,0 }; -uint8 bn3[] = { +uint8_t bn3[] = { 0,0,0,0,0,0, 0,1,1,1,0,0, 0,0,0,0,1,0, @@ -154,7 +154,7 @@ uint8 bn3[] = { 0,1,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn4[] = { +uint8_t bn4[] = { 0,0,0,0,0,0, 0,0,0,1,0,0, 0,1,0,1,0,0, @@ -163,7 +163,7 @@ uint8 bn4[] = { 0,0,0,1,0,0, 0,0,0,0,0,0 }; -uint8 bn5[] = { +uint8_t bn5[] = { 0,0,0,0,0,0, 0,1,1,1,1,0, 0,1,0,0,0,0, @@ -172,7 +172,7 @@ uint8 bn5[] = { 0,1,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn6[] = { +uint8_t bn6[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,0,0, @@ -181,7 +181,7 @@ uint8 bn6[] = { 0,0,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn7[] = { +uint8_t bn7[] = { 0,0,0,0,0,0, 0,1,1,1,1,0, 0,0,0,0,1,0, @@ -190,7 +190,7 @@ uint8 bn7[] = { 0,0,1,0,0,0, 0,0,0,0,0,0 }; -uint8 bn8[] = { +uint8_t bn8[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,1,0, @@ -199,7 +199,7 @@ uint8 bn8[] = { 0,0,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bn9[] = { +uint8_t bn9[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,1,0, @@ -208,7 +208,7 @@ uint8 bn9[] = { 0,0,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bnA[] = { +uint8_t bnA[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,1,0, @@ -217,7 +217,7 @@ uint8 bnA[] = { 0,1,0,0,1,0, 0,0,0,0,0,0 }; -uint8 bnB[] = { +uint8_t bnB[] = { 0,0,0,0,0,0, 0,1,1,1,0,0, 0,1,0,0,1,0, @@ -226,7 +226,7 @@ uint8 bnB[] = { 0,1,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bnC[] = { +uint8_t bnC[] = { 0,0,0,0,0,0, 0,0,1,1,0,0, 0,1,0,0,1,0, @@ -235,7 +235,7 @@ uint8 bnC[] = { 0,0,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bnD[] = { +uint8_t bnD[] = { 0,0,0,0,0,0, 0,1,1,1,0,0, 0,1,0,0,1,0, @@ -244,7 +244,7 @@ uint8 bnD[] = { 0,1,1,1,0,0, 0,0,0,0,0,0 }; -uint8 bnE[] = { +uint8_t bnE[] = { 0,0,0,0,0,0, 0,1,1,1,1,0, 0,1,0,0,0,0, @@ -253,7 +253,7 @@ uint8 bnE[] = { 0,1,1,1,1,0, 0,0,0,0,0,0 }; -uint8 bnF[] = { +uint8_t bnF[] = { 0,0,0,0,0,0, 0,1,1,1,1,0, 0,1,0,0,0,0, @@ -322,16 +322,16 @@ void DeactivateGUI(void) { show_gui = false; } // // Draw the small icons... // -void DrawSmallIcons(uint16 icon_not_to_draw) +void DrawSmallIcons(uint16_t icon_not_to_draw) { - uint8 * iconmem; - uint8 xl, yl; - uint8 * sIcons[12] = { inoguis, icoinus, ipl1sts, ipl2sts, ii30hzs, ii60hzs, + uint8_t * iconmem; + uint8_t xl, yl; + uint8_t * sIcons[12] = { inoguis, icoinus, ipl1sts, ipl2sts, ii30hzs, ii60hzs, idipsws, ichecks, ikeycns, isnapss, iresets, ibyebys }; - uint8 xlens[12] = { 31, 18, 32, 35, 37, 37, 29, 23, 28, 32, 19, 19 }; - uint8 ylens[12] = { 31, 18, 19, 19, 21, 21, 23, 20, 16, 17, 20, 23 }; - uint8 xpos[11] = { 33, 48, 63, 78, 104, 0, 184, 210, 225, 240, 255 }; - uint8 iconidx[11] = { 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 6 }; + uint8_t xlens[12] = { 31, 18, 32, 35, 37, 37, 29, 23, 28, 32, 19, 19 }; + uint8_t ylens[12] = { 31, 18, 19, 19, 21, 21, 23, 20, 16, 17, 20, 23 }; + uint8_t xpos[11] = { 33, 48, 63, 78, 104, 0, 184, 210, 225, 240, 255 }; + uint8_t iconidx[11] = { 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 6 }; if (game_refresh) iconidx[9] = 5; // 60 Hz... @@ -339,44 +339,44 @@ void DrawSmallIcons(uint16 icon_not_to_draw) for(int i=0; i<5; i++) { - uint16 idx = i + icon_not_to_draw; // Get correct start pos. + uint16_t idx = i + icon_not_to_draw; // Get correct start pos. if (idx > 10) idx -= 11; iconmem = sIcons[iconidx[idx]]; xl = xlens[iconidx[idx]]; yl = ylens[iconidx[idx]]; - uint32 scadr = hScrollOffset + voffsets[vScrollOffset]; + uint32_t scadr = hScrollOffset + voffsets[vScrollOffset]; scadr += 320*((224-yl)/2); // Center vertically scadr += xpos[i] - (xl/2); // Center around horiz. pos. - uint16 bmpptr = 0; + uint16_t bmpptr = 0; for(int yy=0; yy5; i--) { - uint16 idx = i + icon_not_to_draw; // Get correct start pos. + uint16_t idx = i + icon_not_to_draw; // Get correct start pos. if (idx > 10) idx -= 11; iconmem = sIcons[iconidx[idx]]; xl = xlens[iconidx[idx]]; yl = ylens[iconidx[idx]]; - uint32 scadr = hScrollOffset + voffsets[vScrollOffset]; + uint32_t scadr = hScrollOffset + voffsets[vScrollOffset]; scadr += 320*((224-yl)/2); // Center vertically scadr += xpos[i] - (xl/2); // Center around horiz. pos. - uint16 bmpptr = 0; + uint16_t bmpptr = 0; for(int yy=0; yy>4, second_dig = number&0x0F; + uint8_t first_dig = number>>4, second_dig = number&0x0F; for(int y=0; y<7; y++) { for(int x=0; x<6; x++) @@ -802,7 +802,7 @@ void ShowNumbers(int number) // // Spawn a message // -void SpawnMsg(uint8 msg) +void SpawnMsg(uint8_t msg) { text_life = 60; // 1 second... show_text = true; // Show the damn thing... @@ -823,8 +823,8 @@ void DrawText(void) text_life--; // Your life force is running out... // Draw the message here... - uint32 scadr = hScrollOffset + voffsets[vScrollOffset] + 642; - uint16 bmpptr = 0; + uint32_t scadr = hScrollOffset + voffsets[vScrollOffset] + 642; + uint16_t bmpptr = 0; for(int y=0; y<7; y++) { @@ -863,12 +863,12 @@ void DrawText(void) // void SpawnSound(int type, int snd, int channel/* = 0*/) { - extern uint32 psg_lens[16]; - extern uint8 * psg_adrs[16]; - extern uint32 voc_lens[32]; - extern uint8 * voc_adrs[32]; - extern uint32 fm_lens[14]; - extern uint8 * fm_adrs[14]; + extern uint32_t psg_lens[16]; + extern uint8_t * psg_adrs[16]; + extern uint32_t voc_lens[32]; + extern uint8_t * voc_adrs[32]; + extern uint32_t fm_lens[14]; + extern uint8_t * fm_adrs[14]; snd_num = snd; SpawnMsg(MSHOWNUMS); @@ -880,7 +880,7 @@ void SpawnSound(int type, int snd, int channel/* = 0*/) if (channel == 0) { // 00 nn ss (nn # of repeats of sample ss) - uint32 st = 0; + uint32_t st = 0; if (snd & 0x40) { @@ -896,7 +896,7 @@ void SpawnSound(int type, int snd, int channel/* = 0*/) } else { - uint32 st = 0; + uint32_t st = 0; if (snd & 0x40) { @@ -958,9 +958,9 @@ void SpawnSound(int type, int snd, int channel/* = 0*/) // void SoundFunc(void * userdata, Uint8 * buff, int num) { - uint16 cnt = 0, sample; // 0-22 different sounds... - uint8 start_samp1, end_samp1, start_samp2, end_samp2; - uint8 samp1 = 128, samp2 = 128, samp3 = 128, + uint16_t cnt = 0, sample; // 0-22 different sounds... + uint8_t start_samp1, end_samp1, start_samp2, end_samp2; + uint8_t samp1 = 128, samp2 = 128, samp3 = 128, samp4 = 128, samp5 = 128, samp6 = 128; // Zero samples... memset(buff, 128, num); // Kill sound...