├── Braffolk Image Loader.gmx ├── Braffolk Image Loader.project.gmx ├── Configs │ ├── Default.config.gmx │ └── Default │ │ ├── WinPhone │ │ ├── ApplicationIcon.png │ │ ├── CycleSmall.png │ │ ├── CycleWide1.png │ │ ├── CycleWide2.png │ │ ├── CycleWide3.png │ │ ├── CycleWide4.png │ │ ├── CycleWide5.png │ │ ├── CycleWide6.png │ │ ├── CycleWide7.png │ │ ├── CycleWide8.png │ │ ├── CycleWide9.png │ │ ├── FlipMedBack.png │ │ ├── FlipMedFront.png │ │ ├── FlipSmallFront.png │ │ ├── FlipWideBack.png │ │ ├── FlipWideFront.png │ │ ├── IconicSmall.png │ │ ├── IconicWide.png │ │ ├── SplashScreenImage.jpg │ │ ├── SplashScreenImage480.jpg │ │ └── SplashScreenImage720.jpg │ │ ├── Windows8 │ │ ├── logos │ │ │ ├── logo150.png │ │ │ ├── logo30.png │ │ │ ├── logo310.png │ │ │ └── logo50.png │ │ └── splashscreen.png │ │ ├── android │ │ ├── icons │ │ │ ├── icon_hdpi.png │ │ │ ├── icon_ldpi.png │ │ │ ├── icon_mdpi.png │ │ │ ├── icon_xhdpi.png │ │ │ ├── icon_xxhdpi.png │ │ │ ├── icon_xxxhdpi.png │ │ │ └── ouyaIcon.png │ │ ├── portrait_splash.png │ │ └── splash.png │ │ ├── html5 │ │ ├── fav.ico │ │ └── splash.png │ │ ├── ios │ │ ├── IphoneRetinasplash.png │ │ ├── IphoneRetinasplashPortrait.png │ │ ├── iPadRetinasplash.png │ │ ├── iPadRetinasplashPortrait.png │ │ ├── iPadsplash.png │ │ ├── iPadsplashPortrait.png │ │ ├── iPhone5splash.png │ │ ├── iPhone5splashPortrait.png │ │ ├── iPhone6Plussplash.png │ │ ├── iPhone6PlussplashPortrait.png │ │ ├── iPhone6splash.png │ │ ├── iPhone6splashPortrait.png │ │ ├── iPhonesplash.png │ │ ├── iPhonesplashPortrait.png │ │ ├── icons │ │ │ ├── icon114.png │ │ │ ├── icon120.png │ │ │ ├── icon144.png │ │ │ ├── icon152.png │ │ │ ├── icon167.png │ │ │ ├── icon57.png │ │ │ ├── icon72.png │ │ │ └── icon76.png │ │ └── splash.png │ │ ├── linux │ │ ├── icon64.png │ │ └── splash.png │ │ ├── mac │ │ ├── icon512.png │ │ └── splash.png │ │ ├── tizen │ │ ├── icon117.png │ │ └── splash.png │ │ └── windows │ │ ├── License.txt │ │ ├── RunnerInstaller.nsi │ │ ├── Runner_finish.bmp │ │ ├── Runner_header.bmp │ │ ├── runner_icon.ico │ │ └── splash.png ├── help.rtf └── scripts │ ├── draw_image.gml │ ├── draw_image_ext.gml │ ├── draw_image_general.gml │ ├── draw_image_part.gml │ ├── draw_image_part_ext.gml │ ├── draw_image_pos.gml │ ├── draw_image_pos_ext.gml │ ├── draw_image_pos_general.gml │ ├── draw_image_stretched.gml │ ├── draw_image_stretched_ext.gml │ ├── draw_image_tiled.gml │ ├── draw_image_tiled_area.gml │ ├── draw_image_tiled_area_ext.gml │ ├── draw_image_tiled_ext.gml │ ├── image_cache_create.gml │ ├── image_cache_delete.gml │ ├── image_cache_load.gml │ ├── image_cache_save.gml │ ├── image_cache_unpack.gml │ ├── image_exists.gml │ ├── image_get_filename.gml │ ├── image_get_height.gml │ ├── image_get_identifier.gml │ ├── image_get_number.gml │ ├── image_get_texture.gml │ ├── image_get_texturepage.gml │ ├── image_get_uvs.gml │ ├── image_get_width.gml │ ├── image_get_xoffset.gml │ ├── image_get_yoffset.gml │ ├── image_group_clear.gml │ ├── image_group_create.gml │ ├── image_group_destroy.gml │ ├── image_group_exists.gml │ ├── image_group_find_image.gml │ ├── image_save.gml │ ├── image_save_strip.gml │ ├── image_set_offset.gml │ ├── image_stream_add.gml │ ├── image_stream_add_3d.gml │ ├── image_stream_finish.gml │ ├── image_stream_finish_clamp.gml │ ├── image_stream_is_active.gml │ ├── image_stream_is_received.gml │ ├── image_stream_progress.gml │ ├── image_stream_receive.gml │ ├── image_stream_start.gml │ ├── image_system_cleanup.gml │ └── image_system_init.gml ├── LICENSE ├── README.md ├── image_framework_V2_9.gmx ├── Configs │ ├── Default.config.gmx │ └── Default │ │ ├── Android │ │ ├── icons │ │ │ ├── icon_hdpi.png │ │ │ ├── icon_ldpi.png │ │ │ ├── icon_mdpi.png │ │ │ ├── icon_xhdpi.png │ │ │ ├── icon_xxhdpi.png │ │ │ ├── icon_xxxhdpi.png │ │ │ └── ouyaIcon.png │ │ ├── portrait_splash.png │ │ └── splash.png │ │ ├── HTML5 │ │ ├── fav.ico │ │ └── splash.png │ │ ├── Linux │ │ ├── icon64.png │ │ └── splash.png │ │ ├── Mac │ │ ├── icon512.png │ │ └── splash.png │ │ ├── Windows8 │ │ ├── Win8NativeRunner_TemporaryKey.pfx │ │ ├── Windows8_TemporaryKey.pfx │ │ ├── logos │ │ │ ├── logo150.png │ │ │ ├── logo30.png │ │ │ ├── logo310.png │ │ │ └── logo50.png │ │ └── splashscreen.png │ │ ├── WindowsUAP │ │ ├── SplashScreen.scale-100.png │ │ ├── WinUWPRunner_TemporaryKey.pfx │ │ └── logos │ │ │ ├── LargeLogo.scale-100.png │ │ │ ├── Logo.scale-100.png │ │ │ ├── SmallLogo.scale-100.png │ │ │ ├── SmallishLogo.scale-100.png │ │ │ ├── StoreLogo.scale-100.png │ │ │ └── WideLogo.scale-100.png │ │ ├── iOS │ │ ├── iPadRetinaSplash.png │ │ ├── iPadRetinaSplashPortrait.png │ │ ├── iPadsplash.png │ │ ├── iPadsplashPortrait.png │ │ ├── iPhone5splash.png │ │ ├── iPhone5splashPortrait.png │ │ ├── iPhone6PlusSplash.png │ │ ├── iPhone6PlusSplashPortrait.png │ │ ├── iPhone6Splash.png │ │ ├── iPhone6SplashPortrait.png │ │ ├── iPhone7PlusSplash.png │ │ ├── iPhone7PlusSplashPortrait.png │ │ ├── iPhone7Splash.png │ │ ├── iPhone7SplashPortrait.png │ │ ├── iPhone8PlusSplash.png │ │ ├── iPhone8PlusSplashPortrait.png │ │ ├── iPhone8Splash.png │ │ ├── iPhone8SplashPortrait.png │ │ ├── iPhoneRetinasplash.png │ │ ├── iPhoneRetinasplashPortrait.png │ │ ├── iPhoneSEsplash.png │ │ ├── iPhoneSEsplashPortrait.png │ │ ├── iPhoneXSplash.png │ │ ├── iPhoneXSplashPortrait.png │ │ ├── iPhonesplash.png │ │ ├── iPhonesplashPortrait.png │ │ ├── icons │ │ │ ├── app │ │ │ │ ├── ipad_152.png │ │ │ │ ├── ipad_76.png │ │ │ │ ├── ipad_pro_167.png │ │ │ │ ├── iphone_120.png │ │ │ │ └── iphone_180.png │ │ │ ├── icon114.png │ │ │ ├── icon120.png │ │ │ ├── icon144.png │ │ │ ├── icon152.png │ │ │ ├── icon167.png │ │ │ ├── icon57.png │ │ │ ├── icon72.png │ │ │ ├── icon76.png │ │ │ ├── itunes │ │ │ │ └── itunes_1024.png │ │ │ ├── notification │ │ │ │ ├── ipad_20.png │ │ │ │ ├── ipad_40.png │ │ │ │ ├── iphone_40.png │ │ │ │ └── iphone_60.png │ │ │ ├── settings │ │ │ │ ├── ipad_29.png │ │ │ │ ├── ipad_58.png │ │ │ │ ├── iphone_58.png │ │ │ │ └── iphone_87.png │ │ │ └── spotlight │ │ │ │ ├── ipad_40.png │ │ │ │ ├── ipad_80.png │ │ │ │ ├── iphone_120.png │ │ │ │ └── iphone_80.png │ │ ├── splash.png │ │ └── splashPortrait.png │ │ └── windows │ │ ├── License.txt │ │ ├── RunnerInstaller.nsi │ │ ├── Runner_Icon_256.ico │ │ ├── Runner_finish.bmp │ │ ├── Runner_header.bmp │ │ ├── runner_icon.ico │ │ └── splash.png ├── help.rtf ├── image_framework_V2_9.project.gmx └── scripts │ ├── draw_image.gml │ ├── draw_image_ext.gml │ ├── draw_image_general.gml │ ├── draw_image_part.gml │ ├── draw_image_part_ext.gml │ ├── draw_image_pos.gml │ ├── draw_image_pos_ext.gml │ ├── draw_image_pos_general.gml │ ├── draw_image_stretched.gml │ ├── draw_image_stretched_ext.gml │ ├── draw_image_tiled.gml │ ├── draw_image_tiled_area.gml │ ├── draw_image_tiled_area_ext.gml │ ├── draw_image_tiled_ext.gml │ ├── draw_text_outline.gml │ ├── image_cache_create.gml │ ├── image_cache_delete.gml │ ├── image_cache_load.gml │ ├── image_cache_save.gml │ ├── image_cache_unpack.gml │ ├── image_exists.gml │ ├── image_get_bbox_bottom.gml │ ├── image_get_bbox_left.gml │ ├── image_get_bbox_right.gml │ ├── image_get_bbox_top.gml │ ├── image_get_filename.gml │ ├── image_get_height.gml │ ├── image_get_identifier.gml │ ├── image_get_number.gml │ ├── image_get_texture.gml │ ├── image_get_texturepage.gml │ ├── image_get_uvs.gml │ ├── image_get_width.gml │ ├── image_get_xoffset.gml │ ├── image_get_yoffset.gml │ ├── image_group_clear.gml │ ├── image_group_create.gml │ ├── image_group_destroy.gml │ ├── image_group_exists.gml │ ├── image_group_find.gml │ ├── image_group_find_image.gml │ ├── image_group_flush.gml │ ├── image_group_prefetch.gml │ ├── image_save.gml │ ├── image_save_sheet.gml │ ├── image_save_strip.gml │ ├── image_set_bbox.gml │ ├── image_set_offset.gml │ ├── image_stream_add.gml │ ├── image_stream_add_3d.gml │ ├── image_stream_add_files.gml │ ├── image_stream_add_sheet.gml │ ├── image_stream_finish.gml │ ├── image_stream_finish_clamp.gml │ ├── image_stream_is_active.gml │ ├── image_stream_is_received.gml │ ├── image_stream_progress.gml │ ├── image_stream_receive.gml │ ├── image_stream_start.gml │ ├── image_stream_stop.gml │ ├── image_system_cleanup.gml │ └── image_system_init.gml └── preview.png /Braffolk Image Loader.gmx/Braffolk Image Loader.project.gmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Configs\Default 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | help.rtf 78 | 79 | 80 | 0 81 | 82 | 0 83 | 84 | 85 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/ApplicationIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/ApplicationIcon.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleSmall.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide1.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide2.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide3.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide4.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide5.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide6.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide7.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide8.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/CycleWide9.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipMedBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipMedBack.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipMedFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipMedFront.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipSmallFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipSmallFront.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipWideBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipWideBack.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipWideFront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/FlipWideFront.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/IconicSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/IconicSmall.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/IconicWide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/IconicWide.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage.jpg -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage480.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage480.jpg -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage720.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/WinPhone/SplashScreenImage720.jpg -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo150.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo30.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo310.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/Windows8/logos/logo50.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/Windows8/splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/Windows8/splashscreen.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_hdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_hdpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_ldpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_ldpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_mdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_mdpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xhdpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xxhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xxhdpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xxxhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/icon_xxxhdpi.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/icons/ouyaIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/icons/ouyaIcon.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/portrait_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/portrait_splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/android/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/android/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/html5/fav.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/html5/fav.ico -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/html5/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/html5/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/IphoneRetinasplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/IphoneRetinasplash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/IphoneRetinasplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/IphoneRetinasplashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPadRetinasplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPadRetinasplash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPadRetinasplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPadRetinasplashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPadsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPadsplash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPadsplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPadsplashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone5splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone5splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone5splashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone5splashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6Plussplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6Plussplash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6PlussplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6PlussplashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6splashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhone6splashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhonesplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhonesplash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/iPhonesplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/iPhonesplashPortrait.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon114.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon120.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon144.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon152.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon167.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon57.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon72.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/icons/icon76.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/ios/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/ios/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/linux/icon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/linux/icon64.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/linux/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/linux/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/mac/icon512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/mac/icon512.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/mac/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/mac/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/tizen/icon117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/tizen/icon117.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/tizen/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/tizen/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/windows/License.txt -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/RunnerInstaller.nsi: -------------------------------------------------------------------------------- 1 | ; RunnerInstaller.nsi 2 | ; 3 | ; This script is based on example1.nsi, but it remember the directory, 4 | ; has uninstall support and (optionally) installs start menu shortcuts. 5 | ; 6 | ; It will install example2.nsi into a directory that the user selects, 7 | 8 | ;-------------------------------- 9 | !include MUI2.nsh 10 | 11 | !ifndef FULL_VERSION 12 | !define FULL_VERSION "1.0.0.0" 13 | !endif 14 | !ifndef SOURCE_DIR 15 | !define SOURCE_DIR "C:\source\temp\InstallerTest\runner" 16 | !endif 17 | !ifndef INSTALLER_FILENAME 18 | !define INSTALLER_FILENAME "C:\source\temp\InstallerTest\RunnerInstaller.exe" 19 | !endif 20 | 21 | !ifndef MAKENSIS 22 | !define MAKENSIS "%appdata%\GameMaker-Studio\makensis" 23 | !endif 24 | 25 | !ifndef COMPANY_NAME 26 | !define COMPANY_NAME "" 27 | !endif 28 | 29 | !ifndef COPYRIGHT_TXT 30 | !define COPYRIGHT_TXT "(c)Copyright 2013" 31 | !endif 32 | 33 | !ifndef FILE_DESC 34 | !define FILE_DESC "Created with GameMaker:Studio" 35 | !endif 36 | 37 | !ifndef LICENSE_NAME 38 | !define LICENSE_NAME "License.txt" 39 | !endif 40 | 41 | !ifndef ICON_FILE 42 | !define ICON_FILE "icon.ico" 43 | !endif 44 | 45 | !ifndef IMAGE_FINISHED 46 | !define IMAGE_FINISHED "Runner_finish.bmp" 47 | !endif 48 | 49 | !ifndef IMAGE_HEADER 50 | !define IMAGE_HEADER "Runner_header.bmp" 51 | !endif 52 | 53 | !ifndef PRODUCT_NAME 54 | !define PRODUCT_NAME "Runner" 55 | !endif 56 | 57 | !define APP_NAME "${PRODUCT_NAME}" 58 | !define SHORT_NAME "${PRODUCT_NAME}" 59 | 60 | !ifndef EXE_NAME 61 | !define EXE_NAME "${PRODUCT_NAME}" 62 | !endif 63 | 64 | 65 | ;;USAGE: 66 | !define MIN_FRA_MAJOR "2" 67 | !define MIN_FRA_MINOR "0" 68 | !define MIN_FRA_BUILD "*" 69 | 70 | !addplugindir "." 71 | 72 | ;-------------------------------- 73 | 74 | ; The name of the installer 75 | Name "${APP_NAME}" 76 | Caption "${APP_NAME}" 77 | BrandingText "${APP_NAME}" 78 | 79 | ; The file to write 80 | OutFile "${INSTALLER_FILENAME}" 81 | 82 | ; The default installation directory 83 | InstallDir "$PROFILE\${APP_NAME}" 84 | 85 | ; Registry key to check for directory (so if you install again, it will 86 | ; overwrite the old one automatically) 87 | InstallDirRegKey HKCU "Software\Runner" "Install_Dir" 88 | 89 | ; Request application privileges for Windows Vista 90 | RequestExecutionLevel admin 91 | 92 | 93 | VIProductVersion "${FULL_VERSION}" 94 | VIAddVersionKey /LANG=1033 "FileVersion" "${FULL_VERSION}" 95 | VIAddVersionKey /LANG=1033 "ProductVersion" "${FULL_VERSION}" 96 | VIAddVersionKey /LANG=1033 "ProductName" "${PRODUCT_NAME}" 97 | VIAddVersionKey /LANG=1033 "CompanyName" "${PRODUCT_PUBLISHER}" 98 | VIAddVersionKey /LANG=1033 "LegalCopyright" "${COPYRIGHT_TXT}" 99 | VIAddVersionKey /LANG=1033 "FileDescription" "${FILE_DESC}" 100 | 101 | 102 | 103 | !define MUI_HEADERIMAGE 104 | !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH 105 | !define MUI_ICON "${ICON_FILE}" 106 | !define MUI_WELCOMEFINISHPAGE_BITMAP "${IMAGE_FINISHED}" 107 | !define MUI_HEADERIMAGE_BITMAP "${IMAGE_HEADER}" 108 | !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH 109 | 110 | 111 | ;-------------------------------- 112 | 113 | ; Pages 114 | !insertmacro MUI_PAGE_LICENSE "${LICENSE_NAME}" 115 | !insertmacro MUI_PAGE_COMPONENTS 116 | !insertmacro MUI_PAGE_DIRECTORY 117 | !insertmacro MUI_PAGE_INSTFILES 118 | # These indented statements modify settings for MUI_PAGE_FINISH 119 | !define MUI_FINISHPAGE_NOAUTOCLOSE 120 | !define MUI_FINISHPAGE_RUN_TEXT "Start ${PRODUCT_NAME}" 121 | !define MUI_FINISHPAGE_RUN "$INSTDIR\${EXE_NAME}.exe" 122 | !insertmacro MUI_PAGE_FINISH 123 | 124 | Var DirectXSetupError 125 | 126 | UninstPage uninstConfirm 127 | UninstPage instfiles 128 | 129 | !insertmacro MUI_LANGUAGE "English" 130 | ;-------------------------------- 131 | 132 | ; The stuff to install 133 | Section `${APP_NAME}` 134 | SectionIn RO 135 | 136 | ; Set output path to the installation directory. 137 | SetOutPath $INSTDIR 138 | 139 | ; Put file there 140 | File "${LICENSE_NAME}" 141 | File /r "${SOURCE_DIR}\*.*" 142 | 143 | ; Write the uninstall keys for Windows 144 | WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "DisplayName" "${APP_NAME}" 145 | WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"' 146 | WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoModify" 1 147 | WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoRepair" 1 148 | WriteUninstaller "uninstall.exe" 149 | 150 | SectionEnd 151 | 152 | ; Optional section (can be disabled by the user) 153 | Section "Start Menu Shortcuts" 154 | 155 | CreateDirectory "$SMPROGRAMS\${APP_NAME}" 156 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 157 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" "" "$INSTDIR\${EXE_NAME}.exe" 158 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} License.lnk" "notepad.exe" "$INSTDIR\License.txt" 159 | 160 | SectionEnd 161 | 162 | 163 | ; Optional section (can be enabled by the user) 164 | Section /o "Desktop shortcut" 165 | 166 | CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" "" 167 | 168 | SectionEnd 169 | 170 | 171 | ;-------------------------------- 172 | 173 | ; Uninstaller 174 | 175 | Section "Uninstall" 176 | ; Remove registry keys 177 | DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" 178 | 179 | ; Remove files and uninstaller (everything) 180 | RMDir /r "$INSTDIR" 181 | 182 | ; Remove desktop icon 183 | Delete "$DESKTOP\${APP_NAME}.lnk" 184 | 185 | ; Remove shortcuts, if any 186 | Delete "$SMPROGRAMS\${APP_NAME}\*.*" 187 | 188 | ; Remove directories used 189 | RMDir "$SMPROGRAMS\${APP_NAME}" 190 | RMDir "$INSTDIR" 191 | 192 | SectionEnd 193 | 194 | 195 | ;-------------------------------- 196 | ; 197 | ; This should be the LAST section available.... 198 | ; 199 | Section "DirectX Install" SEC_DIRECTX 200 | 201 | SectionIn RO 202 | 203 | SetOutPath "$TEMP" 204 | File "${MAKENSIS}\dxwebsetup.exe" 205 | DetailPrint "Running DirectX Setup..." 206 | ExecWait '"$TEMP\dxwebsetup.exe" /Q' $DirectXSetupError 207 | DetailPrint "Finished DirectX Setup" 208 | 209 | Delete "$TEMP\dxwebsetup.exe" 210 | 211 | SetOutPath "$INSTDIR" 212 | 213 | SectionEnd 214 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/Runner_finish.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/windows/Runner_finish.bmp -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/Runner_header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/windows/Runner_header.bmp -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/runner_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/windows/runner_icon.ico -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/Configs/Default/windows/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/Braffolk Image Loader.gmx/Configs/Default/windows/splash.png -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/help.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Arial;}} 2 | {\colortbl ;\red221\green221\blue221;} 3 | \viewkind4\uc1\pard\cf1\fs24\par 4 | } 5 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image.gml: -------------------------------------------------------------------------------- 1 | ///draw_image(image,subimg,x,y) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_part( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] , 8 | argument0[# 8 + _c_subimg , 0 ] , 9 | argument0[# 2 , 0 ] , 10 | argument0[# 3 , 0 ] , 11 | argument2 - argument0[# 4 , 0 ] , 12 | argument3 - argument0[# 5 , 0 ] 13 | ); 14 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_ext(image,subimg,x,y,xscale,yscale,rot,colour,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_general( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] , 8 | argument0[# 8 + _c_subimg , 0 ] , 9 | argument0[# 2 , 0 ] , 10 | argument0[# 3 , 0 ] , 11 | argument2 - lengthdir_x( argument0[# 4 , 0 ] , argument6 )*argument4 - lengthdir_x( argument0[# 5 , 0 ] , argument6 - 90 )*argument5 , 12 | argument3 - lengthdir_y( argument0[# 4 , 0 ] , argument6 )*argument4 - lengthdir_y( argument0[# 5 , 0 ] , argument6 - 90 )*argument5 , 13 | argument4 , 14 | argument5 , 15 | argument6 , 16 | argument7 , 17 | argument7 , 18 | argument7 , 19 | argument7 , 20 | argument8 21 | ); 22 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_general.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_general( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] + argument2 , 8 | argument0[# 8 + _c_subimg , 0 ] + argument3 , 9 | argument4 , 10 | argument5 , 11 | argument6 , 12 | argument7 , 13 | argument8 , 14 | argument9 , 15 | argument10 , 16 | argument11 , 17 | argument12 , 18 | argument13 , 19 | argument14 , 20 | argument15 21 | ); 22 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_part.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_part(sprite,subimg,left,top,width,height,x,y) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost but it inflates the final exe size 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_part( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] + argument2 , 8 | argument0[# 8 + _c_subimg , 0 ] + argument3 , 9 | argument4 , 10 | argument5 , 11 | argument6 , 12 | argument7 13 | ); 14 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_part_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_part_ext(sprite,subimg,left,top,width,height,x,y,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_part_ext( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] + argument2 , 8 | argument0[# 8 + _c_subimg , 0 ] + argument3 , 9 | argument4 , 10 | argument5 , 11 | argument6 , 12 | argument7 , 13 | argument8 , 14 | argument9 , 15 | argument10 , 16 | argument11 17 | ); 18 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_pos.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 6 | 7 | var _u_x = argument0[# 7 + _c_subimg , 0 ] / background_get_width( _bck ); 8 | var _u_y = argument0[# 8 + _c_subimg , 0 ] / background_get_height( _bck ); 9 | var _u_w = argument0[# 2 , 0 ] / background_get_width( _bck ); 10 | var _u_h = argument0[# 3 , 0 ] / background_get_height( _bck ); 11 | 12 | draw_set_alpha( argument10 ); 13 | draw_primitive_begin_texture( pr_trianglelist , background_get_texture( _bck ) ); 14 | draw_vertex_texture( argument2 , argument3 , _u_x , _u_y ); 15 | draw_vertex_texture( argument4 , argument5 , _u_x+_u_w , _u_y ); 16 | draw_vertex_texture( argument6 , argument7 , _u_x+_u_w , _u_y+_u_h ); 17 | 18 | draw_vertex_texture( argument8 , argument9 , _u_x , _u_y+_u_h ); 19 | draw_vertex_texture( argument2 , argument3 , _u_x , _u_y ); 20 | draw_vertex_texture( argument6 , argument7 , _u_x+_u_w , _u_y+_u_h ); 21 | draw_primitive_end(); 22 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_pos_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos_ext(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,rot,col,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 6 | 7 | var _u_x = argument0[# 7 + _c_subimg , 0 ] / background_get_width( _bck ); 8 | var _u_y = argument0[# 8 + _c_subimg , 0 ] / background_get_height( _bck ); 9 | var _u_w = argument0[# 2 , 0 ] / background_get_width( _bck ); 10 | var _u_h = argument0[# 3 , 0 ] / background_get_height( _bck ); 11 | 12 | var _x1 = argument2; 13 | var _y1 = argument3; 14 | var _dis1 = point_distance( _x1 , _y1 , argument4 , argument5 ); 15 | var _dir1 = point_direction( _x1 , _y1 , argument4 , argument5 ) + argument10; 16 | var _dis2 = point_distance( _x1 , _y1 , argument6 , argument7 ); 17 | var _dir2 = point_direction( _x1 , _y1 , argument6 , argument7 ) + argument10; 18 | var _dis3 = point_distance( _x1 , _y1 , argument8 , argument9 ); 19 | var _dir3 = point_direction( _x1 , _y1 , argument8 , argument9 ) + argument10; 20 | 21 | draw_primitive_begin_texture( pr_trianglelist , background_get_texture( _bck ) ); 22 | draw_vertex_texture_colour( _x1 , _y1 , _u_x , _u_y , argument11 , argument12 ); 23 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis1 , _dir1 ) , _y1 + lengthdir_y( _dis1 , _dir1 ) , _u_x+_u_w , _u_y , argument11 , argument12 ); 24 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2 , _dir2 ) , _y1 + lengthdir_y( _dis2 , _dir2 ) , _u_x+_u_w , _u_y+_u_h , argument11 , argument12 ); 25 | 26 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis3 , _dir3 ) , _y1 + lengthdir_y( _dis3 , _dir3 ) , _u_x , _u_y+_u_h , argument11 , argument12 ); 27 | draw_vertex_texture_colour( _x1 , _y1 , _u_x , _u_y , argument11 , argument12 ); 28 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2 , _dir2 ) , _y1 + lengthdir_y( _dis2 , _dir2 ) , _u_x+_u_w , _u_y+_u_h , argument11 , argument12 ); 29 | draw_primitive_end(); 30 | 31 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_pos_general.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos_general(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,rot,c1,c2,c3,c4,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | 5 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 6 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 7 | 8 | var _u_x = argument0[# 7 + _c_subimg , 0 ] / background_get_width( _bck ); 9 | var _u_y = argument0[# 8 + _c_subimg , 0 ] / background_get_height( _bck ); 10 | var _u_w = argument0[# 2 , 0 ] / background_get_width( _bck ); 11 | var _u_h = argument0[# 3 , 0 ] / background_get_height( _bck ); 12 | 13 | var _x1 = argument2; 14 | var _y1 = argument3; 15 | var _dis1 = point_distance( _x1 , _y1 , argument4 , argument5 ); 16 | var _dir1 = point_direction( _x1 , _y1 , argument4 , argument5 ) + argument10; 17 | var _dis2 = point_distance( _x1 , _y1 , argument6 , argument7 ); 18 | var _dir2 = point_direction( _x1 , _y1 , argument6 , argument7 ) + argument10; 19 | var _dis3 = point_distance( _x1 , _y1 , argument8 , argument9 ); 20 | var _dir3 = point_direction( _x1 , _y1 , argument8 , argument9 ) + argument10; 21 | 22 | draw_primitive_begin_texture( pr_trianglelist , background_get_texture( _bck ) ); 23 | draw_vertex_texture_colour( _x1 , _y1 , _u_x , _u_y , argument11 , argument15 ); 24 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis1 , _dir1 ) , _y1 + lengthdir_y( _dis1 , _dir1 ) , _u_x+_u_w , _u_y , argument12 , argument15 ); 25 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2 , _dir2 ) , _y1 + lengthdir_y( _dis2 , _dir2 ) , _u_x+_u_w , _u_y+_u_h , argument13 , argument15 ); 26 | 27 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis3 , _dir3 ) , _y1 + lengthdir_y( _dis3 , _dir3 ) , _u_x , _u_y+_u_h , argument14 , argument15 ); 28 | draw_vertex_texture_colour( _x1 , _y1 , _u_x , _u_y , argument11 , argument15 ); 29 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2 , _dir2 ) , _y1 + lengthdir_y( _dis2 , _dir2 ) , _u_x+_u_w , _u_y+_u_h , argument13 , argument15 ); 30 | draw_primitive_end(); 31 | 32 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_stretched.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_stretched(sprite,subimg,x,y,w,h) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_part_ext( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] , 8 | argument0[# 8 + _c_subimg , 0 ] , 9 | argument0[# 2 , 0 ] , 10 | argument0[# 3 , 0 ] , 11 | argument2 , 12 | argument3 , 13 | ( argument4 / argument0[# 2 , 0 ] ) , 14 | ( argument5 / argument0[# 3 , 0 ] ) , 15 | c_white , 16 | 1 17 | ); 18 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_stretched_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_stretched_ext(sprite,subimg,x,y,w,h,colour,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | draw_background_part_ext( 6 | argument0[# 6 + _c_subimg , 0 ] , 7 | argument0[# 7 + _c_subimg , 0 ] , 8 | argument0[# 8 + _c_subimg , 0 ] , 9 | argument0[# 2 , 0 ] , 10 | argument0[# 3 , 0 ] , 11 | argument2 , 12 | argument3 , 13 | ( argument4 / argument0[# 2 , 0 ] ) , 14 | ( argument5 / argument0[# 3 , 0 ] ) , 15 | argument6 , 16 | argument7 17 | ); 18 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_tiled.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled(image,subimg,x,y) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | 6 | var _w = argument0[# 2 , 0 ]; 7 | var _h = argument0[# 3 , 0 ]; 8 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 9 | var _left = argument0[# 7 + _c_subimg , 0 ]; 10 | var _top = argument0[# 8 + _c_subimg , 0 ]; 11 | var _xo = ( argument2 mod _w ); 12 | var _yo = ( argument3 mod _h ); 13 | 14 | for( var _x = -_w; _x <= view_wview[ view_current ]; _x += _w ){ 15 | for( var _y = -_h; _y <= view_hview[ view_current ]; _y += _h ){ 16 | draw_background_part( 17 | _bck , 18 | _left , 19 | _top , 20 | _w , 21 | _h , 22 | _xo + _x , 23 | _yo + _y 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_tiled_area.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_area(image,subimg,x1,y1,x2,y2) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | 6 | var _w = argument0[# 2 , 0 ]; 7 | var _h = argument0[# 3 , 0 ]; 8 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 9 | var _left = argument0[# 7 + _c_subimg , 0 ]; 10 | var _top = argument0[# 8 + _c_subimg , 0 ]; 11 | 12 | var _x1 = argument2; 13 | var _x2 = argument4; 14 | var _y1 = argument3; 15 | var _y2 = argument5; 16 | var _xadd = 1 - 2 * ( argument4 < argument2 ); 17 | var _yadd = 1 - 2 * ( argument5 < argument3 ); 18 | 19 | var _x = _x1 - _w * ( _xadd == -1 ); 20 | var _y = _y1 - _h * ( _yadd == -1 ); 21 | repeat( floor( abs( _x2 - _x1 ) / _w ) ){ 22 | repeat( floor( abs( _y2 - _y1 ) / _h ) ){ 23 | draw_background_part( 24 | _bck , 25 | _left , 26 | _top , 27 | _w , 28 | _h , 29 | _x , 30 | _y 31 | ); 32 | _y += _h * _yadd; 33 | } 34 | _x += _w * _xadd; 35 | _y = _y1 - _h * ( _yadd == -1 ); 36 | } 37 | var _y_side = _y; 38 | 39 | // HORISONTAL 40 | var _x = _x1 - _w * ( _xadd == -1 ); 41 | _y = _y1 + floor( ( _y2 - _y1 ) / _h ) * _h; 42 | 43 | if( _yadd == -1 ){ 44 | var _part_top = _top + abs( _y2 - _y ); 45 | var _part_h = abs( ( _y2 - _h ) - _y ); 46 | var _part_y = _y + abs( _y2 - _y ); 47 | } else { 48 | var _part_top = _top; 49 | var _part_h = abs( _y2 - _y ); 50 | var _part_y = _y; 51 | } 52 | repeat( floor( abs( _x2 - _x1 ) / _w ) ){ 53 | draw_background_part_ext( 54 | _bck , 55 | _left , 56 | _part_top , 57 | _w , 58 | _part_h , 59 | _x , 60 | _part_y , 61 | 1 , 62 | 1 , 63 | c_white , 64 | 1 65 | ); 66 | _x += _w * _xadd; 67 | } 68 | 69 | // VERTICAL 70 | var _y = _y1 - _h * ( _yadd == -1 ); 71 | _x = _x1 + floor( ( _x2 - _x1 ) / _w ) * _w; 72 | 73 | if( _xadd == -1 ){ 74 | var _part_left = _left + abs( _x2 - _x ); 75 | var _part_w = abs( ( _x2 - _w ) - _x ); 76 | var _part_x = _x + abs( _x2 - _x ); 77 | } else { 78 | var _part_left = _left; 79 | var _part_w = abs( _x2 - _x ); 80 | var _part_x = _x; 81 | } 82 | repeat( floor( abs( _y2 - _y1 ) / _h ) ){ 83 | draw_background_part_ext( 84 | _bck , 85 | _part_left , 86 | _top , 87 | _part_w , 88 | _h , 89 | _part_x , 90 | _y , 91 | 1 , 92 | 1 , 93 | c_white , 94 | 1 95 | ); 96 | _y += _h * _yadd; 97 | } 98 | 99 | // EDGE TILE 100 | draw_background_part_ext( 101 | _bck , 102 | _part_left , 103 | _part_top , 104 | _part_w , 105 | _part_h , 106 | _part_x , 107 | _part_y , 108 | 1 , 109 | 1 , 110 | c_white , 111 | 1 112 | ); 113 | 114 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_tiled_area_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_area_ext(image,subimg,x1,y1,x2,y2,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | 6 | var _w = argument0[# 2 , 0 ]; 7 | var _h = argument0[# 3 , 0 ]; 8 | 9 | var _tw = argument0[# 2 , 0 ] * argument6; 10 | var _th = argument0[# 3 , 0 ] * argument7; 11 | 12 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 13 | var _left = argument0[# 7 + _c_subimg , 0 ]; 14 | var _top = argument0[# 8 + _c_subimg , 0 ]; 15 | 16 | var _x1 = argument2; 17 | var _x2 = argument4; 18 | var _y1 = argument3; 19 | var _y2 = argument5; 20 | var _xadd = 1 - 2 * ( argument4 < argument2 ); 21 | var _yadd = 1 - 2 * ( argument5 < argument3 ); 22 | 23 | var _x = _x1 - _tw * ( _xadd == -1 ); 24 | var _y = _y1 - _th * ( _yadd == -1 ); 25 | repeat( floor( abs( _x2 - _x1 ) / _tw ) ){ 26 | repeat( floor( abs( _y2 - _y1 ) / _th ) ){ 27 | draw_background_part_ext( 28 | _bck , 29 | _left , 30 | _top , 31 | _w , 32 | _h , 33 | _x , 34 | _y , 35 | argument6 , 36 | argument7 , 37 | argument8 , 38 | argument9 39 | ); 40 | _y += _th * _yadd; 41 | } 42 | _x += _tw * _xadd; 43 | _y = _y1 - _th * ( _yadd == -1 ); 44 | } 45 | var _y_side = _y; 46 | 47 | // HORISONTAL 48 | var _x = _x1 - _tw * ( _xadd == -1 ); 49 | _y = _y1 + floor( ( _y2 - _y1 ) / _th ) * _th; 50 | 51 | if( _yadd == -1 ){ 52 | var _part_top = _top + abs( _y2 - _y ) / argument7; 53 | var _part_h = abs( ( _y2 - _th ) - _y ) / argument7; 54 | var _part_y = _y + abs( _y2 - _y ); 55 | } else { 56 | var _part_top = _top; 57 | var _part_h = abs( _y2 - _y ) / argument7; 58 | var _part_y = _y; 59 | } 60 | repeat( floor( abs( _x2 - _x1 ) / _tw ) ){ 61 | draw_background_part_ext( 62 | _bck , 63 | _left , 64 | _part_top , 65 | _w , 66 | _part_h , 67 | _x , 68 | _part_y , 69 | argument6 , 70 | argument7 , 71 | argument8 , 72 | argument9 73 | ); 74 | _x += _tw * _xadd; 75 | } 76 | 77 | // VERTICAL 78 | var _y = _y1 - _th * ( _yadd == -1 ); 79 | _x = _x1 + floor( ( _x2 - _x1 ) / _tw ) * _tw; 80 | 81 | if( _xadd == -1 ){ 82 | var _part_left = _left + abs( _x2 - _x ) / argument6; 83 | var _part_w = abs( ( _x2 - _tw ) - _x ) / argument6; 84 | var _part_x = _x + abs( _x2 - _x ); 85 | } else { 86 | var _part_left = _left; 87 | var _part_w = abs( _x2 - _x ) / argument6; 88 | var _part_x = _x; 89 | } 90 | repeat( floor( abs( _y2 - _y1 ) / _th ) ){ 91 | draw_background_part_ext( 92 | _bck , 93 | _part_left , 94 | _top , 95 | _part_w , 96 | _h , 97 | _part_x , 98 | _y , 99 | argument6 , 100 | argument7 , 101 | argument8 , 102 | argument9 103 | ); 104 | _y += _th * _yadd; 105 | } 106 | 107 | // EDGE TILE 108 | draw_background_part_ext( 109 | _bck , 110 | _part_left , 111 | _part_top , 112 | _part_w , 113 | _part_h , 114 | _part_x , 115 | _part_y , 116 | argument6 , 117 | argument7 , 118 | argument8 , 119 | argument9 120 | ); 121 | 122 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/draw_image_tiled_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_ext(sprite,subimg,x,y,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // in YYC, proccessing boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | 6 | var _w = argument0[# 2 , 0 ]; 7 | var _h = argument0[# 3 , 0 ]; 8 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 9 | var _left = argument0[# 7 + _c_subimg , 0 ]; 10 | var _top = argument0[# 8 + _c_subimg , 0 ]; 11 | var _xo = ( argument2 mod (_w*argument4) ); 12 | var _yo = ( argument3 mod (_h*argument5) ); 13 | 14 | for( var _x = -_w * argument4; _x <= view_wview[ view_current ]; _x += _w * argument4 ){ 15 | for( var _y = -_h * argument5; _y <= view_hview[ view_current ]; _y += _h * argument5 ){ 16 | draw_background_part_ext( 17 | _bck , 18 | _left , 19 | _top , 20 | _w , 21 | _h , 22 | _xo + _x , 23 | _yo + _y , 24 | argument4 , 25 | argument5 , 26 | argument6 , 27 | argument7 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_cache_create.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_create( group ) 2 | /* 3 | Creates a cache for the image group and returns the buffer that it is stored in, 4 | this can be saved using image_cache_save() or used in networking. 5 | 6 | ------------------------- 7 | group - The group name or the name that image_group_create() returned. 8 | ------------------------- 9 | 10 | RETURNS buffer or -1 if failed. 11 | */ 12 | 13 | if( ds_map_exists( global.m_ex_image , argument0 ) ){ 14 | var _l = global.m_ex_image[? argument0 ]; 15 | var _l_image = _l[| 0 ]; 16 | var _l_background = _l[| 1 ]; 17 | 18 | // Temp directory 19 | var _dir = working_directory + ".TEMP_IMAGE_FOLDER/"; 20 | if( directory_exists( _dir ) ){ 21 | directory_destroy( _dir ); 22 | } 23 | directory_create( _dir ); 24 | 25 | // Create the cache and add safe checks 26 | var _buf_cache = buffer_create( 1 , buffer_grow , 1 ); 27 | buffer_seek( _buf_cache , buffer_seek_start , 0 ); 28 | buffer_write( _buf_cache , buffer_string , "IMAGE_CACHE" ); 29 | buffer_write( _buf_cache , buffer_string , global.ex_image_cache_version ); 30 | 31 | // Add the image to the cache 32 | buffer_write( _buf_cache , buffer_u16 , ds_list_size( _l_background ) ); 33 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 34 | var _back = _l_background[| n ]; 35 | background_save( _l_background[| n ] , _dir + string( _l_background[| n ] ) + ".png" ); 36 | var _buf = buffer_load( _dir + string( _l_background[| n ] ) + ".png" ); 37 | buffer_write( _buf_cache , buffer_u32 , buffer_get_size( _buf ) ); 38 | buffer_copy( _buf , 0 , buffer_get_size( _buf ) , _buf_cache , buffer_tell( _buf_cache ) ); 39 | 40 | buffer_seek( _buf_cache , buffer_seek_relative , buffer_get_size( _buf ) ); 41 | buffer_delete( _buf ); 42 | } 43 | 44 | // Write the image info into the cache 45 | buffer_write( _buf_cache , buffer_u16 , ds_list_size( _l_image ) ); 46 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 47 | var _g = _l_image[| n ]; 48 | var _id = _g[# 0 , 0 ]; 49 | var _subimg = _g[# 1 , 0 ]; 50 | var _width = _g[# 2 , 0 ]; 51 | var _height = _g[# 3 , 0 ]; 52 | var _xorigin = _g[# 4 , 0 ]; 53 | var _yorigin = _g[# 5 , 0 ]; 54 | 55 | buffer_write( _buf_cache , buffer_string , string( _id ) ); 56 | buffer_write( _buf_cache , buffer_u16 , _subimg ); 57 | buffer_write( _buf_cache , buffer_u16 , _width ); 58 | buffer_write( _buf_cache , buffer_u16 , _height ); 59 | buffer_write( _buf_cache , buffer_s16 , _xorigin ); 60 | buffer_write( _buf_cache , buffer_s16 , _yorigin ); 61 | 62 | for( var i = 0; i < _subimg; i++ ){ 63 | var _index = ds_list_find_index( _l_background , _g[# 6 + i * 3 , 0 ] ); 64 | if( _index != -1 ) 65 | buffer_write( _buf_cache , buffer_u16 , _index );//_g[# 6 + i * 3 , 0 ] ); 66 | else 67 | show_error( "The texturepage with id '" + string( _g[# 6 + i * 3 , 0 ] ) + "' Couldn't be found in the group background ds_list" , true ); 68 | buffer_write( _buf_cache , buffer_u16 , _g[# 7 + i * 3 , 0 ] ); 69 | buffer_write( _buf_cache , buffer_u16 , _g[# 8 + i * 3 , 0 ] ); 70 | } 71 | buffer_write( _buf_cache , buffer_string , string( _g[# ds_grid_width( _g ) - 1 , 0 ] ) ); 72 | } 73 | buffer_resize( _buf_cache , buffer_tell( _buf_cache ) ); 74 | directory_destroy( _dir ); 75 | return _buf_cache; 76 | } else { 77 | show_error( "The image group '" + string( argument0 ) + "' you are trying to save does not exist" , false ); 78 | return -1; 79 | } 80 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_cache_delete.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_delete(cache) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Deletes the image cache 5 | 6 | ------------------------- 7 | cache - The buffer that image_cache_create() or image_cache_load() returned. 8 | ------------------------- 9 | */ 10 | buffer_delete( argument0 ); 11 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_cache_load.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_load(fname) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Loads the image cache file in as a buffer and checks 5 | whether the file is an image cache that is supported. 6 | This can be used for networking. 7 | 8 | ------------------------- 9 | fname - The name of the file to load. 10 | ------------------------- 11 | 12 | RETURNS the buffer id or -1 if it either fails or the cache is the wrong format. 13 | */ 14 | 15 | if( !file_exists( argument0 ) ){ 16 | show_error( "The image group file '" + string( argument0 ) + "' does not exist" , true ); 17 | return -1; 18 | } 19 | 20 | // Load the cache 21 | var _buf_cache = buffer_load( argument0 ); 22 | 23 | // Detect whether the file is an actual image cache file and check if the version is supported. 24 | if( buffer_read( _buf_cache , buffer_string ) != "IMAGE_CACHE" ){ 25 | show_error( "The file '" + string( argument0 ) + "' for the group '" + string( argument0 ) + "' is not an image cache!" , false ); 26 | buffer_delete( _buf_cache ); 27 | return -1; 28 | } 29 | var _cache_version = buffer_read( _buf_cache , buffer_string ); 30 | switch( _cache_version ){ 31 | case global.ex_image_cache_version: break; // Current version, no converting needed. 32 | 33 | default: 34 | show_error( "The image cache version in file '" + string( argument0 ) + "' is not supported!" , false ); 35 | buffer_delete( _buf_cache ); 36 | return -1; 37 | break; 38 | } 39 | buffer_seek( _buf_cache , buffer_seek_start , 0 ); 40 | return _buf_cache; 41 | 42 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_cache_save.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_save(cache,fname) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Saves the cache as the fname. 5 | 6 | NOTE: Sandboxing restrictions apply 7 | 8 | ------------------------- 9 | cache - The buffer that image_cache_create() or image_cache_load() returned. 10 | fname - The name of the file to save as. 11 | ------------------------- 12 | 13 | RETURNS boolean which shows whether the file was saved and created successfully or not 14 | */ 15 | 16 | buffer_save( argument0 , argument1 ); 17 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_cache_unpack.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_unpack( group , cache ) 2 | /* 3 | Unpacks the image cache into the group. 4 | 5 | NOTE: If the group exists, it will be deleted and rewritten using ONLY the data in the cache. 6 | If the group doesn't exist, no data will be overwritten. 7 | 8 | ------------------------- 9 | group - The group name or the name that image_group_create() returned. 10 | ------------------------- 11 | 12 | RETURNS boolean, which shows whether it unpacks or failed to unpack. 13 | */ 14 | 15 | 16 | // Load the cache 17 | var _buf_cache = argument1; 18 | buffer_seek( _buf_cache , buffer_seek_start , 0 ); 19 | 20 | // Detect whether the file is an actual image cache file and check if the version is supported. 21 | if( buffer_read( _buf_cache , buffer_string ) != "IMAGE_CACHE" ){ 22 | show_error( "The buffer '" + string( argument1 ) + "' for the group '" + string( argument0 ) + "' is not an image cache!" , false ); 23 | return false; 24 | } 25 | var _cache_version = buffer_read( _buf_cache , buffer_string ); 26 | switch( _cache_version ){ 27 | case global.ex_image_cache_version: break; // Current version, no converting needed. 28 | 29 | default: 30 | show_error( "The image cache version '" + string( _cache_version ) + "' in buffer '" + string( argument1 ) + "' is not supported!" , false ); 31 | return false; 32 | break; 33 | } 34 | 35 | // Empty or create the group 36 | if( ds_map_exists( global.m_ex_image , argument0 ) ){ 37 | image_group_clear( argument0 ); 38 | var _l = global.m_ex_image[? argument0 ]; 39 | var _l_image = _l[| 0 ]; 40 | var _l_background = _l[| 1 ]; 41 | } else { 42 | var _l = ds_list_create(); 43 | ds_map_add_list( global.m_ex_image , argument0 , _l ); 44 | var _l_image = ds_list_create(); 45 | var _l_background = ds_list_create(); 46 | _l[| 0 ] = _l_image; // Image data list 47 | _l[| 1 ] = _l_background; // Background list 48 | ds_list_mark_as_list( _l , 0 ); 49 | ds_list_mark_as_list( _l , 1 ); 50 | } 51 | 52 | 53 | // Temp directory for extracting the cache 54 | var _dir = working_directory + ".TEMP_IMAGE_FOLDER/"; 55 | if( directory_exists( _dir ) ){ 56 | directory_destroy( _dir ); 57 | } 58 | directory_create( _dir ); 59 | 60 | // Load the textures 61 | var _tex_count = buffer_read( _buf_cache , buffer_u16 ); 62 | for( var n = 0; n < _tex_count; n++ ){ 63 | var _size = buffer_read( _buf_cache , buffer_u32 ); 64 | buffer_save_ext( _buf_cache , _dir + string( n ) + ".png" , buffer_tell( _buf_cache ) , _size ); 65 | buffer_seek( _buf_cache , buffer_seek_relative , _size ); 66 | 67 | var _back = background_add( _dir + string( n ) + ".png" , false , false ); 68 | ds_list_add( _l_background , _back ); 69 | } 70 | 71 | directory_destroy( _dir ); 72 | 73 | // Load the image information 74 | var _image_count = buffer_read( _buf_cache , buffer_u16 ); 75 | repeat( _image_count ){ 76 | var _id = buffer_read( _buf_cache , buffer_string ); 77 | var _subimg = buffer_read( _buf_cache , buffer_u16 ); 78 | var _width = buffer_read( _buf_cache , buffer_u16 ); 79 | var _height = buffer_read( _buf_cache , buffer_u16 ); 80 | var _xorigin = buffer_read( _buf_cache , buffer_s16 ); 81 | var _yorigin = buffer_read( _buf_cache , buffer_s16 ); 82 | 83 | var _g_image = ds_grid_create( 7 + _subimg * 3 , 1 ); 84 | ds_list_add( _l_image , _g_image ); 85 | 86 | _g_image[# 0 , 0 ] = _id; 87 | _g_image[# 1 , 0 ] = _subimg; 88 | _g_image[# 2 , 0 ] = _width; 89 | _g_image[# 3 , 0 ] = _height; 90 | _g_image[# 4 , 0 ] = _xorigin; 91 | _g_image[# 5 , 0 ] = _yorigin; 92 | 93 | for( var i = 0; i < _subimg; i++ ){ 94 | var _index = buffer_read( _buf_cache , buffer_u16 ); // background 95 | var _x = buffer_read( _buf_cache , buffer_u16 ); // x 96 | var _y = buffer_read( _buf_cache , buffer_u16 ); // y 97 | _g_image[# 6 + i * 3 , 0 ] = _l_background[| _index ]; 98 | _g_image[# 7 + i * 3 , 0 ] = _x; 99 | _g_image[# 8 + i * 3 , 0 ] = _y; 100 | } 101 | 102 | _g_image[# ds_grid_width( _g_image ) - 1 , 0 ] = buffer_read( _buf_cache , buffer_string ); // filename 103 | } 104 | 105 | return true; 106 | 107 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_exists.gml: -------------------------------------------------------------------------------- 1 | ///image_exists(image) 2 | gml_pragma("forceinline"); 3 | 4 | if( ds_exists( argument0 , ds_type_grid ) ){ 5 | if( ds_grid_height( argument0 ) == 1 ){ 6 | return true; 7 | } else { 8 | return false; 9 | } 10 | } else { 11 | return false; 12 | } 13 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_filename.gml: -------------------------------------------------------------------------------- 1 | ///image_get_filename(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# ds_grid_width( argument0 ) - 1 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_height.gml: -------------------------------------------------------------------------------- 1 | ///image_get_height(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 3 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_identifier.gml: -------------------------------------------------------------------------------- 1 | ///image_get_identifier(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 0 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_number.gml: -------------------------------------------------------------------------------- 1 | ///image_get_number(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 1 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_texture.gml: -------------------------------------------------------------------------------- 1 | ///image_get_texture(sprite,subimg) 2 | gml_pragma("forceinline"); 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | return( background_get_texture( argument0[# 6 + _c_subimg , 0 ] ) ); 6 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_texturepage.gml: -------------------------------------------------------------------------------- 1 | ///image_get_texturepage(sprite,subimg) 2 | gml_pragma("forceinline"); 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 5 | return( argument0[# 6 + _c_subimg , 0 ] ); 6 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_uvs.gml: -------------------------------------------------------------------------------- 1 | ///image_get_uvs(spr,subimg) 2 | gml_pragma("forceinline"); 3 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 4 | var _bck = argument0[# 6 + _c_subimg , 0 ]; 5 | 6 | var _ar; 7 | _ar[ 0 ] = argument0[# 7 + _c_subimg , 0 ] / background_get_width( _bck ); 8 | _ar[ 1 ] = argument0[# 8 + _c_subimg , 0 ] / background_get_width( _bck ); 9 | _ar[ 2 ] = (argument0[# 7 + _c_subimg , 0 ] + argument0[# 2 , 0 ]) / background_get_width( _bck ); 10 | _ar[ 3 ] = (argument0[# 8 + _c_subimg , 0 ] + argument0[# 3 , 0 ]) / background_get_width( _bck ); 11 | return( _ar ); 12 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_width.gml: -------------------------------------------------------------------------------- 1 | ///image_get_width(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 2 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_xoffset.gml: -------------------------------------------------------------------------------- 1 | ///image_get_xoffset(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 4 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_get_yoffset.gml: -------------------------------------------------------------------------------- 1 | ///image_get_yoffset(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# 5 , 0 ] ); 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_group_clear.gml: -------------------------------------------------------------------------------- 1 | ///image_group_clear(group) 2 | /* 3 | Clears the image group, does not destroy it. 4 | 5 | ------------------------- 6 | group - The group name. 7 | ------------------------- 8 | 9 | RETURNS a boolean, this shows whether the groups was cleared or not. 10 | */ 11 | if( ds_map_exists( global.m_ex_image , argument0 ) ){ 12 | var _l = global.m_ex_image[? argument0 ]; 13 | var _l_image = _l[| 0 ]; 14 | var _l_background = _l[| 1 ]; 15 | 16 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 17 | ds_grid_destroy( _l_image[| n ] ); 18 | } 19 | 20 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 21 | background_delete( _l_background[| n ] ); 22 | } 23 | ds_list_clear( _l_image ); 24 | ds_list_clear( _l_background ); 25 | return true; 26 | } else { 27 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist" , false ); 28 | return false; 29 | } 30 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_group_create.gml: -------------------------------------------------------------------------------- 1 | ///image_group_create(name) 2 | /* 3 | Creates a new image group 4 | 5 | ------------------------- 6 | name - The group name that you will be using to reference to the group later. 7 | ------------------------- 8 | 9 | RETURNS eiher the name of the new group or -1 which means that the function failed because the grup already exists. 10 | */ 11 | if( !ds_map_exists( global.m_ex_image , argument0 ) ){ 12 | var _l = ds_list_create(); 13 | ds_map_add_list( global.m_ex_image , argument0 , _l ); 14 | _l[| 0 ] = ds_list_create(); // 'Image' list 15 | _l[| 1 ] = ds_list_create(); // Background list 16 | ds_list_mark_as_list( _l , 0 ); 17 | ds_list_mark_as_list( _l , 1 ); 18 | return argument0; 19 | } else { 20 | return -1; 21 | } 22 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_group_destroy.gml: -------------------------------------------------------------------------------- 1 | ///image_group_destroy(group) 2 | if( ds_map_exists( global.m_ex_image , argument0 ) ){ 3 | var _l = global.m_ex_image[? argument0 ]; 4 | var _l_image = _l[| 0 ]; 5 | var _l_background = _l[| 1 ]; 6 | 7 | // If the stream is active, clear it 8 | if( ds_list_size( _l ) == 3 ){ 9 | var _m_stream = _l[| 2 ]; 10 | ds_list_destroy( _m_stream[? "loading" ] ); 11 | ds_list_destroy( _m_stream[? "loading_3d" ] ); 12 | var _p_sprite = _m_stream[? "sprite" ]; 13 | while( ds_priority_size( _p_sprite ) > 0 ){ 14 | var _l = ds_priority_delete_max( _p_sprite ); 15 | sprite_delete( _l[| 0 ] ); 16 | ds_list_destroy( _l ); 17 | } 18 | ds_priority_destroy( _p_sprite ); 19 | 20 | var _p_sprite_3d = _m_stream[? "sprite_3d" ]; 21 | while( ds_priority_size( _p_sprite ) > 0 ){ 22 | var _l = ds_priority_delete_max( _p_sprite_3d ); 23 | sprite_delete( _l[| 0 ] ); 24 | ds_list_destroy( _l ); 25 | } 26 | ds_priority_destroy( _p_sprite_3d ); 27 | 28 | ds_map_destroy( _m_stream ); 29 | } 30 | 31 | // Clear the image info 32 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 33 | ds_grid_destroy( _l_image[| n ] ); 34 | } 35 | 36 | // Clear the images 37 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 38 | background_delete( _l_background[| n ] ); 39 | } 40 | // Remove the data structures 41 | ds_list_destroy( _l_image ); 42 | ds_list_destroy( _l_background ); 43 | ds_list_destroy( _l ); 44 | ds_map_delete( global.m_ex_image , argument0 ); 45 | return true; 46 | } else { 47 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist" , false ); 48 | return false; 49 | } 50 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_group_exists.gml: -------------------------------------------------------------------------------- 1 | ///image_group_exists(group) 2 | return ds_map_exists( global.m_ex_image , argument0 ); 3 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_group_find_image.gml: -------------------------------------------------------------------------------- 1 | ///image_group_find_image(group,identifier) 2 | /* 3 | Returns the image with the identifier. 4 | 5 | ------------------------- 6 | group - The group name or the name that image_group_create() returned. 7 | identifier - The sprite identifier that was applied to the sprite using image_load_add(identifier,...) 8 | ------------------------- 9 | 10 | RETURNS the image or -1 if failed. 11 | */ 12 | 13 | argument1 = string( argument1 ); 14 | if( ds_map_exists( global.m_ex_image , argument0 ) ){ 15 | var _l = global.m_ex_image[? argument0 ]; 16 | var _l_image = _l[| 0 ]; 17 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 18 | var _g = _l_image[| n ]; 19 | if( _g[# 0 , 0 ] == argument1 ){ 20 | return _g; 21 | } 22 | } 23 | return( -1 ); 24 | } else { 25 | show_error( "The group '" + string( argument0 ) + "' you are trying to find the image '" + string( argument1 ) + "' from does not exist" , false ); 26 | return( -1 ); 27 | } 28 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_save.gml: -------------------------------------------------------------------------------- 1 | ///image_save(ind,subimg,fname) 2 | var _c_subimg = ( floor(argument1) mod argument0[# 1 , 0 ] ) * 3; 3 | 4 | var _surf = surface_create( argument0[# 2 , 0 ] , argument0[# 3 , 0 ] ); 5 | 6 | surface_set_target( _surf ); 7 | draw_clear_alpha( 0 , 0 ); 8 | draw_background_part( 9 | argument0[# 6 + _c_subimg , 0 ] , 10 | argument0[# 7 + _c_subimg , 0 ] , 11 | argument0[# 8 + _c_subimg , 0 ] , 12 | argument0[# 2 , 0 ] , 13 | argument0[# 3 , 0 ] , 14 | 0 , 15 | 0 16 | ); 17 | surface_reset_target(); 18 | surface_save( _surf , argument2 ); 19 | surface_free( _surf ); 20 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_save_strip.gml: -------------------------------------------------------------------------------- 1 | ///image_save_strip(ind,fname) 2 | var _subimg_count = argument0[# 1 , 0 ]; 3 | 4 | var _surf = surface_create( argument0[# 2 , 0 ] * _subimg_count , argument0[# 3 , 0 ] ); 5 | surface_set_target( _surf ); 6 | draw_clear_alpha( 0 , 0 ); 7 | for( var n = 0; n < _subimg_count; n++ ){ 8 | draw_background_part( 9 | argument0[# 6 + n*3 , 0 ] , 10 | argument0[# 7 + n*3 , 0 ] , 11 | argument0[# 8 + n*3 , 0 ] , 12 | argument0[# 2 , 0 ] , 13 | argument0[# 3 , 0 ] , 14 | argument0[# 2 , 0 ] * n , 15 | 0 16 | ); 17 | } 18 | surface_reset_target(); 19 | 20 | surface_save( _surf , argument1 ); 21 | surface_free( _surf ); 22 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_set_offset.gml: -------------------------------------------------------------------------------- 1 | ///image_set_offset(ind,xoffset,yoffset) 2 | gml_pragma("forceinline"); 3 | argument0[# 4 , 0 ] = argument1; 4 | argument0[# 5 , 0 ] = argument2; 5 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_add.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_add(group,identifier,fname,subimg,xorig,yorig) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | 4 | // Error checking 5 | if( ds_list_size( _l ) != 3 ){ 6 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 7 | return false; 8 | } 9 | 10 | var _m = _l[| 2 ]; 11 | var _p_sprite = _m[? "sprite" ]; 12 | 13 | var _spr = sprite_add( argument2 , argument3 , false , false , argument4 , argument5 ); 14 | var _priority = floor( ( sprite_get_width( _spr ) + sprite_get_height( _spr ) ) / 2 ); 15 | var _l = ds_list_create(); 16 | 17 | ds_list_add( _l , _spr , string( argument1 ) , argument2 ); 18 | 19 | 20 | if( _priority <= 1 and !file_exists( argument2 ) ){ 21 | var _l_loading = _m[? "loading" ]; 22 | ds_list_add( _l_loading , _l ); 23 | _m[? "finished" ] = false; 24 | } 25 | 26 | 27 | ds_priority_add( 28 | _p_sprite , 29 | _l , 30 | _priority 31 | ); 32 | 33 | // back_req , identifier , subimg , xorig , yorig , link , loaded 34 | 35 | 36 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_add_3d.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_add_3d(group,identifier,fname,subimg,xorig,yorig) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | 4 | // Error checking 5 | if( ds_list_size( _l ) != 3 ){ 6 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 7 | return false; 8 | } 9 | 10 | var _m = _l[| 2 ]; 11 | var _p_sprite_3d = _m[? "sprite_3d" ]; 12 | 13 | var _spr = sprite_add( argument2 , argument3 , false , false , argument4 , argument5 ); 14 | var _priority = floor( ( sprite_get_width( _spr ) + sprite_get_height( _spr ) ) / 2 ); 15 | var _l = ds_list_create(); 16 | 17 | ds_list_add( _l , _spr , string( argument1 ) , argument2 ); 18 | if( _priority <= 1 and !file_exists( argument2 ) ){ 19 | var _l_loading_3d = _m[? "loading_3d" ]; 20 | ds_list_add( _l_loading_3d , _l ); 21 | _m[? "finished" ] = false; 22 | } 23 | 24 | ds_priority_add( 25 | _p_sprite_3d , 26 | _l , 27 | _priority 28 | ); 29 | 30 | // back_req , identifier , subimg , xorig , yorig , link , loaded 31 | 32 | 33 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_finish.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_finish(group) 2 | if( !image_stream_is_received( string( argument0 ) ) ){ 3 | show_error( "The image stream has not finished yet" + chr(13) + "Group: " + string( argument0 ) , true ); 4 | return false; 5 | } 6 | 7 | var _l = global.m_ex_image[? string( argument0 ) ]; 8 | var _l_image = _l[| 0 ]; 9 | var _l_background = _l[| 1 ]; 10 | var _m_stream = _l[| 2 ]; 11 | 12 | var _p_sprite = _m_stream[? "sprite" ]; 13 | var _p_sprite_3d = _m_stream[? "sprite_3d" ]; 14 | var _width = _m_stream[? "w" ]; 15 | var _height = _m_stream[? "h" ]; 16 | var _sep = _m_stream[? "sep" ]; 17 | 18 | var _begin_alpha = draw_get_alpha(); 19 | var _begin_colour = draw_get_colour(); 20 | draw_set_alpha( 1.0 ); 21 | draw_set_colour( c_white ); 22 | 23 | draw_enable_alphablend( false ); 24 | 25 | 26 | // CREATE THE DATA STRUCTURES NECESSARY FOR ADDING THE SPRITES ON THE TEXTURE PAGE 27 | var _l_areas = ds_list_create(); 28 | var _q_trash = ds_queue_create(); 29 | ds_list_add( _l_areas , _sep , _sep , _width - _sep , _height - _sep ); 30 | 31 | var _l_texpage = ds_list_create(); 32 | var _back = background_create_colour( _width , _height , c_black ); 33 | ds_list_add( _l_texpage , 34 | surface_create( _width , _height ) , 35 | _back 36 | ); 37 | 38 | surface_set_target( _l_texpage[| ds_list_size( _l_texpage ) - 2 ] ); 39 | draw_clear_alpha( 0,0 ); // this can be removed 40 | var _spr = -1; 41 | 42 | while( ds_priority_size( _p_sprite ) ){ // LOOP THROUGH THE SPRITES AND ADD THEM TO THE TEXTURE PAGE WHERE POSSIBLE 43 | var _l_img = ds_priority_delete_max( _p_sprite ); 44 | _spr = _l_img[| 0 ]; 45 | 46 | var spr_number = sprite_get_number( _spr ); 47 | var subimg_w = sprite_get_width( _spr ); 48 | var _image_drawn = false; 49 | var _image_maindata_added = false; 50 | for( var i = 0; i < sprite_get_number( _spr ); i++ ){ 51 | var _min_area_size = $10000000000000; 52 | var _min_area_id = -1; 53 | for( var n = 0; n < ds_list_size( _l_areas ); n += 4 ){ 54 | if( subimg_w <= _l_areas[| n + 2 ] and sprite_get_height( _spr ) <= _l_areas[| n + 3 ] ){ 55 | if( ( ( _l_areas[| n + 2 ] + _l_areas[| n + 3 ] ) / 2 ) < _min_area_size ){ 56 | _min_area_size = ( _l_areas[| n + 2 ] + _l_areas[| n + 3 ] ) / 2; 57 | _min_area_id = n; 58 | } 59 | } 60 | } 61 | 62 | // DRAW THE IMAGES ON THE TEXTURE PAGE 63 | if( _min_area_id != -1 ){ 64 | n = _min_area_id; 65 | draw_sprite_part( _spr , i , 0 , 0 , subimg_w , sprite_get_height( _spr ) , _l_areas[| n ] , _l_areas[| n + 1 ] ); 66 | 67 | _image_drawn = true; 68 | 69 | if( !_image_maindata_added ){ 70 | // CREATE THE GRID FOR THE IMAGE DATA 71 | var _g_image = ds_grid_create( 7 + sprite_get_number( _spr ) * 3 , 1 ); 72 | ds_list_add( _l_image , _g_image ); 73 | var _pos = 0; 74 | // ADD THE MAIN DATA OF THE SPRITE TO THE SPRITE DATA STRUCTURE 75 | _g_image[# _pos , 0 ] = _l_img[| 1 ]; _pos++; // IDENTIFIER 76 | _g_image[# _pos , 0 ] = sprite_get_number( _spr ); _pos++; // SUBIMAGE 77 | _g_image[# _pos , 0 ] = subimg_w; _pos++; // SUBIMAGE WIDTH 78 | _g_image[# _pos , 0 ] = sprite_get_height( _spr ); _pos++; // SUBIMAGE HEIGHT 79 | _g_image[# _pos , 0 ] = sprite_get_xoffset( _spr ); _pos++;// XORIGIN 80 | _g_image[# _pos , 0 ] = sprite_get_yoffset( _spr ); _pos++;// YORIGIN 81 | _image_maindata_added = true; 82 | } 83 | 84 | // ADD THE SUBIMAGE OF THE SPRITE TO THE SPRITE DATA STRUCTURE 85 | _g_image[# _pos , 0 ] = _back; _pos++; // BACKGROUND 86 | _g_image[# _pos , 0 ] = _l_areas[| n ]; _pos++; // X 87 | _g_image[# _pos , 0 ] = _l_areas[| n + 1 ]; _pos++; // Y 88 | 89 | if( i == sprite_get_number( _spr ) - 1 ){ 90 | _g_image[# _pos , 0 ] = _l_img[| 2 ]; // FNAME 91 | } 92 | 93 | // ADD THE NEW EMPTY AREAS TO THE AREA LIST 94 | if( sprite_get_height( _spr ) < _l_areas[| n + 3 ] ){ // Y W H 95 | ds_list_add( _l_areas , _l_areas[| n ] , _l_areas[| n + 1 ] + sprite_get_height( _spr ) + _sep , _l_areas[| n + 2 ] , _l_areas[| n + 3 ] - sprite_get_height( _spr ) - _sep ); 96 | } 97 | if( subimg_w < _l_areas[| n + 2 ] ){ // X Y W H 98 | ds_list_add( _l_areas , _l_areas[| n ] + subimg_w + _sep , _l_areas[| n + 1 ] , _l_areas[| n + 2 ] - subimg_w - _sep , sprite_get_height( _spr ) ); 99 | } 100 | 101 | // REMOVE THE CURRENT AREA FROM THE AREA LIST 102 | repeat( 4 ) 103 | ds_list_delete( _l_areas , n ); 104 | } else { 105 | ds_list_clear( _l_areas ); 106 | ds_list_add( _l_areas , _sep , _sep , _width - _sep , _height - _sep ); 107 | 108 | _back = background_create_colour( _width , _height , c_black ); 109 | ds_list_add( _l_texpage , surface_create( _width , _height ) , _back); 110 | surface_reset_target(); 111 | surface_set_target( _l_texpage[| ds_list_size( _l_texpage ) - 2 ] ); 112 | draw_clear_alpha( 0,0 ); 113 | 114 | i--; 115 | } 116 | } 117 | 118 | if( ds_list_size( _l_areas ) == 0 ){ 119 | //show_debug_message( "Warning: Something went wrong, creating another texturepage" ); 120 | 121 | ds_list_clear( _l_areas ); 122 | ds_list_add( _l_areas , _sep , _sep , _width - _sep , _height - _sep ); 123 | 124 | _back = background_create_colour( _width , _height , c_black ); 125 | ds_list_add( _l_texpage , surface_create( _width , _height ) , _back ); 126 | surface_reset_target(); 127 | surface_set_target( _l_texpage[| ds_list_size( _l_texpage ) - 2 ] ); 128 | } 129 | if( _image_drawn ){ 130 | ds_list_destroy( _l_img ); 131 | ds_queue_enqueue( _q_trash , _spr ); 132 | } 133 | } 134 | surface_reset_target(); 135 | 136 | // Clear memory 137 | while( ds_queue_size( _q_trash ) > 0 ){ 138 | sprite_delete( ds_queue_dequeue( _q_trash ) ); 139 | } 140 | // CREATE THE BACKGROUND (TEXTUREPAGE) 141 | for( var n = 0; n < ds_list_size( _l_texpage ); n += 2 ){ 142 | var _back_temp = background_create_from_surface( _l_texpage[| n ] , 0 , 0 , surface_get_width( _l_texpage[| n ] ) , surface_get_height( _l_texpage[| n ] ) , false , false ); 143 | background_assign( _l_texpage[| n + 1 ] , _back_temp ); 144 | ds_list_add( _l_background , _l_texpage[| n + 1 ] ); 145 | background_delete( _back_temp ); 146 | surface_free( _l_texpage[| n ] ); 147 | } 148 | 149 | 150 | // 3D specific images. 151 | while( ds_priority_size( _p_sprite_3d ) > 0 ){ 152 | var _l_img = ds_priority_delete_max( _p_sprite_3d ); 153 | var _spr = _l_img[| 0 ]; 154 | var _identifier = _l_img[| 1 ]; 155 | var _subimg = sprite_get_number( _spr ); 156 | var _xorig = sprite_get_xoffset( _spr ); 157 | var _yorig = sprite_get_yoffset( _spr );; 158 | var _w = sprite_get_width( _spr ); 159 | var _surface = surface_create( _w , sprite_get_height( _spr ) ); 160 | 161 | var _g_image = ds_grid_create( 7 + _subimg * 3 , 1 ); 162 | ds_list_add( _l_image , _g_image ); 163 | var _pos = 0; 164 | _g_image[# _pos , 0 ] = _identifier; _pos++; // IDENTIFIER 165 | _g_image[# _pos , 0 ] = _subimg; _pos++; // SUBIMAGE 166 | _g_image[# _pos , 0 ] = _w; _pos++; // SUBIMAGE WIDTH 167 | _g_image[# _pos , 0 ] = sprite_get_height( _spr ); _pos++; // SUBIMAGE HEIGHT 168 | _g_image[# _pos , 0 ] = _xorig; _pos++; // XORIGIN 169 | _g_image[# _pos , 0 ] = _yorig; _pos++; // YORIGIN 170 | 171 | for( var n = 0; n < _subimg; n++ ){ 172 | surface_set_target( _surface ); 173 | draw_clear_alpha( c_red , 1 ); 174 | draw_sprite_part( _spr , n , 0 , 0 , n * _w + _w , sprite_get_height( _spr ) , 0 , 0 ); 175 | surface_reset_target(); 176 | var _back_subimg = background_create_from_surface( _surface , 0 , 0 , _w , sprite_get_height( _spr ) , false , false ); 177 | ds_list_add( _l_background , _back_subimg ); 178 | _g_image[# _pos , 0 ] = _back_subimg; _pos++; // BACKGROUND 179 | _g_image[# _pos , 0 ] = 0; _pos++; // X 180 | _g_image[# _pos , 0 ] = 0; _pos++; // Y 181 | } 182 | _g_image[# ds_grid_width( _g_image ) - 1 , 0 ] = _l_img[| 2 ]; // FNAME 183 | 184 | surface_free( _surface ); 185 | sprite_delete( _spr ); 186 | ds_list_destroy( _l_img ); 187 | } 188 | draw_enable_alphablend( true ); 189 | 190 | draw_set_alpha( _begin_alpha ); 191 | draw_set_colour( _begin_colour ); 192 | 193 | // Clear memory 194 | ds_list_destroy( _l_areas ); 195 | ds_priority_destroy( _p_sprite ); 196 | ds_priority_destroy( _p_sprite_3d ); 197 | ds_list_destroy( _m_stream[? "loading" ] ); 198 | ds_list_destroy( _m_stream[? "loading_3d" ] ); 199 | ds_queue_destroy( _q_trash ); 200 | ds_list_destroy( _l_texpage ); 201 | ds_list_delete( global.m_ex_image[? string( argument0 ) ] , 2 ); 202 | 203 | return true; 204 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_is_active.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_is_active(group) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | return ds_list_size( _l ) == 3; 4 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_is_received.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_is_received(group) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | if( ds_list_size( _l ) != 3 ){ 4 | show_error( "Image stream not started." + chr(13) + "Group: " + string( argument0 ) , true ); 5 | return false; 6 | } 7 | var _m = _l[| 2 ]; 8 | return _m[? "finished" ]; 9 | 10 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_progress.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_progress(group) 2 | /* 3 | Returns a value from 0-1, the larger the value, the more has been loaded. 4 | */ 5 | var _l = global.m_ex_image[? argument0 ]; 6 | if( ds_list_size( _l ) != 3 ){ 7 | show_error( "Image stream not started." + chr(13) + "Group: " + string( argument0 ) , true ); 8 | } 9 | var _m = _l[| 2 ]; 10 | return _m[? "progress" ]; 11 | 12 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_receive.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_receive(group) 2 | if( !ds_exists( async_load , ds_type_map ) ){ 3 | show_error( "image_stream_receive() can only be used in Image Loaded event" , true ); 4 | return false; 5 | } 6 | 7 | // Async data 8 | var _id = async_load[? "id" ]; 9 | var _fname = async_load[? "filename" ]; 10 | var _status = async_load[? "status" ]; 11 | 12 | // Image stream data 13 | var _l = global.m_ex_image[? argument0 ]; 14 | if( ds_list_size( _l ) != 3 ){ 15 | show_error( "Image stream not started." + chr(13) + "Group: " + string( argument0 ) , true ); 16 | } 17 | var _m = _l[| 2 ]; 18 | var _l_loading = _m[? "loading" ]; 19 | var _l_loading_3d = _m[? "loading_3d" ]; 20 | var _p_sprite = _m[? "sprite" ]; 21 | var _p_sprite_3d = _m[? "sprite_3d" ]; 22 | 23 | 24 | // Check if we got the data. 25 | for( var n = 0; n < ds_list_size( _l_loading ); n++ ){ 26 | var _l_sprite = _l_loading[| n ]; 27 | if( _l_sprite[| 0 ] == _id ){ 28 | if( _status >= 0 ){ 29 | show_debug_message( "RECEIVED " + string( _l_sprite[| 2 ] ) ); 30 | ds_list_delete( _l_loading , n ); 31 | n--; 32 | var _priority = ( sprite_get_width( _id ) + sprite_get_height( _id ) ) / 2; 33 | ds_priority_change_priority( _p_sprite , _l_sprite , _priority ); 34 | continue; 35 | } else { 36 | show_debug_message( "Failed to load image, requesting again." + chr(13) + "Identifier: " + string( _l_sprite[| 1 ] ) + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Error: " + string( _status ) ); 37 | 38 | _l_sprite[| 0 ] = sprite_add( _l_sprite[| 2 ] , sprite_get_number( _id ) , false , false , sprite_get_xoffset( _id ) , sprite_get_yoffset( _id ) ); 39 | sprite_delete( _id ); 40 | } 41 | } 42 | } 43 | 44 | for( var n = 0; n < ds_list_size( _l_loading_3d ); n++ ){ 45 | var _l_sprite = _l_loading_3d[| n ]; 46 | if( _l_sprite[| 0 ] == _id ){ 47 | if( _status >= 0 ){ 48 | show_debug_message( "RECEIVED " + string( _l_sprite[| 2 ] ) ); 49 | ds_list_delete( _l_loading_3d , n ); 50 | n--; 51 | var _priority = ( sprite_get_width( _id ) + sprite_get_height( _id ) ) / 2; 52 | ds_priority_change_priority( _p_sprite_3d , _l_sprite , _priority ); 53 | continue; 54 | } else { 55 | show_debug_message( "Failed to load image, requesting again." + chr(13) + "Identifier: " + string( _l_sprite[| 1 ] ) + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Error: " + string( _status ) ); 56 | 57 | _l_sprite[| 0 ] = sprite_add( _l_sprite[| 2 ] , sprite_get_number( _id ) , false , false , sprite_get_xoffset( _id ) , sprite_get_yoffset( _id ) ); 58 | sprite_delete( _id ); 59 | } 60 | } 61 | } 62 | 63 | var _total = ds_priority_size( _p_sprite ) + ds_priority_size( _p_sprite_3d ); 64 | if( _total != 0 ){ 65 | var _loaded = _total - ( ds_list_size( _l_loading ) + ds_list_size( _l_loading_3d ) ); 66 | 67 | // FIX PROGRESS 68 | _m[? "progress" ] = _loaded / _total; 69 | _m[? "finished" ] = _loaded == _total; 70 | } 71 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_stream_start.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_start(group,tex_page_width,tex_page_height,tex_offset) 2 | /* 3 | returns boolean; 4 | */ 5 | if( !ds_map_exists( global.m_ex_image , argument0 ) ){ 6 | show_error( "Unknown image group '" + string( argument0 ) + "'" , true ); 7 | return false; 8 | } 9 | var _l = global.m_ex_image[? argument0 ]; 10 | if( ds_list_size( _l ) != 2 ){ 11 | if( ds_list_size( _l ) == 3 and ds_exists( _l[| 2 ] , ds_type_map ) ){ 12 | show_error( "The image stream of the group '" + string( argument0 ) + "' has already started" , true ); 13 | return false; 14 | } else { 15 | show_error( "Invalid group '" + string( argument0 ) + "', the data might have been edited from outside." , true ); 16 | return false; 17 | } 18 | } 19 | 20 | var _m_stream = ds_map_create(); 21 | ds_list_add( _l , _m_stream ); 22 | ds_list_mark_as_map( _l , 2 ); 23 | 24 | _m_stream[? "w" ] = argument1; 25 | _m_stream[? "h" ] = argument2; 26 | _m_stream[? "sep" ] = argument3; 27 | /*ds_map_add_list( _m_stream , "l_back" , ds_list_create() ); 28 | ds_map_add_list( _m_stream , "l_back_3d" , ds_list_create() );*/ 29 | _m_stream[? "sprite" ] = ds_priority_create(); 30 | _m_stream[? "sprite_3d" ] = ds_priority_create(); 31 | _m_stream[? "loading" ] = ds_list_create(); 32 | _m_stream[? "loading_3d" ]= ds_list_create(); 33 | _m_stream[? "finished" ] = true; 34 | _m_stream[? "progress" ] = 0; 35 | 36 | return true; 37 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_system_cleanup.gml: -------------------------------------------------------------------------------- 1 | ///image_system_cleanup() 2 | if( ds_exists( global.m_ex_image , ds_type_map ) ){ 3 | while( ds_map_size( global.m_ex_image ) > 0 ){ 4 | var _key = ds_map_find_first( global.m_ex_image ); 5 | image_group_destroy( _key ); 6 | } 7 | ds_map_destroy( global.m_ex_image ); 8 | draw_texture_flush(); 9 | show_debug_message( "IMAGE SYSTEM: Cleaned all image system memory" ); 10 | } else { 11 | show_debug_message( "IMAGE SYSTEM: Failed to clean image system, it is already clean"); 12 | } 13 | -------------------------------------------------------------------------------- /Braffolk Image Loader.gmx/scripts/image_system_init.gml: -------------------------------------------------------------------------------- 1 | ///image_system_init() 2 | global.m_ex_image = ds_map_create(); 3 | global.ex_image_cache_version = "1.0"; 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 @braffolk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Braffolk's Image Loader

