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

  1. #include    <exec/types.h>
  2. #include    <devices/load.h>
  3. #include    "execdef.h"
  4. #include    "windowinfo.h"
  5. #include    "loadrecord.h"
  6.  
  7. #include    "NewLoadRecord.proto"
  8.  
  9. #include    <exec/proto.h>
  10.  
  11. extern loadrequest *loadRequest;
  12. extern long maxTicks;
  13. extern long maxChip;
  14. extern long maxFast;
  15. extern long maxMem;
  16.  
  17. LoadRecord *
  18. NewLoadRecord(window_info, type, data_pen_num, ref_pen_num)
  19.     register WindowInfo *window_info;
  20.     unsigned char type;
  21.     unsigned char data_pen_num, ref_pen_num;
  22. {
  23.     LoadRecord *record;
  24.  
  25.     if (!(record = (LoadRecord *)AllocMem(sizeof(LoadRecord), 0)))
  26.     return NULL;
  27.     if (!(record->start_data = (LoadDataValue *)AllocMem(window_info->width * sizeof(LoadDataValue), 0)))
  28.     {
  29.     FreeMem((char *)record, sizeof(LoadRecord));
  30.     return NULL;
  31.     }
  32.     record->end_data = record->start_data + window_info->width;
  33.     record->next_data = record->start_data;
  34.     record->max_data = record->start_data;
  35.     switch(type)
  36.     {
  37.     case CPU:
  38.     record->scale = 1;
  39.     record->scaled_ticks = maxTicks;
  40.     break;
  41.     case BLITTER:
  42.     record->scale = 0;
  43.     record->scaled_ticks = maxTicks;
  44.     break;
  45.     case CHIPMEM:
  46.     record->scale = 0;
  47.     record->scaled_ticks = maxChip;
  48.     break;
  49.     case FASTMEM:
  50.     record->scale = 0;
  51.     record->scaled_ticks = maxFast;
  52.     break;
  53.     case ALLMEM:
  54.     record->scale = 0;
  55.     record->scaled_ticks = maxMem;
  56.     break;
  57.     }
  58.     record->deltay = window_info->height;
  59.     record->moduloy = 0;
  60.     record->type = type;
  61.     record->data_pen_num = data_pen_num;
  62.     record->ref_pen_num = ref_pen_num;
  63.     AddHead(&window_info->loadrecords, &record->node);
  64.     return record;
  65. }
  66.