├── 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 |
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
--------------------------------------------------------------------------------