2 | 3 |

Written by Braffolk#1160

4 |

https://marketplace.yoyogames.com/assets/4543/custom-sprite-framework

5 |

Documentation

6 | 7 | 8 | 9 |   10 | 11 | Game Maker creates an extra texture page for every sprite and subimage that the user loads into their game using the function sprite_add, this often results in terrible performance issues due to hundreds or sometimes even thousands of texture swaps. This collection of scripts is meant to fix this problem by giving full control over custom texture pages, groups and memory management. 12 | 13 |

Features

14 | 15 | * Now supports bounding box generation and modification. 16 | * Custom texture groups for easier organisation and memory management. 17 | * Supports adding sprites from sheets, subimage files, strips and the internet. 18 | * Easy texture page creation via an algorithm that places everything neatly on the texturepage, you simply have to specify * what to load. 19 | * Now supports bounding box generation and modification. 20 | * Supports adding sprites from sheets, subimage files, strips and the internet. 21 | * Custom texture groups for easier organisation and memory management. 22 | * Easy texture page creation via an algorithm that does everything, you simply have to specify what to load. 23 | * Image caches for storing, faster loading and sending texture groups via networking. 24 | * Functions that can be used the same as the GM sprite functions. 25 | * All GM built in sprite system drawing functionalities and more. 26 | * Support for async loading. 27 | 28 | 29 |

