home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 215.lha / AmyLoad / newscale.c < prev    next >
C/C++ Source or Header  |  1996-02-14  |  1KB  |  52 lines

  1. #include    <exec/types.h>
  2. #include    <exec/lists.h>
  3. #include    <devices/load.h>
  4. #include    "execdef.h"
  5. #include    "loadrecord.h"
  6. #include    "windowinfo.h"
  7.  
  8. #include    "NewScale.proto"
  9.  
  10. extern loadrequest *loadRequest;
  11. extern long maxTicks;
  12. extern long maxChip;
  13. extern long maxFast;
  14. extern long maxMem;
  15.  
  16. Bool
  17. NewScale(window_info, record, data_value)
  18.     WindowInfo *window_info;
  19.     LoadRecord *record;
  20.     LoadDataValue data_value;
  21. {
  22.     short new_scale;
  23.     long  max_value;
  24.  
  25.     switch(record->type)
  26.     {
  27.     case CPU:
  28.     case BLITTER:
  29.     max_value = maxTicks;
  30.     break;
  31.     case CHIPMEM:
  32.     max_value = maxChip;
  33.     break;
  34.     case FASTMEM:
  35.     max_value = maxFast;
  36.     break;
  37.     case ALLMEM:
  38.     max_value = maxMem;
  39.     break;
  40.     }
  41.     new_scale = data_value / max_value + 1;
  42.     if (new_scale != record->scale)
  43.     {
  44.     record->scale = new_scale;
  45.     record->scaled_ticks = new_scale * max_value;
  46.     record->deltay = window_info->height / new_scale;
  47.     record->moduloy = window_info->height % new_scale;
  48.     return TRUE;
  49.     }
  50.     return FALSE;
  51. }
  52.