diff options
Diffstat (limited to '3dc/win95/TXIOCTRL.CPP')
| -rw-r--r-- | 3dc/win95/TXIOCTRL.CPP | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/3dc/win95/TXIOCTRL.CPP b/3dc/win95/TXIOCTRL.CPP deleted file mode 100644 index 53aded5..0000000 --- a/3dc/win95/TXIOCTRL.CPP +++ /dev/null @@ -1,110 +0,0 @@ -#include "txioctrl.h" - -#ifdef MaxImageGroups - -#include "list_tem.hpp" - -struct ImageNumber -{ - int group; - int offset; - - ImageNumber(){} - ImageNumber(int g,int o) : group(g), offset(o) {} - - inline int operator == (ImageNumber const & in2) const - { return group==in2.group && offset==in2.offset; } - inline int operator != (ImageNumber const & in2) const - { return ! operator == (in2); } -}; - -static List<ImageNumber> imgs_used_by_group[MaxImageGroups]; - -static List<int> * grps_used_by_image[MaxImageGroups][MaxImages]; - -void MarkImageInUseByGroup(int img_group, int img_num_offset, int group_using) -{ - if (imgs_used_by_group[group_using].contains(ImageNumber(img_group,img_num_offset))) return; - - imgs_used_by_group[group_using].add_entry(ImageNumber(img_group,img_num_offset)); - - List<int> * & grps_used_by_imageR = grps_used_by_image[img_group][img_num_offset]; - - if (!grps_used_by_imageR) - grps_used_by_imageR = new List<int>(img_group); // includes itself - - if (!grps_used_by_imageR->contains(group_using)) - grps_used_by_imageR->add_entry(group_using); -} - -int IsImageInUse(int img_group, int img_num_offset) -{ - if (grps_used_by_image[img_group][img_num_offset]) - return 1; - else - return 0; -} - -int CanDeleteImage(int img_group, int img_num_offset) -{ - if (grps_used_by_image[img_group][img_num_offset]) - { - if (grps_used_by_image[img_group][img_num_offset]->contains(img_group)) - { - grps_used_by_image[img_group][img_num_offset]->delete_entry(img_group); // remove itself - if (!grps_used_by_image[img_group][img_num_offset]->size()) - { - delete grps_used_by_image[img_group][img_num_offset]; - grps_used_by_image[img_group][img_num_offset] = 0; - return 1; - } - else - return 0; - } - else - return 0; - } - else - return 1; -} - -void ImageGroupFreed(int img_group) -{ - while (imgs_used_by_group[img_group].size()) - { - ImageNumber used = imgs_used_by_group[img_group].first_entry(); - - List<int> * & grps_used_by_imageR = grps_used_by_image[used.group][used.offset]; - - grps_used_by_imageR->delete_entry(img_group); - - if (!grps_used_by_imageR->size()) - { - NowDeleteImage(used.group,used.offset); - delete grps_used_by_imageR; - grps_used_by_imageR = 0; - } - - imgs_used_by_group[img_group].delete_first_entry(); - } -} - -void EnumSharedImages(int group_num, int numimages, ImageNumberCallbackFunction callback_fn, void * user) -{ - for (int i=0; i<numimages; ++i) - { - if (grps_used_by_image[group_num][i]) - callback_fn(i,user); - } -} - -void EnumLeftoverImages(int group_num, int numimages, ImageNumberCallbackFunction callback_fn, void * user) -{ - for (int i=numimages; i<MaxImages; ++i) - { - if (grps_used_by_image[group_num][i]) - callback_fn(i,user); - } -} - -#endif // MaxImageGroups |