Issues & Limitations

30 | 31 | This is optimised for YYC and will be pretty much as fast as built in sprite functionality, however, on the regular windows export it will be still be way faster than sprites that were imported using sprite_add but will be a bit slower than built in sprites. The extension only uses GML. The images refer to texture pages that are stored in backgrounds. As expected, backgrounds & sprites added with background_add or sprite_add take up around two times more memory than a built-in ones would, hence custom texture pages too take more memory than built-in ones. 32 | 33 |   34 | 35 |

36 | 37 | 38 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_hdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_hdpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_ldpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_ldpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_mdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_mdpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xhdpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xxhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xxhdpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xxxhdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/icon_xxxhdpi.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/icons/ouyaIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/icons/ouyaIcon.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/portrait_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/portrait_splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Android/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Android/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/HTML5/fav.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/HTML5/fav.ico -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/HTML5/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/HTML5/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Linux/icon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Linux/icon64.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Linux/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Linux/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Mac/icon512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Mac/icon512.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Mac/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Mac/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/Win8NativeRunner_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/Win8NativeRunner_TemporaryKey.pfx -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/Windows8_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/Windows8_TemporaryKey.pfx -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo150.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo30.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo310.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/logos/logo50.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/Windows8/splashscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/Windows8/splashscreen.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/WinUWPRunner_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/WinUWPRunner_TemporaryKey.pfx -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/LargeLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/LargeLogo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/Logo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/SmallLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/SmallLogo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/SmallishLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/SmallishLogo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/WideLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/WindowsUAP/logos/WideLogo.scale-100.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPadRetinaSplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPadRetinaSplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPadRetinaSplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPadRetinaSplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPadsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPadsplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPadsplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPadsplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone5splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone5splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone5splashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone5splashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6PlusSplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6PlusSplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6PlusSplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6PlusSplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6Splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6Splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6SplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone6SplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7PlusSplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7PlusSplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7PlusSplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7PlusSplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7Splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7Splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7SplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone7SplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8PlusSplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8PlusSplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8PlusSplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8PlusSplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8Splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8Splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8SplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhone8SplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneRetinasplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneRetinasplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneRetinasplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneRetinasplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneSEsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneSEsplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneSEsplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneSEsplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneXSplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneXSplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneXSplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhoneXSplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhonesplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhonesplash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/iPhonesplashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/iPhonesplashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_152.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_76.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_pro_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/ipad_pro_167.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/iphone_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/iphone_120.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/iphone_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/app/iphone_180.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon114.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon120.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon144.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon152.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon167.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon57.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon72.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/icon76.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/itunes/itunes_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/itunes/itunes_1024.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/ipad_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/ipad_20.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/ipad_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/ipad_40.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/iphone_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/iphone_40.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/iphone_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/notification/iphone_60.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/ipad_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/ipad_29.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/ipad_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/ipad_58.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/iphone_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/iphone_58.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/iphone_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/settings/iphone_87.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/ipad_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/ipad_40.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/ipad_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/ipad_80.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/iphone_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/iphone_120.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/iphone_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/icons/spotlight/iphone_80.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/iOS/splashPortrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/iOS/splashPortrait.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/License.txt -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/RunnerInstaller.nsi: -------------------------------------------------------------------------------- 1 | ; RunnerInstaller.nsi 2 | ; 3 | ; This script is based on example1.nsi, but it remember the directory, 4 | ; has uninstall support and (optionally) installs start menu shortcuts. 5 | ; 6 | ; It will install example2.nsi into a directory that the user selects, 7 | 8 | ;-------------------------------- 9 | !include MUI2.nsh 10 | 11 | !ifndef FULL_VERSION 12 | !define FULL_VERSION "1.0.0.0" 13 | !endif 14 | !ifndef SOURCE_DIR 15 | !define SOURCE_DIR "C:\source\temp\InstallerTest\runner" 16 | !endif 17 | !ifndef INSTALLER_FILENAME 18 | !define INSTALLER_FILENAME "C:\source\temp\InstallerTest\RunnerInstaller.exe" 19 | !endif 20 | 21 | !ifndef MAKENSIS 22 | !define MAKENSIS "%appdata%\GameMaker-Studio\makensis" 23 | !endif 24 | 25 | !ifndef COMPANY_NAME 26 | !define COMPANY_NAME "" 27 | !endif 28 | 29 | !ifndef COPYRIGHT_TXT 30 | !define COPYRIGHT_TXT "(c)Copyright 2013" 31 | !endif 32 | 33 | !ifndef FILE_DESC 34 | !define FILE_DESC "Created with GameMaker:Studio" 35 | !endif 36 | 37 | !ifndef LICENSE_NAME 38 | !define LICENSE_NAME "License.txt" 39 | !endif 40 | 41 | !ifndef ICON_FILE 42 | !define ICON_FILE "icon.ico" 43 | !endif 44 | 45 | !ifndef IMAGE_FINISHED 46 | !define IMAGE_FINISHED "Runner_finish.bmp" 47 | !endif 48 | 49 | !ifndef IMAGE_HEADER 50 | !define IMAGE_HEADER "Runner_header.bmp" 51 | !endif 52 | 53 | !ifndef PRODUCT_NAME 54 | !define PRODUCT_NAME "Runner" 55 | !endif 56 | 57 | !define APP_NAME "${PRODUCT_NAME}" 58 | !define SHORT_NAME "${PRODUCT_NAME}" 59 | 60 | !ifndef EXE_NAME 61 | !define EXE_NAME "${PRODUCT_NAME}" 62 | !endif 63 | 64 | 65 | ;;USAGE: 66 | !define MIN_FRA_MAJOR "2" 67 | !define MIN_FRA_MINOR "0" 68 | !define MIN_FRA_BUILD "*" 69 | 70 | !addplugindir "." 71 | 72 | ;-------------------------------- 73 | 74 | ; The name of the installer 75 | Name "${APP_NAME}" 76 | Caption "${APP_NAME}" 77 | BrandingText "${APP_NAME}" 78 | 79 | ; The file to write 80 | OutFile "${INSTALLER_FILENAME}" 81 | 82 | ; The default installation directory 83 | InstallDir "$PROFILE\${APP_NAME}" 84 | 85 | ; Registry key to check for directory (so if you install again, it will 86 | ; overwrite the old one automatically) 87 | InstallDirRegKey HKCU "Software\Runner" "Install_Dir" 88 | 89 | ; Request application privileges for Windows Vista 90 | RequestExecutionLevel admin 91 | 92 | 93 | VIProductVersion "${FULL_VERSION}" 94 | VIAddVersionKey /LANG=1033 "FileVersion" "${FULL_VERSION}" 95 | VIAddVersionKey /LANG=1033 "ProductVersion" "${FULL_VERSION}" 96 | VIAddVersionKey /LANG=1033 "ProductName" "${PRODUCT_NAME}" 97 | VIAddVersionKey /LANG=1033 "CompanyName" "${PRODUCT_PUBLISHER}" 98 | VIAddVersionKey /LANG=1033 "LegalCopyright" "${COPYRIGHT_TXT}" 99 | VIAddVersionKey /LANG=1033 "FileDescription" "${FILE_DESC}" 100 | 101 | 102 | 103 | !define MUI_HEADERIMAGE 104 | !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH 105 | !define MUI_ICON "${ICON_FILE}" 106 | !define MUI_WELCOMEFINISHPAGE_BITMAP "${IMAGE_FINISHED}" 107 | !define MUI_HEADERIMAGE_BITMAP "${IMAGE_HEADER}" 108 | !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH 109 | 110 | 111 | ;-------------------------------- 112 | 113 | ; Pages 114 | !insertmacro MUI_PAGE_LICENSE "${LICENSE_NAME}" 115 | !insertmacro MUI_PAGE_COMPONENTS 116 | !insertmacro MUI_PAGE_DIRECTORY 117 | !insertmacro MUI_PAGE_INSTFILES 118 | # These indented statements modify settings for MUI_PAGE_FINISH 119 | !define MUI_FINISHPAGE_NOAUTOCLOSE 120 | !define MUI_FINISHPAGE_RUN_TEXT "Start ${PRODUCT_NAME}" 121 | !define MUI_FINISHPAGE_RUN "$INSTDIR\${EXE_NAME}.exe" 122 | !insertmacro MUI_PAGE_FINISH 123 | 124 | Var DirectXSetupError 125 | 126 | UninstPage uninstConfirm 127 | UninstPage instfiles 128 | 129 | !insertmacro MUI_LANGUAGE "English" 130 | ;-------------------------------- 131 | 132 | ; The stuff to install 133 | Section `${APP_NAME}` 134 | SectionIn RO 135 | 136 | ; Set output path to the installation directory. 137 | SetOutPath $INSTDIR 138 | 139 | ; Put file there 140 | File "${LICENSE_NAME}" 141 | File /r "${SOURCE_DIR}\*.*" 142 | 143 | ; Write the uninstall keys for Windows 144 | WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "DisplayName" "${APP_NAME}" 145 | WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"' 146 | WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoModify" 1 147 | WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoRepair" 1 148 | WriteUninstaller "uninstall.exe" 149 | 150 | SectionEnd 151 | 152 | ; Optional section (can be disabled by the user) 153 | Section "Start Menu Shortcuts" 154 | 155 | CreateDirectory "$SMPROGRAMS\${APP_NAME}" 156 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 157 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" "" "$INSTDIR\${EXE_NAME}.exe" 158 | CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} License.lnk" "notepad.exe" "$INSTDIR\License.txt" 159 | 160 | SectionEnd 161 | 162 | 163 | ; Optional section (can be enabled by the user) 164 | Section /o "Desktop shortcut" 165 | 166 | CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" "" 167 | 168 | SectionEnd 169 | 170 | 171 | ;-------------------------------- 172 | 173 | ; Uninstaller 174 | 175 | Section "Uninstall" 176 | ; Remove registry keys 177 | DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" 178 | 179 | ; Remove files and uninstaller (everything) 180 | RMDir /r "$INSTDIR" 181 | 182 | ; Remove desktop icon 183 | Delete "$DESKTOP\${APP_NAME}.lnk" 184 | 185 | ; Remove shortcuts, if any 186 | Delete "$SMPROGRAMS\${APP_NAME}\*.*" 187 | 188 | ; Remove directories used 189 | RMDir "$SMPROGRAMS\${APP_NAME}" 190 | RMDir "$INSTDIR" 191 | 192 | SectionEnd 193 | 194 | 195 | ;-------------------------------- 196 | ; 197 | ; This should be the LAST section available.... 198 | ; 199 | Section "DirectX Install" SEC_DIRECTX 200 | 201 | SectionIn RO 202 | 203 | SetOutPath "$TEMP" 204 | File "${MAKENSIS}\dxwebsetup.exe" 205 | DetailPrint "Running DirectX Setup..." 206 | ExecWait '"$TEMP\dxwebsetup.exe" /Q' $DirectXSetupError 207 | DetailPrint "Finished DirectX Setup" 208 | 209 | Delete "$TEMP\dxwebsetup.exe" 210 | 211 | SetOutPath "$INSTDIR" 212 | 213 | SectionEnd 214 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/Runner_Icon_256.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/Runner_Icon_256.ico -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/Runner_finish.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/Runner_finish.bmp -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/Runner_header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/Runner_header.bmp -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/runner_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/runner_icon.ico -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/Configs/Default/windows/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/image_framework_V2_9.gmx/Configs/Default/windows/splash.png -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/help.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Arial;}} 2 | {\colortbl ;\red221\green221\blue221;} 3 | \viewkind4\uc1\pard\cf1\fs24\par 4 | } 5 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/image_framework_V2_9.project.gmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Configs\Default 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | help.rtf 90 | 91 | 92 | 0 93 | 94 | 0 95 | 96 | 97 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image.gml: -------------------------------------------------------------------------------- 1 | ///draw_image(image,subimg,x,y) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_part( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ], 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ], 9 | argument0[# __ISG_IMG.WIDTH, 0 ], 10 | argument0[# __ISG_IMG.HEIGHT, 0 ], 11 | argument2 - argument0[# __ISG_IMG.XORIGIN, 0 ], 12 | argument3 - argument0[# __ISG_IMG.YORIGIN, 0 ] 13 | ); 14 | 15 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_ext(image,subimg,x,y,xscale,yscale,rot,colour,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_general( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ], 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ], 9 | argument0[# __ISG_IMG.WIDTH, 0 ], 10 | argument0[# __ISG_IMG.HEIGHT, 0 ], 11 | argument2 - lengthdir_x( argument0[# __ISG_IMG.XORIGIN, 0 ], argument6 )*argument4 - 12 | lengthdir_x( argument0[# __ISG_IMG.YORIGIN, 0 ], argument6 - 90 )*argument5, 13 | argument3 - lengthdir_y( argument0[# __ISG_IMG.XORIGIN, 0 ], argument6 )*argument4 - 14 | lengthdir_y( argument0[# __ISG_IMG.YORIGIN, 0 ], argument6 - 90 )*argument5, 15 | argument4, 16 | argument5, 17 | argument6, 18 | argument7, 19 | argument7, 20 | argument7, 21 | argument7, 22 | argument8 23 | ); 24 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_general.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_general( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] + argument2, 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] + argument3, 9 | argument4, 10 | argument5, 11 | argument6, 12 | argument7, 13 | argument8, 14 | argument9, 15 | argument10, 16 | argument11, 17 | argument12, 18 | argument13, 19 | argument14, 20 | argument15 21 | ); 22 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_part.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_part(sprite,subimg,left,top,width,height,x,y) 2 | gml_pragma("forceinline"); // YYC performance boost but it inflates the final exe size 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_part( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] + argument2, 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] + argument3, 9 | argument4, 10 | argument5, 11 | argument6, 12 | argument7 13 | ); 14 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_part_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_part_ext(sprite,subimg,left,top,width,height,x,y,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_part_ext( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] + argument2, 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] + argument3, 9 | argument4, 10 | argument5, 11 | argument6, 12 | argument7, 13 | argument8, 14 | argument9, 15 | argument10, 16 | argument11 17 | ); 18 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_pos.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 6 | 7 | var _u_x = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] / background_get_width( _bck ); 8 | var _u_y = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] / background_get_height( _bck ); 9 | var _u_w = argument0[# __ISG_IMG.WIDTH, 0 ] / background_get_width( _bck ); 10 | var _u_h = argument0[# __ISG_IMG.HEIGHT, 0 ] / background_get_height( _bck ); 11 | 12 | draw_set_alpha( argument10 ); 13 | draw_primitive_begin_texture( pr_trianglelist, background_get_texture( _bck ) ); 14 | draw_vertex_texture( argument2, argument3, _u_x, _u_y ); 15 | draw_vertex_texture( argument4, argument5, _u_x+_u_w, _u_y ); 16 | draw_vertex_texture( argument6, argument7, _u_x+_u_w, _u_y+_u_h ); 17 | 18 | draw_vertex_texture( argument8, argument9, _u_x, _u_y+_u_h ); 19 | draw_vertex_texture( argument2, argument3, _u_x, _u_y ); 20 | draw_vertex_texture( argument6, argument7, _u_x+_u_w, _u_y+_u_h ); 21 | draw_primitive_end(); 22 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_pos_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos_ext(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,rot,col,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 6 | 7 | var _u_x = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] / background_get_width( _bck ); 8 | var _u_y = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] / background_get_height( _bck ); 9 | var _u_w = argument0[# __ISG_IMG.WIDTH, 0 ] / background_get_width( _bck ); 10 | var _u_h = argument0[# __ISG_IMG.HEIGHT, 0 ] / background_get_height( _bck ); 11 | 12 | var _x1 = argument2; 13 | var _y1 = argument3; 14 | var _dis1 = point_distance( _x1, _y1, argument4, argument5 ); 15 | var _dir1 = point_direction( _x1, _y1, argument4, argument5 ) + argument10; 16 | var _dis2 = point_distance( _x1, _y1, argument6, argument7 ); 17 | var _dir2 = point_direction( _x1, _y1, argument6, argument7 ) + argument10; 18 | var _dis3 = point_distance( _x1, _y1, argument8, argument9 ); 19 | var _dir3 = point_direction( _x1, _y1, argument8, argument9 ) + argument10; 20 | 21 | draw_primitive_begin_texture( pr_trianglelist, background_get_texture( _bck ) ); 22 | draw_vertex_texture_colour( _x1, _y1, _u_x, _u_y, argument11, argument12 ); 23 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis1, _dir1 ), _y1 + lengthdir_y( _dis1, _dir1 ), _u_x+_u_w, _u_y, argument11, argument12 ); 24 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2, _dir2 ), _y1 + lengthdir_y( _dis2, _dir2 ), _u_x+_u_w, _u_y+_u_h, argument11, argument12 ); 25 | 26 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis3, _dir3 ), _y1 + lengthdir_y( _dis3, _dir3 ), _u_x, _u_y+_u_h, argument11, argument12 ); 27 | draw_vertex_texture_colour( _x1, _y1, _u_x, _u_y, argument11, argument12 ); 28 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2, _dir2 ), _y1 + lengthdir_y( _dis2, _dir2 ), _u_x+_u_w, _u_y+_u_h, argument11, argument12 ); 29 | draw_primitive_end(); 30 | 31 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_pos_general.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_pos_general(sprite,subimg,x1,y1,x2,y2,x3,y3,x4,y4,rot,c1,c2,c3,c4,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | 5 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 6 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 7 | 8 | var _u_x = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ] / background_get_width( _bck ); 9 | var _u_y = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ] / background_get_height( _bck ); 10 | var _u_w = argument0[# __ISG_IMG.WIDTH, 0 ] / background_get_width( _bck ); 11 | var _u_h = argument0[# __ISG_IMG.HEIGHT, 0 ] / background_get_height( _bck ); 12 | 13 | var _x1 = argument2; 14 | var _y1 = argument3; 15 | var _dis1 = point_distance( _x1, _y1, argument4, argument5 ); 16 | var _dir1 = point_direction( _x1, _y1, argument4, argument5 ) + argument10; 17 | var _dis2 = point_distance( _x1, _y1, argument6, argument7 ); 18 | var _dir2 = point_direction( _x1, _y1, argument6, argument7 ) + argument10; 19 | var _dis3 = point_distance( _x1, _y1, argument8, argument9 ); 20 | var _dir3 = point_direction( _x1, _y1, argument8, argument9 ) + argument10; 21 | 22 | draw_primitive_begin_texture( pr_trianglelist, background_get_texture( _bck ) ); 23 | draw_vertex_texture_colour( _x1, _y1, _u_x, _u_y, argument11, argument15 ); 24 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis1, _dir1 ), _y1 + lengthdir_y( _dis1, _dir1 ), _u_x+_u_w, _u_y, argument12, argument15 ); 25 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2, _dir2 ), _y1 + lengthdir_y( _dis2, _dir2 ), _u_x+_u_w, _u_y+_u_h, argument13, argument15 ); 26 | 27 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis3, _dir3 ), _y1 + lengthdir_y( _dis3, _dir3 ), _u_x, _u_y+_u_h, argument14, argument15 ); 28 | draw_vertex_texture_colour( _x1, _y1, _u_x, _u_y, argument11, argument15 ); 29 | draw_vertex_texture_colour( _x1 + lengthdir_x( _dis2, _dir2 ), _y1 + lengthdir_y( _dis2, _dir2 ), _u_x+_u_w, _u_y+_u_h, argument13, argument15 ); 30 | draw_primitive_end(); 31 | 32 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_stretched.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_stretched(sprite,subimg,x,y,w,h) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_part_ext( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ], 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ], 9 | argument0[# __ISG_IMG.WIDTH, 0 ], 10 | argument0[# __ISG_IMG.HEIGHT, 0 ], 11 | argument2, 12 | argument3, 13 | ( argument4 / argument0[# __ISG_IMG.WIDTH, 0 ] ), 14 | ( argument5 / argument0[# __ISG_IMG.HEIGHT, 0 ] ), 15 | c_white, 16 | 1 17 | ); 18 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_stretched_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_stretched_ext(sprite,subimg,x,y,w,h,colour,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | draw_background_part_ext( 6 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 7 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ], 8 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ], 9 | argument0[# __ISG_IMG.WIDTH, 0 ], 10 | argument0[# __ISG_IMG.HEIGHT, 0 ], 11 | argument2, 12 | argument3, 13 | ( argument4 / argument0[# __ISG_IMG.WIDTH, 0 ] ), 14 | ( argument5 / argument0[# __ISG_IMG.HEIGHT, 0 ] ), 15 | argument6, 16 | argument7 17 | ); 18 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_tiled.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled(image,subimg,x,y) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | 6 | var _w = argument0[# __ISG_IMG.WIDTH, 0 ]; 7 | var _h = argument0[# __ISG_IMG.HEIGHT, 0 ]; 8 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 9 | var _left = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ]; 10 | var _top = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ]; 11 | var _xo = ( argument2 mod _w ); 12 | var _yo = ( argument3 mod _h ); 13 | 14 | for( var _x = -_w; _x <= view_wview[ view_current ]; _x += _w ){ 15 | for( var _y = -_h; _y <= view_hview[ view_current ]; _y += _h ){ 16 | draw_background_part( 17 | _bck, 18 | _left, 19 | _top, 20 | _w, 21 | _h, 22 | _xo + _x, 23 | _yo + _y 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_tiled_area.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_area(image,subimg,x1,y1,x2,y2) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | 6 | var _w = argument0[# __ISG_IMG.WIDTH, 0 ]; 7 | var _h = argument0[# __ISG_IMG.HEIGHT, 0 ]; 8 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 9 | var _left = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ]; 10 | var _top = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ]; 11 | 12 | var _x1 = argument2; 13 | var _x2 = argument4; 14 | var _y1 = argument3; 15 | var _y2 = argument5; 16 | var _xadd = 1 - 2 * ( argument4 < argument2 ); 17 | var _yadd = 1 - 2 * ( argument5 < argument3 ); 18 | 19 | var _x = _x1 - _w * ( _xadd == -1 ); 20 | var _y = _y1 - _h * ( _yadd == -1 ); 21 | repeat( floor( abs( _x2 - _x1 ) / _w ) ){ 22 | repeat( floor( abs( _y2 - _y1 ) / _h ) ){ 23 | draw_background_part( 24 | _bck, 25 | _left, 26 | _top, 27 | _w, 28 | _h, 29 | _x, 30 | _y 31 | ); 32 | _y += _h * _yadd; 33 | } 34 | _x += _w * _xadd; 35 | _y = _y1 - _h * ( _yadd == -1 ); 36 | } 37 | var _y_side = _y; 38 | 39 | // HORISONTAL 40 | var _x = _x1 - _w * ( _xadd == -1 ); 41 | _y = _y1 + floor( ( _y2 - _y1 ) / _h ) * _h; 42 | 43 | if( _yadd == -1 ){ 44 | var _part_top = _top + abs( _y2 - _y ); 45 | var _part_h = abs( ( _y2 - _h ) - _y ); 46 | var _part_y = _y + abs( _y2 - _y ); 47 | } else { 48 | var _part_top = _top; 49 | var _part_h = abs( _y2 - _y ); 50 | var _part_y = _y; 51 | } 52 | repeat( floor( abs( _x2 - _x1 ) / _w ) ){ 53 | draw_background_part_ext( 54 | _bck, 55 | _left, 56 | _part_top, 57 | _w, 58 | _part_h, 59 | _x, 60 | _part_y, 61 | 1, 62 | 1, 63 | c_white, 64 | 1 65 | ); 66 | _x += _w * _xadd; 67 | } 68 | 69 | // VERTICAL 70 | var _y = _y1 - _h * ( _yadd == -1 ); 71 | _x = _x1 + floor( ( _x2 - _x1 ) / _w ) * _w; 72 | 73 | if( _xadd == -1 ){ 74 | var _part_left = _left + abs( _x2 - _x ); 75 | var _part_w = abs( ( _x2 - _w ) - _x ); 76 | var _part_x = _x + abs( _x2 - _x ); 77 | } else { 78 | var _part_left = _left; 79 | var _part_w = abs( _x2 - _x ); 80 | var _part_x = _x; 81 | } 82 | repeat( floor( abs( _y2 - _y1 ) / _h ) ){ 83 | draw_background_part_ext( 84 | _bck, 85 | _part_left, 86 | _top, 87 | _part_w, 88 | _h, 89 | _part_x, 90 | _y, 91 | 1, 92 | 1, 93 | c_white, 94 | 1 95 | ); 96 | _y += _h * _yadd; 97 | } 98 | 99 | // EDGE TILE 100 | draw_background_part_ext( 101 | _bck, 102 | _part_left, 103 | _part_top, 104 | _part_w, 105 | _part_h, 106 | _part_x, 107 | _part_y, 108 | 1, 109 | 1, 110 | c_white, 111 | 1 112 | ); 113 | 114 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_tiled_area_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_area_ext(image,subimg,x1,y1,x2,y2,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | 6 | var _w = argument0[# __ISG_IMG.WIDTH, 0 ]; 7 | var _h = argument0[# __ISG_IMG.HEIGHT, 0 ]; 8 | 9 | var _tw = _w * argument6; 10 | var _th = _h * argument7; 11 | 12 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 13 | var _left = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ]; 14 | var _top = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ]; 15 | 16 | var _x1 = argument2; 17 | var _x2 = argument4; 18 | var _y1 = argument3; 19 | var _y2 = argument5; 20 | var _xadd = 1 - 2 * ( argument4 < argument2 ); 21 | var _yadd = 1 - 2 * ( argument5 < argument3 ); 22 | 23 | var _x = _x1 - _tw * ( _xadd == -1 ); 24 | var _y = _y1 - _th * ( _yadd == -1 ); 25 | repeat( floor( abs( _x2 - _x1 ) / _tw ) ){ 26 | repeat( floor( abs( _y2 - _y1 ) / _th ) ){ 27 | draw_background_part_ext( 28 | _bck, 29 | _left, 30 | _top, 31 | _w, 32 | _h, 33 | _x, 34 | _y, 35 | argument6, 36 | argument7, 37 | argument8, 38 | argument9 39 | ); 40 | _y += _th * _yadd; 41 | } 42 | _x += _tw * _xadd; 43 | _y = _y1 - _th * ( _yadd == -1 ); 44 | } 45 | var _y_side = _y; 46 | 47 | // HORISONTAL 48 | var _x = _x1 - _tw * ( _xadd == -1 ); 49 | _y = _y1 + floor( ( _y2 - _y1 ) / _th ) * _th; 50 | 51 | if( _yadd == -1 ){ 52 | var _part_top = _top + abs( _y2 - _y ) / argument7; 53 | var _part_h = abs( ( _y2 - _th ) - _y ) / argument7; 54 | var _part_y = _y + abs( _y2 - _y ); 55 | } else { 56 | var _part_top = _top; 57 | var _part_h = abs( _y2 - _y ) / argument7; 58 | var _part_y = _y; 59 | } 60 | repeat( floor( abs( _x2 - _x1 ) / _tw ) ){ 61 | draw_background_part_ext( 62 | _bck, 63 | _left, 64 | _part_top, 65 | _w, 66 | _part_h, 67 | _x, 68 | _part_y, 69 | argument6, 70 | argument7, 71 | argument8, 72 | argument9 73 | ); 74 | _x += _tw * _xadd; 75 | } 76 | 77 | // VERTICAL 78 | var _y = _y1 - _th * ( _yadd == -1 ); 79 | _x = _x1 + floor( ( _x2 - _x1 ) / _tw ) * _tw; 80 | 81 | if( _xadd == -1 ){ 82 | var _part_left = _left + abs( _x2 - _x ) / argument6; 83 | var _part_w = abs( ( _x2 - _tw ) - _x ) / argument6; 84 | var _part_x = _x + abs( _x2 - _x ); 85 | } else { 86 | var _part_left = _left; 87 | var _part_w = abs( _x2 - _x ) / argument6; 88 | var _part_x = _x; 89 | } 90 | repeat( floor( abs( _y2 - _y1 ) / _th ) ){ 91 | draw_background_part_ext( 92 | _bck, 93 | _part_left, 94 | _top, 95 | _part_w, 96 | _h, 97 | _part_x, 98 | _y, 99 | argument6, 100 | argument7, 101 | argument8, 102 | argument9 103 | ); 104 | _y += _th * _yadd; 105 | } 106 | 107 | // EDGE TILE 108 | draw_background_part_ext( 109 | _bck, 110 | _part_left, 111 | _part_top, 112 | _part_w, 113 | _part_h, 114 | _part_x, 115 | _part_y, 116 | argument6, 117 | argument7, 118 | argument8, 119 | argument9 120 | ); 121 | 122 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_image_tiled_ext.gml: -------------------------------------------------------------------------------- 1 | ///draw_image_tiled_ext(sprite,subimg,x,y,xscale,yscale,colour,alpha) 2 | gml_pragma("forceinline"); // YYC performance boost 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | 6 | var _w = argument0[# __ISG_IMG.WIDTH, 0 ]; 7 | var _h = argument0[# __ISG_IMG.HEIGHT, 0 ]; 8 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 9 | var _left = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ]; 10 | var _top = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ]; 11 | var _xo = ( argument2 mod (_w*argument4) ); 12 | var _yo = ( argument3 mod (_h*argument5) ); 13 | 14 | for( var _x = -_w * argument4; _x <= view_wview[ view_current ]; _x += _w * argument4 ){ 15 | for( var _y = -_h * argument5; _y <= view_hview[ view_current ]; _y += _h * argument5 ){ 16 | draw_background_part_ext( 17 | _bck, 18 | _left, 19 | _top, 20 | _w, 21 | _h, 22 | _xo + _x, 23 | _yo + _y, 24 | argument4, 25 | argument5, 26 | argument6, 27 | argument7 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/draw_text_outline.gml: -------------------------------------------------------------------------------- 1 | ///draw_text_outline(x,y,string,w) 2 | draw_set_colour(c_black); 3 | for( var n = 0; n < 360; n += 30 ){ 4 | draw_text(argument0+lengthdir_x(argument3,n),argument1+lengthdir_y(argument3,n),argument2); 5 | } 6 | 7 | draw_set_colour(c_white); 8 | draw_text(argument0,argument1,argument2); 9 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_cache_create.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_create( group ) 2 | /* 3 | Creates a cache for the image group and returns the buffer that it is stored in, 4 | this can be saved using image_cache_save() or used in networking. 5 | 6 | ------------------------- 7 | group - The group name or the name that image_group_create() returned. 8 | ------------------------- 9 | 10 | RETURNS buffer or -1 if failed. 11 | */ 12 | 13 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 14 | var _l = global.m_ex_image[? argument0 ]; 15 | var _l_image = _l[| 0 ]; 16 | var _l_background = _l[| 1 ]; 17 | 18 | // Temp directory 19 | var _dir = working_directory + ".TEMP_IMAGE_FOLDER/"; 20 | if( directory_exists( _dir ) ){ 21 | directory_destroy( _dir ); 22 | } 23 | directory_create( _dir ); 24 | 25 | // Create the cache and add safe checks 26 | var _buf_cache = buffer_create( 1, buffer_grow, 1 ); 27 | buffer_seek( _buf_cache, buffer_seek_start, 0 ); 28 | buffer_write( _buf_cache, buffer_string, "IMAGE_CACHE" ); 29 | buffer_write( _buf_cache, buffer_string, global.ex_image_cache_version ); 30 | 31 | // Add the image to the cache 32 | buffer_write( _buf_cache, buffer_u16, ds_list_size( _l_background ) ); 33 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 34 | var _back = _l_background[| n ]; 35 | background_save( _l_background[| n ], _dir + string( _l_background[| n ] ) + ".png" ); 36 | var _buf = buffer_load( _dir + string( _l_background[| n ] ) + ".png" ); 37 | buffer_write( _buf_cache, buffer_u32, buffer_get_size( _buf ) ); 38 | buffer_copy( _buf, 0, buffer_get_size( _buf ), _buf_cache, buffer_tell( _buf_cache ) ); 39 | 40 | buffer_seek( _buf_cache, buffer_seek_relative, buffer_get_size( _buf ) ); 41 | buffer_delete( _buf ); 42 | } 43 | 44 | // Write the image info into the cache 45 | buffer_write( _buf_cache, buffer_u16, ds_list_size( _l_image ) ); 46 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 47 | var _g = _l_image[| n ]; 48 | var _id = _g[# __ISG_IMG.ID, 0 ]; 49 | var _subimg = _g[# __ISG_IMG.SUBIMAGES, 0 ]; 50 | var _width = _g[# __ISG_IMG.WIDTH, 0 ]; 51 | var _height = _g[# __ISG_IMG.HEIGHT, 0 ]; 52 | var _xorigin = _g[# __ISG_IMG.XORIGIN, 0 ]; 53 | var _yorigin = _g[# __ISG_IMG.YORIGIN, 0 ]; 54 | 55 | buffer_write( _buf_cache, buffer_string, string( _id ) ); 56 | buffer_write( _buf_cache, buffer_u16, _subimg ); 57 | buffer_write( _buf_cache, buffer_u16, _width ); 58 | buffer_write( _buf_cache, buffer_u16, _height ); 59 | buffer_write( _buf_cache, buffer_s16, _xorigin ); 60 | buffer_write( _buf_cache, buffer_s16, _yorigin ); 61 | buffer_write( _buf_cache, buffer_s16, _g[# __ISG_IMG.BBOX_LEFT, 0 ] ); 62 | buffer_write( _buf_cache, buffer_s16, _g[# __ISG_IMG.BBOX_TOP, 0 ] ); 63 | buffer_write( _buf_cache, buffer_s16, _g[# __ISG_IMG.BBOX_RIGHT, 0 ] ); 64 | buffer_write( _buf_cache, buffer_s16, _g[# __ISG_IMG.BBOX_BOTTOM, 0 ] ); 65 | 66 | for( var i = 0; i < _subimg; i++ ){ 67 | var _bck = _g[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.BACK, 0 ]; 68 | var _bck_x = _g[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.X, 0 ]; 69 | var _bck_y = _g[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.Y, 0 ]; 70 | 71 | var _index = ds_list_find_index( _l_background, _bck ); 72 | if( _index != -1 ) 73 | buffer_write( _buf_cache, buffer_u16, _index );//_g[# 6 + i * 3, 0 ] ); 74 | else 75 | show_error( "The texturepage with id '" + string( _bck ) + "' Couldn't be found in the group background ds_list", true ); 76 | buffer_write( _buf_cache, buffer_u16, _bck_x ); 77 | buffer_write( _buf_cache, buffer_u16, _bck_y ); 78 | } 79 | buffer_write( _buf_cache, buffer_string, string( _g[# ds_grid_width( _g ) - 1, 0 ] ) ); 80 | } 81 | buffer_resize( _buf_cache, buffer_tell( _buf_cache ) ); 82 | directory_destroy( _dir ); 83 | return _buf_cache; 84 | } else { 85 | show_error( "The image group '" + string( argument0 ) + "' you are trying to save does not exist", false ); 86 | return -1; 87 | } 88 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_cache_delete.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_delete(cache) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Deletes the image cache 5 | 6 | ------------------------- 7 | cache - The buffer that image_cache_create() or image_cache_load() returned. 8 | ------------------------- 9 | */ 10 | buffer_delete( argument0 ); 11 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_cache_load.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_load(fname) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Loads the image cache file in as a buffer and checks 5 | whether the file is an image cache that is supported. 6 | This can be used for networking. 7 | 8 | ------------------------- 9 | fname - The name of the file to load. 10 | ------------------------- 11 | 12 | RETURNS the buffer id or -1 if it either fails or the cache is the wrong format. 13 | */ 14 | 15 | if( !file_exists( argument0 ) ){ 16 | show_error( "The image group file '" + string( argument0 ) + "' does not exist", true ); 17 | return -1; 18 | } 19 | 20 | // Load the cache 21 | var _buf_cache = buffer_load( argument0 ); 22 | 23 | // Detect whether the file is an actual image cache file and check if the version is supported. 24 | if( buffer_read( _buf_cache, buffer_string ) != "IMAGE_CACHE" ){ 25 | show_error( "The file '" + string( argument0 ) + "' for the group '" + string( argument0 ) + "' is not an image cache!", false ); 26 | buffer_delete( _buf_cache ); 27 | return -1; 28 | } 29 | var _cache_version = buffer_read( _buf_cache, buffer_string ); 30 | switch( _cache_version ){ 31 | case global.ex_image_cache_version: break; // Current version, no converting needed. 32 | 33 | default: 34 | show_error( "The image cache version in file '" + string( argument0 ) + "' is not supported!", false ); 35 | buffer_delete( _buf_cache ); 36 | return -1; 37 | break; 38 | } 39 | buffer_seek( _buf_cache, buffer_seek_start, 0 ); 40 | return _buf_cache; 41 | 42 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_cache_save.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_save(cache,fname) 2 | gml_pragma( "forceinline" ); 3 | /* 4 | Saves the cache as the fname. 5 | 6 | NOTE: Sandboxing restrictions apply 7 | 8 | ------------------------- 9 | cache - The buffer that image_cache_create() or image_cache_load() returned. 10 | fname - The name of the file to save as. 11 | ------------------------- 12 | 13 | RETURNS boolean which shows whether the file was saved and created successfully or not 14 | */ 15 | 16 | buffer_save( argument0, argument1 ); 17 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_cache_unpack.gml: -------------------------------------------------------------------------------- 1 | ///image_cache_unpack( group, cache ) 2 | /* 3 | Unpacks the image cache into the group. 4 | 5 | NOTE: If the group exists, it will be deleted and rewritten using ONLY the data in the cache. 6 | If the group doesn't exist, no data will be overwritten. 7 | 8 | ------------------------- 9 | group - The group name or the name that image_group_create() returned. 10 | ------------------------- 11 | 12 | RETURNS boolean, which shows whether it unpacks or failed to unpack. 13 | */ 14 | 15 | 16 | // Load the cache 17 | var _buf_cache = argument1; 18 | buffer_seek( _buf_cache, buffer_seek_start, 0 ); 19 | 20 | // Detect whether the file is an actual image cache file and check if the version is supported. 21 | if( buffer_read( _buf_cache, buffer_string ) != "IMAGE_CACHE" ){ 22 | show_error( "The buffer '" + string( argument1 ) + "' for the group '" + string( argument0 ) + "' is not an image cache!", false ); 23 | return false; 24 | } 25 | var _cache_version = buffer_read( _buf_cache, buffer_string ); 26 | switch( _cache_version ){ 27 | case global.ex_image_cache_version: break; // Current version, no converting needed. 28 | case "1.0": break; // Supported older version 29 | 30 | default: 31 | show_error( "The image cache version '" + string( _cache_version ) + "' in buffer '" + string( argument1 ) + "' is not supported!", false ); 32 | return false; 33 | break; 34 | } 35 | 36 | // Empty or create the group 37 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 38 | image_group_clear( argument0 ); 39 | var _l = global.m_ex_image[? argument0 ]; 40 | var _l_image = _l[| 0 ]; 41 | var _l_background = _l[| 1 ]; 42 | } else { 43 | var _l = ds_list_create(); 44 | ds_map_add_list( global.m_ex_image, argument0, _l ); 45 | var _l_image = ds_list_create(); 46 | var _l_background = ds_list_create(); 47 | _l[| 0 ] = _l_image; // Image data list 48 | _l[| 1 ] = _l_background; // Background list 49 | ds_list_mark_as_list( _l, 0 ); 50 | ds_list_mark_as_list( _l, 1 ); 51 | } 52 | 53 | 54 | 55 | 56 | // Load the image information 57 | switch( _cache_version ){ 58 | case "1.0": 59 | // Temp directory for extracting the cache 60 | var _dir = working_directory + ".TEMP_IMAGE_FOLDER/"; 61 | if( directory_exists( _dir ) ){ 62 | directory_destroy( _dir ); 63 | } 64 | directory_create( _dir ); 65 | 66 | // Load the textures 67 | var _tex_count = buffer_read( _buf_cache, buffer_u16 ); 68 | for( var n = 0; n < _tex_count; n++ ){ 69 | var _size = buffer_read( _buf_cache, buffer_u32 ); 70 | buffer_save_ext( _buf_cache, _dir + string( n ) + ".png", buffer_tell( _buf_cache ), _size ); 71 | buffer_seek( _buf_cache, buffer_seek_relative, _size ); 72 | 73 | var _back = background_add( _dir + string( n ) + ".png", false, false ); 74 | ds_list_add( _l_background, _back ); 75 | } 76 | 77 | directory_destroy( _dir ); 78 | 79 | var _image_count = buffer_read( _buf_cache, buffer_u16 ); 80 | repeat( _image_count ){ 81 | var _id = buffer_read( _buf_cache, buffer_string ); 82 | var _subimg = buffer_read( _buf_cache, buffer_u16 ); 83 | var _width = buffer_read( _buf_cache, buffer_u16 ); 84 | var _height = buffer_read( _buf_cache, buffer_u16 ); 85 | var _xorigin = buffer_read( _buf_cache, buffer_s16 ); 86 | var _yorigin = buffer_read( _buf_cache, buffer_s16 ); 87 | 88 | var _g_image = ds_grid_create( __ISG_IMG.COUNT + _subimg * __ISG_SUBIMG.COUNT + 1, 1 ); 89 | ds_list_add( _l_image, _g_image ); 90 | 91 | _g_image[# __ISG_IMG.ID, 0 ] = _id; 92 | _g_image[# __ISG_IMG.SUBIMAGES, 0 ] = _subimg; 93 | _g_image[# __ISG_IMG.WIDTH, 0 ] = _width; 94 | _g_image[# __ISG_IMG.HEIGHT, 0 ] = _height; 95 | _g_image[# __ISG_IMG.XORIGIN, 0 ] = _xorigin; 96 | _g_image[# __ISG_IMG.YORIGIN, 0 ] = _yorigin; 97 | // Bbox not supported in version 1.0, set to default values 98 | _g_image[# __ISG_IMG.BBOX_LEFT, 0 ] = 0; 99 | _g_image[# __ISG_IMG.BBOX_TOP, 0 ] = 0; 100 | _g_image[# __ISG_IMG.BBOX_RIGHT, 0 ] = _width; 101 | _g_image[# __ISG_IMG.BBOX_BOTTOM, 0 ] = _height; 102 | 103 | for( var i = 0; i < _subimg; i++ ){ 104 | var _index = buffer_read( _buf_cache, buffer_u16 ); // background 105 | var _x = buffer_read( _buf_cache, buffer_u16 ); // x 106 | var _y = buffer_read( _buf_cache, buffer_u16 ); // y 107 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.BACK, 0 ] = _l_background[| _index ]; 108 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.X, 0 ] = _x; 109 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.Y, 0 ] = _y; 110 | } 111 | 112 | _g_image[# ds_grid_width( _g_image ) - 1, 0 ] = buffer_read( _buf_cache, buffer_string ); // filename 113 | } 114 | break; 115 | 116 | case "1.1": 117 | // Temp directory for extracting the cache 118 | var _dir = working_directory + ".TEMP_IMAGE_FOLDER/"; 119 | if( directory_exists( _dir ) ){ 120 | directory_destroy( _dir ); 121 | } 122 | directory_create( _dir ); 123 | 124 | // Load the textures 125 | var _tex_count = buffer_read( _buf_cache, buffer_u16 ); 126 | for( var n = 0; n < _tex_count; n++ ){ 127 | var _size = buffer_read( _buf_cache, buffer_u32 ); 128 | buffer_save_ext( _buf_cache, _dir + string( n ) + ".png", buffer_tell( _buf_cache ), _size ); 129 | buffer_seek( _buf_cache, buffer_seek_relative, _size ); 130 | 131 | var _back = background_add( _dir + string( n ) + ".png", false, false ); 132 | ds_list_add( _l_background, _back ); 133 | } 134 | 135 | directory_destroy( _dir ); 136 | 137 | var _image_count = buffer_read( _buf_cache, buffer_u16 ); 138 | repeat( _image_count ){ 139 | var _id = buffer_read( _buf_cache, buffer_string ); 140 | var _subimg = buffer_read( _buf_cache, buffer_u16 ); 141 | var _width = buffer_read( _buf_cache, buffer_u16 ); 142 | var _height = buffer_read( _buf_cache, buffer_u16 ); 143 | var _xorigin = buffer_read( _buf_cache, buffer_s16 ); 144 | var _yorigin = buffer_read( _buf_cache, buffer_s16 ); 145 | var _bbox_left = buffer_read( _buf_cache, buffer_s16 ); 146 | var _bbox_top = buffer_read( _buf_cache, buffer_s16 ); 147 | var _bbox_right = buffer_read( _buf_cache, buffer_s16 ); 148 | var _bbox_bottom = buffer_read( _buf_cache, buffer_s16 ); 149 | 150 | var _g_image = ds_grid_create( __ISG_IMG.COUNT + _subimg * __ISG_SUBIMG.COUNT + 1, 1 ); 151 | ds_list_add( _l_image, _g_image ); 152 | 153 | _g_image[# __ISG_IMG.ID, 0 ] = _id; 154 | _g_image[# __ISG_IMG.SUBIMAGES, 0 ] = _subimg; 155 | _g_image[# __ISG_IMG.WIDTH, 0 ] = _width; 156 | _g_image[# __ISG_IMG.HEIGHT, 0 ] = _height; 157 | _g_image[# __ISG_IMG.XORIGIN, 0 ] = _xorigin; 158 | _g_image[# __ISG_IMG.YORIGIN, 0 ] = _yorigin; 159 | _g_image[# __ISG_IMG.BBOX_LEFT, 0 ] = _bbox_left; 160 | _g_image[# __ISG_IMG.BBOX_TOP, 0 ] = _bbox_top; 161 | _g_image[# __ISG_IMG.BBOX_RIGHT, 0 ] = _bbox_right; 162 | _g_image[# __ISG_IMG.BBOX_BOTTOM, 0 ] = _bbox_bottom; 163 | 164 | for( var i = 0; i < _subimg; i++ ){ 165 | var _index = buffer_read( _buf_cache, buffer_u16 ); // background 166 | var _x = buffer_read( _buf_cache, buffer_u16 ); // x 167 | var _y = buffer_read( _buf_cache, buffer_u16 ); // y 168 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.BACK, 0 ] = _l_background[| _index ]; 169 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.X, 0 ] = _x; 170 | _g_image[# __ISG_IMG.COUNT + i * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.Y, 0 ] = _y; 171 | } 172 | 173 | _g_image[# ds_grid_width( _g_image ) - 1, 0 ] = buffer_read( _buf_cache, buffer_string ); // filename 174 | } 175 | break; 176 | } 177 | return true; 178 | 179 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_exists.gml: -------------------------------------------------------------------------------- 1 | ///image_exists(image) 2 | gml_pragma("forceinline"); 3 | 4 | if( ds_exists( argument0, ds_type_grid ) ){ 5 | if( ds_grid_height( argument0 ) == 1 ){ 6 | return true; 7 | } else { 8 | return false; 9 | } 10 | } else { 11 | return false; 12 | } 13 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_bbox_bottom.gml: -------------------------------------------------------------------------------- 1 | ///image_get_bbox_bottom() 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.BBOX_BOTTOM, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_bbox_left.gml: -------------------------------------------------------------------------------- 1 | ///image_get_bbox_left(image) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.BBOX_LEFT, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_bbox_right.gml: -------------------------------------------------------------------------------- 1 | ///image_get_bbox_right() 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.BBOX_RIGHT, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_bbox_top.gml: -------------------------------------------------------------------------------- 1 | ///image_get_bbox_top() 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.BBOX_TOP, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_filename.gml: -------------------------------------------------------------------------------- 1 | ///image_get_filename(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# ds_grid_width( argument0 ) - 1, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_height.gml: -------------------------------------------------------------------------------- 1 | ///image_get_height(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.HEIGHT, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_identifier.gml: -------------------------------------------------------------------------------- 1 | ///image_get_identifier(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.ID, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_number.gml: -------------------------------------------------------------------------------- 1 | ///image_get_number(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.SUBIMAGES, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_texture.gml: -------------------------------------------------------------------------------- 1 | ///image_get_texture(sprite,subimg) 2 | gml_pragma("forceinline"); 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | return( background_get_texture( argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ] ) ); 6 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_texturepage.gml: -------------------------------------------------------------------------------- 1 | ///image_get_texturepage(sprite,subimg) 2 | gml_pragma("forceinline"); 3 | 4 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 5 | return( argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ] ); 6 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_uvs.gml: -------------------------------------------------------------------------------- 1 | ///image_get_uvs(spr,subimg) 2 | gml_pragma("forceinline"); 3 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 4 | var _bck = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ]; 5 | 6 | var _bck_x = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ]; 7 | var _bck_y = argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ]; 8 | 9 | var _ar; 10 | _ar[ 0 ] = _bck_x / background_get_width( _bck ); 11 | _ar[ 1 ] = _bck_y / background_get_width( _bck ); 12 | _ar[ 2 ] = (_bck_x + argument0[# __ISG_IMG.WIDTH, 0 ]) / background_get_width( _bck ); 13 | _ar[ 3 ] = (_bck_y + argument0[# __ISG_IMG.HEIGHT, 0 ]) / background_get_width( _bck ); 14 | return( _ar ); 15 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_width.gml: -------------------------------------------------------------------------------- 1 | ///image_get_width(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.WIDTH, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_xoffset.gml: -------------------------------------------------------------------------------- 1 | ///image_get_xoffset(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.XORIGIN, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_get_yoffset.gml: -------------------------------------------------------------------------------- 1 | ///image_get_yoffset(ind) 2 | gml_pragma("forceinline"); 3 | return( argument0[# __ISG_IMG.YORIGIN, 0 ] ); 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_clear.gml: -------------------------------------------------------------------------------- 1 | ///image_group_clear(group) 2 | /* 3 | Clears the image group, does not destroy it. 4 | 5 | ------------------------- 6 | group - The group name. 7 | ------------------------- 8 | 9 | RETURNS a boolean, this shows whether the groups was cleared or not. 10 | */ 11 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 12 | var _l = global.m_ex_image[? argument0 ]; 13 | var _l_image = _l[| 0 ]; 14 | var _l_background = _l[| 1 ]; 15 | 16 | image_stream_stop( argument0 ); 17 | 18 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 19 | ds_grid_destroy( _l_image[| n ] ); 20 | } 21 | 22 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 23 | background_delete( _l_background[| n ] ); 24 | } 25 | ds_list_clear( _l_image ); 26 | ds_list_clear( _l_background ); 27 | return true; 28 | } else { 29 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist", false ); 30 | return false; 31 | } 32 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_create.gml: -------------------------------------------------------------------------------- 1 | ///image_group_create(name) 2 | /* 3 | Creates a new image group 4 | 5 | ------------------------- 6 | name - The group name that you will be using to reference to the group later. 7 | ------------------------- 8 | 9 | RETURNS eiher the name of the new group or -1 which means that the function failed because the grup already exists. 10 | */ 11 | if( !ds_map_exists( global.m_ex_image, argument0 ) ){ 12 | var _l = ds_list_create(); 13 | ds_map_add_list( global.m_ex_image, argument0, _l ); 14 | _l[| 0 ] = ds_list_create(); // 'Image' list 15 | _l[| 1 ] = ds_list_create(); // Background list 16 | ds_list_mark_as_list( _l, 0 ); 17 | ds_list_mark_as_list( _l, 1 ); 18 | return argument0; 19 | } else { 20 | return -1; 21 | } 22 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_destroy.gml: -------------------------------------------------------------------------------- 1 | ///image_group_destroy(group) 2 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 3 | var _l = global.m_ex_image[? argument0 ]; 4 | var _l_image = _l[| 0 ]; 5 | var _l_background = _l[| 1 ]; 6 | 7 | image_group_clear( argument0 ); 8 | 9 | // Remove the data structures 10 | ds_list_destroy( _l_image ); 11 | ds_list_destroy( _l_background ); 12 | ds_list_destroy( _l ); 13 | ds_map_delete( global.m_ex_image, argument0 ); 14 | return true; 15 | } else { 16 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist", false ); 17 | return false; 18 | } 19 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_exists.gml: -------------------------------------------------------------------------------- 1 | ///image_group_exists(group) 2 | return ds_map_exists( global.m_ex_image, argument0 ); 3 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_find_image.gml: -------------------------------------------------------------------------------- 1 | ///image_group_find_image(group,identifier) 2 | /* 3 | Returns the image with the identifier. 4 | 5 | ------------------------- 6 | group - The group name or the name that image_group_create() returned. 7 | identifier - The sprite identifier that was applied to the sprite using image_load_add(identifier,...) 8 | ------------------------- 9 | 10 | RETURNS the image or -1 if failed. 11 | */ 12 | 13 | argument1 = string( argument1 ); 14 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 15 | var _l = global.m_ex_image[? argument0 ]; 16 | var _l_image = _l[| 0 ]; 17 | for( var n = 0; n < ds_list_size( _l_image ); n++ ){ 18 | var _g = _l_image[| n ]; 19 | if( _g[# __ISG_IMG.ID, 0 ] == argument1 ){ 20 | /*show_debug_message( argument1 + " - " + 21 | string( image_get_width( _g ) ) + ", " + string( image_get_height( _g ) ) + " | " + 22 | string( image_get_bbox_left( _g ) ) + ", " + string( image_get_bbox_top( _g ) ) + " | " + 23 | string( image_get_bbox_right( _g ) ) + ", " + string( image_get_bbox_bottom( _g ) ) );*/ 24 | return _g; 25 | } 26 | } 27 | return( -1 ); 28 | } else { 29 | show_error( "The group '" + string( argument0 ) + "' you are trying to find the image '" + string( argument1 ) + "' from does not exist", false ); 30 | return( -1 ); 31 | } 32 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_flush.gml: -------------------------------------------------------------------------------- 1 | ///image_group_flush(group) 2 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 3 | var _l = global.m_ex_image[? argument0 ]; 4 | var _l_background = _l[| 1 ]; 5 | 6 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 7 | background_flush( _l_background[| n ] ); 8 | } 9 | return true; 10 | } else { 11 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist", false ); 12 | return false; 13 | } 14 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_group_prefetch.gml: -------------------------------------------------------------------------------- 1 | ///image_group_prefetch(group) 2 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 3 | var _l = global.m_ex_image[? argument0 ]; 4 | var _l_background = _l[| 1 ]; 5 | 6 | for( var n = 0; n < ds_list_size( _l_background ); n++ ){ 7 | background_prefetch( _l_background[| n ] ); 8 | } 9 | return true; 10 | } else { 11 | show_error( "The group '" + string( argument0 ) + "' you are trying to clear does not exist", false ); 12 | return false; 13 | } 14 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_save.gml: -------------------------------------------------------------------------------- 1 | ///image_save(ind,subimg,fname) 2 | var _c_subimg = ( floor(argument1) mod argument0[# __ISG_IMG.SUBIMAGES, 0 ] ) * __ISG_SUBIMG.COUNT; 3 | 4 | var _surf = surface_create( argument0[# __ISG_IMG.WIDTH, 0 ], argument0[# __ISG_IMG.HEIGHT, 0 ] ); 5 | 6 | surface_set_target( _surf ); 7 | draw_clear_alpha( 0, 0 ); 8 | draw_background_part( 9 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.BACK, 0 ], 10 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.X, 0 ], 11 | argument0[# __ISG_IMG.COUNT + _c_subimg + __ISG_SUBIMG.Y, 0 ], 12 | argument0[# __ISG_IMG.WIDTH, 0 ], 13 | argument0[# __ISG_IMG.HEIGHT, 0 ], 14 | 0, 15 | 0 16 | ); 17 | surface_reset_target(); 18 | surface_save( _surf, argument2 ); 19 | surface_free( _surf ); 20 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_save_sheet.gml: -------------------------------------------------------------------------------- 1 | ///image_save_sheet(ind,fname,row_count) 2 | var _subimg_count = argument0[# __ISG_IMG.SUBIMAGES, 0 ]; 3 | var _row_count = argument2; 4 | var _col_count = ceil( _subimg_count / _row_count ); 5 | 6 | var _surf = surface_create( argument0[# __ISG_IMG.WIDTH, 0 ] * _row_count, argument0[# __ISG_IMG.HEIGHT, 0 ] * _col_count ); 7 | surface_set_target( _surf ); 8 | draw_clear_alpha( 0, 0 ); 9 | for( var n = 0; n < _subimg_count; n++ ){ 10 | var _x = n mod _row_count; 11 | var _y = n div _row_count; 12 | draw_background_part( 13 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.BACK, 0 ], 14 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.X, 0 ], 15 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.Y, 0 ], 16 | argument0[# __ISG_IMG.WIDTH, 0 ], 17 | argument0[# __ISG_IMG.HEIGHT, 0 ], 18 | _x * argument0[# __ISG_IMG.WIDTH, 0 ], 19 | _y * argument0[# __ISG_IMG.HEIGHT, 0 ] 20 | ); 21 | } 22 | surface_reset_target(); 23 | 24 | surface_save( _surf, argument1 ); 25 | surface_free( _surf ); 26 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_save_strip.gml: -------------------------------------------------------------------------------- 1 | ///image_save_strip(ind,fname) 2 | var _subimg_count = argument0[# __ISG_IMG.SUBIMAGES, 0 ]; 3 | 4 | var _surf = surface_create( argument0[# __ISG_IMG.WIDTH, 0 ] * _subimg_count, argument0[# __ISG_IMG.HEIGHT, 0 ] ); 5 | surface_set_target( _surf ); 6 | draw_clear_alpha( 0, 0 ); 7 | for( var n = 0; n < _subimg_count; n++ ){ 8 | draw_background_part( 9 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.BACK, 0 ], 10 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.X, 0 ], 11 | argument0[# __ISG_IMG.COUNT + n * __ISG_SUBIMG.COUNT + __ISG_SUBIMG.Y, 0 ], 12 | argument0[# __ISG_IMG.WIDTH, 0 ], 13 | argument0[# __ISG_IMG.HEIGHT, 0 ], 14 | argument0[# __ISG_IMG.WIDTH, 0 ] * n, 15 | 0 16 | ); 17 | } 18 | surface_reset_target(); 19 | 20 | surface_save( _surf, argument1 ); 21 | surface_free( _surf ); 22 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_set_bbox.gml: -------------------------------------------------------------------------------- 1 | ///image_set_bbox(image,left,top,right,bottom) 2 | gml_pragma("forceinline"); 3 | argument0[# __ISG_IMG.BBOX_LEFT, 0 ] = argument1; 4 | argument0[# __ISG_IMG.BBOX_TOP, 0 ] = argument2; 5 | argument0[# __ISG_IMG.BBOX_RIGHT, 0 ] = argument3; 6 | argument0[# __ISG_IMG.BBOX_BOTTOM, 0 ] = argument4; 7 | 8 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_set_offset.gml: -------------------------------------------------------------------------------- 1 | ///image_set_offset(ind,xoffset,yoffset) 2 | gml_pragma("forceinline"); 3 | argument0[# __ISG_IMG.XORIGIN, 0 ] = argument1; 4 | argument0[# __ISG_IMG.YORIGIN, 0 ] = argument2; 5 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_add.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_add(group, identifier, fname, subimg, xorig, yorig) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | 4 | // Error checking 5 | if( ds_list_size( _l ) != 3 ){ 6 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 7 | return false; 8 | } 9 | 10 | var _m = _l[| 2 ]; 11 | var _p_sprite = _m[? "sprite" ]; 12 | var _spr = sprite_add( argument2, argument3, _m[? "removeback" ], false, 0, 0 ); 13 | var _priority = floor( ( sprite_get_width( _spr ) + sprite_get_height( _spr ) ) * 0.5 ); 14 | var _load_data = ds_list_create(); 15 | _load_data[| __IS_STREAM_IMAGE.ID ] = string( argument1 ); 16 | _load_data[| __IS_STREAM_IMAGE.TYPE ] = __IS.TYPE_STRIP; 17 | _load_data[| __IS_STREAM_IMAGE.FPATH ] = argument2; 18 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _spr; 19 | _load_data[| __IS_STREAM_IMAGE.SUBIMG_COUNT ] = argument3; 20 | _load_data[| __IS_STREAM_IMAGE.XORIG ] = argument4; 21 | _load_data[| __IS_STREAM_IMAGE.YORIG ] = argument5; 22 | 23 | 24 | 25 | if( _priority <= 1 and !file_exists( argument2 ) ){ 26 | var _l_loading = _m[? "loading" ]; 27 | ds_list_add( _l_loading, _load_data ); 28 | _m[? "finished" ] = false; 29 | 30 | //ds_priority_add( _p_sprite, _load_data, _priority ); 31 | } else { 32 | if( sprite_get_width( _spr ) <= _m[? "w" ] + _m[? "sep" ] && sprite_get_height( _spr ) <= _m[? "h" ] + _m[? "sep" ] ){ 33 | if( _m[? "clamp" ] == false ){ 34 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = 0; 35 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = 0; 36 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = sprite_get_width( _spr ); 37 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = sprite_get_height( _spr ); 38 | } else { 39 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = sprite_get_bbox_left( _spr ); 40 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = sprite_get_bbox_top( _spr ); 41 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = sprite_get_bbox_right( _spr ) - sprite_get_bbox_left( _spr ) + 1; 42 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = sprite_get_bbox_bottom( _spr ) - sprite_get_bbox_top( _spr ) + 1; 43 | } 44 | 45 | _load_data[| __IS_STREAM_IMAGE.XORIG ] *= sprite_get_width( _spr ); 46 | _load_data[| __IS_STREAM_IMAGE.YORIG ] *= sprite_get_height( _spr ); 47 | 48 | _priority = floor( ( _load_data[| __IS_STREAM_IMAGE.WIDTH ] + _load_data[| __IS_STREAM_IMAGE.HEIGHT ] ) * 0.5 ); 49 | } else { 50 | sprite_delete( _spr ); 51 | ds_list_destroy( _load_data ); 52 | show_error( "Image is larger than texturepage! " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), false ); 53 | return false; 54 | } 55 | } 56 | 57 | ds_priority_add( _p_sprite, _load_data, _priority ); 58 | return true; 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_add_3d.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_add_3d(group,identifier,fname,subimg,xorig,yorig) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | 4 | // Error checking 5 | if( ds_list_size( _l ) != 3 ){ 6 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 7 | return false; 8 | } 9 | 10 | var _m = _l[| 2 ]; 11 | var _p_sprite_3d = _m[? "sprite_3d" ]; 12 | 13 | var _spr = sprite_add( argument2, argument3, _m[? "removeback" ], false, 0, 0 ); 14 | var _priority = floor( ( sprite_get_width( _spr ) + sprite_get_height( _spr ) ) / 2 ); 15 | var _load_data = ds_list_create(); 16 | 17 | ds_list_add( _load_data, _spr, string( argument1 ), argument2 ); 18 | _load_data[| __IS_STREAM_IMAGE.ID ] = string( argument1 ); 19 | _load_data[| __IS_STREAM_IMAGE.TYPE ] = __IS.TYPE_3D; 20 | _load_data[| __IS_STREAM_IMAGE.FPATH ] = argument2; 21 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _spr; 22 | _load_data[| __IS_STREAM_IMAGE.SUBIMG_COUNT ] = argument3; 23 | _load_data[| __IS_STREAM_IMAGE.XORIG ] = argument4; 24 | _load_data[| __IS_STREAM_IMAGE.YORIG ] = argument5; 25 | 26 | if( _priority <= 1 and !file_exists( argument2 ) ){ 27 | var _l_loading = _m[? "loading" ]; 28 | ds_list_add( _l_loading, _load_data ); 29 | _m[? "finished" ] = false; 30 | } else { 31 | _load_data[| __IS_STREAM_IMAGE.XORIG ] *= sprite_get_width( _spr ); 32 | _load_data[| __IS_STREAM_IMAGE.YORIG ] *= sprite_get_height( _spr ); 33 | } 34 | 35 | ds_priority_add( _p_sprite_3d, _load_data, _priority ); 36 | return true; 37 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_add_files.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_add_files(group,identifier,basename,xorig,yorig) - creates a sprite from a list of files with the specified name (spr_player_0,spr_player_1,...etc) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | 4 | // Error checking 5 | if( ds_list_size( _l ) != 3 ){ 6 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 7 | return false; 8 | } 9 | 10 | var _m = _l[| 2 ]; 11 | var _p_sprite = _m[? "sprite" ]; 12 | var _removeback = _m[? "removeback" ]; 13 | 14 | var _pq = ds_priority_create(); 15 | var _load_data = ds_list_create(); 16 | 17 | // Scan the file system 18 | var _subimg_n = 0; 19 | var _path_sprite = argument2 + "_"; 20 | var _spritename = filename_name( _path_sprite ); 21 | 22 | var _bbox_left = 500000; 23 | var _bbox_top = 500000; 24 | var _bbox_right = -500000; 25 | var _bbox_bottom = -500000; 26 | 27 | var _file = file_find_first( _path_sprite + "*", 0 ); 28 | while( _file != "" ){ 29 | var _file_ext = filename_ext( _file ); 30 | var _file_extl = string_lower( _file_ext ); 31 | 32 | // Make sure it is an image file 33 | if( _file_extl == ".png" || _file_extl == ".jpg" || _file_extl == ".jpeg" || _file_extl == ".gif" ){ 34 | var _file_name = filename_name( _file ); 35 | var _stripped_name = string_replace( string_replace( _file_name, _spritename, "" ), _file_ext, "" ); 36 | 37 | // Make sure that it's coin_0.png and not coin_test_0.png 38 | if( string_digits( _stripped_name ) == _stripped_name && string_length( _stripped_name ) ){ 39 | var _sub = real( _stripped_name ); 40 | var _spr = sprite_add( _file, 1, _removeback, false, 0, 0 ); 41 | _bbox_left = min( sprite_get_bbox_left( _spr ), _bbox_left ); 42 | _bbox_top = min( sprite_get_bbox_top( _spr ), _bbox_top ); 43 | _bbox_right = max( sprite_get_bbox_right( _spr ), _bbox_right ); 44 | _bbox_bottom = max( sprite_get_bbox_bottom( _spr ), _bbox_bottom ); 45 | 46 | ds_priority_add( _pq, _spr, _sub ); 47 | } 48 | } 49 | 50 | _file = file_find_next(); 51 | } 52 | file_find_close(); 53 | 54 | if( ds_priority_size( _pq ) ){ 55 | var _spr = ds_priority_find_min( _pq ); 56 | 57 | if( sprite_get_width( _spr ) <= _m[? "w" ] + _m[? "sep" ] && sprite_get_height( _spr ) <= _m[? "h" ] + _m[? "sep" ] ){ 58 | _load_data[| __IS_STREAM_IMAGE.ID ] = string( argument1 ); 59 | _load_data[| __IS_STREAM_IMAGE.TYPE ] = __IS.TYPE_LIST; 60 | _load_data[| __IS_STREAM_IMAGE.FPATH ] = argument2; 61 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _pq; 62 | _load_data[| __IS_STREAM_IMAGE.SUBIMG_COUNT ] = ds_priority_size( _pq ); 63 | 64 | _load_data[| __IS_STREAM_IMAGE.XORIG ] = argument3 * sprite_get_width( _spr ); 65 | _load_data[| __IS_STREAM_IMAGE.YORIG ] = argument4 * sprite_get_height( _spr ); 66 | 67 | if( _m[? "clamp" ] == false ){ 68 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = 0; 69 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = 0; 70 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = sprite_get_width( _spr ); 71 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = sprite_get_height( _spr ); 72 | } else { 73 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = _bbox_left; 74 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = _bbox_top; 75 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = _bbox_right - _bbox_left + 1; 76 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = _bbox_bottom - _bbox_top + 1; 77 | } 78 | 79 | var _priority = floor( ( _load_data[| __IS_STREAM_IMAGE.WIDTH ] + _load_data[| __IS_STREAM_IMAGE.HEIGHT ] ) * 0.5 ); 80 | 81 | } else { 82 | while( ds_priority_size( _pq ) ){ 83 | sprite_delete( ds_priority_delete_min( _pq ) ); 84 | } 85 | ds_list_destroy( _load_data ); 86 | show_error( "Image is larger than texturepage! " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), false ); 87 | return false; 88 | } 89 | } else { 90 | ds_priority_destroy( _pq ); 91 | ds_list_destroy( _load_data ); 92 | 93 | show_error( "Could not find subimage files from '" + string( argument2 ) + "' for identifier '" + string( argument1 ) + " in group " + string( argument0 ), false ); 94 | return false; 95 | } 96 | 97 | ds_priority_add( _p_sprite, _load_data, _priority ); 98 | return true; 99 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_add_sheet.gml: -------------------------------------------------------------------------------- 1 | #define image_stream_add_sheet 2 | ///image_stream_add_sheet(group,identifier,fname,hor_count,ver_count,xorig,yorig) 3 | var _l = global.m_ex_image[? argument0 ]; 4 | 5 | // Error checking 6 | if( ds_list_size( _l ) != 3 ){ 7 | show_error( "Image stream not started " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), true ); 8 | return false; 9 | } 10 | 11 | var _m = _l[| 2 ]; 12 | var _p_sprite = _m[? "sprite" ]; 13 | 14 | var _bck = background_add( argument2, _m[? "removeback" ], false ); 15 | var _spr_w = background_get_width( _bck ) / argument3; 16 | var _spr_h = background_get_height( _bck ) / argument4; 17 | var _priority = floor( ( _spr_w + _spr_h ) * 0.5 ); 18 | 19 | var _load_data = ds_list_create(); 20 | _load_data[| __IS_STREAM_IMAGE.ID ] = string( argument1 ); 21 | _load_data[| __IS_STREAM_IMAGE.TYPE ] = __IS.TYPE_SHEET; 22 | _load_data[| __IS_STREAM_IMAGE.FPATH ] = argument2; 23 | _load_data[| __IS_STREAM_IMAGE.SUBIMG_COUNT ] = argument3 * argument4; 24 | _load_data[| __IS_STREAM_IMAGE.SUBIMG_ROWS ] = argument4; 25 | _load_data[| __IS_STREAM_IMAGE.XORIG ] = argument5; 26 | _load_data[| __IS_STREAM_IMAGE.YORIG ] = argument6; 27 | 28 | if( _priority <= 1 and !file_exists( argument2 ) ){ 29 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _bck; 30 | 31 | var _l_loading = _m[? "loading" ]; 32 | ds_list_add( _l_loading, _load_data ); 33 | _m[? "finished" ] = false; 34 | } else { 35 | if( _spr_w <= _m[? "w" ] + _m[? "sep" ] && _spr_h <= _m[? "h" ] + _m[? "sep" ] ){ 36 | // The image came from a file, finish everything 37 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _bck; 38 | __isa_sheet_bake( _load_data, _m[? "clamp" ] ); 39 | _priority = floor( ( _load_data[| __IS_STREAM_IMAGE.WIDTH ] + _load_data[| __IS_STREAM_IMAGE.HEIGHT ] ) * 0.5 ); 40 | } else { 41 | background_delete( _bck ); 42 | ds_list_destroy( _load_data ); 43 | show_error( "Image is larger than texturepage! " + chr(13) + "Group: " + string( argument0 ) + chr(13) + "Identifier " + string( argument1 ), false ); 44 | return false; 45 | } 46 | 47 | } 48 | 49 | ds_priority_add( _p_sprite, _load_data, _priority ); 50 | return true; 51 | 52 | #define __isa_sheet_bake 53 | ///__isa_sheet_bake(load_data, clamp) 54 | 55 | var _load_data = argument0; 56 | 57 | var _bck = _load_data[| __IS_STREAM_IMAGE.SPRITES ]; 58 | 59 | 60 | var _subimg_ver = _load_data[| __IS_STREAM_IMAGE.SUBIMG_ROWS ]; 61 | var _subimg_hor = _load_data[| __IS_STREAM_IMAGE.SUBIMG_COUNT ] / _subimg_ver; 62 | 63 | var _spr_w_raw = background_get_width( _bck ) / _subimg_hor; 64 | var _spr_h_raw = background_get_height( _bck ) / _subimg_ver; 65 | var _spr_w = floor( _spr_w_raw ); 66 | var _spr_h = floor( _spr_h_raw ); 67 | _load_data[| __IS_STREAM_IMAGE.XORIG ] *= _spr_w; 68 | _load_data[| __IS_STREAM_IMAGE.YORIG ] *= _spr_h; 69 | 70 | 71 | // Make sure that the user didn't enter the wrong subimage count 72 | if( _spr_w_raw != _spr_w ){ 73 | __is_log( "IMAGE STREAM WARNING: Image '" + string( _load_data[| __IS_STREAM_IMAGE.ID ] ) + 74 | "' may have wrong amount of subimages per row. Width " + string( background_get_width( _bck ) ) + " / " + string( _subimg_hor ) + " = " + string( _spr_w_raw ) ); 75 | } 76 | if( _spr_h_raw != _spr_h ){ 77 | __is_log( "IMAGE STREAM WARNING: Image '" + string( _load_data[| __IS_STREAM_IMAGE.ID ] ) + 78 | "' may have wrong amount of subimages per column. Height " + string( background_get_height( _bck ) ) + " / " + string( _subimg_ver ) + " = " + string( _spr_h_raw ) ); 79 | } 80 | // Bake into sprite 81 | 82 | var _surf = surface_create( background_get_width( _bck ), background_get_height( _bck ) ); 83 | surface_set_target( _surf ); 84 | draw_clear_alpha( c_black, 0 ); 85 | draw_background( _bck, 0, 0 ); 86 | var _spr = sprite_create_from_surface( _surf, 87 | 0, 0, 88 | _spr_w, _spr_h, 89 | false, false, 90 | 0, 0 ); 91 | var i = 1; // i = x + width * y 92 | repeat( _subimg_hor * _subimg_ver - 1 ){ 93 | var _x = i mod _subimg_hor; 94 | var _y = i div _subimg_hor; 95 | 96 | sprite_add_from_surface( _spr, _surf, _x * _spr_w, _y * _spr_h, _spr_w, _spr_h, false, false ); 97 | i++; 98 | } 99 | surface_reset_target(); 100 | surface_free( _surf); 101 | background_delete( _bck ); 102 | 103 | if( argument1 == false ){ 104 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = 0; 105 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = 0; 106 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = _spr_w; 107 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = _spr_h; 108 | } else { 109 | _load_data[| __IS_STREAM_IMAGE.CLAMP_LEFT ] = sprite_get_bbox_left( _spr ); 110 | _load_data[| __IS_STREAM_IMAGE.CLAMP_TOP ] = sprite_get_bbox_top( _spr ); 111 | _load_data[| __IS_STREAM_IMAGE.WIDTH ] = sprite_get_bbox_right( _spr ) - sprite_get_bbox_left( _spr ) + 1; 112 | _load_data[| __IS_STREAM_IMAGE.HEIGHT ] = sprite_get_bbox_bottom( _spr ) - sprite_get_bbox_top( _spr ) + 1; 113 | } 114 | 115 | _load_data[| __IS_STREAM_IMAGE.SPRITES ] = _spr; -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_is_active.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_is_active(group) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | return ds_list_size( _l ) == 3; 4 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_is_received.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_is_received(group) 2 | var _l = global.m_ex_image[? argument0 ]; 3 | if( ds_list_size( _l ) != 3 ){ 4 | show_error( "Image stream not started." + chr(13) + "Group: " + string( argument0 ), true ); 5 | return false; 6 | } 7 | var _m = _l[| 2 ]; 8 | return _m[? "finished" ]; 9 | 10 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_progress.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_progress(group) 2 | /* 3 | Returns a value from 0-1, the larger the value, the more has been loaded. 4 | */ 5 | var _l = global.m_ex_image[? argument0 ]; 6 | if( ds_list_size( _l ) != 3 ){ 7 | show_error( "Image stream not started." + chr(13) + "Group: " + string( argument0 ), true ); 8 | } 9 | var _m = _l[| 2 ]; 10 | return _m[? "progress" ]; 11 | 12 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_start.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_start(group, tex_page_width, tex_page_height, tex_sep, clamp, removeback) 2 | /* 3 | returns boolean; 4 | */ 5 | 6 | 7 | if( !ds_map_exists( global.m_ex_image, argument0 ) ){ 8 | show_error( "Unknown image group '" + string( argument0 ) + "'", true ); 9 | return false; 10 | } 11 | var _l = global.m_ex_image[? argument0 ]; 12 | if( ds_list_size( _l ) != 2 ){ 13 | if( ds_list_size( _l ) == 3 and ds_exists( _l[| 2 ], ds_type_map ) ){ 14 | show_error( "The image stream of the group '" + string( argument0 ) + "' has already started", true ); 15 | return false; 16 | } else { 17 | show_error( "Invalid group '" + string( argument0 ) + "', the data might have been edited from outside.", true ); 18 | return false; 19 | } 20 | } 21 | 22 | var _m_stream = ds_map_create(); 23 | ds_list_add( _l, _m_stream ); 24 | ds_list_mark_as_map( _l, 2 ); 25 | 26 | _m_stream[? "w" ] = argument1; 27 | _m_stream[? "h" ] = argument2; 28 | _m_stream[? "sep" ] = argument3; 29 | /*ds_map_add_list( _m_stream, "l_back", ds_list_create() ); 30 | ds_map_add_list( _m_stream, "l_back_3d", ds_list_create() );*/ 31 | _m_stream[? "sprite" ] = ds_priority_create(); 32 | _m_stream[? "sprite_3d" ] = ds_priority_create(); 33 | _m_stream[? "loading" ] = ds_list_create(); 34 | _m_stream[? "finished" ] = true; 35 | _m_stream[? "progress" ] = 0; 36 | _m_stream[? "clamp" ] = argument4; 37 | _m_stream[? "removeback" ] = argument5; 38 | 39 | return true; 40 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_stream_stop.gml: -------------------------------------------------------------------------------- 1 | ///image_stream_stop(group) 2 | if( ds_map_exists( global.m_ex_image, argument0 ) ){ 3 | var _l = global.m_ex_image[? argument0 ]; 4 | 5 | // If the stream is active, clear it 6 | if( ds_list_size( _l ) == 3 ){ 7 | var _m_stream = _l[| 2 ]; 8 | ds_list_destroy( _m_stream[? "loading" ] ); 9 | 10 | var _p_sprite = _m_stream[? "sprite" ]; 11 | while( ds_priority_size( _p_sprite ) > 0 ){ 12 | var _priority = ds_priority_find_priority( _p_sprite, ds_priority_find_max( _p_sprite ) ); 13 | var _load_data = ds_priority_delete_max( _p_sprite ); 14 | switch( _load_data[| __IS_STREAM_IMAGE.TYPE ] ){ 15 | case __IS.TYPE_STRIP: 16 | sprite_delete( _load_data[| __IS_STREAM_IMAGE.SPRITES ] ); 17 | break; 18 | 19 | case __IS.TYPE_LIST: 20 | var _p_subimages = _load_data[| __IS_STREAM_IMAGE.SPRITES ]; 21 | while( ds_priority_size( _p_subimages ) ){ 22 | var _spr = ds_priority_delete_min( _p_subimages ); 23 | sprite_delete( _spr ); 24 | } 25 | break; 26 | 27 | case __IS.TYPE_SHEET: 28 | if( _priority <= 1 ){ 29 | background_delete( _load_data[| __IS_STREAM_IMAGE.SPRITES ] ); 30 | } else { 31 | sprite_delete( _load_data[| __IS_STREAM_IMAGE.SPRITES ] ); 32 | } 33 | break; 34 | } 35 | 36 | ds_list_destroy( _load_data ); 37 | } 38 | ds_priority_destroy( _p_sprite ); 39 | 40 | var _p_sprite_3d = _m_stream[? "sprite_3d" ]; 41 | while( ds_priority_size( _p_sprite ) > 0 ){ 42 | var _load_data = ds_priority_delete_max( _p_sprite_3d ); 43 | sprite_delete( _load_data[| __IS_STREAM_IMAGE.SPRITES ] ); 44 | ds_list_destroy( _load_data ); 45 | } 46 | ds_priority_destroy( _p_sprite_3d ); 47 | 48 | ds_map_destroy( _m_stream ); 49 | ds_list_delete( _l, 2 ); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_system_cleanup.gml: -------------------------------------------------------------------------------- 1 | ///image_system_cleanup() 2 | if( ds_exists( global.m_ex_image, ds_type_map ) ){ 3 | while( ds_map_size( global.m_ex_image ) > 0 ){ 4 | var _key = ds_map_find_first( global.m_ex_image ); 5 | image_group_destroy( _key ); 6 | } 7 | ds_map_destroy( global.m_ex_image ); 8 | draw_texture_flush(); 9 | show_debug_message( "IMAGE SYSTEM: Cleaned all image system memory" ); 10 | } else { 11 | show_debug_message( "IMAGE SYSTEM: Failed to clean image system, it is already clean"); 12 | } 13 | -------------------------------------------------------------------------------- /image_framework_V2_9.gmx/scripts/image_system_init.gml: -------------------------------------------------------------------------------- 1 | #define image_system_init 2 | ///image_system_init() 3 | global.m_ex_image = ds_map_create(); 4 | global.ex_image_cache_version = "1.1"; 5 | 6 | 7 | 8 | 9 | enum __IS { 10 | TYPE_STRIP, 11 | TYPE_SHEET, 12 | TYPE_LIST, 13 | TYPE_3D 14 | } 15 | 16 | enum __IS_STREAM_IMAGE { 17 | ID, 18 | TYPE, 19 | FPATH, 20 | SPRITES, 21 | SUBIMG_COUNT, 22 | WIDTH, 23 | HEIGHT, 24 | XORIG, 25 | YORIG, 26 | CLAMP_LEFT, 27 | CLAMP_TOP, 28 | SUBIMG_ROWS 29 | } 30 | 31 | enum __ISG_IMG { // Grid structure 32 | ID, 33 | SUBIMAGES, 34 | WIDTH, 35 | HEIGHT, 36 | XORIGIN, 37 | YORIGIN, 38 | BBOX_LEFT, 39 | BBOX_TOP, 40 | BBOX_RIGHT, 41 | BBOX_BOTTOM, 42 | COUNT 43 | } 44 | 45 | enum __ISG_SUBIMG { // Grid structure for subimages 46 | BACK, 47 | X, 48 | Y, 49 | COUNT 50 | } 51 | 52 | 53 | #define __is_log 54 | ///__is_log(text) 55 | show_debug_message( argument0 ); 56 | return 0; 57 | 58 | #define __is_log_none 59 | ///__is_log_none(text) 60 | var m = argument0; 61 | return 0; -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GameMakerDiscord/custom-sprite-framework/0a9f6801796b257d348b4e1518ae3e8b01e18696/preview.png --------------------------------------------------------------------------------